|
32611
|
smth tab by @Christianlikes67_Bobbpheus | Stardanc smth tab by @Christianlikes67_Bobbpheus | Stardance...
|
Christianlikes67_Bobbpheus
|
2
|
4.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T15:43:20Z", "hours": 1.0, "multiplier": 1.13, "payout": 1, "blessing": "neutral", "text": "I made a basic website weak css and not that much special things but it has a clock and some buttons that send you to different websites so not that much but i originally had made another projects but then i lost most of it and needed to rework it all", "repo": "https://github.com/Christianlikes67/smth-tab", "demo": "https://christianlikes67.github.io/smth-tab/"}, {"ship_num": 2, "ts": "2026-07-10T11:13:29Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "š±š AstroCat Explorer AstroCat Explorer is a fun and interactive web app that lets you explore NASAās Astronomy Picture of the Day (APOD) with a unique space-cat theme. Instead of creating a standard NASA gallery, this project combines space exploration, animated visuals, and a playful personality to create a more engaging experience. ⨠Features š NASA Astronomy Picture of the Day API š
Search for a specific date š² Random Mission button š± Random Space Cat facts š Mission counter ā XP system with Space Cat ranks āļø Animated shooting stars šŖ Floating planets š Rocket cursor š Glassmorphism UI š± Responsive design šØ Custom space-themed interface ā” Smooth animations and transitions š ļø Built With HTML5 CSS3 JavaScript (ES6) NASA APOD API You can get a free API key from: https://api.nasa.gov/ š Project Structure AstroCat Explorer/ ā āāā index.html āāā style.css āāā script.js āāā README.md š® Inspiration This project is inspired by: Space exploration Cats š± Modern gaming-inspired UI NASAās Astronomy Picture of the Day šø Main Features View NASAās daily space image. Explore images from previous dates. Launch random space missions. Earn Space Cat XP as you explore. Unlock new Space Cat ranks. Enjoy animated cosmic effects. š” Future Improvements ā¤ļø Favorite missions š„ Support NASA APOD videos š Dark/Light mode š Search by keywords š More achievements š Optional sound effects šØāš» Author Made with ā¤ļø by Christianlikes67.", "repo": "https://github.com/Christianlikes67/smth-tab", "demo": "https://christianlikes67.github.io/smth-tab/"}]...
|
[{"post_id": 27618, "ts": "202 [{"post_id": 27618, "ts": "2026-07-13T11:19:46Z", "hours": 0.4914, "text": "basically changed evrything cuz i just felt like it"}, {"post_id": 26444, "ts": "2026-07-11T07:47:05Z", "hours": 0.4128, "text": "now i fixed the css and a lot of other things"}, {"post_id": 25865, "ts": "2026-07-10T10:56:12Z", "hours": 0.3553, "text": "this is gonna take a bit longer i have ran into a problem and im now tryna fix it"}, {"post_id": 25847, "ts": "2026-07-10T10:22:28Z", "hours": 0.6558, "text": "Almost done with CSS"}, {"post_id": 25498, "ts": "2026-07-09T20:11:08Z", "hours": 0.8886, "text": "I am pretty much done with the āMoving on to JavaScriptā part in the guide so i only need to COOK with CSS now"}, {"post_id": 25469, "ts": "2026-07-09T19:09:01Z", "hours": 0.3744, "text": "just finished the āStarting with HTMLā part in the guide and i also finished what i wanted to do and the time i used to make it is the logged time from this devlog and the one before with the meowl img."}, {"post_id": 25394, "ts": "2026-07-09T17:34:04Z", "hours": 0.7331, "text": "I am making a cool NASA inspired facts website with cats where there is a date picker and then it finds a text from nasa about that day i couldnt get a screenshot"}, {"post_id": 24785, "ts": "2026-07-08T16:10:25Z", "hours": 0.3531, "text": "just began coding"}]...
|
Title: smth tab by @Christianlikes67_Bobbpheus | S Title: smth tab by @Christianlikes67_Bobbpheus | Stardance
Devlogs:
just began coding
I am making a cool NASA inspired facts website with cats where there is a date picker and then it finds a text from nasa about that day i couldnt get a screenshot
just finished the āStarting with HTMLā part in the guide and i also finished what i wanted to do and the time i used to make it is the logged time from this devlog and the one before with the meowl img.
I am pretty much done with the āMoving on to JavaScriptā part in the guide so i only need to COOK with CSS now
Almost done with CSS
this is gonna take a bit longer i have ran into a problem and im now tryna fix it
now i fixed the css and a lot of other things
basically changed evrything cuz i just felt like it
Ships:
š±š AstroCat Explorer AstroCat Explorer is a fun and interactive web app that lets you explore NASAās Astronomy Picture of the Day (APOD) with a unique space-cat theme. Instead of creating a standard NASA gallery, this project combines space exploration, animated visuals, and a playful personality to create a more engaging experience. ⨠Features š NASA Astronomy Picture of the Day API š
Search for a specific date š² Random Mission button š± Random Space Cat facts š Mission counter ā XP system with Space Cat ranks āļø Animated shooting stars šŖ Floating planets š Rocket cursor š Glassmorphism UI š± Responsive design šØ Custom space-themed interface ā” Smooth animations and transitions š ļø Built With HTML5 CSS3 JavaScript (ES6) NASA APOD API You can get a free API key from: https://api.nasa.gov/ š Project Structure AstroCat Explorer/ ā āāā index.html āāā style.css āāā script.js āāā README.md š® Inspiration This project is inspired by: Space exploration Cats š± Modern gaming-inspired UI NASAās Astronomy Picture of the Day šø Main Features View NASAās daily space image. Explore images from previous dates. Launch random space missions. Earn Space Cat XP as you explore. Unlock new Space Cat ranks. Enjoy animated cosmic effects. š” Future Improvements ā¤ļø Favorite missions š„ Support NASA APOD videos š Dark/Light mode š Search by keywords š More achievements š Optional sound effects šØāš» Author Made with ā¤ļø by Christianlikes67.
I made a basic website weak css and not that much special things but it has a clock and some buttons that send you to different websites so not that much but i originally had made another projects but then i lost most of it and needed to rework it all...
|
1792875199.4580007
|
1793739199.4580007
|
|
32620
|
MinecraftOS by @rapidSpeed | Stardance
|
rapidSpeed
|
2
|
10.88
|
14
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T15:59:55Z", "hours": 3.0, "multiplier": 5.34, "payout": 14, "blessing": "neutral", "text": "I added maximising and minimising of windows, which was pretty difficult. Adding eaglercraft was pretty easy, but the server is another thing. It took a long time. Btw, eaglercraft does take some time to startup on the website, so please be patient.", "repo": "https://github.com/rapidSpeed4652/MinecraftOS", "demo": "https://rapidspeed4652.github.io/MinecraftOS/"}, {"ship_num": 2, "ts": "2026-07-13T13:04:06Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an OS in the style of minecraft which is a game i like a lot. It took me a long time to make this, and im looking forward to make the next version too. Before this, i barely knew how to code html, css and javascript, but now i can confidently write basic websites :3 Iām very happy with how the website turned out ngl. Making the windows draggable and closable was a very big task, which im glad i was able to do. I hope yall enjoy the website.", "repo": "https://github.com/rapidSpeed4652/MinecraftOS", "demo": "https://rapidspeed4652.github.io/MinecraftOS/"}]...
|
[{"post_id": 75265, "ts": "202 [{"post_id": 75265, "ts": "2026-09-29T16:22:50Z", "hours": 0.8756, "text": "Thanks for the reviews! They gave a lot of insight on how to improve the OS. So, I have made it such that windows opened near the cursor and added the calc application! I will start working on improving the journel app too. I have been wondering if I should add a music player pre loaded with minecraft songs. What do yall think?"}, {"post_id": 55721, "ts": "2026-08-27T18:14:51Z", "hours": 0.3775, "text": "OMGG!!! It finally worked! I have ran a minecraft server on github actions that you can join easily! Technically its an eaglercraftX server, but still! I have lots of plans for future projects using this knowledge i learnt by making this. For now, Iām gonna give the repo link and you can check if the server is running. If it is, u can join the link given in the logs by cloudflare. (dont forget to add the wss:) https://github.com/rapidSpeed4652/Eaglercraft-Server Andd soon imma make a gui in the website to start or stop the server and show stats like number of players online or smh like that. Theres a problem tho, the world isnt persistant. While i tried making it, it didnt work and was taking way too long. I hope i can fix it later. P.S i didnt put time on hackatime, but i swear i spent hours on this"}, {"post_id": 39024, "ts": "2026-08-01T18:05:51Z", "hours": 0.8478, "text": "Added eaglercraftX 1.8.8, it was pretty easy, just downloading the offline .html and embedding it using , honestly the maximising button bothered me as it refused to work due to a simple error . Anyways, this is huge success, but it will lag while the game is loading due to which the windows wont be able to move. I still havent added window resizing which i will add later. I also updated the version numbering, if you look closely TBH, im considering to remove all the personality stuff and make it into a functional os with a calc, browser, games, etc. Note: Once you open the eaglercraft window, you might need to wait 10 seconds for it to load as it is hosted on github pages. I will change the host later to my own nest server."}, {"post_id": 38303, "ts": "2026-07-31T16:53:51Z", "hours": 1.4319, "text": "I finally added maximising and restoring of windows. Im thinking of adding the resizing of windows and minimising. But i have a crazy idea, what if i add eaglercraft to this? Like since it alr works on browser, maybe i can add it as a part of suite of games on the website? Sounds good but hard to implement."}, {"post_id": 27643, "ts": "2026-07-13T12:23:34Z", "hours": 0.7844, "text": "added custom app to credit myself , i think im done with the OS, maybe if i feel bored i might add more apps. But for now, im gonna get the website up on github pages."}, {"post_id": 27125, "ts": "2026-07-12T12:16:27Z", "hours": 1.7547, "text": "Added headers for all the windows . I also implemented the journel app, but you can only view or edit existing journels, you cannot add new journels which sounds incomplete. I might add the feature in the future. For now, I have also fixed the tap on window to bring on top, which is so satisfying ."}, {"post_id": 26736, "ts": "2026-07-11T18:15:00Z", "hours": 0.4058, "text": "Exams are going on šš, but im still gonna do atleast one hour of coding. But for now, i have started modularising of code so that its easier to add more apps. But looks like i have broken the window size and the window on top. Thats a future me problem ĀÆ _ (ć)_/ĀÆ. I have also started working on the notes app⦠Dw i will fix it and complete the notes app too tomorrow."}, {"post_id": 26025, "ts": "2026-07-10T16:34:56Z", "hours": 1.4103, "text": "Added the hotbar, which will contain all the programs and windows. I also completed the functionality of closing and opening of windows to all the windows. Should i add the old minecraft launcher icon as my OS icon? I think it would look pretty good."}, {"post_id": 25295, "ts": "2026-07-09T14:22:42Z", "hours": 1.6781, "text": "I have added the functionality of moving windows and closing and opening of them. For now, the functionality of opening and closing is only for hobbies window, i will add it for other windows too. Iām thinking of making the taskbar that holds all the programs as the hotbar in minecraft."}, {"post_id": 24784, "ts": "2026-07-08T16:09:22Z", "hours": 0.8217, "text": "Still working on the minecraft aesthetic. Finding the classic dirt background is difficult, but i think i will finish it by tmr. For today, i have added the content and played around with the style tags and stuff i can add."}]...
|
Title: MinecraftOS by @rapidSpeed | Stardance
Dev Title: MinecraftOS by @rapidSpeed | Stardance
Devlogs:
Still working on the minecraft aesthetic. Finding the classic dirt background is difficult, but i think i will finish it by tmr. For today, i have added the content and played around with the style tags and stuff i can add.
I have added the functionality of moving windows and closing and opening of them. For now, the functionality of opening and closing is only for hobbies window, i will add it for other windows too. Iām thinking of making the taskbar that holds all the programs as the hotbar in minecraft.
Added the hotbar, which will contain all the programs and windows. I also completed the functionality of closing and opening of windows to all the windows. Should i add the old minecraft launcher icon as my OS icon? I think it would look pretty good.
Exams are going on šš, but im still gonna do atleast one hour of coding. But for now, i have started modularising of code so that its easier to add more apps. But looks like i have broken the window size and the window on top. Thats a future me problem ĀÆ _ (ć)_/ĀÆ. I have also started working on the notes app⦠Dw i will fix it and complete the notes app too tomorrow.
Added headers for all the windows . I also implemented the journel app, but you can only view or edit existing journels, you cannot add new journels which sounds incomplete. I might add the feature in the future. For now, I have also fixed the tap on window to bring on top, which is so satisfying .
added custom app to credit myself , i think im done with the OS, maybe if i feel bored i might add more apps. But for now, im gonna get the website up on github pages.
I finally added maximising and restoring of windows. Im thinking of adding the resizing of windows and minimising. But i have a crazy idea, what if i add eaglercraft to this? Like since it alr works on browser, maybe i can add it as a part of suite of games on the website? Sounds good but hard to implement.
Added eaglercraftX 1.8.8, it was pretty easy, just downloading the offline .html and embedding it using , honestly the maximising button bothered me as it refused to work due to a simple error . Anyways, this is huge success, but it will lag while the game is loading due to which the windows wont be able to move. I still havent added window resizing which i will add later. I also updated the version numbering, if you look closely TBH, im considering to remove all the personality stuff and make it into a functional os with a calc, browser, games, etc. Note: Once you open the eaglercraft window, you might need to wait 10 seconds for it to load as it is hosted on github pages. I will change the host later to my own nest server.
OMGG!!! It finally worked! I have ran a minecraft server on github actions that you can join easily! Technically its an eaglercraftX server, but still! I have lots of plans for future projects using this knowledge i learnt by making this. For now, Iām gonna give the repo link and you can check if the server is running. If it is, u can join the link given in the logs by cloudflare. (dont forget to add the wss:) https://github.com/rapidSpeed4652/Eaglercraft-Server Andd soon imma make a gui in the website to start or stop the server and show stats like number of players online or smh like that. Theres a problem tho, the world isnt persistant. While i tried making it, it didnt work and was taking way too long. I hope i can fix it later. P.S i didnt put time on hackatime, but i swear i spent hours on this
Thanks for the reviews! They gave a lot of insight on how to improve the OS. So, I have made it such that windows opened near the cursor and added the calc application! I will start working on improving the journel app too. I have been wondering if I should add a music player pre loaded with minecraft songs. What do yall think?
Ships:
I made an OS in the style of minecraft which is a game i like a lot. It took me a long time to make this, and im looking forward to make the next version too. Before this, i barely knew how to code html, css and javascript, but now i can confidently write basic websites :3 Iām very happy with how the website turned out ngl. Making the windows draggable and closable was a very big task, which im glad i was able to do. I hope yall enjoy the website.
I added maximising and minimising of windows, which was pretty difficult. Adding eaglercraft was pretty easy, but the server is another thing. It took a long time. Btw, eaglercraft does take some time to startup on the website, so please be patient....
|
1793091127.569441
|
1793177527.569441
|
|
32634
|
BrickOS by @shashank_sd | Stardance
|
shashank_sd
|
2
|
15.98
|
19
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-03T14:09:27Z", "hours": 6.0, "multiplier": 3.44, "payout": 19, "blessing": "neutral", "text": "Windows - Starting here, I made the windows more block shaped to fit the LEGO themes instead of having rounded corners. They now have a better looking design with the Images Window having a custom scrolling wheel and a clean darker line separating the header and actual content instead of a black line. Images App I added this new app with a a similar design to the Welcome Window but the content is completely different. This app has 3 images and a custom scroll wheel to fit the LEGO theme. Notes App This new notes app has a clean sidebar as well with all the notes that a user can create. A add new note button is created where when you click it, a popup will come and will ask for the name of the new note. Everything on the notes content side is editable and is saved to local storage. Calendar There is a new Calendar that pops up in the bottom right corner when the date/time is clocked. This calendar shows the month and year on the top and shows the days of the money with the days at the top as well as highlights todays date. Desktop Icons Finally the desktop icons have a clean image layout and design. When you hover over the apps, they will outline a faint yellow to show you are hovering over them and will turn to the pointer cursor. ========================================= Desktop Apps - New snake game which is fully playable with a green square that grows (snake) and a red square (apple). There is score tracking, including a saved high score, and a game-over and a way to restart by clicking the board and pressing any key. ======================================= Windows - There is a new resizable window where if you drag on the bottom right corner, you can make the window bigger until the screen size it met but does not overlap with the taskbar. It has the size limits so that it doesnāt spill off of the screen. Windows can also not be clicked to be shown on top of the other window. By clicking a window of an app that is under another app window, the window clicked will show up on top. ======================================== Images App - I added an image uploading feature to the Images app where you can add images from your computer by uploading it or you can take a picture with your camera and upload it there and get saved in the app. Along with this, there is also a feature to delete the images if you donāt want it there, asking you for confirmation to delete the picture in case it was by accident. ======================================== Window Minimization - Apps can now be minimized instead of fully closed where if you minimize the app, it will stay in the taskbar but dim out to show that the app is open but not visibly on the screen and can be reopened by clicking the app again or clicking the app on the taskbar.", "repo": "https://github.com/WieghtedTuna473/OS-Project", "demo": "https://wieghtedtuna473.github.io/OS-Project/"}, {"ship_num": 2, "ts": "2026-07-15T16:14:24Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Windows - Starting here, I made the windows more block shaped to fit the LEGO themes instead of having rounded corners. They now have a better looking design with the Images Window having a custom scrolling wheel and a clean darker line separating the header and actual content instead of a black line. Images App I added this new app with a a similar design to the Welcome Window but the content is completely different. This app has 3 images and a custom scroll wheel to fit the LEGO theme. Notes App This new notes app has a clean sidebar as well with all the notes that a user can create. A add new note button is created where when you click it, a popup will come and will ask for the name of the new note. Everything on the notes content side is editable and is saved to local storage. Calendar (My Extra Feature) There is a new Calendar that pops up in the bottom right corner when the date/time is clocked. This calendar shows the month and year on the top and shows the days of the money with the days at the top as well as highlights todays date. Desktop Icons Finally the desktop icons have a clean image layout and design. When you hover over the apps, they will outline a faint yellow to show you are hovering over them and will turn to the pointer cursor.", "repo": "https://github.com/WieghtedTuna473/OS-Project", "demo": "https://wieghtedtuna473.github.io/OS-Project/"}]...
|
[{"post_id": 63690, "ts": "202 [{"post_id": 63690, "ts": "2026-09-07T16:59:52Z", "hours": 1.2847, "text": "Terminal App - This app lets you see what each app is about including the calendar app. You can also see you notes and what are in them through this app. Typing help gives the list of commands that you could use as well! Setting App Update - The settings app not has multiple different features including changing your color scheme. You can also change the clock from 23 hours to the 12 hours version and also switch on and off sound for the future music app. Finally, you can also reset all your settings if you want a fresh start."}, {"post_id": 44278, "ts": "2026-08-09T22:31:47Z", "hours": 1.6944, "text": "I added 2 new apps: The settings app - This app allows you change your background by choosing one of the default backgrounds already available or you can also just upload your own image and use that as a background. I will add more things as part of the settings, but i made the base of the app today. Calculator App- This app follows the theme and does actually work. You can put in math problems and it will solve it. Obviously itās not a graphing calculator and is just a basic calculator. Both these apps can be resized and will be shown in the taskbar. Right now, these apps have a placeholder icon and that will change after I create my other apps that I am planning. These apps include the Terminal app, music app, and lego fun facts app, and maybe more!"}, {"post_id": 40090, "ts": "2026-08-03T14:04:31Z", "hours": 5.6325, "text": "Desktop Apps - New snake game which is fully playable with a green square that grows (snake) and a red square (apple). There is score tracking, including a saved high score, and a game-over and a way to restart by clicking the board and pressing any key. ======================================= Windows - There is a new resizable window where if you drag on the bottom right corner, you can make the window bigger until the screen size it met but does not overlap with the taskbar. It has the size limits so that it doesnāt spill off of the screen. Windows can also not be clicked to be shown on top of the other window. By clicking a window of an app that is under another app window, the window clicked will show up on top. ======================================== Images App - I added an image uploading feature to the Images app where you can add images from your computer by uploading it or you can take a picture with your camera and upload it there and get saved in the app. Along with this, there is also a feature to delete the images if you donāt want it there, asking you for confirmation to delete the picture in case it was by accident. ======================================== Window Minimization - Apps can now be minimized instead of fully closed where if you minimize the app, it will stay in the taskbar but dim out to show that the app is open but not visibly on the screen and can be reopened by clicking the app again or clicking the app on the taskbar."}, {"post_id": 28963, "ts": "2026-07-15T16:09:30Z", "hours": 3.3767, "text": "Windows - Starting here, I made the windows more block shaped to fit the LEGO themes instead of having rounded corners. They now have a better looking design with the Images Window having a custom scrolling wheel and a clean darker line separating the header and actual content instead of a black line. ======================================== Images App I added this new app with a a similar design to the Welcome Window but the content is completely different. This app has 3 images and a custom scroll wheel to fit the LEGO theme. ======================================== Notes App This new notes app has a clean sidebar as well with all the notes that a user can create. A add new note button is created where when you click it, a popup will come and will ask for the name of the new note. Everything on the notes content side is editable and is saved to local storage. ======================================== Calendar There is a new Calendar that pops up in the bottom right corner when the date/time is clocked. This calendar shows the month and year on the top and shows the days of the money with the days at the top as well as highlights todays date. ======================================== Desktop Icons Finally the desktop icons have a clean image layout and design. When you hover over the apps, they will outline a faint yellow to show you are hovering over them and will turn to the pointer cursor."}, {"post_id": 27409, "ts": "2026-07-12T23:27:09Z", "hours": 0.61, "text": "I added a new OS.css where now all the CSS styling is moved to to this file instead of being cramped in the HTML page. Along with this there was a problem where when I wanted to close out of a window, where I could close the window anywhere in between the top in between and and X of the window which interfered with the dragging of the window, since if I dragged on that side it would drag and as soon as I let go, it would close out of that window. I was trying to change th4e JavaScript to see if it was the problem, but I saw that in the CSS, there was an element to make the X flex: 1, so as soon as I took that out, it started working. Overall, I fixed a crucial error in the OS making it work properly and better and made the code more readable by adding a CSS page."}, {"post_id": 26848, "ts": "2026-07-11T21:27:19Z", "hours": 1.06, "text": "I made BrickOS start to feel more like an operating system by adding a new features such as window dragging. I made the welcome screen more like a window by changing the colors a little to make it look better by adding a title bar, a close button, a border, and a shadow as well. I also added draggable windows where the welcome window can be clicked and dragged around by the title bar using mouse functions to track where the mouse is going and also update the windows position. Clicking the X button hides the window and clicking the BrickOS on the bottom taskbar brings it back. I also added a new OSscript.js to make the JavaScript loof better instead of making it all be in the HTML. Overall, now it is starting to function more like a OS with windows that can move and can be gotten out of, with now the goal in mind being adding applications that can be clicked."}, {"post_id": 26598, "ts": "2026-07-11T14:56:48Z", "hours": 1.0622, "text": "I continued to develop the welcome home screen for my BrickOS by making it look more like an interface of an operating system instead of just making it look like a webpage. I added a simple taskbar to the bottom of my screen with the OS name and a date and time that works. I also improved the layout by centering the welcome window which is a basic information screen about the OS. I also added a background image from the LEGO movie that fits my OS. I wrote my first JavaScript function for the project, helping me create a live clock using Date() and setInterval(). I overall improved the desktop to look more like a desktop instead of just a webpage and learned to have more dynamic elements such as the time."}, {"post_id": 26190, "ts": "2026-07-10T20:58:05Z", "hours": 0.3922, "text": "I built the welcome screen for my operating system, BrickOS, which is inspired by my passion for LEGOās. I created a basic HTML structure for the homepage and added heading, paragraphs, images, and a link to the official LEGO website. I also added a list of my favorite type of LEGOās to build to make the ppage more personalized towards me. Then I learned to style the elements with inline CSS. I just started by trying to match the LEGO themes by adding a font and a background color along with a red āWelcome to BrickOS.ā"}]...
|
Title: BrickOS by @shashank_sd | Stardance
Devlog Title: BrickOS by @shashank_sd | Stardance
Devlogs:
I built the welcome screen for my operating system, BrickOS, which is inspired by my passion for LEGOās. I created a basic HTML structure for the homepage and added heading, paragraphs, images, and a link to the official LEGO website. I also added a list of my favorite type of LEGOās to build to make the ppage more personalized towards me. Then I learned to style the elements with inline CSS. I just started by trying to match the LEGO themes by adding a font and a background color along with a red āWelcome to BrickOS.ā
I continued to develop the welcome home screen for my BrickOS by making it look more like an interface of an operating system instead of just making it look like a webpage. I added a simple taskbar to the bottom of my screen with the OS name and a date and time that works. I also improved the layout by centering the welcome window which is a basic information screen about the OS. I also added a background image from the LEGO movie that fits my OS. I wrote my first JavaScript function for the project, helping me create a live clock using Date() and setInterval(). I overall improved the desktop to look more like a desktop instead of just a webpage and learned to have more dynamic elements such as the time.
I made BrickOS start to feel more like an operating system by adding a new features such as window dragging. I made the welcome screen more like a window by changing the colors a little to make it look better by adding a title bar, a close button, a border, and a shadow as well. I also added draggable windows where the welcome window can be clicked and dragged around by the title bar using mouse functions to track where the mouse is going and also update the windows position. Clicking the X button hides the window and clicking the BrickOS on the bottom taskbar brings it back. I also added a new OSscript.js to make the JavaScript loof better instead of making it all be in the HTML. Overall, now it is starting to function more like a OS with windows that can move and can be gotten out of, with now the goal in mind being adding applications that can be clicked.
I added a new OS.css where now all the CSS styling is moved to to this file instead of being cramped in the HTML page. Along with this there was a problem where when I wanted to close out of a window, where I could close the window anywhere in between the top in between and and X of the window which interfered with the dragging of the window, since if I dragged on that side it would drag and as soon as I let go, it would close out of that window. I was trying to change th4e JavaScript to see if it was the problem, but I saw that in the CSS, there was an element to make the X flex: 1, so as soon as I took that out, it started working. Overall, I fixed a crucial error in the OS making it work properly and better and made the code more readable by adding a CSS page.
Windows - Starting here, I made the windows more block shaped to fit the LEGO themes instead of having rounded corners. They now have a better looking design with the Images Window having a custom scrolling wheel and a clean darker line separating the header and actual content instead of a black line. ======================================== Images App I added this new app with a a similar design to the Welcome Window but the content is completely different. This app has 3 images and a custom scroll wheel to fit the LEGO theme. ======================================== Notes App This new notes app has a clean sidebar as well with all the notes that a user can create. A add new note button is created where when you click it, a popup will come and will ask for the name of the new note. Everything on the notes content side is editable and is saved to local storage. ======================================== Calendar There is a new Calendar that pops up in the bottom right corner when the date/time is clocked. This calendar shows the month and year on the top and shows the days of the money with the days at the top as well as highlights todays date. ======================================== Desktop Icons Finally the desktop icons have a clean image layout and design. When you hover over the apps, they will outline a faint yellow to show you are hovering over them and will turn to the pointer cursor.
Desktop Apps - New snake game which is fully playable with a green square that grows (snake) and a red square (apple). There is score tracking, including a saved high score, and a game-over and a way to restart by clicking the board and pressing any key. ======================================= Windows - There is a new resizable window where if you drag on the bottom right corner, you can make the window bigger until the screen size it met but does not overlap with the taskbar. It has the size limits so that it doesnāt spill off of the screen. Windows can also not be clicked to be shown on top of the other window. By clicking a window of an app that is under another app window, the window clicked will show up on top. ======================================== Images App - I added an image uploading feature to the Images app where you can add images from your computer by uploading it or you can take a picture with your camera and upload it there and get saved in the app. Along with this, there is also a feature to delete the images if you donāt want it there, asking you for confirmation to delete the picture in case it was by accident. ======================================== Window Minimization - Apps can now be minimized instead of fully closed where if you minimize the app, it will stay in the taskbar but dim out to show that the app is open but not visibly on the screen and can be reopened by clicking the app again or clicking the app on the taskbar.
I added 2 new apps: The settings app - This app allows you change your background by choosing one of the default backgrounds already available or you can also just upload your own image and use that as a background. I will add more things as part of the settings, but i made the base of the app today. Calculator App- This app follows the theme and does actually work. You can put in math problems and it will solve it. Obviously itās not a graphing calculator and is just a basic calculator. Both these apps can be resized and will be shown in the taskbar. Right now, these apps have a placeholder icon and that will change after I create my other apps that I am planning. These apps include the Terminal app, music app, and lego fun facts app, and maybe more!
Terminal App - This app lets you see what each app is about including the calendar app. You can also see you notes and what are in them through this app. Typing help gives the list of commands that you could use as well! Setting App Update - The settings app not has multiple different features including changing your color scheme. You can also change the clock from 23 hours to the 12 hours version and also switch on and off sound for the future music app. Finally, you can also reset all your settings if you want a fresh start.
Ships:
Windows - Starting here, I made the windows more block shaped to fit the LEGO themes instead of having rounded corners. They now have a better looking design with the Images Window having a custom scrolling wheel and a clean darker line separating the header and actual content instead of a black line. Images App I added this new app with a a similar design to the Welcome Window but the content is completely different. This app has 3 images and a custom scroll wheel to fit the LEGO theme. Notes App This new notes app has a clean sidebar as well with all the notes that a user can create. A add new note button is created where when you click it, a popup will come and will ask for the name of the new note. Everything on the notes content side is editable and is saved to local storage. Calendar (My Extra Feature) There is a new Calendar that pops up in the bottom right corner when the date/time is clocked. This calendar shows the month and year on the top and shows the days of the money with the days at the top as well as highlights todays date. Desktop Icons Finally the desktop icons have a clean image layout and design. When you hover over the apps, they will outline a faint yellow to show you are hovering over them and will turn to the pointer cursor.
Windows - Starting here, I made the windows more block shaped to fit the LEGO themes instead of having rounded corners. They now have a better looking design with the Images Window having a custom scrolling wheel and a clean darker line separating the header and actual content instead of a black line. Images App I added this new app with a a similar design to the Welcome Window but the content is completely different. This app has 3 images and a custom scroll wheel to fit the LEGO theme. Notes App This new notes app has a clean sidebar as well with all the notes that a user can create. A add new note button is created where when you click it, a popup will come and will ask for the name of the new note. Everything on the notes content side is editable and is saved to local storage. Calendar There is a new Calendar that pops up in the bottom right corner when the date/time is clocked. This calendar shows the month and year on the top and shows the days of the money with the days at the top as well as highlights todays date. Desktop Icons Finally the desktop icons have a clean image layout and design. When you hover over the apps, they will outline a faint yellow to show you are hovering over them and will turn to the pointer cursor. ========================================= Desktop Apps - New snake game which is fully playable with a green square that grows (snake) and a red square (apple). There is score tracking, including a saved high score, and a game-over and a way to restart by clicking the board and pressing any key. ======================================= Windows - There is a new resizable window where if you drag on the bottom right corner, you can make the window bigger until the screen size it met but does not overlap with the taskbar. It has the size limits so that it doesnāt spill off of the screen. Windows can also not be clicked to be shown on top of the other window. By clicking a window of an app that is under another app window, the window clicked will show up on top. ======================================== Images App - I added an image uploading feature to the Images app where you can add images from your computer by uploading it or you can take a picture with your camera and upload it there and get saved in the app. Along with this, there is also a feature to delete the images if you donāt want it there, asking you for confirmation to delete the picture in case it was by accident. ======================================== Window Minimization - Apps can now be minimized instead of fully closed where if you minimize the app, it will stay in the taskbar but dim out to show that the app is open but not visibly on the screen and can be reopened by clicking the app again or clicking the app on the taskbar....
|
1793000877.4494445
|
1793087277.4494445
|
|
32645
|
Calculator by @Pery | Stardance
|
Pery
|
2
|
2.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-02T21:19:00Z", "hours": 1.0, "multiplier": 1.04, "payout": 1, "blessing": "neutral", "text": "Update is up to date! feel free to check it out!!", "repo": "https://github.com/davidperyro-stack/calculator", "demo": "https://davidperyro-stack.github.io/calculator/"}, {"ship_num": 2, "ts": "2026-07-10T11:31:34Z", "hours": 1.0, "multiplier": 1.25, "payout": 1, "blessing": "neutral", "text": "Project finally done! tbh it was harder than the personal site project qwq. at least i finished it! (In the photo is the calculator that did 1+1)", "repo": "https://github.com/davidperyro-stack/calculator", "demo": "https://davidperyro-stack.github.io/calculator/"}]...
|
[{"post_id": 39718, "ts": "202 [{"post_id": 39718, "ts": "2026-08-02T21:07:43Z", "hours": 0.2917, "text": "devlog 2.3# Update is finally done, added some random quotes perfect for this project (math stuff and one random,you will see it and its true.) the quotes changes when you refresh,also added a counter everytime you click on blahaj."}, {"post_id": 39694, "ts": "2026-08-02T20:36:10Z", "hours": 0.3525, "text": "devlog 2.2# Fixed the site layout (ALMOST removing the scroll bar when the zoom is at 100%). the incounter i was in that the calculator went STRAIGHT TO LEFT. fixed that tho, and moved the blahaj on the center right side so NO MORE SCROLLL BARRR YAYY. (also copy pasted the background from my other projects :P)"}, {"post_id": 37276, "ts": "2026-07-29T21:22:48Z", "hours": 0.3392, "text": "devlog 1.2: ive heard yall reviews and now im improving⦠already made the design a little beautiful. added AC and DEL button (AC to delete everything and DEL to delete one thing). My plan now is to: -improve README -add keyboard support -and probally making the design more beautiful if i can"}, {"post_id": 25884, "ts": "2026-07-10T11:29:42Z", "hours": 0.3128, "text": "spinning blahaj"}, {"post_id": 25863, "ts": "2026-07-10T10:48:31Z", "hours": 0.2717, "text": "added my personal site! (i will add this calculator on projects too) (im about to add spinning blahaj cuz why not)"}, {"post_id": 25849, "ts": "2026-07-10T10:23:39Z", "hours": 0.5939, "text": "purple calculator"}]...
|
Title: Calculator by @Pery | Stardance
Devlogs:
p Title: Calculator by @Pery | Stardance
Devlogs:
purple calculator
added my personal site! (i will add this calculator on projects too) (im about to add spinning blahaj cuz why not)
spinning blahaj
devlog 1.2: ive heard yall reviews and now im improving⦠already made the design a little beautiful. added AC and DEL button (AC to delete everything and DEL to delete one thing). My plan now is to: -improve README -add keyboard support -and probally making the design more beautiful if i can
devlog 2.2# Fixed the site layout (ALMOST removing the scroll bar when the zoom is at 100%). the incounter i was in that the calculator went STRAIGHT TO LEFT. fixed that tho, and moved the blahaj on the center right side so NO MORE SCROLLL BARRR YAYY. (also copy pasted the background from my other projects :P)
devlog 2.3# Update is finally done, added some random quotes perfect for this project (math stuff and one random,you will see it and its true.) the quotes changes when you refresh,also added a counter everytime you click on blahaj.
Ships:
Project finally done! tbh it was harder than the personal site project qwq. at least i finished it! (In the photo is the calculator that did 1+1)
Update is up to date! feel free to check it out!!...
|
1792997670.171503
|
1793084070.171503
|
|
32651
|
Personal by @phattar4phan | Stardance
|
phattar4phan
|
2
|
1.31
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-18T06:37:20Z", "hours": 0.0, "multiplier": 5.37, "payout": 2, "blessing": "neutral", "text": "Created my website, I use AI for designing and some coding as am not really experienced wiyh .tsx and designing. This portfolio includes about section, skills section, projects, experiences and contact. the tech stack for this site are Vite, Tailwindcss, React, Lucide-react, and TypeScript. Also Iām proud that I can finally have a stunning portfolio website after stardance encouraging missions (this project was part of the mission Personal Site)", "repo": "https://github.com/phattar4phan/personal", "demo": "https://personal.phattar4phan.workers.dev/"}, {"ship_num": 2, "ts": "2026-07-17T17:03:23Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Created my personal website, I personally used AI for designing and some coding formatting, as am not much experienced with .tsx and not an expert in professional designing. This site is deployed on personal.phattar4phan.workers.dev (hosted on cloudflare), Iām proud that with stardance.hackclub, I can finally create a personal portfolio with their encouraging mission. you all could also be copying this design whenever you want, this is the best Iāve done. Thank you.", "repo": "https://github.com/phattar4phan/personal", "demo": "https://personal.phattar4phan.workers.dev/"}]...
|
[{"post_id": 30579, "ts": "202 [{"post_id": 30579, "ts": "2026-07-18T08:41:53Z", "hours": 0.3069, "text": "Rewrite .tsx to plain html, css, js to fit the mission scope"}, {"post_id": 30533, "ts": "2026-07-18T05:47:57Z", "hours": 0.4086, "text": "Modified README.md, added about, sections, quick start, tech stacks and how I made it"}, {"post_id": 30212, "ts": "2026-07-17T16:50:15Z", "hours": 0.765, "text": "Created a full web portfolio, with contacts, skills, techs, projects"}]...
|
Title: Personal by @phattar4phan | Stardance
Devl Title: Personal by @phattar4phan | Stardance
Devlogs:
Created a full web portfolio, with contacts, skills, techs, projects
Modified README.md, added about, sections, quick start, tech stacks and how I made it
Rewrite .tsx to plain html, css, js to fit the mission scope
Ships:
Created my personal website, I personally used AI for designing and some coding formatting, as am not much experienced with .tsx and not an expert in professional designing. This site is deployed on personal.phattar4phan.workers.dev (hosted on cloudflare), Iām proud that with stardance.hackclub, I can finally create a personal portfolio with their encouraging mission. you all could also be copying this design whenever you want, this is the best Iāve done. Thank you.
Created my website, I use AI for designing and some coding as am not really experienced wiyh .tsx and designing. This portfolio includes about section, skills section, projects, experiences and contact. the tech stack for this site are Vite, Tailwindcss, React, Lucide-react, and TypeScript. Also Iām proud that I can finally have a stunning portfolio website after stardance encouraging missions (this project was part of the mission Personal Site)...
|
1793109107.219013
|
1793195507.219013
|
|
32700
|
NetLink by @Leon36 | Stardance
|
Leon36
|
2
|
75.0
|
1132
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-09T14:54:33Z", "hours": 64.0, "multiplier": 16.47, "payout": 982, "blessing": "neutral", "text": "NetLink connect to your network from everywhere without a VPN I made a Web based āOSā to connect to your network without a VPN and accses your resources with protocols like sftp or ssh. I also build a desktop client to emulate a VPN on your pc, so you can accses your network with your own programms Technologys I used WebSockets to transfer data between the client and the Server. For the frontend I choose React, for the backend I used TypeScript.", "repo": "https://github.com/leonst036/NetLink", "demo": "https://netlink.legaming.tech/"}, {"ship_num": 2, "ts": "2026-07-14T19:45:47Z", "hours": 11.0, "multiplier": 14.76, "payout": 150, "blessing": "neutral", "text": "I built a project called NetLink! It lets you connect to your home network from anywhere. Right now, it supports access via VNC, SSH, and SFTP. It uses WebSockets and web based apps to establish the connection. Everything is routed through a relay node, so you donāt need to open any ports on your router. In the demo version, you can set up your own PC as a local server to try it out (active for 24 hours). If you want to use it long-term, you can easily self-host the project on your own hardware (GitHub Readme). Iām planning to add support for more protocols soon. If you have any feedback or ideas on how to improve the project, feel free to leave a comment or send me a DM! Heads up: If youāre using the demo, it might take a few moments to load all your devices.", "repo": "https://github.com/leonst036/NetLink", "demo": "https://netlink.legaming.tech/"}]...
|
[{"post_id": 78081, "ts": "202 [{"post_id": 78081, "ts": "2026-10-09T14:48:26Z", "hours": 6.1889, "text": "Summary: Polished NetLink for a ship Fixed some bugs Remade some screens Made a demo version Made some security fixes"}, {"post_id": 58474, "ts": "2026-08-30T21:50:58Z", "hours": 2.4225, "text": "Summary: Made some bugfixes Thatās pretty much all. I found some small thing I didnāt like and fixed them."}, {"post_id": 53323, "ts": "2026-08-23T19:58:03Z", "hours": 6.5603, "text": "Summary: Made NetConnect a programm for Linux to bring you Network to you everywhere (without VPN) I made this using Go and a virtual network device wich act like a spit tunnel vpn, to extract all request from you subnet e.g. 192.168.1.0/24 sends it over a WebSocket to the NetLink relay server and to its target server. Iām not fully done with this, but right now itās working. Maybe Iāll do a version for windows soon. How you can install it is defined in the NetConnect Repo ONLY FOR LINUX"}, {"post_id": 52016, "ts": "2026-08-22T01:39:34Z", "hours": 6.1189, "text": "Summaray: Refactored netgraph and settings app Yeah, I refactored it. Thatās it. I gues I put these applications as picture :-|"}, {"post_id": 49947, "ts": "2026-08-18T22:48:47Z", "hours": 13.9178, "text": "Summary: Refactored NetStore, gave the NetStore itās own Repo and started making a Minecraft Server Manager. I just refactored the I gues 1200 line longe NetStore app, and I have so much to refactor left. I started the Minecraft Server Manager before the refactoring but it wasnāt in my usual hackatime project, it was in a new one, and my stupid ass thought it was just a technical mistake that the time wasnāt tracked."}, {"post_id": 46375, "ts": "2026-08-13T15:30:43Z", "hours": 3.2525, "text": "Summary: Moved all build-in apps into the NetStore Thatās pretty much allā¦"}, {"post_id": 46019, "ts": "2026-08-12T22:06:19Z", "hours": 1.8247, "text": "Summary: Made a traffic monitor for the NetStore This Devlog isnāt gona be that long, I just made a smal traffic monitor. And some small improvements."}, {"post_id": 45387, "ts": "2026-08-11T20:17:00Z", "hours": 2.0261, "text": "Summary: Secured NetStore and published it. I secured the NetStore so far that I can release it on the main branch. Right now it isnāt in the demo, so you can test it only when you install it by yourself (wich is very easy with the new install script)"}, {"post_id": 44059, "ts": "2026-08-09T16:06:18Z", "hours": 6.2664, "text": "Summary: Added a Docker Manager and done some fixes with the NetStore In my last devlog I made the NetStore, and this is the first application by myself. Itās used to manage your dockers from everywhere (What a wonder, the docker manager can manage docker). It isnāt perfect right now, so itās not an alternative to something like Portainer or Coolify, but for simple tasks, itās good enough. Primarily I made this application to add features to the NetStore (I added a lot, only for this application) and of course I found some bugs. The NetStore itself isnāt secured yet (Right now I only added Deno), but Iām working on it!"}, {"post_id": 43289, "ts": "2026-08-08T13:55:07Z", "hours": 3.1814, "text": "Summary: Added NetStore to create custom applications I added an application that allows you to create your own custom applications. I will use this Store to build additional apps myself for niche use cases (e.g., Docker management or local server containers) that will be fetched directly from GitHub. Key features: Custom Routes: Register your own custom backend routes. Frontend: Build and design your own user interface. Local Code: Execute custom code on the local server. IMPORTANT: DO NOT USE NETSTORE IN PRODUCTION OR DEPLOYMENT ENVIRONMENTS. IT IS CURRENTLY NOT SECURE. If you choose to use it anyway, you do so at your own risk. Itās on the dev Branch. Iād recommend to use it only in your local Network"}, {"post_id": 40183, "ts": "2026-08-03T16:15:22Z", "hours": 5.7364, "text": "I fixed some Bugs in the frontend and made some improvements in the backend."}, {"post_id": 33121, "ts": "2026-07-22T18:59:08Z", "hours": 1.8814, "text": "I just refactored the Project I optimized the structure of the local server and the relay. In the frontend, apps will load just when opening them wich is very good for the performance"}, {"post_id": 31896, "ts": "2026-07-20T17:40:45Z", "hours": 4.185, "text": "I completely remade the frontend! Itās now a hybrid of Material 3 and modern Glassmorphism. The overhaul took well over 4 hours though a good chunk was done at school (untracked since I wasnāt logged into Hackatime). Overall, Iām really happy with how the new look turned out! There are probably a few subtle UI bugs hiding in the new design, but Iāll squash those as I find them."}, {"post_id": 28489, "ts": "2026-07-14T19:25:14Z", "hours": 2.3664, "text": "I just finished a few bugs and created an demo enviroment. If you wanna try it, Iāll explain everything in the ship description."}, {"post_id": 27126, "ts": "2026-07-12T12:17:35Z", "hours": 3.7031, "text": "NetLink features a web-based operating system designed to enhance the user experience with VNC and SFTP. I plan to add support for additional protocols, such as RDP, in the future"}, {"post_id": 25976, "ts": "2026-07-10T14:54:42Z", "hours": 1.5586, "text": "Added dynamic SSH server selection. The network scan was a bit difficult. Itās not the prettiest solution to ping every device, but it works!"}, {"post_id": 25492, "ts": "2026-07-09T20:04:51Z", "hours": 2.8922, "text": "Streaming a SSH Session over the relay server"}]...
|
Title: NetLink by @Leon36 | Stardance
Devlogs:
St Title: NetLink by @Leon36 | Stardance
Devlogs:
Streaming a SSH Session over the relay server
Added dynamic SSH server selection. The network scan was a bit difficult. Itās not the prettiest solution to ping every device, but it works!
NetLink features a web-based operating system designed to enhance the user experience with VNC and SFTP. I plan to add support for additional protocols, such as RDP, in the future
I just finished a few bugs and created an demo enviroment. If you wanna try it, Iāll explain everything in the ship description.
I completely remade the frontend! Itās now a hybrid of Material 3 and modern Glassmorphism. The overhaul took well over 4 hours though a good chunk was done at school (untracked since I wasnāt logged into Hackatime). Overall, Iām really happy with how the new look turned out! There are probably a few subtle UI bugs hiding in the new design, but Iāll squash those as I find them.
I just refactored the Project I optimized the structure of the local server and the relay. In the frontend, apps will load just when opening them wich is very good for the performance
I fixed some Bugs in the frontend and made some improvements in the backend.
Summary: Added NetStore to create custom applications I added an application that allows you to create your own custom applications. I will use this Store to build additional apps myself for niche use cases (e.g., Docker management or local server containers) that will be fetched directly from GitHub. Key features: Custom Routes: Register your own custom backend routes. Frontend: Build and design your own user interface. Local Code: Execute custom code on the local server. IMPORTANT: DO NOT USE NETSTORE IN PRODUCTION OR DEPLOYMENT ENVIRONMENTS. IT IS CURRENTLY NOT SECURE. If you choose to use it anyway, you do so at your own risk. Itās on the dev Branch. Iād recommend to use it only in your local Network
Summary: Added a Docker Manager and done some fixes with the NetStore In my last devlog I made the NetStore, and this is the first application by myself. Itās used to manage your dockers from everywhere (What a wonder, the docker manager can manage docker). It isnāt perfect right now, so itās not an alternative to something like Portainer or Coolify, but for simple tasks, itās good enough. Primarily I made this application to add features to the NetStore (I added a lot, only for this application) and of course I found some bugs. The NetStore itself isnāt secured yet (Right now I only added Deno), but Iām working on it!
Summary: Secured NetStore and published it. I secured the NetStore so far that I can release it on the main branch. Right now it isnāt in the demo, so you can test it only when you install it by yourself (wich is very easy with the new install script)
Summary: Made a traffic monitor for the NetStore This Devlog isnāt gona be that long, I just made a smal traffic monitor. And some small improvements.
Summary: Moved all build-in apps into the NetStore Thatās pretty much allā¦
Summary: Refactored NetStore, gave the NetStore itās own Repo and started making a Minecraft Server Manager. I just refactored the I gues 1200 line longe NetStore app, and I have so much to refactor left. I started the Minecraft Server Manager before the refactoring but it wasnāt in my usual hackatime project, it was in a new one, and my stupid ass thought it was just a technical mistake that the time wasnāt tracked.
Summaray: Refactored netgraph and settings app Yeah, I refactored it. Thatās it. I gues I put these applications as picture :-|
Summary: Made NetConnect a programm for Linux to bring you Network to you everywhere (without VPN) I made this using Go and a virtual network device wich act like a spit tunnel vpn, to extract all request from you subnet e.g. 192.168.1.0/24 sends it over a WebSocket to the NetLink relay server and to its target server. Iām not fully done with this, but right now itās working. Maybe Iāll do a version for windows soon. How you can install it is defined in the NetConnect Repo ONLY FOR LINUX
Summary: Made some bugfixes Thatās pretty much all. I found some small thing I didnāt like and fixed them.
Summary: Polished NetLink for a ship Fixed some bugs Remade some screens Made a demo version Made some security fixes
Ships:
I built a project called NetLink! It lets you connect to your home network from anywhere. Right now, it supports access via VNC, SSH, and SFTP. It uses WebSockets and web based apps to establish the connection. Everything is routed through a relay node, so you donāt need to open any ports on your router. In the demo version, you can set up your own PC as a local server to try it out (active for 24 hours). If you want to use it long-term, you can easily self-host the project on your own hardware (GitHub Readme). Iām planning to add support for more protocols soon. If you have any feedback or ideas on how to improve the project, feel free to leave a comment or send me a DM! Heads up: If youāre using the demo, it might take a few moments to load all your devices.
NetLink connect to your network from everywhere without a VPN I made a Web based āOSā to connect to your network without a VPN and accses your resources with protocols like sftp or ssh. I also build a desktop client to emulate a VPN on your pc, so you can accses your network with your own programms Technologys I used WebSockets to transfer data between the client and the Server. For the frontend I choose React, for the backend I used TypeScript....
|
1792990307.4654815
|
1793076707.4654815
|
|
32763
|
Zoomie by @jessx | Stardance
|
jessx
|
2
|
3.42
|
15
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-21T10:35:35Z", "hours": 1.0, "multiplier": 8.8, "payout": 11, "blessing": "neutral", "text": "Big updates! Notice: I cannot test if this works now. Apple has changed something, and now I cannot run Zoomie for now. I cannot test this release. Please go into it with a grain of salt. I have tried adding a video demo, but I cant upload it to github. The New Web UI I got complaints about the UI, so I tried to make it better! In the video below, you can see a demo of it and how it looks. This, in my opinion, is a step up from the old UI The New Error Notification (while i dont have an example) Errors will now show a banner above your conversation with the error. This is so it wonāt just say āAI: System:ā with the error. Enter now does something?! Enter now sends the message! Yeah thats pretty much it Note: MacOS 27 is confirmed to work", "repo": "https://github.com/JessIsSilly/zoomie", "demo": "https://github.com/JessIsSilly/zoomie/releases/latest"}, {"ship_num": 2, "ts": "2026-07-09T18:24:35Z", "hours": 1.0, "multiplier": 2.87, "payout": 4, "blessing": "neutral", "text": "Iāve made a Python application to use Apple Foundation Models as an API and web page. While its very basic web wise, I am extremely proud of how it turned out in the end. While afmChat was a side project, Zoomie was entirely created for Stardance. This canāt run as a website due to its reliance on a Mac with support for Apple Intelligence, and the only one I have is a MacBook Neo which is my daily driver. And Iām sorry for the lack of devlogs, iāve been mostly developing this during short spurts of free time. PLEASE NOTE DURING REVIEW: I am aware of enter doing nothing in entry field, please use the button next to the field thank you ^_^", "repo": "https://github.com/JessIsSilly/zoomie", "demo": "https://github.com/JessIsSilly/zoomie/releases/latest"}]...
|
[{"post_id": 37281, "ts": "202 [{"post_id": 37281, "ts": "2026-07-29T21:27:22Z", "hours": 1.4222, "text": "Important! Next ship will likely be the last ship of Zoomie to stardance! To be completely honest, Iām running out of stuff to add (badly). And Iām getting a bit burned out of it overall. I hope you can understand and (if you use Zoomie) continue using Zoomie Feedback I just wanna say thank you again for feedback given to me about Zoomie. And I just wanted to reply to some of the feedback given to me āi am not in need of such python scriptā Okā¦? Good for you, igā¦? Feedback on security I want to say a huge thank you to the person that said this and pointed it out to me. This will hopefully be what the next ship of Zoomie will add, as well as other QOL changes āyour ship was unusableā Okā¦? This doesnāt help me with how to fix it. Im just going to copy and paste something from one of my older devlogs: If you have errors, please either give me the error and log in the feedback, or as an issue on the github. I cant exactly fix a bug I cant reproduce unless I know where its breaking! ācreate a short video showing what it can doā I actually do have a video of the version working, however it was too large to upload to github to add into the readme. Iāll upload it here next time I ship just so people not on macs can see how it works. Thanks for pointing this out, it flew over my head lol āOtherwise I like the funny devlog picturesā Thank :3 Other thing Thank you for pointing out enter doesnāt work iāll fix that :3"}, {"post_id": 31341, "ts": "2026-07-19T17:29:37Z", "hours": 0.7397, "text": "I just wanna say thank you for feedback given to me about Zoomie, but I just want to address some things Errors If you have errors, please either give me the error and log in the reason or as an issue on the github. I cant exactly fix a bug I cant reproduce unless I know where its breaking! āalso seems ai codedā I havenāt used Ai at all for developing Zoomie. Agent or not. I dont know where you got this from. I was following a lot of documentation, and I have experience in python and fastapi. This is not on github due to me using it in private projects. If I used AI, iād clearly say I did Short project time Due to issues with Git I had to swap pycharm projects. This is why there are only 2 total hours. Iāve fixed it now, but just clearing that part up User friendly UI Iām taking that into concideration, and am going to add that for my next ship. Keep in mind, I donāt really know HTML/CSS. Other thing Thank you for pointing out enter doesnāt work iāll fix that :3"}, {"post_id": 26116, "ts": "2026-07-10T18:25:33Z", "hours": 0.6028, "text": "UPDATE: I have managed to build the app! It is available on GitHub. To download it/go to the release, go to the demo Regarding feedback I cannot at all build the app into an executable. This is due to an issue with a required dependancy failing to function when builded. This is an official apple sdk (apple_fm_sdk). I cannot do anything about this to my knowledge. If you are reviewing my app, PLEASE follow the steps in the readme, and run web.py. This is the best I can do. Iām still looking into if i can build it in any way, but its looking unlikely."}, {"post_id": 25179, "ts": "2026-07-09T07:22:00Z", "hours": 0.6219, "text": "Its mostly ready! The webpage is now being hosted, and can make responses from afmChat and Zoomie. Now all thats needed is some polishing, however i may keep it like this because it just has some charm i think. Later today iāll make a release and publish it to Github, along with documentation. Ps. Have some bad JS"}, {"post_id": 25165, "ts": "2026-07-09T06:43:00Z", "hours": 0.3367, "text": "A look into afmChat afmChat (Apple Foundation Model Chat) is basically a wrapper for using the apple foundation model python sdk (apple_fm_sdk), and is the backbone of Zoomie, but is fairly simple. If anything could break, itād probs be this (I needed to attach a screenshot so here have a function :3)"}, {"post_id": 24954, "ts": "2026-07-08T20:44:13Z", "hours": 0.3447, "text": "A small version is ready! Currently its only an API and no web gui, however I plan on adding that. As well as that, Iām soon going to upload it to github! This is something im passionate on, so I hope iāll finish it!"}]...
|
Title: Zoomie by @jessx | Stardance
Devlogs:
A sm Title: Zoomie by @jessx | Stardance
Devlogs:
A small version is ready! Currently its only an API and no web gui, however I plan on adding that. As well as that, Iām soon going to upload it to github! This is something im passionate on, so I hope iāll finish it!
A look into afmChat afmChat (Apple Foundation Model Chat) is basically a wrapper for using the apple foundation model python sdk (apple_fm_sdk), and is the backbone of Zoomie, but is fairly simple. If anything could break, itād probs be this (I needed to attach a screenshot so here have a function :3)
Its mostly ready! The webpage is now being hosted, and can make responses from afmChat and Zoomie. Now all thats needed is some polishing, however i may keep it like this because it just has some charm i think. Later today iāll make a release and publish it to Github, along with documentation. Ps. Have some bad JS
UPDATE: I have managed to build the app! It is available on GitHub. To download it/go to the release, go to the demo Regarding feedback I cannot at all build the app into an executable. This is due to an issue with a required dependancy failing to function when builded. This is an official apple sdk (apple_fm_sdk). I cannot do anything about this to my knowledge. If you are reviewing my app, PLEASE follow the steps in the readme, and run web.py. This is the best I can do. Iām still looking into if i can build it in any way, but its looking unlikely.
I just wanna say thank you for feedback given to me about Zoomie, but I just want to address some things Errors If you have errors, please either give me the error and log in the reason or as an issue on the github. I cant exactly fix a bug I cant reproduce unless I know where its breaking! āalso seems ai codedā I havenāt used Ai at all for developing Zoomie. Agent or not. I dont know where you got this from. I was following a lot of documentation, and I have experience in python and fastapi. This is not on github due to me using it in private projects. If I used AI, iād clearly say I did Short project time Due to issues with Git I had to swap pycharm projects. This is why there are only 2 total hours. Iāve fixed it now, but just clearing that part up User friendly UI Iām taking that into concideration, and am going to add that for my next ship. Keep in mind, I donāt really know HTML/CSS. Other thing Thank you for pointing out enter doesnāt work iāll fix that :3
Important! Next ship will likely be the last ship of Zoomie to stardance! To be completely honest, Iām running out of stuff to add (badly). And Iām getting a bit burned out of it overall. I hope you can understand and (if you use Zoomie) continue using Zoomie Feedback I just wanna say thank you again for feedback given to me about Zoomie. And I just wanted to reply to some of the feedback given to me āi am not in need of such python scriptā Okā¦? Good for you, igā¦? Feedback on security I want to say a huge thank you to the person that said this and pointed it out to me. This will hopefully be what the next ship of Zoomie will add, as well as other QOL changes āyour ship was unusableā Okā¦? This doesnāt help me with how to fix it. Im just going to copy and paste something from one of my older devlogs: If you have errors, please either give me the error and log in the feedback, or as an issue on the github. I cant exactly fix a bug I cant reproduce unless I know where its breaking! ācreate a short video showing what it can doā I actually do have a video of the version working, however it was too large to upload to github to add into the readme. Iāll upload it here next time I ship just so people not on macs can see how it works. Thanks for pointing this out, it flew over my head lol āOtherwise I like the funny devlog picturesā Thank :3 Other thing Thank you for pointing out enter doesnāt work iāll fix that :3
Ships:
Iāve made a Python application to use Apple Foundation Models as an API and web page. While its very basic web wise, I am extremely proud of how it turned out in the end. While afmChat was a side project, Zoomie was entirely created for Stardance. This canāt run as a website due to its reliance on a Mac with support for Apple Intelligence, and the only one I have is a MacBook Neo which is my daily driver. And Iām sorry for the lack of devlogs, iāve been mostly developing this during short spurts of free time. PLEASE NOTE DURING REVIEW: I am aware of enter doing nothing in entry field, please use the button next to the field thank you ^_^
Big updates! Notice: I cannot test if this works now. Apple has changed something, and now I cannot run Zoomie for now. I cannot test this release. Please go into it with a grain of salt. I have tried adding a video demo, but I cant upload it to github. The New Web UI I got complaints about the UI, so I tried to make it better! In the video below, you can see a demo of it and how it looks. This, in my opinion, is a step up from the old UI The New Error Notification (while i dont have an example) Errors will now show a banner above your conversation with the error. This is so it wonāt just say āAI: System:ā with the error. Enter now does something?! Enter now sends the message! Yeah thats pretty much it Note: MacOS 27 is confirmed to work...
|
1793098090.5905373
|
1793184490.5905373
|
|
32775
|
Marvel WebOS by @Skye | Stardance
|
Skye
|
2
|
12.0
|
59
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-13T01:54:06Z", "hours": 7.0, "multiplier": 7.92, "payout": 59, "blessing": "neutral", "text": "I made a Marvel-themed WebOS. My OS has the 4 apps shown in the image: a welcome page, quote generator, terminal, and calculator. The terminal lets you change the wallpaper (there are 4 options). All the wallpapers fit the same vibe so that the black and red style will still work no matter the wallpaper. I really did this project to have fun making something that ties to one of my interests and focus more on being creative rather than learning new coding. That being said, I usually do Java projects or websites, so making a WebOS was new to me. I learned some new skills, including the JS for the calculator, how to use a video, and in general how to make a terminal. I think my favorite app is the quote generator because it was really fun to handpick 20+ of the best marvel quotes to use. Making the terminal and calculator were also cool though. I hope you enjoy this project as much as I enjoyed making it!", "repo": "https://github.com/julietmeletta/MyWebOS", "demo": "https://julietmeletta.github.io/MyWebOS/"}, {"ship_num": 2, "ts": "2026-07-09T22:19:43Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my first-ever WebOS - Marvel themed. It has a welcome page that plays the marvel intro and a quote generator that rotates through a collection of the best marvel quotes. It was challenging to learn so much JS because Iāve never really learned it or used it that much - but I was glad to learn it! I donāt feel like formally finished because Iām excited to add to it for the WebOS2 track. I have some ideas for apps Iām going to add and I look forward to doing some overall polishing. For now, Iām super proud that I was able to actually make a WebOS in only 5 hours without any major problems.", "repo": "https://github.com/julietmeletta/MyWebOS", "demo": "https://julietmeletta.github.io/MyWebOS/"}]...
|
[{"post_id": 26925, "ts": "202 [{"post_id": 26925, "ts": "2026-07-12T00:14:27Z", "hours": 7.1631, "text": "Iāve added two apps and wallpaper options! Now, there is a welcome tab, a quote generator, a JARVIS style terminal, and a calculator. The welcome tab plays the marvel intro, the quote generator rotates through >20 of the best marvel quotes, the terminal has around 10 commands, and the calculator, well, itās a calculator. Using the terminal, there are 4 options for wallpapers (options 2 and 3 are my fav). I also made it so everything is fitting the same black and red vibe."}, {"post_id": 25691, "ts": "2026-07-10T03:40:15Z", "hours": 0.3261, "text": "added a README (oops i forgot earlier lol)"}, {"post_id": 25561, "ts": "2026-07-09T21:45:35Z", "hours": 1.85, "text": "I created a quote generator (ofc all marvel quotes) as one of the apps on my webOS. I have 23 quotes that it rotates through, which felt like a good number when I was flipping through them."}, {"post_id": 25423, "ts": "2026-07-09T18:10:14Z", "hours": 1.7372, "text": "My welcome window is closable, openable, and draggable. It plays the marvel intro on a loop. I have a green welcome button to open it that Iām going to re-style towards the end, with the other apps."}, {"post_id": 25090, "ts": "2026-07-09T02:20:18Z", "hours": 1.73, "text": "I started making the desktop and the welcome page. I donāt have the text in the top bar quite aligned so I need to fix that. Iām super excited though!"}]...
|
Title: Marvel WebOS by @Skye | Stardance
Devlogs: Title: Marvel WebOS by @Skye | Stardance
Devlogs:
I started making the desktop and the welcome page. I donāt have the text in the top bar quite aligned so I need to fix that. Iām super excited though!
My welcome window is closable, openable, and draggable. It plays the marvel intro on a loop. I have a green welcome button to open it that Iām going to re-style towards the end, with the other apps.
I created a quote generator (ofc all marvel quotes) as one of the apps on my webOS. I have 23 quotes that it rotates through, which felt like a good number when I was flipping through them.
added a README (oops i forgot earlier lol)
Iāve added two apps and wallpaper options! Now, there is a welcome tab, a quote generator, a JARVIS style terminal, and a calculator. The welcome tab plays the marvel intro, the quote generator rotates through >20 of the best marvel quotes, the terminal has around 10 commands, and the calculator, well, itās a calculator. Using the terminal, there are 4 options for wallpapers (options 2 and 3 are my fav). I also made it so everything is fitting the same black and red vibe.
Ships:
I made my first-ever WebOS - Marvel themed. It has a welcome page that plays the marvel intro and a quote generator that rotates through a collection of the best marvel quotes. It was challenging to learn so much JS because Iāve never really learned it or used it that much - but I was glad to learn it! I donāt feel like formally finished because Iām excited to add to it for the WebOS2 track. I have some ideas for apps Iām going to add and I look forward to doing some overall polishing. For now, Iām super proud that I was able to actually make a WebOS in only 5 hours without any major problems.
I made a Marvel-themed WebOS. My OS has the 4 apps shown in the image: a welcome page, quote generator, terminal, and calculator. The terminal lets you change the wallpaper (there are 4 options). All the wallpapers fit the same vibe so that the black and red style will still work no matter the wallpaper. I really did this project to have fun making something that ties to one of my interests and focus more on being creative rather than learning new coding. That being said, I usually do Java projects or websites, so making a WebOS was new to me. I learned some new skills, including the JS for the calculator, how to use a video, and in general how to make a terminal. I think my favorite app is the quote generator because it was really fun to handpick 20+ of the best marvel quotes to use. Making the terminal and calculator were also cool though. I hope you enjoy this project as much as I enjoyed making it!...
|
1793090979.256441
|
1793177379.256441
|
|
32844
|
my APOD site by @manayp | Stardance
|
manayp
|
2
|
2.0
|
11
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-09T20:02:39Z", "hours": 1.0, "multiplier": 16.44, "payout": 11, "blessing": "neutral", "text": "I developed the NASA Astronomy Explorer app which allows browsing NASA Astronomy Picture of the Day photos, searching them based on date, viewing them randomly, and launching rocket animations using human-made rather than AI-generated designs. It was hard to come up with a truly rough and raw design using simple fonts, thick borders, and unusual color combinations. I am really happy that I managed to make a generic glassmorphism app more unique with personality and with cool rocket animation and smooth fallback when NASA API is not available yet. Just click on āLATESTā to get todayās photo, on āRANDOM š²ā to browse NASAās history since 1995, select your own dates from the calendar, and press LAUNCH š to watch the rocket go upāeven on mobile!", "repo": "https://github.com/manayparikh1/nasaweb", "demo": "https://nasa-3.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-09T02:29:19Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "NASA Astronomy Explorer is my name for my vanilla JavaScript app that utilizes NASA APOD API to render daily images from space in a customized glassmorphism design. The hardest part about making this project was dealing with errors in case there were no pictures for the day, which I managed to resolve through an asynchronous fallback mechanism. What makes me very proud is that I did all the coding myself for the rocket launch animation and the āRandomā logic that works its way through almost 30 years of astronomical history. For testing purposes, click on the āRANDOMā button to request live scientific data or use the āLAUNCHā button to make your own rocket fly across the screen.", "repo": "https://github.com/manayparikh1/nasaweb", "demo": "https://nasa-3.vercel.app/"}]...
|
[{"post_id": 25489, "ts": "202 [{"post_id": 25489, "ts": "2026-07-09T20:00:50Z", "hours": 0.3689, "text": "Fixed bugs"}, {"post_id": 25294, "ts": "2026-07-09T14:21:52Z", "hours": 0.3347, "text": "reworked the css from my other projects and changed it a bit here."}, {"post_id": 25087, "ts": "2026-07-09T02:10:49Z", "hours": 0.2706, "text": "I added the launch button which launches a rocket pic which i found from google and I fixed minor bugs and css issues."}, {"post_id": 25080, "ts": "2026-07-09T01:36:06Z", "hours": 1.0186, "text": "I am working on connecting the nasa api key to website and using the give your own website a pulse guide and instructions from ai on what to put in the terminal I created my file and coded a basic version by myself and added a random button and date part. But it looks kinda boring so idk im gonna try to add more."}]...
|
Title: my APOD site by @manayp | Stardance
Devlog Title: my APOD site by @manayp | Stardance
Devlogs:
I am working on connecting the nasa api key to website and using the give your own website a pulse guide and instructions from ai on what to put in the terminal I created my file and coded a basic version by myself and added a random button and date part. But it looks kinda boring so idk im gonna try to add more.
I added the launch button which launches a rocket pic which i found from google and I fixed minor bugs and css issues.
reworked the css from my other projects and changed it a bit here.
Fixed bugs
Ships:
NASA Astronomy Explorer is my name for my vanilla JavaScript app that utilizes NASA APOD API to render daily images from space in a customized glassmorphism design. The hardest part about making this project was dealing with errors in case there were no pictures for the day, which I managed to resolve through an asynchronous fallback mechanism. What makes me very proud is that I did all the coding myself for the rocket launch animation and the āRandomā logic that works its way through almost 30 years of astronomical history. For testing purposes, click on the āRANDOMā button to request live scientific data or use the āLAUNCHā button to make your own rocket fly across the screen.
I developed the NASA Astronomy Explorer app which allows browsing NASA Astronomy Picture of the Day photos, searching them based on date, viewing them randomly, and launching rocket animations using human-made rather than AI-generated designs. It was hard to come up with a truly rough and raw design using simple fonts, thick borders, and unusual color combinations. I am really happy that I managed to make a generic glassmorphism app more unique with personality and with cool rocket animation and smooth fallback when NASA API is not available yet. Just click on āLATESTā to get todayās photo, on āRANDOM š²ā to browse NASAās history since 1995, select your own dates from the calendar, and press LAUNCH š to watch the rocket go upāeven on mobile!...
|
1793087830.1743696
|
1793174230.1743696
|
|
32896
|
spacexOS by @manayp | Stardance
|
manayp
|
2
|
6.0
|
7
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-10T15:26:03Z", "hours": 2.0, "multiplier": 3.81, "payout": 7, "blessing": "neutral", "text": "I created spacexOS, an entire functional retro web operating system that features 14 draggable apps (About, Notes, Terminal, Synth, Draw, Calculator, Pomodoro Timer, Tic-Tac-Toe, Todo List, Guess It, Sticky Notes, Rock Paper Scissors, Pixel Art, and a Meteor Dodge game), all written in vanilla JavaScript, without the use of any frameworks. The biggest challenge was developing the window manager entirely from scratch (dragging, resizing, z-index stacking), getting the Web Audio API to work for the synth, and creating a sense of imperfection in everything from the quirky fonts (Papyrus) to beveled 3D buttons. I am proudest about the completeness of it, because all apps function correctly, save data to localStorage, and have personalities ā the terminal alone supports 20+ commands, games are functional and fun to play, and the whole thing feels like a small but functional OS. For testing, start an application either by clicking itās icon on the desktop or pressing numbers 1-7 on the keyboard, drag windows, click āWallpaperā to change the background, execute commands in the terminal (command help will show all of them), play Meteor Dodge, doodle in draw or pixel art, make to-do lists, etc. Just run python3 -m http.server 8000 and go to http://localhost:8000. Overall eventhough it took long it ended up amazing.", "repo": "https://github.com/manayparikh1/spacexOS", "demo": "https://venerable-toffee-fb4d65.netlify.app/"}, {"ship_num": 2, "ts": "2026-07-10T00:39:02Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created spacexOS, which is an operational retro OS in the browser that comes with 7 draggable apps (Notes, Terminal, Synth, Draw, Calculator, Game, About), over 20 terminal commands, a dodging game against meteors and customizable space backgrounds, all built using vanilla JavaScript. It was difficult to create everything from scratch, including window management (dragging and resizing windows, z-index management) and creating the synth app that works with the Web Audio API and having it designed not only human-like but retro. I am glad about the completeness of the project because all apps do what they should, the terminal app is quite entertaining and it is also persistent (notes and scores are saved). In order to test spacexOS, you can open the About app and check out my skills, type any command in the Terminal app (you will find all 20 commands by entering help), press the Wallpaper button in the upper right corner to switch between different space backgrounds, open several windows and move them around or play the game by pressing 7 or double-clicking anywhere. Just enter python3 -m http.server 8000 in your console and visit http://localhost:8000.", "repo": "https://github.com/manayparikh1/spacexOS", "demo": "https://venerable-toffee-fb4d65.netlify.app/"}]...
|
[{"post_id": 25992, "ts": "202 [{"post_id": 25992, "ts": "2026-07-10T15:24:14Z", "hours": 0.7342, "text": "I completed coding everything and added a few new features and fixed bugs from the previous devlog."}, {"post_id": 25960, "ts": "2026-07-10T14:22:20Z", "hours": 1.1178, "text": "I started working on WEBOS 2 and began adding new features to it. Currently I am trying to figure out what to do."}, {"post_id": 25621, "ts": "2026-07-10T00:38:04Z", "hours": 1.4614, "text": "I fixed issues with css, html, and js and overall made it more fun. My main loading screen was glitched out a lot and the css was all over the place so I fixed that. AND then i created the demo link using netlify."}, {"post_id": 25592, "ts": "2026-07-09T23:05:07Z", "hours": 0.4678, "text": "I worked on games and polished the css more because it was veryyy little last time and honestly I also learned a few new things in css like backdrop-filter for glassmorphism. I actually never learnt that before but good thing i did now. Plus I also made my windows movable."}, {"post_id": 25569, "ts": "2026-07-09T22:04:44Z", "hours": 0.4492, "text": "I add a interchangable wall paper option so everytime when someone presses the wallpaper button on the top it changes the wallpaper to another."}, {"post_id": 25550, "ts": "2026-07-09T21:20:43Z", "hours": 0.3375, "text": "I fixed the layout because it looked very boring so I changed the colour scheme and added more features and polished the terminal."}, {"post_id": 25522, "ts": "2026-07-09T20:46:37Z", "hours": 1.1392, "text": "I personally like space a lot so im trying to make a space themed webos and I tried making a terminal like how macs have it and Claude sonnet helped me doing that even though it failed like 80 percent of the time it still got the job done."}]...
|
Title: spacexOS by @manayp | Stardance
Devlogs:
I Title: spacexOS by @manayp | Stardance
Devlogs:
I personally like space a lot so im trying to make a space themed webos and I tried making a terminal like how macs have it and Claude sonnet helped me doing that even though it failed like 80 percent of the time it still got the job done.
I fixed the layout because it looked very boring so I changed the colour scheme and added more features and polished the terminal.
I add a interchangable wall paper option so everytime when someone presses the wallpaper button on the top it changes the wallpaper to another.
I worked on games and polished the css more because it was veryyy little last time and honestly I also learned a few new things in css like backdrop-filter for glassmorphism. I actually never learnt that before but good thing i did now. Plus I also made my windows movable.
I fixed issues with css, html, and js and overall made it more fun. My main loading screen was glitched out a lot and the css was all over the place so I fixed that. AND then i created the demo link using netlify.
I started working on WEBOS 2 and began adding new features to it. Currently I am trying to figure out what to do.
I completed coding everything and added a few new features and fixed bugs from the previous devlog.
Ships:
I created spacexOS, which is an operational retro OS in the browser that comes with 7 draggable apps (Notes, Terminal, Synth, Draw, Calculator, Game, About), over 20 terminal commands, a dodging game against meteors and customizable space backgrounds, all built using vanilla JavaScript. It was difficult to create everything from scratch, including window management (dragging and resizing windows, z-index management) and creating the synth app that works with the Web Audio API and having it designed not only human-like but retro. I am glad about the completeness of the project because all apps do what they should, the terminal app is quite entertaining and it is also persistent (notes and scores are saved). In order to test spacexOS, you can open the About app and check out my skills, type any command in the Terminal app (you will find all 20 commands by entering help), press the Wallpaper button in the upper right corner to switch between different space backgrounds, open several windows and move them around or play the game by pressing 7 or double-clicking anywhere. Just enter python3 -m http.server 8000 in your console and visit http://localhost:8000.
I created spacexOS, an entire functional retro web operating system that features 14 draggable apps (About, Notes, Terminal, Synth, Draw, Calculator, Pomodoro Timer, Tic-Tac-Toe, Todo List, Guess It, Sticky Notes, Rock Paper Scissors, Pixel Art, and a Meteor Dodge game), all written in vanilla JavaScript, without the use of any frameworks. The biggest challenge was developing the window manager entirely from scratch (dragging, resizing, z-index stacking), getting the Web Audio API to work for the synth, and creating a sense of imperfection in everything from the quirky fonts (Papyrus) to beveled 3D buttons. I am proudest about the completeness of it, because all apps function correctly, save data to localStorage, and have personalities ā the terminal alone supports 20+ commands, games are functional and fun to play, and the whole thing feels like a small but functional OS. For testing, start an application either by clicking itās icon on the desktop or pressing numbers 1-7 on the keyboard, drag windows, click āWallpaperā to change the background, execute commands in the terminal (command help will show all of them), play Meteor Dodge, doodle in draw or pixel art, make to-do lists, etc. Just run python3 -m http.server 8000 and go to http://localhost:8000. Overall eventhough it took long it ended up amazing....
|
1793076498.1494126
|
1793162898.1494126
|
|
32908
|
Quotify by @gavrilcatalin | Stardance
|
gavrilcatalin
|
2
|
13.0
|
189
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-27T09:55:29Z", "hours": 7.0, "multiplier": 13.73, "payout": 102, "blessing": "neutral", "text": "I polished the website into a video game!", "repo": "https://github.com/nyvrixista/Quotify", "demo": "https://nyvrixista.github.io/Quotify/"}, {"ship_num": 2, "ts": "2026-07-11T10:43:36Z", "hours": 6.0, "multiplier": 14.58, "payout": 87, "blessing": "neutral", "text": "For Stardance, I built Quotify, a modern and minimal quote discovery web app designed to inspire users through meaningful words from influential people. The idea behind Quotify was to create a simple but polished experience where users can discover quotes, explore different categories, save their favorites, and quickly share quotes they enjoy. The app includes: Random quote generation Quote categories Favorite quotes with Local Storage One-click quote copying Custom toast notifications Responsive design for desktop, tablet, and mobile A clean dark-themed interface An About page explaining the project The project was built from scratch using HTML, CSS, and JavaScript, then deployed using GitHub Pages. The biggest challenge was turning a simple idea into a complete application with multiple connected features. Some of the hardest parts were: Learning how to structure a multi-page website Making JavaScript interact correctly with different HTML pages Building a favorites system using Local Storage Creating dynamic category pages Making the design responsive across different screen sizes Debugging issues after deployment One memorable challenge happened after deploying the project. Some features appeared to be broken, including notifications and styling changes. After investigating, I discovered that my browser was loading cached versions of old files. A hard refresh fixed the issue, but it taught me an important lesson about testing the actual deployed version of a project. I am most proud of taking Quotify from a simple concept into a finished, usable application. Throughout development, I improved my skills in: Writing cleaner JavaScript Manipulating the DOM Managing user data with Local Storage Creating modern CSS layouts Building responsive interfaces Debugging real-world problems Deploying and maintaining a live project I am especially proud of the final design because I focused on making it feel like a real product rather than just a school project. The dark minimalist interface, animations, custom favicon, and smooth interactions helped bring the idea together. To test Quotify: Open the live demo: https://nyvrixista.github.io/Quotify/ Try generating new quotes using the New Quote button. Save quotes by pressing the ā¤ļø Save button. Visit the Favorites page to view your saved quotes. Explore different quote categories (currently only one). Try the project on both desktop and mobile devices to experience the responsive design. No account is required. Favorites are stored directly in the browser using Local Storage. Building Quotify was a great learning experience. It helped me understand what it takes to create a complete web application, from the first idea to the final deployment. Thank you to Hack Club and Stardance for motivating me to build, experiment, and finish this project. Stay inspired. Keep building.", "repo": "https://github.com/nyvrixista/Quotify", "demo": "https://nyvrixista.github.io/Quotify/"}]...
|
[{"post_id": 31387, "ts": "202 [{"post_id": 31387, "ts": "2026-07-19T18:30:43Z", "hours": 2.4336, "text": "Ok, during this time i added Collections, a place where you collect all the quotes in a safe place. Second feature i added are Achievements, crucial to a game like this. Removed Copy, Save, Categories and Favorites page, as it was useless to me. More info in Shipā¦"}, {"post_id": 30101, "ts": "2026-07-17T12:36:59Z", "hours": 2.0628, "text": "So i added a feature that could make my website feel like a gameā¦. Its rarities!!! So basically i will remove the idea of it being a generic quote site and turn it into a game where you collect quotes, im still working on the collection part, im so excited to finish this project!"}, {"post_id": 29578, "ts": "2026-07-16T16:41:09Z", "hours": 1.4792, "text": "Added more quotes to my quotes.js file"}, {"post_id": 27290, "ts": "2026-07-12T18:55:21Z", "hours": 1.4844, "text": "Alr, i just finished reworking the CSS, made the website look like an old book (not really, just the color palletes), now I need to add a cool feature, the problem is that idk what can be a god feature in a quote app, im still thinking about this tho."}, {"post_id": 26505, "ts": "2026-07-11T10:40:16Z", "hours": 1.1639, "text": "I polished the website and made sure its responsive on mobile."}, {"post_id": 26447, "ts": "2026-07-11T07:56:24Z", "hours": 0.2783, "text": "Finished adding the Toast Notifications, they will appear in the bottom-right corner of the screen when copying the quote, saving it or removing it from the home page. Now i will go make the about page⦠We are almost finished guys!"}, {"post_id": 26440, "ts": "2026-07-11T07:35:24Z", "hours": 0.2606, "text": "I finished working on the favorites feature, now next will be Toast Notiicationsā¦. Stay Tuned!"}, {"post_id": 26435, "ts": "2026-07-11T07:14:22Z", "hours": 1.2944, "text": "Added a favorites feature, still in progress!"}, {"post_id": 25279, "ts": "2026-07-09T13:34:04Z", "hours": 1.0617, "text": "So after 1 hour, i added the categories page and filtered the motivation quotes, next i will add more quotes and more categories. Later!"}, {"post_id": 25255, "ts": "2026-07-09T12:13:55Z", "hours": 1.9881, "text": "So i finished writing the HTML, CSS and the JavaScript file, its a working website, but i need to make more pages for the navigation bar i just implemented, and also more functions. Stay Tuned!"}]...
|
Title: Quotify by @gavrilcatalin | Stardance
Devl Title: Quotify by @gavrilcatalin | Stardance
Devlogs:
So i finished writing the HTML, CSS and the JavaScript file, its a working website, but i need to make more pages for the navigation bar i just implemented, and also more functions. Stay Tuned!
So after 1 hour, i added the categories page and filtered the motivation quotes, next i will add more quotes and more categories. Later!
Added a favorites feature, still in progress!
I finished working on the favorites feature, now next will be Toast Notiicationsā¦. Stay Tuned!
Finished adding the Toast Notifications, they will appear in the bottom-right corner of the screen when copying the quote, saving it or removing it from the home page. Now i will go make the about page⦠We are almost finished guys!
I polished the website and made sure its responsive on mobile.
Alr, i just finished reworking the CSS, made the website look like an old book (not really, just the color palletes), now I need to add a cool feature, the problem is that idk what can be a god feature in a quote app, im still thinking about this tho.
Added more quotes to my quotes.js file
So i added a feature that could make my website feel like a gameā¦. Its rarities!!! So basically i will remove the idea of it being a generic quote site and turn it into a game where you collect quotes, im still working on the collection part, im so excited to finish this project!
Ok, during this time i added Collections, a place where you collect all the quotes in a safe place. Second feature i added are Achievements, crucial to a game like this. Removed Copy, Save, Categories and Favorites page, as it was useless to me. More info in Shipā¦
Ships:
For Stardance, I built Quotify, a modern and minimal quote discovery web app designed to inspire users through meaningful words from influential people. The idea behind Quotify was to create a simple but polished experience where users can discover quotes, explore different categories, save their favorites, and quickly share quotes they enjoy. The app includes: Random quote generation Quote categories Favorite quotes with Local Storage One-click quote copying Custom toast notifications Responsive design for desktop, tablet, and mobile A clean dark-themed interface An About page explaining the project The project was built from scratch using HTML, CSS, and JavaScript, then deployed using GitHub Pages. The biggest challenge was turning a simple idea into a complete application with multiple connected features. Some of the hardest parts were: Learning how to structure a multi-page website Making JavaScript interact correctly with different HTML pages Building a favorites system using Local Storage Creating dynamic category pages Making the design responsive across different screen sizes Debugging issues after deployment One memorable challenge happened after deploying the project. Some features appeared to be broken, including notifications and styling changes. After investigating, I discovered that my browser was loading cached versions of old files. A hard refresh fixed the issue, but it taught me an important lesson about testing the actual deployed version of a project. I am most proud of taking Quotify from a simple concept into a finished, usable application. Throughout development, I improved my skills in: Writing cleaner JavaScript Manipulating the DOM Managing user data with Local Storage Creating modern CSS layouts Building responsive interfaces Debugging real-world problems Deploying and maintaining a live project I am especially proud of the final design because I focused on making it feel like a real product rather than just a school project. The dark minimalist interface, animations, custom favicon, and smooth interactions helped bring the idea together. To test Quotify: Open the live demo: https://nyvrixista.github.io/Quotify/ Try generating new quotes using the New Quote button. Save quotes by pressing the ā¤ļø Save button. Visit the Favorites page to view your saved quotes. Explore different quote categories (currently only one). Try the project on both desktop and mobile devices to experience the responsive design. No account is required. Favorites are stored directly in the browser using Local Storage. Building Quotify was a great learning experience. It helped me understand what it takes to create a complete web application, from the first idea to the final deployment. Thank you to Hack Club and Stardance for motivating me to build, experiment, and finish this project. Stay inspired. Keep building.
I polished the website into a video game!...
|
1793062314.5024335
|
1793926314.5024335
|
|
32971
|
Blink by @arpitaanuna | Stardance
|
arpitaanuna
|
2
|
8.0
|
73
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T15:24:21Z", "hours": 1.0, "multiplier": 8.37, "payout": 8, "blessing": "neutral", "text": "Worked more over BIink project!!!!!! Blink ā A Beginner-Friendly Programming Language Built From Scratch Blink is a custom programming language designed and developed from scratch to explore the fundamentals of how programming languages work. It provides a simple, readable syntax while implementing the core components of a real language, including lexical analysis, parsing, abstract syntax trees (AST), and interpretation. And I loved working more over this, and added in more commands, for loops and lists and stuff, cuz now it makes it a proper language with more features, also added error messages that can be shown. In total, now i am also able to make programs properly using Blink!", "repo": "https://github.com/arpitaa31/Blink", "demo": "https://github.com/arpitaa31/Blink/releases/tag/v1.0.0"}, {"ship_num": 2, "ts": "2026-07-15T17:50:04Z", "hours": 7.0, "multiplier": 10.23, "payout": 65, "blessing": "neutral", "text": "Blink ā A Beginner-Friendly Programming Language Built From Scratch Blink is a custom programming language designed and developed from scratch to explore the fundamentals of how programming languages work. It provides a simple, readable syntax while implementing the core components of a real language, including lexical analysis, parsing, abstract syntax trees (AST), and interpretation. The goal behind Blink is to make programming language concepts easier to understand by creating a lightweight language where users can write code using intuitive commands and learn how instructions are processed internally. #Programming Features Blink currently supports: Variables and assignments Mathematical expressions String handling Conditional logic Logical operators (and, or) Repetition using loops (repeat, while) Output commands #Current Status Blink v0.1 is the first version, featuring the core language architecture, execution engine, and essential programming constructs. Future versions aim to introduce more advanced features and continue improving.", "repo": "https://github.com/arpitaa31/Blink", "demo": "https://github.com/arpitaa31/Blink/releases/tag/v1.0.0"}]...
|
[{"post_id": 46280, "ts": "202 [{"post_id": 46280, "ts": "2026-08-13T12:29:48Z", "hours": 0.8986, "text": "Devlog: Blink upgraded! Iāve been working on turning Blink from a basic interpreter into a more complete and beginner-friendly programming language. It can now perform many tasks that Python handles through functions and keywordsābut using simple, English-like commands. Here are the newest Blink commands and features: - make , run , and give for creating and using custom functions - list , add , remove , and ```length of```` for working with lists - item ⦠of , change item , has , and position of for accessing and updating list items - for each for looping through every item in a list - ask text and ask number for receiving typed user input - {variable} text filling for placing values directly inside sentences - stop loop and skip turn for controlling loops - details , put ⦠as ⦠in , and \"label\" from details for storing labelled information - uppercase of , lowercase of , trim , split ⦠by , and join ⦠with for working with text - try and if error for handling problems without crashing the program -also added and improved Blinkās command-line tools And a few moreee commands - it was fun making those!!! Blink now also provides clearer error messages with filenames, line numbers, helpful hints, and spelling suggestions such as: Did you mean āsayā? Blink is now much closer to being a properly usable programming languageāwhile still keeping its main idea intact- making coding feel like simple English. Also i have added few more example programs! I will still continue working over this even more to polish it!"}, {"post_id": 29014, "ts": "2026-07-15T17:44:11Z", "hours": 1.3833, "text": "# Devlog 6 ā Todayās Progress Today was a major development day for Blink! I worked on expanding the language features and making Blink easier to install and use. -Added New Language Features -Added support for logical operators: and or -Implemented while loops, allowing Blink programs to perform repeated execution based on conditions. Added Installation Support. Users can now install Blink directly from GitHub: pip install git+https://github.com/arpitaa31/Blink.git After building the core features, improving the structure, and testing the workflow, I am now shipping Blink v0.1 ā the first official version of my programming language. I will still keep working over it and add more features to this programming language."}, {"post_id": 28464, "ts": "2026-07-14T18:33:43Z", "hours": 2.3025, "text": "#Devlog 5 Today was another huge milestone for Blink! The language is starting to feel much more like an actual programming language now. Added support for numbers in Blink. Improved the interpreter to handle numerical values instead of only strings. Made arithmetic operations work successfully, including expressions using operators like +, -, *, and /. Improved BinaryOperationNode so Blink can create and process proper expression trees. Spent a lot of time testing and debugging how these new features interact with the existing lexer, parser, AST, and interpreter, yesterday as well. Understanding how every feature needs support from multiple parts of the language made the process much clearer. A few challenges I faced: Making sure different data types (strings and numbers) are handled correctly. Connecting new syntax with AST nodes and interpreter logic. Fixing bugs where small parser changes affected execution. Blink can now: -Print outputs using say -Store and use values -Perform calculations -Take user input -Make decisions using conditions -Repeat instructions using loops Next, I want to focus on improving error handling, adding more features, and eventually creating a playground where anyone can write and run Blink code."}, {"post_id": 27045, "ts": "2026-07-12T07:22:14Z", "hours": 0.9475, "text": "#Devlog 4 Todayās session was probably one of the biggest milestones so far! -Added support for the say statement in Blink. -Built a SayNode in the AST. -Updated the interpreter so it can actually execute say statements. Spent some time understanding how the whole project flows, which made everything much clearer. Started working on arithmetic expressions. Created a new BinaryOperationNode for expression trees. Added a parse_expression() function that can understand expressions like 10 + 20. The parser can now understand arithmetic expressions, and next session Iāll make the interpreter actually calculate them. In short i worked on the interpreter today! Successfully made Blink print - āArpitaaā:"}, {"post_id": 26455, "ts": "2026-07-11T08:14:12Z", "hours": 0.7208, "text": "Devlog #3 Todayās session was mostly about moving Blink from just reading code to actually understanding it. What I worked on: -Finished setting up the Parser for Blink. -Created the basic AST (Abstract Syntax Tree) nodes: -Connected the Lexer and Parser together. So, Made Blink recognize simple assignment statements like: name = āArpitaaā And successfully generated Blinkās first AST (Abstract Syntax Tree which is a tree-like structure created by the parser that represents the meaning and structure of a program.) , which means the language can now understand the structure of code instead of just reading characters. Challenges faced: Spent some time debugging Python indentation errors. Accidentally mixed up code between parser.py and ast_nodes.py, so I reorganized the project files properly. Now next, I have to build the Interpreter, so Blink can actually execute code. The code i ran and the results i got on executing the code today :"}, {"post_id": 26120, "ts": "2026-07-10T18:35:45Z", "hours": 0.3786, "text": "#Devlog 2 Hi! So, basically i mainly continued working on the lexer. The best part of today was finally running Blink. Blink was able to read it and print tokens for variables, strings, operators and keywords one by one. Seein my own programming lang successfully read a source file! Todayās work made me understand that the lexer doesnāt execute the program. Its only job is to read the code and break it into meaningful pieces that the next stage can understand. Anddd now i have will start working on building the Parser. After running a code, i was able to see this:"}, {"post_id": 25244, "ts": "2026-07-09T11:45:02Z", "hours": 1.4039, "text": "Devlog 1 Today I finally started working on Blink, my own programming language. I had no idea how programming languages actually worked, so I first learned the basic flow. I worked on the Token system. Basically, Blink now knows the different types of things it can see, like strings, variables, keywords etc. I also made a Token class that stores those values. After that, I started working on the lexer. Rn, it can move through the code one character at a time, skip spaces, read strings, and identify blinkās keywords."}]...
|
Title: Blink by @arpitaanuna | Stardance
Devlogs: Title: Blink by @arpitaanuna | Stardance
Devlogs:
Devlog 1 Today I finally started working on Blink, my own programming language. I had no idea how programming languages actually worked, so I first learned the basic flow. I worked on the Token system. Basically, Blink now knows the different types of things it can see, like strings, variables, keywords etc. I also made a Token class that stores those values. After that, I started working on the lexer. Rn, it can move through the code one character at a time, skip spaces, read strings, and identify blinkās keywords.
#Devlog 2 Hi! So, basically i mainly continued working on the lexer. The best part of today was finally running Blink. Blink was able to read it and print tokens for variables, strings, operators and keywords one by one. Seein my own programming lang successfully read a source file! Todayās work made me understand that the lexer doesnāt execute the program. Its only job is to read the code and break it into meaningful pieces that the next stage can understand. Anddd now i have will start working on building the Parser. After running a code, i was able to see this:
Devlog #3 Todayās session was mostly about moving Blink from just reading code to actually understanding it. What I worked on: -Finished setting up the Parser for Blink. -Created the basic AST (Abstract Syntax Tree) nodes: -Connected the Lexer and Parser together. So, Made Blink recognize simple assignment statements like: name = āArpitaaā And successfully generated Blinkās first AST (Abstract Syntax Tree which is a tree-like structure created by the parser that represents the meaning and structure of a program.) , which means the language can now understand the structure of code instead of just reading characters. Challenges faced: Spent some time debugging Python indentation errors. Accidentally mixed up code between parser.py and ast_nodes.py, so I reorganized the project files properly. Now next, I have to build the Interpreter, so Blink can actually execute code. The code i ran and the results i got on executing the code today :
#Devlog 4 Todayās session was probably one of the biggest milestones so far! -Added support for the say statement in Blink. -Built a SayNode in the AST. -Updated the interpreter so it can actually execute say statements. Spent some time understanding how the whole project flows, which made everything much clearer. Started working on arithmetic expressions. Created a new BinaryOperationNode for expression trees. Added a parse_expression() function that can understand expressions like 10 + 20. The parser can now understand arithmetic expressions, and next session Iāll make the interpreter actually calculate them. In short i worked on the interpreter today! Successfully made Blink print - āArpitaaā:
#Devlog 5 Today was another huge milestone for Blink! The language is starting to feel much more like an actual programming language now. Added support for numbers in Blink. Improved the interpreter to handle numerical values instead of only strings. Made arithmetic operations work successfully, including expressions using operators like +, -, *, and /. Improved BinaryOperationNode so Blink can create and process proper expression trees. Spent a lot of time testing and debugging how these new features interact with the existing lexer, parser, AST, and interpreter, yesterday as well. Understanding how every feature needs support from multiple parts of the language made the process much clearer. A few challenges I faced: Making sure different data types (strings and numbers) are handled correctly. Connecting new syntax with AST nodes and interpreter logic. Fixing bugs where small parser changes affected execution. Blink can now: -Print outputs using say -Store and use values -Perform calculations -Take user input -Make decisions using conditions -Repeat instructions using loops Next, I want to focus on improving error handling, adding more features, and eventually creating a playground where anyone can write and run Blink code.
# Devlog 6 ā Todayās Progress Today was a major development day for Blink! I worked on expanding the language features and making Blink easier to install and use. -Added New Language Features -Added support for logical operators: and or -Implemented while loops, allowing Blink programs to perform repeated execution based on conditions. Added Installation Support. Users can now install Blink directly from GitHub: pip install git+https://github.com/arpitaa31/Blink.git After building the core features, improving the structure, and testing the workflow, I am now shipping Blink v0.1 ā the first official version of my programming language. I will still keep working over it and add more features to this programming language.
Devlog: Blink upgraded! Iāve been working on turning Blink from a basic interpreter into a more complete and beginner-friendly programming language. It can now perform many tasks that Python handles through functions and keywordsābut using simple, English-like commands. Here are the newest Blink commands and features: - make , run , and give for creating and using custom functions - list , add , remove , and ```length of```` for working with lists - item ⦠of , change item , has , and position of for accessing and updating list items - for each for looping through every item in a list - ask text and ask number for receiving typed user input - {variable} text filling for placing values directly inside sentences - stop loop and skip turn for controlling loops - details , put ⦠as ⦠in , and "label" from details for storing labelled information - uppercase of , lowercase of , trim , split ⦠by , and join ⦠with for working with text - try and if error for handling problems without crashing the program -also added and improved Blinkās command-line tools And a few moreee commands - it was fun making those!!! Blink now also provides clearer error messages with filenames, line numbers, helpful hints, and spelling suggestions such as: Did you mean āsayā? Blink is now much closer to being a properly usable programming languageāwhile still keeping its main idea intact- making coding feel like simple English. Also i have added few more example programs! I will still continue working over this even more to polish it!
Ships:
Blink ā A Beginner-Friendly Programming Language Built From Scratch Blink is a custom programming language designed and developed from scratch to explore the fundamentals of how programming languages work. It provides a simple, readable syntax while implementing the core components of a real language, including lexical analysis, parsing, abstract syntax trees (AST), and interpretation. The goal behind Blink is to make programming language concepts easier to understand by creating a lightweight language where users can write code using intuitive commands and learn how instructions are processed internally. #Programming Features Blink currently supports: Variables and assignments Mathematical expressions String handling Conditional logic Logical operators (and, or) Repetition using loops (repeat, while) Output commands #Current Status Blink v0.1 is the first version, featuring the core language architecture, execution engine, and essential programming constructs. Future versions aim to introduce more advanced features and continue improving.
Worked more over BIink project!!!!!! Blink ā A Beginner-Friendly Programming Language Built From Scratch Blink is a custom programming language designed and developed from scratch to explore the fundamentals of how programming languages work. It provides a simple, readable syntax while implementing the core components of a real language, including lexical analysis, parsing, abstract syntax trees (AST), and interpretation. And I loved working more over this, and added in more commands, for loops and lists and stuff, cuz now it makes it a proper language with more features, also added error messages that can be shown. In total, now i am also able to make programs properly using Blink!...
|
1793109181.2000623
|
1793195581.2000623
|
|
33116
|
livefetch by @WilGulf | Stardance
|
WilGulf
|
2
|
55.0
|
627
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T12:37:52Z", "hours": 23.0, "multiplier": 17.51, "payout": 395, "blessing": "neutral", "text": "This is the second ship of livefetch. From the previous ship livefetch has gotten much more features working on linux that previously only worked on macOS. The two difference between livefetch on macOS and Linux is almost zero. But what I am more proud of for this ship is the spinning logo. It wasnāt easy and I had to learn the math behind calculating the new position of a point after rotating a X degrees of a angle. But in the end the spinning looks AWESOME, in my opinion. So for anyone trying this: there are multiple ways of installing on different distros or OS, and all instructions are in the readme. And also livefetch hasnāt been tested on a wide amount of different hardware, so if you find a issue please let me know, thank you!", "repo": "https://github.com/WilGulf/livefetch", "demo": "https://github.com/WilGulf/livefetch/releases/tag/v2.2.2"}, {"ship_num": 2, "ts": "2026-07-25T19:44:27Z", "hours": 32.0, "multiplier": 7.41, "payout": 232, "blessing": "neutral", "text": "I have made my own system monitoring tool like fastfetch except the system information shown will always be live and updated. Many of the functions used for getting that info was using apples APIs and that made it very challenging to code. I am now very proud that this can be installed like any other cli tool using homebrew and it feels like a real tool. For any user that wants to try this I want you to know that this tool has been written and tested for macos. Some things may work on linux too but dont expect the same functionality.", "repo": "https://github.com/WilGulf/livefetch", "demo": "https://github.com/WilGulf/livefetch/releases/tag/v2.2.2"}]...
|
[{"post_id": 46276, "ts": "202 [{"post_id": 46276, "ts": "2026-08-13T12:22:10Z", "hours": 0.4942, "text": "Devblog 12 Last devblog before ship, gotta get this half hour counted. This time has just been used for some fixes for the different repositories and als testing livefetch on multiple distros. ā WilGulf"}, {"post_id": 46203, "ts": "2026-08-13T08:29:01Z", "hours": 5.6628, "text": "Devblog 11 First i completed all information on linux, but it isnāt much to show. Livefetch on Linux now works like on macOS. But as macOS got a homebrew tap I though Linux needed itās own. I found a tool called ānfpmā that with one configuration can build packages for multiple distros, really recommend it! But maintaining multiple package repositories looked like a lot of work so I then programmed my own shell script that takes the latest version of livefetch and publish it to all repositories. Took some work but it is now easier for anyone to install livefetch. In the image you can see livefetch being installed with apt on debian. ā WilGulf"}, {"post_id": 43348, "ts": "2026-08-08T15:35:26Z", "hours": 4.7919, "text": "Devblog 10 I have been working on some small improvments that togther can add up and make livefetch a bit easier to understand and use. The help message has been updated and improved. Then i have this new option that prints the available modules for your system. I have also been working on the README to be up to date and more useful. I have also been working on getting livefetch to the aur, but the website hasnāt been working for me. Trying to register a account on the aur just gives me a 503 error. I hope that gets fixed so next ship can be installed using yay. āWilGulf ā WilGulf"}, {"post_id": 41302, "ts": "2026-08-05T13:19:38Z", "hours": 4.2653, "text": "Devblog 9 I didnāt have access to my linux machine, so I needed to work on something else. And this is a large update for livefetch. Livefetch now has a āspin-logo true option that spins the logo around itās y-axis. It took a while to get the math right and place all the ascii characters at the right place and right Z-level. Sometimes the logo disappeard, sometimes the color was wrong, sometimes the logo didnāt even show. But now the spinning works, at least for the logos I have tested it with. āWilGulf"}, {"post_id": 40950, "ts": "2026-08-04T20:01:50Z", "hours": 3.0542, "text": "Devblog 8 Now you may notice the devblogs are much closer, why? Well getting system info on linux is so much easier when it is just reading a file. But now I have come to the final task, GPU and display info. The way of getting that info is different from every GPU manufacturer, and from what I seen for Nvidia you have to use their tool to do it, but that isnt garanteed to be install on a linux system with a Nvidia card. I guess if fastfetch could do it then so should I. āWilGulf"}, {"post_id": 40219, "ts": "2026-08-03T16:59:47Z", "hours": 2.1647, "text": "Devblog 7 First of, we got some memory bars on linux. Yes now livefetch can display your linux systems ram and swap, even disks! Now lets address the elephant in the room, the logo. The logo isnāt actually predetermined, now I have livefetch parsing the /etc/os-release to get the distro and use itās logos. For the parsing I had to learn some new C string functions and try my way to get the os name out of the file, but i got there in the end! āWilGulf"}, {"post_id": 40024, "ts": "2026-08-03T11:28:05Z", "hours": 2.1403, "text": "Devblog 6 Now livefetch is getting support for linux. I plan on making every module on macos work on linux but currently we just need the printing to work. MacOS and linux are close but not enough for everything to work so most functions need a rewrite. āWilGulf"}, {"post_id": 34785, "ts": "2026-07-25T19:37:16Z", "hours": 0.5875, "text": "Devblog 5 Livefetch is being shipped. Now that version output shows the version of livefetch being the full release. I have updated it for homebrew and the README is complete. Now any mac user will be able to use this system monitor. āWilGulf"}, {"post_id": 34738, "ts": "2026-07-25T18:24:20Z", "hours": 4.3378, "text": "Devblog 4 I know I said the info was done, but here comes more. Using many of apples APIs we now can get the GPU model, battery and display stats. Livefetch also supports homebrew as the package manager you can install livefetch on your own system with, but also livefetch can track the amount of packages installed with homebrew. Hope to soon ship! āWilGulf"}, {"post_id": 28281, "ts": "2026-07-14T13:08:36Z", "hours": 11.1519, "text": "Info complete Now i have got so much system info on macos. Memory, swap, disk, local-ip, system locale and much more. But that i got working after much much time. Soon ready for first release for macos. āWilGulf"}, {"post_id": 26766, "ts": "2026-07-11T19:12:22Z", "hours": 6.9325, "text": "Real info Finally all info shown is the real data from the system. Now it is now you can see how the updating works. And no i do not use RHEL i just like the tuff logo. āWilGulf"}, {"post_id": 25947, "ts": "2026-07-10T13:51:21Z", "hours": 9.3881, "text": "livefetch When larping a linux distro you always need fastfetch/neofetch open. But the problem with those are that the info displayed gets outdated, after just a minute the ram usage could be completely wrong. This fastfetch like project shows the info live and that darker line looping through is what updates the info. Now both the info and logo shown is just a test and not real system information. This is just for testing. In the background there is a config read when starting the program that determines the logo and if that darker line should be shown. Later comes actually implementing a way to get that information on all the different operating systems. āWilGulf"}]...
|
Title: livefetch by @WilGulf | Stardance
Devlogs: Title: livefetch by @WilGulf | Stardance
Devlogs:
livefetch When larping a linux distro you always need fastfetch/neofetch open. But the problem with those are that the info displayed gets outdated, after just a minute the ram usage could be completely wrong. This fastfetch like project shows the info live and that darker line looping through is what updates the info. Now both the info and logo shown is just a test and not real system information. This is just for testing. In the background there is a config read when starting the program that determines the logo and if that darker line should be shown. Later comes actually implementing a way to get that information on all the different operating systems. āWilGulf
Real info Finally all info shown is the real data from the system. Now it is now you can see how the updating works. And no i do not use RHEL i just like the tuff logo. āWilGulf
Info complete Now i have got so much system info on macos. Memory, swap, disk, local-ip, system locale and much more. But that i got working after much much time. Soon ready for first release for macos. āWilGulf
Devblog 4 I know I said the info was done, but here comes more. Using many of apples APIs we now can get the GPU model, battery and display stats. Livefetch also supports homebrew as the package manager you can install livefetch on your own system with, but also livefetch can track the amount of packages installed with homebrew. Hope to soon ship! āWilGulf
Devblog 5 Livefetch is being shipped. Now that version output shows the version of livefetch being the full release. I have updated it for homebrew and the README is complete. Now any mac user will be able to use this system monitor. āWilGulf
Devblog 6 Now livefetch is getting support for linux. I plan on making every module on macos work on linux but currently we just need the printing to work. MacOS and linux are close but not enough for everything to work so most functions need a rewrite. āWilGulf
Devblog 7 First of, we got some memory bars on linux. Yes now livefetch can display your linux systems ram and swap, even disks! Now lets address the elephant in the room, the logo. The logo isnāt actually predetermined, now I have livefetch parsing the /etc/os-release to get the distro and use itās logos. For the parsing I had to learn some new C string functions and try my way to get the os name out of the file, but i got there in the end! āWilGulf
Devblog 8 Now you may notice the devblogs are much closer, why? Well getting system info on linux is so much easier when it is just reading a file. But now I have come to the final task, GPU and display info. The way of getting that info is different from every GPU manufacturer, and from what I seen for Nvidia you have to use their tool to do it, but that isnt garanteed to be install on a linux system with a Nvidia card. I guess if fastfetch could do it then so should I. āWilGulf
Devblog 9 I didnāt have access to my linux machine, so I needed to work on something else. And this is a large update for livefetch. Livefetch now has a āspin-logo true option that spins the logo around itās y-axis. It took a while to get the math right and place all the ascii characters at the right place and right Z-level. Sometimes the logo disappeard, sometimes the color was wrong, sometimes the logo didnāt even show. But now the spinning works, at least for the logos I have tested it with. āWilGulf
Devblog 10 I have been working on some small improvments that togther can add up and make livefetch a bit easier to understand and use. The help message has been updated and improved. Then i have this new option that prints the available modules for your system. I have also been working on the README to be up to date and more useful. I have also been working on getting livefetch to the aur, but the website hasnāt been working for me. Trying to register a account on the aur just gives me a 503 error. I hope that gets fixed so next ship can be installed using yay. āWilGulf ā WilGulf
Devblog 11 First i completed all information on linux, but it isnāt much to show. Livefetch on Linux now works like on macOS. But as macOS got a homebrew tap I though Linux needed itās own. I found a tool called ānfpmā that with one configuration can build packages for multiple distros, really recommend it! But maintaining multiple package repositories looked like a lot of work so I then programmed my own shell script that takes the latest version of livefetch and publish it to all repositories. Took some work but it is now easier for anyone to install livefetch. In the image you can see livefetch being installed with apt on debian. ā WilGulf
Devblog 12 Last devblog before ship, gotta get this half hour counted. This time has just been used for some fixes for the different repositories and als testing livefetch on multiple distros. ā WilGulf
Ships:
I have made my own system monitoring tool like fastfetch except the system information shown will always be live and updated. Many of the functions used for getting that info was using apples APIs and that made it very challenging to code. I am now very proud that this can be installed like any other cli tool using homebrew and it feels like a real tool. For any user that wants to try this I want you to know that this tool has been written and tested for macos. Some things may work on linux too but dont expect the same functionality.
This is the second ship of livefetch. From the previous ship livefetch has gotten much more features working on linux that previously only worked on macOS. The two difference between livefetch on macOS and Linux is almost zero. But what I am more proud of for this ship is the spinning logo. It wasnāt easy and I had to learn the math behind calculating the new position of a point after rotating a X degrees of a angle. But in the end the spinning looks AWESOME, in my opinion. So for anyone trying this: there are multiple ways of installing on different distros or OS, and all instructions are in the readme. And also livefetch hasnāt been tested on a wide amount of different hardware, so if you find a issue please let me know, thank you!...
|
1792986962.1134398
|
1793073362.1134398
|
|
33165
|
My own site! by @Ishaan_Jha | Stardance
|
Ishaan_Jha
|
2
|
17.27
|
172
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-14T17:44:36Z", "hours": 15.0, "multiplier": 11.45, "payout": 172, "blessing": "neutral", "text": "I made my own personal site, telling almost everything about me. The trickiest part was mastering the UI, but at the end I love the result. Want to know me better? This is basically it.", "repo": "https://github.com/IJai-code/personalproject", "demo": "https://ijai-code.github.io/personalproject/#about"}, {"ship_num": 2, "ts": "2026-07-09T21:00:38Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my personal site about me! I made it notebook style, as i love it that way and I like the whole engineering layout. It is pretty basic, and I didnāt have much difficulty making it. There are 3 main buttons, that use a cool scroll feature to scroll to the section (i learned how to do that when i was pretty young, but it wasnāt that easy back then).", "repo": "https://github.com/IJai-code/personalproject", "demo": "https://ijai-code.github.io/personalproject/#about"}]...
|
[{"post_id": 41821, "ts": "202 [{"post_id": 41821, "ts": "2026-08-06T08:39:01Z", "hours": 1.2667, "text": "Hi guys, it has been a bit since I updated my personal portfolio page, but I think it needed some refresh and updates. It now has more info about me as a person, and who I really am, and is completely accurate now. I will continue to make updates as things change, as well as the process. Also, it is multi-page now :) Enjoy!"}, {"post_id": 28427, "ts": "2026-07-14T17:42:25Z", "hours": 4.6986, "text": "Update complete, different modes, options, buttons, descriptions, and UI overall."}, {"post_id": 28017, "ts": "2026-07-14T00:27:10Z", "hours": 9.2792, "text": "Large UI refresh, still in progress. Not deployed just yet, but large backend refresh, as well as smoother layout and multiple pages."}, {"post_id": 25716, "ts": "2026-07-10T04:33:51Z", "hours": 1.0469, "text": "Made some fixes for the bugs. UI remains the same"}, {"post_id": 25530, "ts": "2026-07-09T20:56:22Z", "hours": 0.6878, "text": "Devlog 1: Starting My Personal WebsiteStarted building my personal website as part of Stardance. I created the initial structure with HTML and CSS, set up the GitHub repository, and deployed it using GitHub Pages. The first version focused on getting the foundation working so I could iterate on the design and make it feel more personal."}]...
|
Title: My own site! by @Ishaan_Jha | Stardance
De Title: My own site! by @Ishaan_Jha | Stardance
Devlogs:
Devlog 1: Starting My Personal WebsiteStarted building my personal website as part of Stardance. I created the initial structure with HTML and CSS, set up the GitHub repository, and deployed it using GitHub Pages. The first version focused on getting the foundation working so I could iterate on the design and make it feel more personal.
Made some fixes for the bugs. UI remains the same
Large UI refresh, still in progress. Not deployed just yet, but large backend refresh, as well as smoother layout and multiple pages.
Update complete, different modes, options, buttons, descriptions, and UI overall.
Hi guys, it has been a bit since I updated my personal portfolio page, but I think it needed some refresh and updates. It now has more info about me as a person, and who I really am, and is completely accurate now. I will continue to make updates as things change, as well as the process. Also, it is multi-page now :) Enjoy!
Ships:
I made my personal site about me! I made it notebook style, as i love it that way and I like the whole engineering layout. It is pretty basic, and I didnāt have much difficulty making it. There are 3 main buttons, that use a cool scroll feature to scroll to the section (i learned how to do that when i was pretty young, but it wasnāt that easy back then).
I made my own personal site, telling almost everything about me. The trickiest part was mastering the UI, but at the end I love the result. Want to know me better? This is basically it....
|
1793109236.9170985
|
1793195636.9170985
|
|
33304
|
InterviewPrep AI by @Nikhilsahu | Stardance
|
Nikhilsahu
|
2
|
43.0
|
532
|
[{"ship_num": 1, "hours": 12.0, [{"ship_num": 1, "hours": 12.0, "multiplier": 14.84, "payout": 178, "blessing": "neutral", "text": "I worked on the first three phases of InterviewPrep AI. You can set up a mock interview, answer AI-generated questions, get feedback, and check your previous interviews from the dashboard. The hardest part was making the interview flow feel smooth and connecting all the pages together. I also spent time improving the UI and handling loading and error states. I'm happy that the project now feels like a real app instead of just a demo. Everything works together and the overall experience is much better now. Just open the website and start using it. No signup is needed. You can start a new interview, complete it, and check the feedback and history right away.", "repo": "https://github.com/Nikhil20222/interviewprep-ai/", "demo": "https://interviewprep-aii-eight.vercel.app/", "ts": "2026-07-17T03:15:14Z"}, {"ship_num": 2, "hours": 31.0, "multiplier": 11.51, "payout": 354, "blessing": "neutral", "text": "I developed my first AI-based tool called InterviewPrep AI, which helps users optimize their resumes prior to applying for internships or jobs through the use of artificial intelligence. As of right now, the application can load a user's resume, create an ATS score, perform different kinds of analysis on various sections of the resume and provide suggestions for improvement. By far, the hardest part of this project was to connect all the backend services into a cohesive process and ensure that everything works as intended. Besides that, I also put some effort into testing various formats of resumes and fixing minor bugs related to parsing and analysis of the document. I think I am the most proud of having the whole resume analysis pipeline up and running. It's no longer an AI-based wrapper, but rather something that can form a solid foundation for future projects. In case anyone would like to test the project, please, try uploading various formats of the resume (PDF, DOCX or TXT) and check how well the parser, ATS analysis and suggestions work. This is just Phase 1, while Phase 2 is already being implemented.", "repo": "https://github.com/Nikhil20222/interviewprep-ai/", "demo": "https://interviewprep-aii-eight.vercel.app/", "ts": "2026-07-10T21:37:03Z"}]...
|
[{"post_id": 25753, "ts": "202 [{"post_id": 25753, "ts": "2026-07-10T06:12:09Z", "hours": 5.0, "text": "Started working on InterviewPrep AI yesterday. I spent most of the time building the frontend for the first phase and setting up the overall structure of the project. The goal was to keep the interface simple, clean and easy to use instead of adding unnecessary design elements. Most of the core pages are now ready, so the next step is connecting everything to the backend and implementing the resume processing features."}, {"post_id": 25793, "ts": "2026-07-10T07:58:31Z", "hours": 1.0, "text": "Made some good progress on the backend today. I worked on the core services which process uploaded resumes including the file extraction pipeline, AI integration and the ATS checker. I spent some time testing out different resume formats and fixing a few things to make the flow more reliable. We now have the basic foundation of the resume analysis pipeline. Now, the next step is to connect everything to the frontend and improve the results of the analysis."}, {"post_id": 25981, "ts": "2026-07-10T15:03:53Z", "hours": 3.0, "text": "Made a lot of progress on InterviewPrep AI over the last few sessions. I finished writing the core logic for all the planned Phase 1 features, including resume upload, parsing, resume analysis, ATS scoring, and AI-powered improvement suggestions. Most of the work went into building the backend services and making sure each feature works correctly on its own. At this point, the remaining work for Phase 1 is integrating everything through the main application, testing the complete flow from upload to analysis, and deploying the project. Once the first version is stable and fully working, Iāll move on to Phase 2, which will focus on job description support, resume-to-JD matching, keyword analysis, and AI-powered resume optimization tailored to specific job roles."}, {"post_id": 26211, "ts": "2026-07-10T21:33:35Z", "hours": 1.0, "text": "Finished the first major milestone of InterviewPrep AI today! Phase 1 is now complete and the core resume analysis workflow is working end-to-end. I spent most of the time integrating the backend services, testing different resume formats, fixing edge cases, and making sure the overall flow felt smooth and reliable. What was completed in Phase 1: Resume upload (PDF/DOCX/TXT) 2.Resume parsing 3.Resume preview with extracted details 4.Resume analysis 5.ATS score generation AI-powered resume improvement suggestions The project now has a solid foundation, and Iām happy with how the first version has turned out. There are still plenty of improvements to make, but the core functionality is finally in place. Next up (Phase 2): Job description upload and parsing Resume vs Job Description match score 3.Missing skills and keyword analysis AI-powered resume optimization for specific job roles Better match reports and actionable recommendations Excited to start Phase 2 and make the project even more useful for internship and placement preparation."}, {"post_id": 27554, "ts": "2026-07-13T07:25:16Z", "hours": 5.0, "text": "Started redesigning the frontend After getting some feedback on the project, I decided to take some time to improve the overall frontend before diving into new features. The previous layout was functional, but it was too dash-boardy, with cards everywhere. Today I was mostly doing frontend restructuring before any feature changes. Things I did: I have begun redesigning the general layout Cleaned up html structure CSS brief Removed some unneeded UI elements Planned a section-by-section layout, rather than showing everything at once There were no changes in backend today. The idea is to simplify the project and make it easier to use before we move onto the resume analysis features."}, {"post_id": 27696, "ts": "2026-07-13T14:08:17Z", "hours": 5.0, "text": "Today I connected the redesigned frontend with JavaScript. Most of the work was handling user interactions and making sure different sections behave properly. Things I worked on: 1.Accordion behaviour 2.Dark mode toggle 3.Upload interactions 4.Better loading states 5.Small UI fixes while testing 6.JD Matching Still have to reconnect everything with the backend, but the frontend is now behaving the way I wanted"}, {"post_id": 27910, "ts": "2026-07-13T20:41:56Z", "hours": 0.0, "text": "I worked on some of the utility functions that handle uploaded resumes. These files arenāt very visible from the frontend, but theyāre important because almost every upload passes through them. I improved the validation logic so unsupported files are caught earlier instead of failing later during parsing. I also cleaned up the temporary file handling because a few test uploads werenāt being removed properly after processing. Not the most exciting part of the project, but itāll make the rest of the resume analysis pipeline much more reliable."}, {"post_id": 28119, "ts": "2026-07-14T06:12:26Z", "hours": 1.0, "text": "Working on resume parsing Today I focused on extracting information from uploaded resumes. I quickly realised that resumes are far less consistent than I expected. Some PDFs parsed perfectly, while others had missing spaces, broken formatting or section titles that werenāt detected correctly. Most of my time actually went into handling these edge cases instead of writing the parser itself. After a lot of testing, the extraction feels much more reliable now. Next Iāll use this parsed information for the ATS checker and resume analysis."}, {"post_id": 28155, "ts": "2026-07-14T08:39:51Z", "hours": 2.0, "text": "Today I worked on improving the ATS checker and AI suggestions. Earlier ATS score was just giving one percentage, so it didnāt feel very useful. I changed the logic so now it also tells why score increased or decreased instead of only showing a number. I also improved the keyword matching because sometimes it was matching unrelated words and giving wrong score. This part took some time because after fixing one issue another one was coming, so I had to test with different resumes to make the results more consistent. After that I worked on AI suggestions. Before, the AI was giving one big response which was hard to read. So I separated the suggestions into different sections based on resume parts. I also changed the prompts a little because sometimes AI was repeating the same advice in different words. It took a few prompt changes before I got output that looked clean and useful. Overall no big feature today, but I spent most of the time improving the quality of existing features. The ATS results and AI suggestions now feel much better than before."}, {"post_id": 28359, "ts": "2026-07-14T15:51:31Z", "hours": 4.0, "text": "Today I completed Phase 2 of the project. The main goal was to compare the uploaded resume with the job description instead of analysing both separately. At first I thought simple keyword matching would be enough, but I quickly realized it was giving wrong results. Sometimes important skills were missed because the wording was different, and sometimes repeated keywords were increasing the score even when the resume wasnāt actually relevant. I spent a lot of time improving the comparison logic and testing it with different resumes and job descriptions. The biggest challenge was finding a balance between being too strict and too lenient. After making multiple changes, the matching feels much more accurate and meaningful now. Finally, Phase 2 is complete and working well. There are still small things I can improve later, but the core resume-to-job matching system is done. From tomorrow Iāll start working on Phase 3."}, {"post_id": 28562, "ts": "2026-07-14T21:46:11Z", "hours": 3.0, "text": "Started working on the interview section After finishing the resume analysis and job description matching, I started building the interview part of the project. Today was mostly frontend work. I created the pages that will handle the complete interview flow instead of trying to fit everything onto one page. Things I worked on: Created the interview dashboard 2.Built the interview setup page Added the interview session layout Created the results page Added a navigation link so the new section is accessible from anywhere in the website Nothing is functional yet, but having the pages ready will make the backend integration much easier over the next few sessions."}, {"post_id": 28749, "ts": "2026-07-15T06:38:45Z", "hours": 1.0, "text": "Building the interview interface Spent most of time working on the styling for the interview pages. I wanted the new section to match the rest of the application instead of feeling like a completely different website. Todayās work included: Question cards Progress indicator Forms Review layout Results section Small responsive fixes I kept the styling pretty simple without adding unnecessary animations because readability is more important during an interview."}, {"post_id": 28855, "ts": "2026-07-15T12:25:04Z", "hours": 4.0, "text": "worked on JavaScript I connected the different interview pages together so the whole flow feels continuous instead of loading unrelated screens. I also spent quite a bit of time fixing small issues like: Question navigation Progress updates Form validation Button states Results rendering There wasnāt one huge bug today, but lots of smaller ones that together took longer than expected. The frontend is now smoother"}, {"post_id": 28870, "ts": "2026-07-15T13:10:38Z", "hours": 0.0, "text": "Phase 3 Complete ā Mock Interview Finished Phase 3 of InterviewPrep AI today. The project started with resume analysis, then I added resume vs job description matching, and now it can also generate a complete AI mock interview based on both. Whatās working now: Mock interview dashboard Interview setup page AI-generated interview questions Resume + Job Description based question generation Interview session flow AI feedback after submitting answers Final results page with overall review I also spent quite a bit of time testing the AI responses. Different models donāt always return data in the same format, so I had to handle a few inconsistent responses before everything started working properly. One thing I wanted to make sure was that the older features didnāt break while adding all this. I tested the resume analysis and JD matching flow again after integrating the interview section and both are still working fine. There are still a lot of ideas I want to add later like voice interviews, downloadable reports and interview history, but for now Iām happy with how Phase 3 turned out. The project finally feels like a complete interview preparation tool instead of just a resume analyzer."}]...
|
Title: InterviewPrep AI by @Nikhilsahu | Stardance Title: InterviewPrep AI by @Nikhilsahu | Stardance
Devlogs:
Phase 3 Complete ā Mock Interview Finished Phase 3 of InterviewPrep AI today. The project started with resume analysis, then I added resume vs job description matching, and now it can also generate a complete AI mock interview based on both. Whatās working now: Mock interview dashboard Interview setup page AI-generated interview questions Resume + Job Description based question generation Interview session flow AI feedback after submitting answers Final results page with overall review I also spent quite a bit of time testing the AI responses. Different models donāt always return data in the same format, so I had to handle a few inconsistent responses before everything started working properly. One thing I wanted to make sure was that the older features didnāt break while adding all this. I tested the resume analysis and JD matching flow again after integrating the interview section and both are still working fine. There are still a lot of ideas I want to add later like voice interviews, downloadable reports and interview history, but for now Iām happy with how Phase 3 turned out. The project finally feels like a complete interview preparation tool instead of just a resume analyzer.
worked on JavaScript I connected the different interview pages together so the whole flow feels continuous instead of loading unrelated screens. I also spent quite a bit of time fixing small issues like: Question navigation Progress updates Form validation Button states Results rendering There wasnāt one huge bug today, but lots of smaller ones that together took longer than expected. The frontend is now smoother
Building the interview interface Spent most of time working on the styling for the interview pages. I wanted the new section to match the rest of the application instead of feeling like a completely different website. Todayās work included: Question cards Progress indicator Forms Review layout Results section Small responsive fixes I kept the styling pretty simple without adding unnecessary animations because readability is more important during an interview.
Started working on the interview section After finishing the resume analysis and job description matching, I started building the interview part of the project. Today was mostly frontend work. I created the pages that will handle the complete interview flow instead of trying to fit everything onto one page. Things I worked on: Created the interview dashboard 2.Built the interview setup page Added the interview session layout Created the results page Added a navigation link so the new section is accessible from anywhere in the website Nothing is functional yet, but having the pages ready will make the backend integration much easier over the next few sessions.
Today I completed Phase 2 of the project. The main goal was to compare the uploaded resume with the job description instead of analysing both separately. At first I thought simple keyword matching would be enough, but I quickly realized it was giving wrong results. Sometimes important skills were missed because the wording was different, and sometimes repeated keywords were increasing the score even when the resume wasnāt actually relevant. I spent a lot of time improving the comparison logic and testing it with different resumes and job descriptions. The biggest challenge was finding a balance between being too strict and too lenient. After making multiple changes, the matching feels much more accurate and meaningful now. Finally, Phase 2 is complete and working well. There are still small things I can improve later, but the core resume-to-job matching system is done. From tomorrow Iāll start working on Phase 3.
Today I worked on improving the ATS checker and AI suggestions. Earlier ATS score was just giving one percentage, so it didnāt feel very useful. I changed the logic so now it also tells why score increased or decreased instead of only showing a number. I also improved the keyword matching because sometimes it was matching unrelated words and giving wrong score. This part took some time because after fixing one issue another one was coming, so I had to test with different resumes to make the results more consistent. After that I worked on AI suggestions. Before, the AI was giving one big response which was hard to read. So I separated the suggestions into different sections based on resume parts. I also changed the prompts a little because sometimes AI was repeating the same advice in different words. It took a few prompt changes before I got output that looked clean and useful. Overall no big feature today, but I spent most of the time improving the quality of existing features. The ATS results and AI suggestions now feel much better than before.
Working on resume parsing Today I focused on extracting information from uploaded resumes. I quickly realised that resumes are far less consistent than I expected. Some PDFs parsed perfectly, while others had missing spaces, broken formatting or section titles that werenāt detected correctly. Most of my time actually went into handling these edge cases instead of writing the parser itself. After a lot of testing, the extraction feels much more reliable now. Next Iāll use this parsed information for the ATS checker and resume analysis.
I worked on some of the utility functions that handle uploaded resumes. These files arenāt very visible from the frontend, but theyāre important because almost every upload passes through them. I improved the validation logic so unsupported files are caught earlier instead of failing later during parsing. I also cleaned up the temporary file handling because a few test uploads werenāt being removed properly after processing. Not the most exciting part of the project, but itāll make the rest of the resume analysis pipeline much more reliable.
Today I connected the redesigned frontend with JavaScript. Most of the work was handling user interactions and making sure different sections behave properly. Things I worked on: 1.Accordion behaviour 2.Dark mode toggle 3.Upload interactions 4.Better loading states 5.Small UI fixes while testing 6.JD Matching Still have to reconnect everything with the backend, but the frontend is now behaving the way I wanted
Started redesigning the frontend After getting some feedback on the project, I decided to take some time to improve the overall frontend before diving into new features. The previous layout was functional, but it was too dash-boardy, with cards everywhere. Today I was mostly doing frontend restructuring before any feature changes. Things I did: I have begun redesigning the general layout Cleaned up html structure CSS brief Removed some unneeded UI elements Planned a section-by-section layout, rather than showing everything at once There were no changes in backend today. The idea is to simplify the project and make it easier to use before we move onto the resume analysis features.
Finished the first major milestone of InterviewPrep AI today! Phase 1 is now complete and the core resume analysis workflow is working end-to-end. I spent most of the time integrating the backend services, testing different resume formats, fixing edge cases, and making sure the overall flow felt smooth and reliable. What was completed in Phase 1: Resume upload (PDF/DOCX/TXT) 2.Resume parsing 3.Resume preview with extracted details 4.Resume analysis 5.ATS score generation AI-powered resume improvement suggestions The project now has a solid foundation, and Iām happy with how the first version has turned out. There are still plenty of improvements to make, but the core functionality is finally in place. Next up (Phase 2): Job description upload and parsing Resume vs Job Description match score 3.Missing skills and keyword analysis AI-powered resume optimization for specific job roles Better match reports and actionable recommendations Excited to start Phase 2 and make the project even more useful for internship and placement preparation.
Made a lot of progress on InterviewPrep AI over the last few sessions. I finished writing the core logic for all the planned Phase 1 features, including resume upload, parsing, resume analysis, ATS scoring, and AI-powered improvement suggestions. Most of the work went into building the backend services and making sure each feature works correctly on its own. At this point, the remaining work for Phase 1 is integrating everything through the main application, testing the complete flow from upload to analysis, and deploying the project. Once the first version is stable and fully working, Iāll move on to Phase 2, which will focus on job description support, resume-to-JD matching, keyword analysis, and AI-powered resume optimization tailored to specific job roles.
Made some good progress on the backend today. I worked on the core services which process uploaded resumes including the file extraction pipeline, AI integration and the ATS checker. I spent some time testing out different resume formats and fixing a few things to make the flow more reliable. We now have the basic foundation of the resume analysis pipeline. Now, the next step is to connect everything to the frontend and improve the results of the analysis.
Started working on InterviewPrep AI yesterday. I spent most of the time building the frontend for the first phase and setting up the overall structure of the project. The goal was to keep the interface simple, clean and easy to use instead of adding unnecessary design elements. Most of the core pages are now ready, so the next step is connecting everything to the backend and implementing the resume processing features.
Ships:
I developed my first AI-based tool called InterviewPrep AI, which helps users optimize their resumes prior to applying for internships or jobs through the use of artificial intelligence. As of right now, the application can load a user's resume, create an ATS score, perform different kinds of analysis on various sections of the resume and provide suggestions for improvement. By far, the hardest part of this project was to connect all the backend services into a cohesive process and ensure that everything works as intended. Besides that, I also put some effort into testing various formats of resumes and fixing minor bugs related to parsing and analysis of the document. I think I am the most proud of having the whole resume analysis pipeline up and running. It's no longer an AI-based wrapper, but rather something that can form a solid foundation for future projects. In case anyone would like to test the project, please, try uploading various formats of the resume (PDF, DOCX or TXT) and check how well the parser, ATS analysis and suggestions work. This is just Phase 1, while Phase 2 is already being implemented.
I worked on the first three phases of InterviewPrep AI. You can set up a mock interview, answer AI-generated questions, get feedback, and check your previous interviews from the dashboard. The hardest part was making the interview flow feel smooth and connecting all the pages together. I also spent time improving the UI and handling loading and error states. I'm happy that the project now feels like a real app instead of just a demo. Everything works together and the overall experience is much better now. Just open the website and start using it. No signup is needed. You can start a new interview, complete it, and check the feedback and history right away....
|
1792878817.057684
|
1793742817.057684
|
|
33418
|
Flappiest bird by @Alexander_Wolf | Stardance
|
Alexander_Wolf
|
2
|
11.0
|
58
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-19T15:54:02Z", "hours": 5.0, "multiplier": 8.55, "payout": 46, "blessing": "neutral", "text": "This is the second ship. Many important modifications have been made. These things have been added to the game since the last ship: A difficulty switch Highscore PlayerPrefs for the difficulty and the highscore Music and sound effects And the most important note: The game is now playable on itch.io. If the game somehow doesnāt open up via stardance, here is the link: ciferwolf.itch.io/flappiest-bird", "repo": "https://github.com/Wolf-Alexander/Flappiest-Bird", "demo": "https://ciferwolf.itch.io/flappiest-bird"}, {"ship_num": 2, "ts": "2026-07-13T19:38:34Z", "hours": 6.0, "multiplier": 2.11, "payout": 12, "blessing": "neutral", "text": "Ship #1 I have finished the tutorial and added some stuff on my own. This is the first version of my Flappy Bird game. Itās playable and kinda fun. Although itās not on the same level as a finished game, so please consider this as a demo (v1). It wonāt take long until I manage to add more stuff to make it more interesting to play", "repo": "https://github.com/Wolf-Alexander/Flappiest-Bird", "demo": "https://ciferwolf.itch.io/flappiest-bird"}]...
|
[{"post_id": 29583, "ts": "202 [{"post_id": 29583, "ts": "2026-07-16T16:45:11Z", "hours": 0.8167, "text": "Devlog #8 Iāve fixed some error during the gameplay. The game is finished! Itās not beautiful, but for my very first Unity project good enough. Once Iām able to ship again, Iāll do it"}, {"post_id": 29460, "ts": "2026-07-16T12:46:45Z", "hours": 0.9836, "text": "Devlog #7 I added music and some sound effect. Music for: Starting screen Ingame Sound effects: Score Death All sounds are from itch.io. The following music packs have been used: https://tallbeard.itch.io/music-loop-bundle https://jdsherbert.itch.io/ultimate-ui-sfx-pack"}, {"post_id": 28241, "ts": "2026-07-14T11:56:12Z", "hours": 0.8581, "text": "Devlog #6 The difficulty switch works and even after a reset or restart of the game, the previous difficulty gets saved. The same goes for the highscore that actually works!!!! What I should implement next is the highscore based on the difficulty, but that is for later"}, {"post_id": 28205, "ts": "2026-07-14T10:48:27Z", "hours": 1.6669, "text": "Devlog #5 Iāve made some changes to the game: Improved starting screen Added a difficulty switch Difficulty: There are 3 options. Easy, Medium, Hard. Medium is the standard option. They all influence the speed as well as the spawn rate of the pipes Issues for the future: If you restart the game after the game over, the difficulty gets set to Medium. Probably the fix would be to have some data saved for after the restart. This is also my current idea how Iāll make the high score. Or maybe some sort of database would make it easier"}, {"post_id": 27922, "ts": "2026-07-13T21:02:04Z", "hours": 1.0469, "text": "Devlog #4 Iām working on the starting screen. I had also fixed some unknown issues with the bird. It cannot leave the screen now and the game over mechanic works a lot better"}, {"post_id": 27874, "ts": "2026-07-13T19:35:45Z", "hours": 1.9169, "text": "Devlog #3 I created a starting screen (WITHOUT A TUTORIAL) and connected everything to it. It was a lot harder than expected, because everything runs on Start function, so I had to edit every object. This concludes the first version of this game. Yeah itās not beautiful, but itās functional. The other To-Doās will be added in further versions!"}, {"post_id": 27646, "ts": "2026-07-13T12:26:38Z", "hours": 1.1167, "text": "Devlog #2 So I finished the tutorial⦠The game exists and now I have some knowledge about Unity and Game Development. Now I will add some additional stuff to this game to finish it. These include: Starting Screen High Score Difficulties (change speed of the game) Music If you have some ideas, please comment them. Iāll try my best, but canāt promise anything"}, {"post_id": 25993, "ts": "2026-07-10T15:25:02Z", "hours": 2.4667, "text": "Devlog #1 Iām starting out with Unity. And what is the best option to choose, when youāre starting out? Watch a Flappy Bird tutorial and hope you understand everything, so that you can add your own stuff at the end⦠I want to create my own games, but have no clue how Unity works. This project is focused on helping me learn all the basics and be able to create my own games from then on. Even though Iām using a tutorial to create this game, Iām planning on using my knowledge to upgrade the game with a few features to market it as my own ;)"}]...
|
Title: Flappiest bird by @Alexander_Wolf | Stardan Title: Flappiest bird by @Alexander_Wolf | Stardance
Devlogs:
Devlog #1 Iām starting out with Unity. And what is the best option to choose, when youāre starting out? Watch a Flappy Bird tutorial and hope you understand everything, so that you can add your own stuff at the end⦠I want to create my own games, but have no clue how Unity works. This project is focused on helping me learn all the basics and be able to create my own games from then on. Even though Iām using a tutorial to create this game, Iām planning on using my knowledge to upgrade the game with a few features to market it as my own ;)
Devlog #2 So I finished the tutorial⦠The game exists and now I have some knowledge about Unity and Game Development. Now I will add some additional stuff to this game to finish it. These include: Starting Screen High Score Difficulties (change speed of the game) Music If you have some ideas, please comment them. Iāll try my best, but canāt promise anything
Devlog #3 I created a starting screen (WITHOUT A TUTORIAL) and connected everything to it. It was a lot harder than expected, because everything runs on Start function, so I had to edit every object. This concludes the first version of this game. Yeah itās not beautiful, but itās functional. The other To-Doās will be added in further versions!
Devlog #4 Iām working on the starting screen. I had also fixed some unknown issues with the bird. It cannot leave the screen now and the game over mechanic works a lot better
Devlog #5 Iāve made some changes to the game: Improved starting screen Added a difficulty switch Difficulty: There are 3 options. Easy, Medium, Hard. Medium is the standard option. They all influence the speed as well as the spawn rate of the pipes Issues for the future: If you restart the game after the game over, the difficulty gets set to Medium. Probably the fix would be to have some data saved for after the restart. This is also my current idea how Iāll make the high score. Or maybe some sort of database would make it easier
Devlog #6 The difficulty switch works and even after a reset or restart of the game, the previous difficulty gets saved. The same goes for the highscore that actually works!!!! What I should implement next is the highscore based on the difficulty, but that is for later
Devlog #7 I added music and some sound effect. Music for: Starting screen Ingame Sound effects: Score Death All sounds are from itch.io. The following music packs have been used: https://tallbeard.itch.io/music-loop-bundle https://jdsherbert.itch.io/ultimate-ui-sfx-pack
Devlog #8 Iāve fixed some error during the gameplay. The game is finished! Itās not beautiful, but for my very first Unity project good enough. Once Iām able to ship again, Iāll do it
Ships:
Ship #1 I have finished the tutorial and added some stuff on my own. This is the first version of my Flappy Bird game. Itās playable and kinda fun. Although itās not on the same level as a finished game, so please consider this as a demo (v1). It wonāt take long until I manage to add more stuff to make it more interesting to play
This is the second ship. Many important modifications have been made. These things have been added to the game since the last ship: A difficulty switch Highscore PlayerPrefs for the difficulty and the highscore Music and sound effects And the most important note: The game is now playable on itch.io. If the game somehow doesnāt open up via stardance, here is the link: ciferwolf.itch.io/flappiest-bird...
|
1793000981.8709016
|
1793087381.8709016
|
|
33463
|
My Personal site! by @GigiOP817 | Stardance
|
GigiOP817
|
2
|
20.0
|
13
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T00:33:27Z", "hours": 2.0, "multiplier": 8.54, "payout": 13, "blessing": "neutral", "text": "I coded a personal website using HTML, CSS, and a bit of JS. This website includes my hobbies, a short paragraph about me, and my interests. It also has a contacts page that leads you to my social media and my Github repository. Overall, this project was my first ever coding project and it was really fun to do. I did face obstacles throughout the entire making of this personal website, but I made sure to tackle them efficiently. Sometimes, Iād just delete the wrong code and mess up entire hours of work. It was sure a rough process fixing all the mistakes and restoring the old code back to normal. I am proud of finishing this website, so that now people can view it! When I look back on all the versions of my website from the very first in a workshop, to this final version that I am shipping, I get reminded on how much Iāve learned throughout this project. I did use help from AI because it was my first type coding, and I didnāt know how to turn my ideas into proper lines of code. All the ideas and everything else is completely original. If you do view my website, I would appreciate it if you can give me some feedback on my social media or anywhere else. Thank you! :D", "repo": "https://github.com/GigiOP817/MY-personal-Website", "demo": "https://gigiop817.github.io/MY-personal-Website/"}, {"ship_num": 2, "ts": "2026-09-19T23:52:17Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I coded a personal site that is great if youād like to get to know me. It was a bit hard to kickstart the whole process since it was my first time coding. However, I had a lot of fun and learned so much about writing HTML and CSS along the way. It was quite a journey, and I love seeing how my website evolved from the initial workshop version to this final version that Iām shipping. I faced a lot of obstacles while creating this site. Sometimes the background wouldnāt appear on the page; other times, Iād make mistakes and change the wrong lines of code. There was even a time when I accidentally deleted a huge chunk of code and had to redo most of the pages. Even with all of these setbacks, I overcame them, and Iām happy that I can finally release this website for everyone to see. I did not use any AI to write my code, but I did use AI to fix the grammar and punctuation in this text. It would be awesome if you checked out my new website! :D", "repo": "https://github.com/GigiOP817/MY-personal-Website", "demo": "https://gigiop817.github.io/MY-personal-Website/"}]...
|
[{"post_id": 71996, "ts": "202 [{"post_id": 71996, "ts": "2026-09-21T23:21:32Z", "hours": 0.2594, "text": "I fixed up the problem of my other pages not opening from the Interests page. I just had to redo the code for that specific section."}, {"post_id": 71289, "ts": "2026-09-20T16:08:28Z", "hours": 0.9828, "text": "There were still some problems present since I didnāt change the code properly after moving the files, so I fixed those problems up. I also made sure that the demo link worked, and my project is ready to ship again! :D"}, {"post_id": 71160, "ts": "2026-09-20T11:32:08Z", "hours": 0.2758, "text": "I fixed up all the errors and deleted the unused photos in my files. I also made folders for all the files to make them look neat and organized."}, {"post_id": 70822, "ts": "2026-09-19T20:32:09Z", "hours": 1.0442, "text": "Iām finally done with my personal website and I just finished up the README. It was kind of complicated, but I was able to finish things up! This is just a little snippet, but thereās more to it below."}, {"post_id": 66933, "ts": "2026-09-12T22:10:04Z", "hours": 5.9147, "text": "I basically to a long break from coding and didnāt write any dev-logs for any of the work that I did, but now Iām basically done with my website. I fixed up all the bugs that were present through out the code and website. I also finished my contacts page just now, so all I have to do is review over everything and make a new read me."}, {"post_id": 47195, "ts": "2026-08-14T22:52:47Z", "hours": 1.3186, "text": "Devlog - 6 Today and yesterday, I decided to change up my about me page because it was looking too plain. I decided that I will add a button next to my OC and when you click it, the information about me will appear. Iām also planning on adding an audio file that will play when you click on the button. The audio file will read out the words in the text box. I changed the background of the page too. I did come across a problem though, no matter what I tried; the button is there, but when click it; it just disappears and no text comes on. I will work on this problem tomorrow."}, {"post_id": 44939, "ts": "2026-08-11T01:08:26Z", "hours": 2.165, "text": "Devlog - 5 Major work completed today! I finished the Interests Page on my personal website over the course of 2 days. (I forgot to write a devlog and commit yesterday). I was able to add a āFavoritesā section where I would list some of my favorite things. I also created a āHobbiesā section which has photos of 6 of my hobbies. I did come a across a problem where changing a part of my code (the div) accidentally changed the box on another page. Once it looked good on one page, it changed everything opn the other because I forgot to label which page the box was in. I was bale to solve that problem by creating some new code for my about me page. Finishing the hobbies section wasnāt that hard beause I just had to add some photos and make sure they form a grid. Overall, very productive day."}, {"post_id": 43696, "ts": "2026-08-09T03:13:55Z", "hours": 2.0939, "text": "Devlog - 4 Today was a very productive day because I finished the About Me section of my website. I was able to add an image of my OC which was created by my best friend. I also added a div which would house the information for the about me section. I was having trouble adjusting the appearance of the content inside the div, but i was able to fix it with a bit of research. Another problem that I came across was changing the background because my code space was acting up whenever Iād input the URL for the image. I was also able to fix that problem, but I donāt know how I did it. Next up, Iāll be working on my interests page and tweaking my code up a bit more."}, {"post_id": 42735, "ts": "2026-08-07T16:29:40Z", "hours": 2.0211, "text": "I forgot to post a devlog yesterday. I made huge changes to my personal site, especially with the homepage and changed a lot of things up with the about me page. My homepage background looks great as well as the title. I added a navigation bar at the top that will take you to either the about me, interests, or contacts page. I was experimenting with the second page because I wanted there to be a split screen with one side have my oc and the having the info."}, {"post_id": 37337, "ts": "2026-07-30T00:02:55Z", "hours": 1.1786, "text": "Itās been about 2 weeks since I picked up my personal site, but now Iām back into the flow. Today, I decided to change a bunch of the looks for my site because it was looking too plain. Iāve decided to make 2 different pages: 1 homepage and 1 page that will house information about me. I changed the backgrounds of both pages, but couldnāt really finish, so Iāll pick it up tomorrow. Iām trying to make the pages more space themed to match the vibe. The background images are photos of outer space (one even from NASA). I will begin working on my homepage to include directions that will lead towards the About Me page. Tomorrowās work mostly consists of CSS and making the site look appealing. :P"}, {"post_id": 29146, "ts": "2026-07-15T20:35:30Z", "hours": 1.9319, "text": "Today, I started working on a Personal Site which I begun during a Stardance workshop. This is my first time coding and trying to create a website so itās a bit basic. I used index.html and CSS to build it. This is the first version of my personal site. :D"}]...
|
Title: My Personal site! by @GigiOP817 | Stardance Title: My Personal site! by @GigiOP817 | Stardance
Devlogs:
Today, I started working on a Personal Site which I begun during a Stardance workshop. This is my first time coding and trying to create a website so itās a bit basic. I used index.html and CSS to build it. This is the first version of my personal site. :D
Itās been about 2 weeks since I picked up my personal site, but now Iām back into the flow. Today, I decided to change a bunch of the looks for my site because it was looking too plain. Iāve decided to make 2 different pages: 1 homepage and 1 page that will house information about me. I changed the backgrounds of both pages, but couldnāt really finish, so Iāll pick it up tomorrow. Iām trying to make the pages more space themed to match the vibe. The background images are photos of outer space (one even from NASA). I will begin working on my homepage to include directions that will lead towards the About Me page. Tomorrowās work mostly consists of CSS and making the site look appealing. :P
I forgot to post a devlog yesterday. I made huge changes to my personal site, especially with the homepage and changed a lot of things up with the about me page. My homepage background looks great as well as the title. I added a navigation bar at the top that will take you to either the about me, interests, or contacts page. I was experimenting with the second page because I wanted there to be a split screen with one side have my oc and the having the info.
Devlog - 4 Today was a very productive day because I finished the About Me section of my website. I was able to add an image of my OC which was created by my best friend. I also added a div which would house the information for the about me section. I was having trouble adjusting the appearance of the content inside the div, but i was able to fix it with a bit of research. Another problem that I came across was changing the background because my code space was acting up whenever Iād input the URL for the image. I was also able to fix that problem, but I donāt know how I did it. Next up, Iāll be working on my interests page and tweaking my code up a bit more.
Devlog - 5 Major work completed today! I finished the Interests Page on my personal website over the course of 2 days. (I forgot to write a devlog and commit yesterday). I was able to add a āFavoritesā section where I would list some of my favorite things. I also created a āHobbiesā section which has photos of 6 of my hobbies. I did come a across a problem where changing a part of my code (the div) accidentally changed the box on another page. Once it looked good on one page, it changed everything opn the other because I forgot to label which page the box was in. I was bale to solve that problem by creating some new code for my about me page. Finishing the hobbies section wasnāt that hard beause I just had to add some photos and make sure they form a grid. Overall, very productive day.
Devlog - 6 Today and yesterday, I decided to change up my about me page because it was looking too plain. I decided that I will add a button next to my OC and when you click it, the information about me will appear. Iām also planning on adding an audio file that will play when you click on the button. The audio file will read out the words in the text box. I changed the background of the page too. I did come across a problem though, no matter what I tried; the button is there, but when click it; it just disappears and no text comes on. I will work on this problem tomorrow.
I basically to a long break from coding and didnāt write any dev-logs for any of the work that I did, but now Iām basically done with my website. I fixed up all the bugs that were present through out the code and website. I also finished my contacts page just now, so all I have to do is review over everything and make a new read me.
Iām finally done with my personal website and I just finished up the README. It was kind of complicated, but I was able to finish things up! This is just a little snippet, but thereās more to it below.
I fixed up all the errors and deleted the unused photos in my files. I also made folders for all the files to make them look neat and organized.
There were still some problems present since I didnāt change the code properly after moving the files, so I fixed those problems up. I also made sure that the demo link worked, and my project is ready to ship again! :D
I fixed up the problem of my other pages not opening from the Interests page. I just had to redo the code for that specific section.
Ships:
I coded a personal site that is great if youād like to get to know me. It was a bit hard to kickstart the whole process since it was my first time coding. However, I had a lot of fun and learned so much about writing HTML and CSS along the way. It was quite a journey, and I love seeing how my website evolved from the initial workshop version to this final version that Iām shipping. I faced a lot of obstacles while creating this site. Sometimes the background wouldnāt appear on the page; other times, Iād make mistakes and change the wrong lines of code. There was even a time when I accidentally deleted a huge chunk of code and had to redo most of the pages. Even with all of these setbacks, I overcame them, and Iām happy that I can finally release this website for everyone to see. I did not use any AI to write my code, but I did use AI to fix the grammar and punctuation in this text. It would be awesome if you checked out my new website! :D
I coded a personal website using HTML, CSS, and a bit of JS. This website includes my hobbies, a short paragraph about me, and my interests. It also has a contacts page that leads you to my social media and my Github repository. Overall, this project was my first ever coding project and it was really fun to do. I did face obstacles throughout the entire making of this personal website, but I made sure to tackle them efficiently. Sometimes, Iād just delete the wrong code and mess up entire hours of work. It was sure a rough process fixing all the mistakes and restoring the old code back to normal. I am proud of finishing this website, so that now people can view it! When I look back on all the versions of my website from the very first in a workshop, to this final version that I am shipping, I get reminded on how much Iāve learned throughout this project. I did use help from AI because it was my first type coding, and I didnāt know how to turn my ideas into proper lines of code. All the ideas and everything else is completely original. If you do view my website, I would appreciate it if you can give me some feedback on my social media or anywhere else. Thank you! :D...
|
1793004857.3676822
|
1793091257.3676822
|
|
33492
|
Digital Carbon Footprint Calculator by @TejalK | S Digital Carbon Footprint Calculator by @TejalK | Stardance...
|
TejalK
|
2
|
3.0
|
12
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-23T15:33:34Z", "hours": 2.0, "multiplier": 8.77, "payout": 7, "blessing": "neutral", "text": "I built a Digital Carbon Footprint Calculator ā a web app where you input your daily digital habits (emails sent, HD/4K streaming hours, cloud storage, calls, web browsing, crypto transactions) and it estimates your COā footprint in real time, breaking it down by activity with charts and translating the number into a relatable equivalent (trees needed per year to offset it). The trickiest part was redesigning the UI to make dense data feel approachable ā going from a flat, static layout to a dashboard with collapsible sections (emission factors, charts, tree impact) so it explains the āwhyā behind the number instead of just spitting it out. Iām proudest of the emissions-factor transparency table, since it turns the tool from a black-box calculator into something that actually teaches people where their digital carbon cost comes from. To test it, just open index.html, plug in some usage numbers on the left panel, hit āGenerate Insights,ā and explore the breakdown pie chart, comparison bar chart, and tree-impact card on the right.", "repo": "https://github.com/TejalK10-hash/Digital-Carbon-Footprint-Calculator", "demo": "https://precious-gelato-7eebc1.netlify.app/"}, {"ship_num": 2, "ts": "2026-07-10T21:17:20Z", "hours": 1.0, "multiplier": 11.76, "payout": 5, "blessing": "neutral", "text": "I made EcoDigital Tracker, a web app that estimates the carbon footprint of everyday digital habits like emails, streaming, cloud storage, calls, and browsing, giving a COā estimate, a Normal/High/Severe rating, and a chart breakdown. The hardest part wasnāt the coding but the deployment - I rebuilt it from a Tkinter desktop app into a Streamlit web app, then worked through a string of deployment errors like a missing requirements file and the wrong version accidentally going live. Iām proud that I kept the layout, fields, and output exactly the same through the rebuild, so it still feels like the original app, just accessible from a browser now. To test it, just open the link and enter any numbers for the usage fields, then hit āGenerate Insightsā and āView Chartsā - no setup needed.", "repo": "https://github.com/TejalK10-hash/Digital-Carbon-Footprint-Calculator", "demo": "https://precious-gelato-7eebc1.netlify.app/"}]...
|
[{"post_id": 33519, "ts": "202 [{"post_id": 33519, "ts": "2026-07-23T15:16:23Z", "hours": 1.5383, "text": "Revamped the Digital Carbon Footprint Calculator from a flat, static two-panel layout into a dark dashboard-style UI: swapped light-blue panels for a navy/cyan theme, replaced plain number inputs with sliders for continuous values, and broke the results into collapsible sections (View Emission Factors, View Charts, See Tree Impact) instead of dumping everything at once. Added a transparent emissions-factor table so users can see exactly how their footprint is calculated, plus a āTree Impactā card that translates the raw COā figure into a relatable equivalent (trees needed per year to offset it) - turning the tool from a bare calculator into a clearer piece of climate communication."}, {"post_id": 26203, "ts": "2026-07-10T21:15:29Z", "hours": 0.8211, "text": "Iād already built the core of EcoDigital Tracker before deciding to bring it into Stardance, so this session was about picking it back up and turning it into something actually shareable. It started as a desktop app built with Tkinter ā you could enter your daily digital habits (emails, streaming, cloud storage, calls, browsing) and get back an estimated carbon footprint in grams of COā, along with a Normal/High/Severe status and a pie + bar chart breakdown. The problem was that it only ran on my machine ā no link, no way for anyone else to try it without installing Python themselves. So I rebuilt the UI in Streamlit, keeping the exact same layout, input fields, output format, and charts, just swapping the framework underneath so it could run in a browser instead of a native window. I also wrote a short README explaining what the tool does and why I built it: to show people how much carbon their everyday digital activity actually produces, and where it lands on the Normal/High/Severe scale. From there I moved on to getting a real public link. I tried ngrok first to tunnel my local server, but the download got flagged by my antivirus, so I switched to deploying properly instead. I pushed the project to GitHub and connected it to Streamlit Community Cloud, then worked through a chain of deployment errors ā a missing requirements.txt that meant matplotlib wasnāt installed on the server, a main file path pointing at a filename with no .py extension, and the old Tkinter file accidentally being the one that got deployed instead of the Streamlit version. Fixed each one by correcting the filenames and adding requirements.txt directly on GitHub."}]...
|
Title: Digital Carbon Footprint Calculator by @Tej Title: Digital Carbon Footprint Calculator by @TejalK | Stardance
Devlogs:
Iād already built the core of EcoDigital Tracker before deciding to bring it into Stardance, so this session was about picking it back up and turning it into something actually shareable. It started as a desktop app built with Tkinter ā you could enter your daily digital habits (emails, streaming, cloud storage, calls, browsing) and get back an estimated carbon footprint in grams of COā, along with a Normal/High/Severe status and a pie + bar chart breakdown. The problem was that it only ran on my machine ā no link, no way for anyone else to try it without installing Python themselves. So I rebuilt the UI in Streamlit, keeping the exact same layout, input fields, output format, and charts, just swapping the framework underneath so it could run in a browser instead of a native window. I also wrote a short README explaining what the tool does and why I built it: to show people how much carbon their everyday digital activity actually produces, and where it lands on the Normal/High/Severe scale. From there I moved on to getting a real public link. I tried ngrok first to tunnel my local server, but the download got flagged by my antivirus, so I switched to deploying properly instead. I pushed the project to GitHub and connected it to Streamlit Community Cloud, then worked through a chain of deployment errors ā a missing requirements.txt that meant matplotlib wasnāt installed on the server, a main file path pointing at a filename with no .py extension, and the old Tkinter file accidentally being the one that got deployed instead of the Streamlit version. Fixed each one by correcting the filenames and adding requirements.txt directly on GitHub.
Revamped the Digital Carbon Footprint Calculator from a flat, static two-panel layout into a dark dashboard-style UI: swapped light-blue panels for a navy/cyan theme, replaced plain number inputs with sliders for continuous values, and broke the results into collapsible sections (View Emission Factors, View Charts, See Tree Impact) instead of dumping everything at once. Added a transparent emissions-factor table so users can see exactly how their footprint is calculated, plus a āTree Impactā card that translates the raw COā figure into a relatable equivalent (trees needed per year to offset it) - turning the tool from a bare calculator into a clearer piece of climate communication.
Ships:
I made EcoDigital Tracker, a web app that estimates the carbon footprint of everyday digital habits like emails, streaming, cloud storage, calls, and browsing, giving a COā estimate, a Normal/High/Severe rating, and a chart breakdown. The hardest part wasnāt the coding but the deployment - I rebuilt it from a Tkinter desktop app into a Streamlit web app, then worked through a string of deployment errors like a missing requirements file and the wrong version accidentally going live. Iām proud that I kept the layout, fields, and output exactly the same through the rebuild, so it still feels like the original app, just accessible from a browser now. To test it, just open the link and enter any numbers for the usage fields, then hit āGenerate Insightsā and āView Chartsā - no setup needed.
I built a Digital Carbon Footprint Calculator ā a web app where you input your daily digital habits (emails sent, HD/4K streaming hours, cloud storage, calls, web browsing, crypto transactions) and it estimates your COā footprint in real time, breaking it down by activity with charts and translating the number into a relatable equivalent (trees needed per year to offset it). The trickiest part was redesigning the UI to make dense data feel approachable ā going from a flat, static layout to a dashboard with collapsible sections (emission factors, charts, tree impact) so it explains the āwhyā behind the number instead of just spitting it out. Iām proudest of the emissions-factor transparency table, since it turns the tool from a black-box calculator into something that actually teaches people where their digital carbon cost comes from. To test it, just open index.html, plug in some usage numbers on the left panel, hit āGenerate Insights,ā and explore the breakdown pie chart, comparison bar chart, and tree-impact card on the right....
|
1792878695.3164299
|
1793742695.3164299
|
|
33582
|
air by @dylankaru | Stardance
|
dylankaru
|
2
|
62.0
|
968
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T08:42:38Z", "hours": 25.0, "multiplier": 17.33, "payout": 426, "blessing": "neutral", "text": "air is a lightweight macOS dashboard that collapses your morning routine into one glance. Thereās no more opening five different apps just to check the weather, news, and whatās on today. Genuinely made organising my day so much easier since now I have a place I can easily access to see what I have left in the day and just stats about the day in general. Version 2.0.0 is here. Yay! Iāve added a bunch of new cards, those being the list generator, world clock, unit converter, RNG generator, public IP viewer, and a QR code generator. Iāve also added a few new features, those being temporary cards which let you view a single card as a floating overlay without adding it permanently to your dashboard; and spaces which act as separate card lists which support different themes. It was pretty difficult doing figuring out the QR code generator but I eventually made it work well. Air v2 now supports a minimum of macOS Sonoma (14), which is earlier than previous versions so thatās a good thing too. A project demo video will be available to watch on the projects ReadMe if you canāt/donāt want to download it :)", "repo": "https://github.com/dylankaru/air", "demo": "https://github.com/dylankaru/air/releases/tag/v1.0.1"}, {"ship_num": 2, "ts": "2026-08-26T04:01:39Z", "hours": 37.0, "multiplier": 14.95, "payout": 542, "blessing": "neutral", "text": "air is a lightweight macOS dashboard that collapses your morning routine into one glance. Thereās no more opening five different apps just to check the weather, news, and whatās on today. Genuinely made organising my day so much easier since now I have a place I can easily access to see what I have left in the day and just stats about the day in general. The audio player was definitely the hardest part, having to quickly rundown on AppleScript and then also learn how to interact with macOSās Now Playing system. I ended up finding an external CLI tool called nowplaying-cli by Kirtan Shah and others to pull metadata from it. Iām very, very happy with how this entire project turned, this is to date the best Swift project Iāve ever made by far, but I only plan to improve from here. Air requires a computer running at least macOS 26 and using an arm processor (so Apple Silicon) to run. macOS may also show a security warning on first launch, if it does just right-click the app and choose open to get past it.", "repo": "https://github.com/dylankaru/air", "demo": "https://github.com/dylankaru/air/releases/tag/v1.0.1"}]...
|
[{"post_id": 72490, "ts": "202 [{"post_id": 72490, "ts": "2026-09-23T02:25:22Z", "hours": 2.6056, "text": "Ive finished spaces, which have configurable keybinds that let users navigate through different layouts of cards. Different spaces can have different names, use different themes and have different cards. Adding this actually let me fix a few bugs that I didnāt know I had, mainly with the keybind recorder where after a keybind was set, if a valid keybind was still typed on the keyboard (after the alleged recording state was over) it would rebind it anyway."}, {"post_id": 72116, "ts": "2026-09-22T06:15:24Z", "hours": 3.6028, "text": "I finally got around to adding things to air, since im also doing another ysws thing, but Iāve finally got around to making the temporary card system; it basically acts as a overlay over the normal UI and can be opened using Cmd + K . Thereās a search bar to search thru all registered cards. I plan to add spaces either tonight and tomorrow, and then air will be ready to ship again :)"}, {"post_id": 68010, "ts": "2026-09-14T11:31:44Z", "hours": 3.9642, "text": "Ive added two new both pretty simple cards, an IP card that shows your public ipv4 (and 6 if available) and a qr code generator card for any reachable web address. It took a while to figure out how to generate the qr code but coreimage has a way to help me render it. Iām not really sure how else to add to the IP card, but the QR code card has a bunch of customisability features including changing the colour and style of elements in the qr code whilst still being readable. The card can also export the code as a png :)"}, {"post_id": 65198, "ts": "2026-09-10T05:02:34Z", "hours": 2.4389, "text": "So Iāve made new cards now, an RNG card because why not and a configurable world clock. Nothing really too hard with these, tbh they are very simple cards; but they are meant to be so thatās most likely gonna be good for a future update iykwim ;)"}, {"post_id": 64057, "ts": "2026-09-08T05:54:40Z", "hours": 1.1375, "text": "Hi Iāve created a unit conversion card. I initially created my own conversion system which I thought was alright but then I found out that Foundation has built in conversions so I remodelled it to just be a UI front."}, {"post_id": 62854, "ts": "2026-09-06T11:55:24Z", "hours": 1.0897, "text": "Hello Iāve added swipe and click gestures to the news card to make it possible to navigate thru the different news articles, which was a good feature that my friend suggested so thanks to him. Iāve also decided what I want to do for v1.2 and possibly even a v2 since it seems like a large enough deal to release a new version š± Hereās what iām thinking: for v1.2: ā unit converter ā world clock ā public ip ā random number generator ā countdown ā calc ā qr code generator/link shortener (maybe) ā colour picker ā word of the day so basically more cards, but theres a reason: for v2 ā spaces, basically different layouts of cards that can have different cards ā temporary cards, summoning and focusing cards for sort amounts of time and then dismissing them I think this might be a good roadmap for air. I hope you will enjoy using the new air app as much as I will enjoy making it :)"}, {"post_id": 62129, "ts": "2026-09-05T11:47:24Z", "hours": 5.3814, "text": "This one took a while. I made a list generator card because I needed a way to actually remember what exercises to do, but it can be generalised for any sort of random list generation that you may need to do consistently. The hard part was making rules, which basically tell the generator when to change the odds of any specific category or item in general. Initially I was going to make it so that the user would have to use Swift to do it themselves, but that would make it inaccessible to an extent so I decided to just add rules as block based components, though they are now much more restricted."}, {"post_id": 60202, "ts": "2026-09-02T13:00:08Z", "hours": 2.9028, "text": "Iāve gotten feedback from the ship (tysm for all the feedback) and based off it Iāve made some changes to air and am also planning to change more. First of alll the to do card is now called the notes card since you can add multiple pages for different kinds of notes you may want to quickly jot down, this was my own volition not any feedback. I think the most useful feedback I got was setting the minimum deployment too high i.e. macos 26, and yes that was just because I was too lazy to change all the glass elements, but it turns it was ez (adding themes was harder) so now the minimum deployment is probably 14, though idk how to actually test it on an older os. I just made a new modifier that checked the version once rather than running the check in every single instance of the glass elements.."}, {"post_id": 57344, "ts": "2026-08-29T13:53:47Z", "hours": 1.4575, "text": "After taking a day off, I took a look at air, which at the time I was very proud off, but now I realise that itās horrenda(saurus rex, those who know).. Today I added a new velvet style (might change the colours of this one but I need a second opinion) and spent the rest of the time just fixed some padding inconsistencies, minor UX upgrades, and a few other bugs; mainly the eyesore caused by the lack of proper colouring of non-text elements using the text colour, dividers looking out of place and bad in general, and the bugs with the to do list, being that overflow extended the card and non-multiline entries. The reason I thought it was ready to ship is because I had no idea what else to put, but now I have many ideas to that will hopefully improve the UX of the app. In the coming days Iām thinking of added a few new cards, adding new features to existing cards to make them more useful, and fixing other bugs that Iāve noticed."}, {"post_id": 54886, "ts": "2026-08-26T03:07:20Z", "hours": 10.5944, "text": "Hi So finally I added resizing the cards with a draggable UI gesture, and added themes thanks to skueās suggestion (ty kind soul š) and a system stats card as well as a website/app shortcuts card because I had no idea what else to add. I added a dark, green, brown, blue and pink theme which differ to the original light (which is technically beige) theme, my personal favourite is the brown."}, {"post_id": 52191, "ts": "2026-08-22T08:57:46Z", "hours": 5.1172, "text": "Well hello there Ive added a clipboard manager because my raycast beta broke and i cannot be bothered reinstalling, also this ones easier to access so imo its a lot better. I also revamped the calendar card and internet speed test. I am thinking of adding more the to speed test like ping, but idk what else to add in the space but its daijyoubu i will find something to put there. I also revamped the news card so the text wasnt cut off, a couple of my friends noticed it and told me. Idk if i mentioned this in the previous devlog but i also changed the settings view instantiation so that if someone (myself too) can have an easier time adding a settings page for a card, as they are passed through at the same time so ye. Thanks for reading"}, {"post_id": 49368, "ts": "2026-08-18T04:40:24Z", "hours": 5.6594, "text": "Hello Iāve added 3 new cards: a pomodoro style timer card with adjustable time lengths, a calendar access card that (after granting permission) retrieves your next closest event, and a network card that checks your internet speed. I plan to add a few more cards, but most importantly (to me at least) is adding two features: A layout customiser that lets you change the organisational layout of the cards A guide on how to (theoretically) add oneās own cards, granted said person knows basic SwiftUI Thanks for reading :)"}, {"post_id": 46918, "ts": "2026-08-14T13:51:06Z", "hours": 8.9567, "text": "Hello again Iāve added a few more features since last time so yay thatās good. Iāve created a settings page where configuration of the existing cards is possible, for example atm u can change the info the weather card shows, and settings to configure the streak (i nearly spelt it configurate lol). Iāll be honest, Iām mostly proud of the audio player, since that took a very long time and it was a suggestion from a friend. Itās actually kinda handy coz even if spotify/music isnt open it will still start playing from it, and it can also control video sources from youtube from your browser yk, that took a long time to figure out."}, {"post_id": 45042, "ts": "2026-08-11T08:54:20Z", "hours": 6.5256, "text": "Hello Hi, this is my first devlog, I donāt really know what to put here so Iāll be brief. Iāve finished setting up the basic infrastructure for the cards, so now all thatās left to do is make more cards and add customisation features. Iāve currently done a greeting panel that uses cards to do so, also a weather card, news card and to do card, though they all need improvement and polishing of the design. Iāve also set up a backend api on a server of mine to run all my api requests to groq (for greeting), weatherapi.com (for calculating the time, what else would i do with this š”) and newsdata.io without exposing my api keys Thanks"}]...
|
Title: air by @dylankaru | Stardance
Devlogs:
Hel Title: air by @dylankaru | Stardance
Devlogs:
Hello Hi, this is my first devlog, I donāt really know what to put here so Iāll be brief. Iāve finished setting up the basic infrastructure for the cards, so now all thatās left to do is make more cards and add customisation features. Iāve currently done a greeting panel that uses cards to do so, also a weather card, news card and to do card, though they all need improvement and polishing of the design. Iāve also set up a backend api on a server of mine to run all my api requests to groq (for greeting), weatherapi.com (for calculating the time, what else would i do with this š”) and newsdata.io without exposing my api keys Thanks
Hello again Iāve added a few more features since last time so yay thatās good. Iāve created a settings page where configuration of the existing cards is possible, for example atm u can change the info the weather card shows, and settings to configure the streak (i nearly spelt it configurate lol). Iāll be honest, Iām mostly proud of the audio player, since that took a very long time and it was a suggestion from a friend. Itās actually kinda handy coz even if spotify/music isnt open it will still start playing from it, and it can also control video sources from youtube from your browser yk, that took a long time to figure out.
Hello Iāve added 3 new cards: a pomodoro style timer card with adjustable time lengths, a calendar access card that (after granting permission) retrieves your next closest event, and a network card that checks your internet speed. I plan to add a few more cards, but most importantly (to me at least) is adding two features: A layout customiser that lets you change the organisational layout of the cards A guide on how to (theoretically) add oneās own cards, granted said person knows basic SwiftUI Thanks for reading :)
Well hello there Ive added a clipboard manager because my raycast beta broke and i cannot be bothered reinstalling, also this ones easier to access so imo its a lot better. I also revamped the calendar card and internet speed test. I am thinking of adding more the to speed test like ping, but idk what else to add in the space but its daijyoubu i will find something to put there. I also revamped the news card so the text wasnt cut off, a couple of my friends noticed it and told me. Idk if i mentioned this in the previous devlog but i also changed the settings view instantiation so that if someone (myself too) can have an easier time adding a settings page for a card, as they are passed through at the same time so ye. Thanks for reading
Hi So finally I added resizing the cards with a draggable UI gesture, and added themes thanks to skueās suggestion (ty kind soul š) and a system stats card as well as a website/app shortcuts card because I had no idea what else to add. I added a dark, green, brown, blue and pink theme which differ to the original light (which is technically beige) theme, my personal favourite is the brown.
After taking a day off, I took a look at air, which at the time I was very proud off, but now I realise that itās horrenda(saurus rex, those who know).. Today I added a new velvet style (might change the colours of this one but I need a second opinion) and spent the rest of the time just fixed some padding inconsistencies, minor UX upgrades, and a few other bugs; mainly the eyesore caused by the lack of proper colouring of non-text elements using the text colour, dividers looking out of place and bad in general, and the bugs with the to do list, being that overflow extended the card and non-multiline entries. The reason I thought it was ready to ship is because I had no idea what else to put, but now I have many ideas to that will hopefully improve the UX of the app. In the coming days Iām thinking of added a few new cards, adding new features to existing cards to make them more useful, and fixing other bugs that Iāve noticed.
Iāve gotten feedback from the ship (tysm for all the feedback) and based off it Iāve made some changes to air and am also planning to change more. First of alll the to do card is now called the notes card since you can add multiple pages for different kinds of notes you may want to quickly jot down, this was my own volition not any feedback. I think the most useful feedback I got was setting the minimum deployment too high i.e. macos 26, and yes that was just because I was too lazy to change all the glass elements, but it turns it was ez (adding themes was harder) so now the minimum deployment is probably 14, though idk how to actually test it on an older os. I just made a new modifier that checked the version once rather than running the check in every single instance of the glass elements..
This one took a while. I made a list generator card because I needed a way to actually remember what exercises to do, but it can be generalised for any sort of random list generation that you may need to do consistently. The hard part was making rules, which basically tell the generator when to change the odds of any specific category or item in general. Initially I was going to make it so that the user would have to use Swift to do it themselves, but that would make it inaccessible to an extent so I decided to just add rules as block based components, though they are now much more restricted.
Hello Iāve added swipe and click gestures to the news card to make it possible to navigate thru the different news articles, which was a good feature that my friend suggested so thanks to him. Iāve also decided what I want to do for v1.2 and possibly even a v2 since it seems like a large enough deal to release a new version š± Hereās what iām thinking: for v1.2: ā unit converter ā world clock ā public ip ā random number generator ā countdown ā calc ā qr code generator/link shortener (maybe) ā colour picker ā word of the day so basically more cards, but theres a reason: for v2 ā spaces, basically different layouts of cards that can have different cards ā temporary cards, summoning and focusing cards for sort amounts of time and then dismissing them I think this might be a good roadmap for air. I hope you will enjoy using the new air app as much as I will enjoy making it :)
Hi Iāve created a unit conversion card. I initially created my own conversion system which I thought was alright but then I found out that Foundation has built in conversions so I remodelled it to just be a UI front.
So Iāve made new cards now, an RNG card because why not and a configurable world clock. Nothing really too hard with these, tbh they are very simple cards; but they are meant to be so thatās most likely gonna be good for a future update iykwim ;)
Ive added two new both pretty simple cards, an IP card that shows your public ipv4 (and 6 if available) and a qr code generator card for any reachable web address. It took a while to figure out how to generate the qr code but coreimage has a way to help me render it. Iām not really sure how else to add to the IP card, but the QR code card has a bunch of customisability features including changing the colour and style of elements in the qr code whilst still being readable. The card can also export the code as a png :)
I finally got around to adding things to air, since im also doing another ysws thing, but Iāve finally got around to making the temporary card system; it basically acts as a overlay over the normal UI and can be opened using Cmd + K . Thereās a search bar to search thru all registered cards. I plan to add spaces either tonight and tomorrow, and then air will be ready to ship again :)
Ive finished spaces, which have configurable keybinds that let users navigate through different layouts of cards. Different spaces can have different names, use different themes and have different cards. Adding this actually let me fix a few bugs that I didnāt know I had, mainly with the keybind recorder where after a keybind was set, if a valid keybind was still typed on the keyboard (after the alleged recording state was over) it would rebind it anyway.
Ships:
air is a lightweight macOS dashboard that collapses your morning routine into one glance. Thereās no more opening five different apps just to check the weather, news, and whatās on today. Genuinely made organising my day so much easier since now I have a place I can easily access to see what I have left in the day and just stats about the day in general. The audio player was definitely the hardest part, having to quickly rundown on AppleScript and then also learn how to interact with macOSās Now Playing system. I ended up finding an external CLI tool called nowplaying-cli by Kirtan Shah and others to pull metadata from it. Iām very, very happy with how this entire project turned, this is to date the best Swift project Iāve ever made by far, but I only plan to improve from here. Air requires a computer running at least macOS 26 and using an arm processor (so Apple Silicon) to run. macOS may also show a security warning on first launch, if it does just right-click the app and choose open to get past it.
air is a lightweight macOS dashboard that collapses your morning routine into one glance. Thereās no more opening five different apps just to check the weather, news, and whatās on today. Genuinely made organising my day so much easier since now I have a place I can easily access to see what I have left in the day and just stats about the day in general. Version 2.0.0 is here. Yay! Iāve added a bunch of new cards, those being the list generator, world clock, unit converter, RNG generator, public IP viewer, and a QR code generator. Iāve also added a few new features, those being temporary cards which let you view a single card as a floating overlay without adding it permanently to your dashboard; and spaces which act as separate card lists which support different themes. It was pretty difficult doing figuring out the QR code generator but I eventually made it work well. Air v2 now supports a minimum of macOS Sonoma (14), which is earlier than previous versions so thatās a good thing too. A project demo video will be available to watch on the projects ReadMe if you canāt/donāt want to download it :)...
|
1792990486.9976816
|
1793076886.9976816
|
|
33617
|
OutreachOS by @Athan | Stardance
|
Athan
|
2
|
16.0
|
162
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T06:46:41Z", "hours": 13.0, "multiplier": 9.84, "payout": 126, "blessing": "neutral", "text": "Shipping OutreachOS again after ship #1. I ripped the dark teal āops consoleā look and rebuilt the whole app as a sketchbook (paper, doodles, sticky notes) based on my old high-school notebook portfolio. added sticky call scripts, status chips, optional weekly quests, and a one-click Try Demo so nobody hunts for passwords. You can upload the excel sheets and it automatically registers any niches or countries you target +_+ Since then itās been on a real domain ( https://outreachos.techxtreme.me ) , Premium works via email request (no KYC rabbit hole), and people actually used it. biggest bug from that: Excel import was picky about headers. a sheet with Number instead of Phone Number imported with empty phones and no warning. fixed that ā messy labels map now, phones/addresses/maps links get cleaned, and you get a warning if something still looks wrong. UI Was laggy, compressed it and made it still retain the good UI :) Also fixed some bugs in UX experience. What it is (for those who are seeing it first time): Basically its a personal lead vault for cold outreach. dump an Excel sheet, filter by niche/country/status, dial with a sticky script, keep track of who you already hit. You go from bunch of excel rows and columns to a Full Lead manager (as one of the reviewers said :D) how to test (2 min): open https://outreachos.techxtreme.me hit Peek the demo / Sign in as demo Poke the table, flip a status, open the sticky script, try vector view if you have a messy .xlsx, import it (or check /import-guide ) repo: https://github.com/its-techxtreme/OutreachOS", "repo": "https://github.com/its-techxtreme/OutreachOS", "demo": "https://outreachos.techxtreme.me"}, {"ship_num": 2, "ts": "2026-07-15T15:49:31Z", "hours": 3.0, "multiplier": 14.69, "payout": 36, "blessing": "neutral", "text": "This project is called OutreachOS, if you have every tried starting your business or freelancing, thereās always this major question: So how are we going to get clients? Most of the people stumble upon the same idea, which is Cold Calling, Cold messaging or something on the similar side. This is because its the most common way to ACTUALLY get clients without spending funds on running ads, etc. This method, though it works, requires lots of effort. You have to find contact information of people that might me interested in your services, save the numbers, call them, shoot your shot, and much more. But to make it actually feasible, you have to manage a lot of contact and potential client information. I was dealing with the same issue. So, I came up with this Idea, What if I could just feed my excel sheets (like many due to separate batches of calls) have one place to easily search up some clientās info when i need it (like in case of a callback), also be able to export my complete database in Just ONE CLICK to my scraper & Wallah ! there you have it, thatās Exactly what OutreachOS is. Tho I went ahead and added more features to proper categorize each lead based on country, niche, date, etc as well as added to vector view to easily visualise what categories we have been targeting and where we can focus more. Since OutreachOS involves importing contact information, I have made it so that it has a built in authentication system, so only you can log into your database. But if you want to test it out I have created a demo account (it has some restrictions unlike the admin/owner account to prevent destructive use) with some of my old lead contact data, Please use the following credentials to log in : Email: [email protected] Password:OutreachOS@13 Thank you for checking out my project, I am really glad you did ;)", "repo": "https://github.com/its-techxtreme/OutreachOS", "demo": "https://outreachos.techxtreme.me"}]...
|
[{"post_id": 43779, "ts": "202 [{"post_id": 43779, "ts": "2026-08-09T06:37:04Z", "hours": 1.6928, "text": "DEVLOG 6 ā small fixes that impacted lags in some devices +_= after some peopleās reviews i sat with the real feedback. sketchbook looked cool but felt laggy on some devices. login was annoying. filters were confusing. tutorial glitched on phones. and yeah ā a security issue popped up that i had to actually fix, not shrug off. this update is the cleanup after that. what reviews complained about the UI felt heavy (scroll lag, blurry glass, doodles that somehow made the page wheeze) password managers / paste on login were janky niche + country filters felt empty or unclear until youād imported something demo tutorial broke on mobile / pointed at nothing sometimes security issue found in review ā patched and scrubbed what i changed :) speed without killing the vibe. ripped expensive paper grain / blur, dialed back idle vector vault work, kept the margin doodles with cheap CSS bobbing instead of Framer looping forever. doodles stay. lag mostly doesnāt. auth that behaves. forms play nicer with autofill. signup/reset donāt overshare. login + username checks got rate limits. admin denials stay generic. security + small UX. fixed the issue, cleaned public templates, tightened gates. logo in the header finally goes home when you click it. filters + tutorial. niche/country lists make more sense post-import (searchable when long). demo tutorial doesnāt trap you on phones anymore. still sketchbook didnāt āsimplify into a boring dashboard.ā paper, doodles, sticky scripts ā still there. just less of the stuff that made a laptop cry :D"}, {"post_id": 37766, "ts": "2026-07-30T18:01:23Z", "hours": 0.8275, "text": "DEVLOG #5 ā messy sheets, finally cleaned I got some real feedback after people poked OutreachOS. Many people loved the Tutorial feature :D one stuck tho: import was too picky about column names. someone uploaded a normal lead sheet with Number instead of Phone Number , and we silently imported leads with empty phones. thatās the opposite of āwe clean your messy list.ā so #5 is basically: a bug fix where we stop being precious about headers, and actually clean the sheet. flexible headers import now treats common scrapes / hand labels as the same field: phone: Number, Mob, Ph No, Contact, WhatsApp, Cell, Landline⦠name: Shop, Firm, Brand, Client, Restaurant, Company⦠maps: Gmaps, Maps Link, Place URL, Source URL, bare goo.gl⦠address bits: City / State / PIN / Zip get merged when the sheet splits them house / plot / GST ānumberā columns stay ignored so we donāt invent fake phones. cleaning that actually helps phones: scientific notation from Excel, leading 0 / 91 , multi-value cells ( a / b ā first good one) maps: HYPERLINK() formulas and scheme-less short links junk cells: N/A , NULL , blanks stripped if a column still looks like phones but didnāt map, the import result warns instead of pretending everythingās fine other polish since #4 Premium email fallback when no mail app (ācopy the draftā) admin can disable accounts with a reason OG preview image fixed + sized to 1200Ć630 try it- live: https://outreachos.techxtreme.me import guide: import-guide repo: github.com/its-techxtreme/OutreachOS if your sheet still confuses the mapper, send me the header row ā thatās how this list grows."}, {"post_id": 33507, "ts": "2026-07-23T14:48:22Z", "hours": 4.0389, "text": "DEVLOG #4 ā custom domain, premium, and the boring-but-necessary stuff ig after #3 i thought i was mostly done. then reality showed up with a checklist: put it on a real domain, try to make money somehow without blowing up KYC š
, stop looking sketchy to Google, and clean the security alerts GitHub kept waving at me =_+ so this update is less ānew shiny featureā and more āmake it feel like an actual product.ā domain OutreachOS now lives at https://outreachos.techxtreme.me (not just the random vercel.app link). feels way better saying that out loud. premium (without card chaos) I wanted paid plans but razorpay needs PAN/KYC and i wasnāt doing that yet. so /pricing is live (ā¹1499 / $15) and ābuyā just opens an email request with your username filled in. i grant Premium from an admin dashboard after payment. not fancy but works i hope so. admin + SEO + accessibility Built a small Google-only admin console for managing users / Premium. submitted the sitemap in Search Console. added an accessibility notice in the footer because i had heard that not inlcuding one can get you sued š š security Dependabot was yelling about Next.js (and some other packages). upgraded properly and fixed it :) also tightened a few CodeQL things (sanitization, api key hashing, logging). npm audit is clean on my end now. chatgpt agent the old Custom GPT ā API intake isnāt a product feature anymore. excel import is the real path. i left the agent code in the repo as scaffolding if i bring GPT intake back in v2. tiny personal note the sketchbook UI idea didnāt come from a template. i found my 10th-grade japanese paper notebook portfolio while cleaning my laptop files, and it finally clicked ā paper notes for contacts just fits outreach :D try it- live: https://outreachos.techxtreme.me demo: peek the demo / sign in as demo (no password typing) repo: github.com/its-techxtreme/OutreachOS if somethingās weird, tell me. iām still polishing the edges, but the core is solid. ready to ship? yeah. for real this time ig. the app is on a proper domain, signup/demo/login work, excel import + vault features are live, Premium has a path that doesnāt depend on unfinished KYC, admin can actually manage accounts, SEO/accessibility arenāt invisible, and the scary dependency alerts got patched instead of shrugged off. not claiming itās perfect forever ā just that OutreachOS is in a state where iām comfortable saying: ship it. poke holes if you find them."}, {"post_id": 31263, "ts": "2026-07-19T15:13:01Z", "hours": 6.2803, "text": "DEVLOG #3 ā ship got rejected so i rebuilt the vibe ok so after #2 i actually shipped OutreachOS and got changes requested pretty fast. shipwrights said: ⤠the css looked like every other ai-made site ⤠add a couple features i came up with to make it more fun ⤠stop making people use demo creds that stung a little but they were right. this whole stretch was just me answering those instead of pretending it was finished :-D the ui glowup :) the biggest thing was the ui. before it was this dark teal ops console look. clean but soulless, like a saas template trying too hard. I tried to think of a idea, then I remembered my high school portfolio, I based in on a notebook pages style ppt theme. i ripped that dead ui out and went sketchbook / doodle for basically the whole app. Now its paper backgrounds, doodle borders, sticky note energy, little hand-drawn characters hanging around. landing is brand first with the constellation field and doodles floating so it feels like mine instead of a product pitch. login and signup match that vibe now too, same paper/doodle language instead of looking bolted on. dashboard feels like a notebook you actually use on call days instead of glass cards stacked forever. lead table is still built for real work but the chrome around it looks hand drawn. vector view (the niche/country constellation graph) is still there, it just fits better now. settings and account got the same treatment so flipping between pages doesnt feel like you teleported into a different app. Basically whole point was stop looking generated. the fun features then the fun features. sticky call scripts were the one i wanted most. you get a general sticky plus niche ones, with placeholders like business, niche, location, phone that you speak through live. edit, save, reset. no ai writing your pitch. just a note that stays while you dial, which sounds small until youre mid call and dont want to lose your place. call statuses got real too: New, Called, No Answer, Callback, Replied, Converted, Archived, and theyre one click chips so youre not hunting a dropdown mid call. also built a quest board (To gamify cold-calling). optional on purpose. opt in when you set a username or later in account, get 3 random quests a week, progress when you move lead statuses. kinda dumb, kinda motivating, weirdly keeps me dialing cuz its easy to get discouraged while cold-calling T_T import path got better too. any niche/country still works, clearer row errors when excel is messy, filters refresh after import, PLUS an import guide page and an excel template so people stop guessing columns. signup / demo (no cred treasure hunt) for the demo creds complaint i added a Try Demo button that just signs you in. shipwrights and anyone bored can open the site and click once. no more copying email/password out of a post. you can also signup normally or continue with google if you want your own vault. also pushed google oauth out of testing only so random google accounts actually work now, which took longer than it should have because google cloud is annoying. tiny invisible stuff nobody screenshots: passwords still go through supabase auth hashed, secrets stay in env, mfa secrets encrypted at rest. boring but i slept better after doing it ^_^ try it site is https://outreachos-online.vercel.app if you try it: open it, hit Try Demo or signup, pick a lead, flip a status chip, open the sticky script, peek at quests. tell me if anything feels weird or still looks template-y. im trying to catch that before i reship. im hyped to ship again. still got a few final polish bits (maybe a student .me domain, google brand verification for the logo, tiny ui cleanup) then im hitting request re-certification. if youre free break it before then. i actually want the feedback this time tbh."}, {"post_id": 26658, "ts": "2026-07-11T16:28:34Z", "hours": 2.3753, "text": "DEVLOG #2 ā Almost done + please break it for me Ok so OutreachOS is basically complete. like the main stuff actually works now and im not waking up scared that login or imports are gonna explode. this session was mostly cleanup + making it safe enough to show people: ⤠fixed the admin side so the dashboard shows my username instead of dumping my email on screen (that was lowkey embarrassing) ⤠admin can import excel sheets kinda aggressively (up to 200/min) which is what i needed for bulk lead dumps ⤠added a public demo account so yall can poke around without me handing out admin access ⤠demo is locked down on purpose: 1 upload per hour, and you only see 100 contacts (mixed niches + countries so it still feels real) ⤠also shipped a cleaner url finally site: https://outreachos-online.vercel.app Demo login (pls use this one):ā> ⢠emailāļø: [email protected] ⢠password: OutreachOS@13 if you try it, tell me what feels weird. broken filters, confusing UI, import failing, whatever. i want people to actually click around and roast it a bit before i call this fully finished. anyway yeah. core app is mostly done. next stuff is just polish from real feedback. go test it if youāre bored."}, {"post_id": 26463, "ts": "2026-07-11T08:40:04Z", "hours": 0.8275, "text": "What is OutreachOS? OutreachOS is a B2B lead management platform for cold outreach. ChatGPT agents collect business data from Google Maps and submit it through a secure API. The system deduplicates leads, stores them in Supabase, and provides a real-time dashboard for filtering, searching, and CSV export. Stack: Next.js 16 Ā· React 19 Ā· Supabase PostgreSQL Ā· Tailwind CSS Ā· shadcn/ui Ā· Vercel Development Timeline Phase 0 ā Foundation ā
Bootstrapped the Next.js project, testing toolchain (Jest + Playwright), Cursor rules, and phase-based workflow. Phase 1 ā Database & Agent API ā
Built the leads schema with maps_url deduplication, pg_trgm fuzzy search, and the first /api/agent/leads endpoint with X-Agent-Secret auth. Phase 2 ā Dashboard UI ā
Shipped the dashboard: filter toolbar, prospect matrix table, metrics panel, pagination, and Stitch-aligned design components. Phase 3 ā Data Managementā
Connected the UI to live data ā debounced search, multi-filter state, CSV export, URL-synced filters. Hit 85%+ test coverage. Phase 4 ā API Integration & ChatGPT Setup ā
Multi-strategy auth (agent secret + Bearer API keys) Tiered rate limiting, structured logging, Prometheus metrics /api/health and /api/metrics endpoints OpenAPI spec + ChatGPT Custom GPT documentation 190 tests passing Ā· repo published publicly on GitHub Links:- Repo: https://github.com/its-techxtreme/OutreachOS README: https://github.com/its-techxtreme/OutreachOS/blob/develop/README.md Devlog file: https://github.com/its-techxtreme/OutreachOS/blob/develop/docs/DEVLOG.md"}]...
|
Title: OutreachOS by @Athan | Stardance
Devlogs:
Title: OutreachOS by @Athan | Stardance
Devlogs:
What is OutreachOS? OutreachOS is a B2B lead management platform for cold outreach. ChatGPT agents collect business data from Google Maps and submit it through a secure API. The system deduplicates leads, stores them in Supabase, and provides a real-time dashboard for filtering, searching, and CSV export. Stack: Next.js 16 Ā· React 19 Ā· Supabase PostgreSQL Ā· Tailwind CSS Ā· shadcn/ui Ā· Vercel Development Timeline Phase 0 ā Foundation ā
Bootstrapped the Next.js project, testing toolchain (Jest + Playwright), Cursor rules, and phase-based workflow. Phase 1 ā Database & Agent API ā
Built the leads schema with maps_url deduplication, pg_trgm fuzzy search, and the first /api/agent/leads endpoint with X-Agent-Secret auth. Phase 2 ā Dashboard UI ā
Shipped the dashboard: filter toolbar, prospect matrix table, metrics panel, pagination, and Stitch-aligned design components. Phase 3 ā Data Managementā
Connected the UI to live data ā debounced search, multi-filter state, CSV export, URL-synced filters. Hit 85%+ test coverage. Phase 4 ā API Integration & ChatGPT Setup ā
Multi-strategy auth (agent secret + Bearer API keys) Tiered rate limiting, structured logging, Prometheus metrics /api/health and /api/metrics endpoints OpenAPI spec + ChatGPT Custom GPT documentation 190 tests passing Ā· repo published publicly on GitHub Links:- Repo: https://github.com/its-techxtreme/OutreachOS README: https://github.com/its-techxtreme/OutreachOS/blob/develop/README.md Devlog file: https://github.com/its-techxtreme/OutreachOS/blob/develop/docs/DEVLOG.md
DEVLOG #2 ā Almost done + please break it for me Ok so OutreachOS is basically complete. like the main stuff actually works now and im not waking up scared that login or imports are gonna explode. this session was mostly cleanup + making it safe enough to show people: ⤠fixed the admin side so the dashboard shows my username instead of dumping my email on screen (that was lowkey embarrassing) ⤠admin can import excel sheets kinda aggressively (up to 200/min) which is what i needed for bulk lead dumps ⤠added a public demo account so yall can poke around without me handing out admin access ⤠demo is locked down on purpose: 1 upload per hour, and you only see 100 contacts (mixed niches + countries so it still feels real) ⤠also shipped a cleaner url finally site: https://outreachos-online.vercel.app Demo login (pls use this one):ā> ⢠emailāļø: [email protected] ⢠password: OutreachOS@13 if you try it, tell me what feels weird. broken filters, confusing UI, import failing, whatever. i want people to actually click around and roast it a bit before i call this fully finished. anyway yeah. core app is mostly done. next stuff is just polish from real feedback. go test it if youāre bored.
DEVLOG #3 ā ship got rejected so i rebuilt the vibe ok so after #2 i actually shipped OutreachOS and got changes requested pretty fast. shipwrights said: ⤠the css looked like every other ai-made site ⤠add a couple features i came up with to make it more fun ⤠stop making people use demo creds that stung a little but they were right. this whole stretch was just me answering those instead of pretending it was finished :-D the ui glowup :) the biggest thing was the ui. before it was this dark teal ops console look. clean but soulless, like a saas template trying too hard. I tried to think of a idea, then I remembered my high school portfolio, I based in on a notebook pages style ppt theme. i ripped that dead ui out and went sketchbook / doodle for basically the whole app. Now its paper backgrounds, doodle borders, sticky note energy, little hand-drawn characters hanging around. landing is brand first with the constellation field and doodles floating so it feels like mine instead of a product pitch. login and signup match that vibe now too, same paper/doodle language instead of looking bolted on. dashboard feels like a notebook you actually use on call days instead of glass cards stacked forever. lead table is still built for real work but the chrome around it looks hand drawn. vector view (the niche/country constellation graph) is still there, it just fits better now. settings and account got the same treatment so flipping between pages doesnt feel like you teleported into a different app. Basically whole point was stop looking generated. the fun features then the fun features. sticky call scripts were the one i wanted most. you get a general sticky plus niche ones, with placeholders like business, niche, location, phone that you speak through live. edit, save, reset. no ai writing your pitch. just a note that stays while you dial, which sounds small until youre mid call and dont want to lose your place. call statuses got real too: New, Called, No Answer, Callback, Replied, Converted, Archived, and theyre one click chips so youre not hunting a dropdown mid call. also built a quest board (To gamify cold-calling). optional on purpose. opt in when you set a username or later in account, get 3 random quests a week, progress when you move lead statuses. kinda dumb, kinda motivating, weirdly keeps me dialing cuz its easy to get discouraged while cold-calling T_T import path got better too. any niche/country still works, clearer row errors when excel is messy, filters refresh after import, PLUS an import guide page and an excel template so people stop guessing columns. signup / demo (no cred treasure hunt) for the demo creds complaint i added a Try Demo button that just signs you in. shipwrights and anyone bored can open the site and click once. no more copying email/password out of a post. you can also signup normally or continue with google if you want your own vault. also pushed google oauth out of testing only so random google accounts actually work now, which took longer than it should have because google cloud is annoying. tiny invisible stuff nobody screenshots: passwords still go through supabase auth hashed, secrets stay in env, mfa secrets encrypted at rest. boring but i slept better after doing it ^_^ try it site is https://outreachos-online.vercel.app if you try it: open it, hit Try Demo or signup, pick a lead, flip a status chip, open the sticky script, peek at quests. tell me if anything feels weird or still looks template-y. im trying to catch that before i reship. im hyped to ship again. still got a few final polish bits (maybe a student .me domain, google brand verification for the logo, tiny ui cleanup) then im hitting request re-certification. if youre free break it before then. i actually want the feedback this time tbh.
DEVLOG #4 ā custom domain, premium, and the boring-but-necessary stuff ig after #3 i thought i was mostly done. then reality showed up with a checklist: put it on a real domain, try to make money somehow without blowing up KYC š
, stop looking sketchy to Google, and clean the security alerts GitHub kept waving at me =_+ so this update is less ānew shiny featureā and more āmake it feel like an actual product.ā domain OutreachOS now lives at https://outreachos.techxtreme.me (not just the random vercel.app link). feels way better saying that out loud. premium (without card chaos) I wanted paid plans but razorpay needs PAN/KYC and i wasnāt doing that yet. so /pricing is live (ā¹1499 / $15) and ābuyā just opens an email request with your username filled in. i grant Premium from an admin dashboard after payment. not fancy but works i hope so. admin + SEO + accessibility Built a small Google-only admin console for managing users / Premium. submitted the sitemap in Search Console. added an accessibility notice in the footer because i had heard that not inlcuding one can get you sued š š security Dependabot was yelling about Next.js (and some other packages). upgraded properly and fixed it :) also tightened a few CodeQL things (sanitization, api key hashing, logging). npm audit is clean on my end now. chatgpt agent the old Custom GPT ā API intake isnāt a product feature anymore. excel import is the real path. i left the agent code in the repo as scaffolding if i bring GPT intake back in v2. tiny personal note the sketchbook UI idea didnāt come from a template. i found my 10th-grade japanese paper notebook portfolio while cleaning my laptop files, and it finally clicked ā paper notes for contacts just fits outreach :D try it- live: https://outreachos.techxtreme.me demo: peek the demo / sign in as demo (no password typing) repo: github.com/its-techxtreme/OutreachOS if somethingās weird, tell me. iām still polishing the edges, but the core is solid. ready to ship? yeah. for real this time ig. the app is on a proper domain, signup/demo/login work, excel import + vault features are live, Premium has a path that doesnāt depend on unfinished KYC, admin can actually manage accounts, SEO/accessibility arenāt invisible, and the scary dependency alerts got patched instead of shrugged off. not claiming itās perfect forever ā just that OutreachOS is in a state where iām comfortable saying: ship it. poke holes if you find them.
DEVLOG #5 ā messy sheets, finally cleaned I got some real feedback after people poked OutreachOS. Many people loved the Tutorial feature :D one stuck tho: import was too picky about column names. someone uploaded a normal lead sheet with Number instead of Phone Number , and we silently imported leads with empty phones. thatās the opposite of āwe clean your messy list.ā so #5 is basically: a bug fix where we stop being precious about headers, and actually clean the sheet. flexible headers import now treats common scrapes / hand labels as the same field: phone: Number, Mob, Ph No, Contact, WhatsApp, Cell, Landline⦠name: Shop, Firm, Brand, Client, Restaurant, Company⦠maps: Gmaps, Maps Link, Place URL, Source URL, bare goo.gl⦠address bits: City / State / PIN / Zip get merged when the sheet splits them house / plot / GST ānumberā columns stay ignored so we donāt invent fake phones. cleaning that actually helps phones: scientific notation from Excel, leading 0 / 91 , multi-value cells ( a / b ā first good one) maps: HYPERLINK() formulas and scheme-less short links junk cells: N/A , NULL , blanks stripped if a column still looks like phones but didnāt map, the import result warns instead of pretending everythingās fine other polish since #4 Premium email fallback when no mail app (ācopy the draftā) admin can disable accounts with a reason OG preview image fixed + sized to 1200Ć630 try it- live: https://outreachos.techxtreme.me import guide: import-guide repo: github.com/its-techxtreme/OutreachOS if your sheet still confuses the mapper, send me the header row ā thatās how this list grows.
DEVLOG 6 ā small fixes that impacted lags in some devices +_= after some peopleās reviews i sat with the real feedback. sketchbook looked cool but felt laggy on some devices. login was annoying. filters were confusing. tutorial glitched on phones. and yeah ā a security issue popped up that i had to actually fix, not shrug off. this update is the cleanup after that. what reviews complained about the UI felt heavy (scroll lag, blurry glass, doodles that somehow made the page wheeze) password managers / paste on login were janky niche + country filters felt empty or unclear until youād imported something demo tutorial broke on mobile / pointed at nothing sometimes security issue found in review ā patched and scrubbed what i changed :) speed without killing the vibe. ripped expensive paper grain / blur, dialed back idle vector vault work, kept the margin doodles with cheap CSS bobbing instead of Framer looping forever. doodles stay. lag mostly doesnāt. auth that behaves. forms play nicer with autofill. signup/reset donāt overshare. login + username checks got rate limits. admin denials stay generic. security + small UX. fixed the issue, cleaned public templates, tightened gates. logo in the header finally goes home when you click it. filters + tutorial. niche/country lists make more sense post-import (searchable when long). demo tutorial doesnāt trap you on phones anymore. still sketchbook didnāt āsimplify into a boring dashboard.ā paper, doodles, sticky scripts ā still there. just less of the stuff that made a laptop cry :D
Ships:
This project is called OutreachOS, if you have every tried starting your business or freelancing, thereās always this major question: So how are we going to get clients? Most of the people stumble upon the same idea, which is Cold Calling, Cold messaging or something on the similar side. This is because its the most common way to ACTUALLY get clients without spending funds on running ads, etc. This method, though it works, requires lots of effort. You have to find contact information of people that might me interested in your services, save the numbers, call them, shoot your shot, and much more. But to make it actually feasible, you have to manage a lot of contact and potential client information. I was dealing with the same issue. So, I came up with this Idea, What if I could just feed my excel sheets (like many due to separate batches of calls) have one place to easily search up some clientās info when i need it (like in case of a callback), also be able to export my complete database in Just ONE CLICK to my scraper & Wallah ! there you have it, thatās Exactly what OutreachOS is. Tho I went ahead and added more features to proper categorize each lead based on country, niche, date, etc as well as added to vector view to easily visualise what categories we have been targeting and where we can focus more. Since OutreachOS involves importing contact information, I have made it so that it has a built in authentication system, so only you can log into your database. But if you want to test it out I have created a demo account (it has some restrictions unlike the admin/owner account to prevent destructive use) with some of my old lead contact data, Please use the following credentials to log in : Email: [email protected] Password:OutreachOS@13 Thank you for checking out my project, I am really glad you did ;)
Shipping OutreachOS again after ship #1. I ripped the dark teal āops consoleā look and rebuilt the whole app as a sketchbook (paper, doodles, sticky notes) based on my old high-school notebook portfolio. added sticky call scripts, status chips, optional weekly quests, and a one-click Try Demo so nobody hunts for passwords. You can upload the excel sheets and it automatically registers any niches or countries you target +_+ Since then itās been on a real domain ( https://outreachos.techxtreme.me ) , Premium works via email request (no KYC rabbit hole), and people actually used it. biggest bug from that: Excel import was picky about headers. a sheet with Number instead of Phone Number imported with empty phones and no warning. fixed that ā messy labels map now, phones/addresses/maps links get cleaned, and you get a warning if something still looks wrong. UI Was laggy, compressed it and made it still retain the good UI :) Also fixed some bugs in UX experience. What it is (for those who are seeing it first time): Basically its a personal lead vault for cold outreach. dump an Excel sheet, filter by niche/country/status, dial with a sticky script, keep track of who you already hit. You go from bunch of excel rows and columns to a Full Lead manager (as one of the reviewers said :D) how to test (2 min): open https://outreachos.techxtreme.me hit Peek the demo / Sign in as demo Poke the table, flip a status, open the sticky script, try vector view if you have a messy .xlsx, import it (or check /import-guide ) repo: https://github.com/its-techxtreme/OutreachOS...
|
1792875210.0856667
|
1793739210.0856667
|
|
33771
|
AtomSim by @yaasshh | Stardance
|
yaasshh
|
2
|
79.17
|
847
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-05T11:10:43Z", "hours": 12.0, "multiplier": 13.8, "payout": 163, "blessing": "neutral", "text": "AtomSim is a website I built that lets you actually see what an atom looks like. You pick an element, or hydrogen, and pick which electron shell you want to look at. Then it draws it. Not a cartoon of dots going around a circle like the diagrams in school, the real shape, the cloud where the electron actually is. Some of them look like spheres, some look like dumbbells, some look like weird four leaf clovers. All of that is real, it just falls out of the math. You can spin it around, slice it in half, look at it as a graph instead, or look at the colored lines of light the atom gives off when it gets hot. That last one is how we know what stars are made of, and you can watch it happen. The part I care about most is that it never fakes anything. Every single number on the screen carries a label saying how it was made. Some are exact, straight from the equations. Some are computed numerically with an error bar attached. Some are approximations, and it says which physical effects it left out. And a few are deliberate āwhat ifā experiments, like turning off the rule that stops two electrons sitting in the same place, just to see the atom collapse. Those are labeled too. So if a picture is pretty rather than true, the app tells you. I wanted something a curious fifteen year old could poke at for an hour and come away with a correct picture in their head, not a comfortable wrong one. It runs in a browser, works on a phone, and every view has its own link you can share. PS: It also has mobile view now!", "repo": "https://github.com/yaasshh09/AtomSim", "demo": "https://atomsim.fly.dev"}, {"ship_num": 2, "ts": "2026-08-07T18:00:05Z", "hours": 58.0, "multiplier": 18.43, "payout": 684, "blessing": "neutral", "text": "Atom Sim is a browser app that solves atoms from scratch and shows you the result. Hydrogen comes out of closed-form math, real atoms like carbon and argon come out of a Hartree-Fock solver I wrote, and you can look at any of them as a 3D electron cloud, a 2D slice, a radial plot, an energy-level diagram or an emission spectrum. You can also break physics on purpose: switch off the Pauli exclusion principle, switch off electron exchange, or type in your own potential V(r) and see what kind of atom falls out. The rule I built everything around is that the model never quietly lies. Every number carries a tag saying how it was made: exact, numerical, approximation, counterfactual, or just a visual choice. That tag follows the number from the solver all the way to the label on screen. What was challenging Hartree-Fock was brutal. The angular coefficients in the Fock operator are easy to get slightly wrong, and when you do, the solver still converges and hands you smooth, beautiful, completely wrong orbitals. Nothing crashes, nothing warns you. I had to re-derive the algebra instead of nudging numbers until a benchmark matched. Error bars were the other trap. Mine looked great for a while and were simply lying, because the real error was coming from the box size, not the grid spacing I was measuring. Argon also took about an hour on a uniform grid until I moved to an exponential mesh, which cut it to seconds. What Iām proud of That itās honest. Plenty of simulators draw a pretty orbital and say nothing about where it came from. Mine tells you, and the tests enforce it. The spectra are checked against real NIST data inside the test suite, so a physics regression fails CI rather than shipping quietly. How to test it Itās live at https://atomsim.fly.dev . The server sleeps when nobody is using it, so the very first load can take around 15 seconds. After that itās quick. Good things to try: pick n=3, l=1 and rotate the cloud, then flip to Plane view for the cross-section. Switch the element to argon. Open a guided tour if you want the short version. Every view is a shareable URL, so you can link someone to an exact state.", "repo": "https://github.com/yaasshh09/AtomSim", "demo": "https://atomsim.fly.dev"}]...
|
[{"post_id": 82647, "ts": "202 [{"post_id": 82647, "ts": "2026-10-25T14:39:55Z", "hours": 2.1, "text": "Devlog #10 Since last time Iāve mostly been adding new physics, so hereās the list. Momentum space: The Radial view now shows how fast the electron is likely to be moving, not just where it is. This one is exact math too. Decay cascade: An excited hydrogen atom doesnāt fall straight to the bottom. It drops down step by step, and now you can watch every path it might take and how likely each one is. Lasers: Thereās a new laser panel where you shine light on the atom and watch the electron flip back and forth between two levels (these are called Rabi oscillations). Relativity: For one-electron atoms you can now see the Dirac version of the wavefunction, which is what you get when you add Einsteinās relativity to quantum mechanics. The proton radius puzzle: The nucleus isnāt a perfect point. It has a size, and that shifts the energy levels a tiny bit. Two different experiments measured the protonās size and got different answers, and you can see both predictions side by side. Antihydrogen: You can now make an atom out of antimatter. It matches normal hydrogen exactly, and the app explains why. Nuclear mass slider: You can drag the nucleus mass anywhere from as light as an electron to heavier than tritium and watch the atom change as you go. All of this is getting pushed to the live site now, so it should be up soon!"}, {"post_id": 82281, "ts": "2026-10-24T13:30:25Z", "hours": 5.4447, "text": "Devlog #9 God Ive got a lot show since the last update. First, the atom moves now. If you mix two states, you can watch the electron cloud slosh back and forth. Arrows show where the electron is flowing, and you can color the cloud by its phase. I also changed the look to seem more natural and less AI, I added a plain white theme with a dark mode, grids on every graph, and buttons to save any graph as a picture or a spreadsheet. Then I added a bunch of other features such as: Potassium and calcium, the first atoms past argon. Thereās a mini experiment showing why 4s fills before 3d, even when 3d is lower in energy. A table that checks my calculations against real lab measurements for every atom from helium to calcium. sp, sp2 and sp3 hybrid orbitals, the shapes chemists use for bonds. Lines showing exactly where the electron can never be (nodes), and a scale bar in real units. A āmeasure the electronā button that drops dots one at a time until they build up the real shape. Some smaller things: Every graph has a āReproduce in Pythonā box with code you can copy. Any number can be cited with one click. You can export 3D models for printing. Shared links now preview the actual orbital. Thereās an API guide, a changelog and a feedback link. I also made the site faster by saving common results, and I fixed the phase colors so colorblind people can tell them apart. I still need to test it in a browser and then deploy it so stay tuned for that!"}, {"post_id": 79261, "ts": "2026-10-13T07:33:52Z", "hours": 1.625, "text": "Devlog #8 This update was mostly about cleaning things up. Firstly, I went through the whole site with a checklist of things that make websites feel cheap or fake. I took out the gradients, made the rounded pill-shaped buttons and badges square, and replaced an emoji warning icon with a normal one. Then I added a Terms page and a Privacy page, linked at the bottom of the side panel. The privacy page explains what the app does and doesnāt track, which isnāt much. All of this was to remove any āALL AIā msgs ive received I also changed the license. AtomSim used to be MIT, which meant anyone could take it and sell it. Now itās CC BY-NC 4.0, so people can still use it, share it and change it, as long as they credit me and donāt make money off it. Every font on the site is now Poppins, and itās bundled with the app so it doesnāt have to load from Google. After that I reread all the text on the site and in the README and fixed anything that sounded robotic. That included a few curly quotes and one sentence that sounded like a press release. I also rewrote the line explaining āprovenanceā so it just says what it means. All of that is live on the site now. Next up is making the atom move. If you mix two states, the electron cloud sloshes back and forth at the exact frequency of the light the atom gives off. Iāve planned it out and Iām starting on it next. I also wrote down a big list of other ideas for later."}, {"post_id": 62105, "ts": "2026-09-05T11:07:13Z", "hours": 5.0147, "text": "DEVLOG : 7? Since that last update, the cleanup turned into actual features. I finished the frontend narrator pass. Every disclosure string, every physics note, every view intro is now plain prose instead of the app talking about itself in first person. Then I went after the parts of the app that were just annoying to use. Plots are zoomable now. Wheel to zoom, drag to pan, on all five analytic views. I also built a small notation layer so the ASCII the engine emits gets typeset properly at render time, subscripts and superscripts where they belong, without dragging in a whole math library. The big one was mobile. The app used to just refuse to render below a certain width. Now it works down to 320px: a proper mobile shell, view tabs instead of a sidebar list, controls that collapse, and per-view width floors so nothing spills sideways. That took a lot of small fixes I did not expect, a fixed SVG viewBox that hid fixed-width text, and an overflow rule that was already scrolling the page sideways before I touched anything. After that, the URL got a real history. Back and Forward actually work now, and moving between orbitals pushes a history entry while flipping a display toggle just replaces one. Added a copy-link button and keyboard shortcuts for stepping through n, l, m and switching views. Last thing, the title is now just AtomSim. The tagline was doing nothing for anyone."}, {"post_id": 61040, "ts": "2026-09-03T19:03:50Z", "hours": 6.8269, "text": "Devlog #5 or 6??? Since the site went live, most of the work has been cleanup rather than new physics. The whole app used to talk in first person. Every explanation said āI compute thisā or āwhat Iām showing you.ā It read like the code was narrating itself, which was odd. So I went through the entire Python engine module by module and rewrote it in plain technical prose. Thatās done. Then I started on the frontend, which had way more of it. The disclosure text, the physics notes under each equation, the view intros. Thatās still in progress. there were 2 things I had to be extra careful about. Some of those strings are checked word-for-word by tests, so rewording one has potential to break complete the build by itself. In addition, I also tidied the repo layout for public viewing, fixed a deploy pipeline failure, and added privacy-safe visitor counting. Right now iām cutting padding, and pitching it so a high schooler can follow it without boring a physics grad."}, {"post_id": 42762, "ts": "2026-08-07T17:14:45Z", "hours": 7.2728, "text": "Devlog: Phase 30 to now Phase 30, Instrument frontend. Redesigned the UI to read like a physics instrument. Bundled the fonts, dropped four fields nothing actually measured, and learned that text-transform: uppercase turns 3d into 3D and α² into A², so uppercase is now confined to section headings only. Phase 31, Guided tours. Added walkthroughs that drive the app for you. Nearly shipped a tour that quoted the wrong hydrogen energy because it skipped reduced mass, and fixed two spotlight rings that measured their target before layout settled. Absorption band cleanup. Abutting sub-pixel SVG rects were drawing lines that werenāt in the data. Settled the mean vs deepest-per-column question and fixed decade ticks that failed at both ends of the axis. Housekeeping. Moved specs and plans out to docs/specs and docs/plans. Personal ignores went into .git/info/exclude so no tracked file carries tooling names. Rate limiting. Sized the burst from the appās real fan-out per action rather than from click counts. The n=6 row plus an auto-refetch was quietly doubling the load. Web hosting. Containerized and deployed to Fly.io as a single process. Cold start from a snapshot is about 1.6s, occasionally up to 22s if the snapshot gets discarded. Argon solves in 2.8s on the deployed box against 1.4s locally. Suspended machines cost nothing, so occasional use stays near a dollar or two a month. Also added rate-limiter logging that identifies refused clients, and confirmed the proxy overwrites forged IP headers, so spoofing doesnāt get you past the limit."}, {"post_id": 41525, "ts": "2026-08-05T19:44:43Z", "hours": 10.8628, "text": "DevLog #3: New Frontend, Plus Small Bits Phase 22 to now. P22, distinguishable electrons. Turned off exchange in Hartree-Fock. Electrons still repel, they just stop being identical. Marked COUNTERFACTUAL. Helium came back exactly zero, so it was gone. P24, Pauli off. Dropped the occupancy cap and everything falls into the 1s. Argon becomes 1s^18 and the periodic table stops existing. P22ās slow convergence was shells, not exchange. P25, isosurfaces. Never size a box on the grid you draw on. The fraction error bar is blind to the box. A 90% p orbital is one piece, not two lobes. P26, HF in 3D. Now in Cloud, Plane, Radial and Surface. Whole-atom and one-orbital radii move opposite ways. Fidelity tiers were literals under the solve. P27, total density. Added D(r), the shape both models describe. A uniform grid steps over the 1s peak, so the test asserts convergence rate, not tolerance. P28, screened density. GSZ gets its own D(r). A density needs its own box. A log axis quietly breaks area = electron count. P29, comparison. Both models on one axis, gap measured. Caught a noise floor, a real number printing as zero, and a wrong caption. Sulfur, chlorine. Split ATOM_KEYS into identity and capability. Derive flags, never pass them. A client check exposed a deep-link race. P30, instrument frontend. Fonts bundled for offline. āedge is a border colour, never a fill. Dropped four fields with no engine behind them. Uppercase turned 3d into 3D, so headings only now. Plot polish. Zoomed line profile labels offsets from window centre, since absolute wavelengths printed the same string six times. Drew xyz axes through the cloud. Absorption, curve of growth. Stopped a zero equivalent width stretching the axis 300 decades. The band drew anti-aliasing seams as absorption lines where transmission was really 0.98 to 1.00. It now bins one column per unit and draws the deepest sample, beside what a real detector pixel would see."}, {"post_id": 38322, "ts": "2026-07-31T17:22:25Z", "hours": 11.9403, "text": "DevLog: Phase 18 to now P18, line shapes. Real lines are not infinitely thin spikes. Atoms move (Doppler) and get jostled by neighbours (pressure), so each line spreads into a bell shape, a Voigt profile. I added that, plus a zoom so you can look at one line up close. The useful trick was a flux-closure check: whatever area a line has before broadening, it has to still have after. That caught two grid bugs that were invisible on screen. P19, optical depth. Until now every line acted as if light escaped freely. In a thick gas strong lines saturate, so doubling the atoms stops doubling the brightness. That is the curve of growth. Lesson: decide which regime a line sits in from the physics, not by eyeballing the slope. Also the wavelength window has to widen as the column thickens, or you clip the wings you are trying to measure. P20, absorption. The mirror of emission. Shine a continuum through the gas, look at what is missing. The trap was that 14 hydrogen lines land on only 6 distinct wavelengths, so matching a profile to its source line by wavelength quietly pairs the wrong ones. I key on the transition instead. P21, Hartree-Fock. The big one. Instead of a fitted screening formula, each electron feels a potential built from all the others, solved over and over until it stops changing. That gets me sulfur and chlorine, which the old model could not touch, plus ions with no preset. Two things worth remembering: the solverās own error bar was lying to me and needed re-deriving, and what made convergence fast was not a clever algorithm, it was the right mixing constant. P22, cleanup. Made features honest about where they apply. The classical ghost and the force-law lab only make sense for one-electron atoms, so they explain themselves now instead of erroring on a screened atom. Fixed He+ breaking every API call, because the ā+ā was never URL-encoded. Unknown systems say so instead of spinning. Right now I am fixing hint text that escapes its panel on narrow screens."}, {"post_id": 35332, "ts": "2026-07-26T17:27:28Z", "hours": 27.8683, "text": "Atom_Sim: Physics Simulator Dev Log An atom simulator built on one rule: Every number has a label ( exact , numerical , approximation , counterfactual , or visual_liberty ). Unlabeled numbers are treated as bugs. Stack: Python physics engine -> React + Three.js frontend. Phase Logs Phases 1ā3: The Hydrogen Foundation Hydrogen Core: Uses exact math for energies and wavefunctions. Validates its electron clouds using statistical KS tests. Numerical Solver: Solves the Schrƶdinger equation for custom shapes. It calculates its own accuracy by halving the grid spacing. Constants Lab: Allows changing fundamental constants (hbar, e, c). It proves that changing individual units changes nothing if the ratio between them stays the same. Classical Ghost: Shows old Bohr orbits collapsing, proving why classical physics cannot explain atoms. Phases 4ā6: Altered Potential & Real Atoms Fake Physics: Simulates universes with non-standard forces (like Yukawa or power laws) under a clear warning banner. Screened Atoms: Models elements from Helium to Argon using historic 1974 data. If an element (like Sulfur or Chlorine) lacks clean data, it is left out entirely rather than guessed. Phases 7ā12: Fields, Relativity & Nuance Dirac Math: Tracks exact relativistic shifts and highlights what the math misses (the Lamb shift). External Fields: Simulates atoms splitting under magnetic fields (Zeeman effect) and electric fields (Stark effect). Hyperfine: Models the 21 cm hydrogen line using the precise electron-to-proton mass ratio. Phases 13ā17: Light, Speed & Thermodynamics Fast Math: Uses a custom integration trick to calculate atomic lifetimes exactly and 13x faster. Doublet Ratios: Proves via quantum math (Wigner 6j) why certain spectral lines are twice as bright as others. Heat Sliders: Combines Saha and Boltzmann equations to turn raw rates into actual visible light. Dragging the temperature slider smoothly hands Lyman lines over to Balmer lines. Phase 18: Line Profiles (Current Work) Replaces infinitely sharp lines with realistic Voigt profiles using three combined factors: Natural Width: A Lorentzian shape caused by how fast an excited state decays. Doppler Width: A Gaussian shape caused by thermal motion. Works perfectly for normal hydrogen, positronium, and muonic hydrogen. Instrumental Width: A Gaussian blur based on the userās chosen telescope or sensor resolution. Note on Missing Physics: Collision/pressure broadening is not simulated. Instead of a text disclaimer, the app calculates how large that missing effect would be and prints the raw margin of error right next to the chart. Core Development Rules No Smoke Tests: Every physics feature must pass an automated math test. No Live Fetches: All reference data is saved locally with a hard citation. No Silent Approximations: If the code cannot calculate something honestly, it stops and prints exactly what data is missing."}]...
|
Title: AtomSim by @yaasshh | Stardance
Devlogs:
A Title: AtomSim by @yaasshh | Stardance
Devlogs:
Atom_Sim: Physics Simulator Dev Log An atom simulator built on one rule: Every number has a label ( exact , numerical , approximation , counterfactual , or visual_liberty ). Unlabeled numbers are treated as bugs. Stack: Python physics engine -> React + Three.js frontend. Phase Logs Phases 1ā3: The Hydrogen Foundation Hydrogen Core: Uses exact math for energies and wavefunctions. Validates its electron clouds using statistical KS tests. Numerical Solver: Solves the Schrƶdinger equation for custom shapes. It calculates its own accuracy by halving the grid spacing. Constants Lab: Allows changing fundamental constants (hbar, e, c). It proves that changing individual units changes nothing if the ratio between them stays the same. Classical Ghost: Shows old Bohr orbits collapsing, proving why classical physics cannot explain atoms. Phases 4ā6: Altered Potential & Real Atoms Fake Physics: Simulates universes with non-standard forces (like Yukawa or power laws) under a clear warning banner. Screened Atoms: Models elements from Helium to Argon using historic 1974 data. If an element (like Sulfur or Chlorine) lacks clean data, it is left out entirely rather than guessed. Phases 7ā12: Fields, Relativity & Nuance Dirac Math: Tracks exact relativistic shifts and highlights what the math misses (the Lamb shift). External Fields: Simulates atoms splitting under magnetic fields (Zeeman effect) and electric fields (Stark effect). Hyperfine: Models the 21 cm hydrogen line using the precise electron-to-proton mass ratio. Phases 13ā17: Light, Speed & Thermodynamics Fast Math: Uses a custom integration trick to calculate atomic lifetimes exactly and 13x faster. Doublet Ratios: Proves via quantum math (Wigner 6j) why certain spectral lines are twice as bright as others. Heat Sliders: Combines Saha and Boltzmann equations to turn raw rates into actual visible light. Dragging the temperature slider smoothly hands Lyman lines over to Balmer lines. Phase 18: Line Profiles (Current Work) Replaces infinitely sharp lines with realistic Voigt profiles using three combined factors: Natural Width: A Lorentzian shape caused by how fast an excited state decays. Doppler Width: A Gaussian shape caused by thermal motion. Works perfectly for normal hydrogen, positronium, and muonic hydrogen. Instrumental Width: A Gaussian blur based on the userās chosen telescope or sensor resolution. Note on Missing Physics: Collision/pressure broadening is not simulated. Instead of a text disclaimer, the app calculates how large that missing effect would be and prints the raw margin of error right next to the chart. Core Development Rules No Smoke Tests: Every physics feature must pass an automated math test. No Live Fetches: All reference data is saved locally with a hard citation. No Silent Approximations: If the code cannot calculate something honestly, it stops and prints exactly what data is missing.
DevLog: Phase 18 to now P18, line shapes. Real lines are not infinitely thin spikes. Atoms move (Doppler) and get jostled by neighbours (pressure), so each line spreads into a bell shape, a Voigt profile. I added that, plus a zoom so you can look at one line up close. The useful trick was a flux-closure check: whatever area a line has before broadening, it has to still have after. That caught two grid bugs that were invisible on screen. P19, optical depth. Until now every line acted as if light escaped freely. In a thick gas strong lines saturate, so doubling the atoms stops doubling the brightness. That is the curve of growth. Lesson: decide which regime a line sits in from the physics, not by eyeballing the slope. Also the wavelength window has to widen as the column thickens, or you clip the wings you are trying to measure. P20, absorption. The mirror of emission. Shine a continuum through the gas, look at what is missing. The trap was that 14 hydrogen lines land on only 6 distinct wavelengths, so matching a profile to its source line by wavelength quietly pairs the wrong ones. I key on the transition instead. P21, Hartree-Fock. The big one. Instead of a fitted screening formula, each electron feels a potential built from all the others, solved over and over until it stops changing. That gets me sulfur and chlorine, which the old model could not touch, plus ions with no preset. Two things worth remembering: the solverās own error bar was lying to me and needed re-deriving, and what made convergence fast was not a clever algorithm, it was the right mixing constant. P22, cleanup. Made features honest about where they apply. The classical ghost and the force-law lab only make sense for one-electron atoms, so they explain themselves now instead of erroring on a screened atom. Fixed He+ breaking every API call, because the ā+ā was never URL-encoded. Unknown systems say so instead of spinning. Right now I am fixing hint text that escapes its panel on narrow screens.
DevLog #3: New Frontend, Plus Small Bits Phase 22 to now. P22, distinguishable electrons. Turned off exchange in Hartree-Fock. Electrons still repel, they just stop being identical. Marked COUNTERFACTUAL. Helium came back exactly zero, so it was gone. P24, Pauli off. Dropped the occupancy cap and everything falls into the 1s. Argon becomes 1s^18 and the periodic table stops existing. P22ās slow convergence was shells, not exchange. P25, isosurfaces. Never size a box on the grid you draw on. The fraction error bar is blind to the box. A 90% p orbital is one piece, not two lobes. P26, HF in 3D. Now in Cloud, Plane, Radial and Surface. Whole-atom and one-orbital radii move opposite ways. Fidelity tiers were literals under the solve. P27, total density. Added D(r), the shape both models describe. A uniform grid steps over the 1s peak, so the test asserts convergence rate, not tolerance. P28, screened density. GSZ gets its own D(r). A density needs its own box. A log axis quietly breaks area = electron count. P29, comparison. Both models on one axis, gap measured. Caught a noise floor, a real number printing as zero, and a wrong caption. Sulfur, chlorine. Split ATOM_KEYS into identity and capability. Derive flags, never pass them. A client check exposed a deep-link race. P30, instrument frontend. Fonts bundled for offline. āedge is a border colour, never a fill. Dropped four fields with no engine behind them. Uppercase turned 3d into 3D, so headings only now. Plot polish. Zoomed line profile labels offsets from window centre, since absolute wavelengths printed the same string six times. Drew xyz axes through the cloud. Absorption, curve of growth. Stopped a zero equivalent width stretching the axis 300 decades. The band drew anti-aliasing seams as absorption lines where transmission was really 0.98 to 1.00. It now bins one column per unit and draws the deepest sample, beside what a real detector pixel would see.
Devlog: Phase 30 to now Phase 30, Instrument frontend. Redesigned the UI to read like a physics instrument. Bundled the fonts, dropped four fields nothing actually measured, and learned that text-transform: uppercase turns 3d into 3D and α² into A², so uppercase is now confined to section headings only. Phase 31, Guided tours. Added walkthroughs that drive the app for you. Nearly shipped a tour that quoted the wrong hydrogen energy because it skipped reduced mass, and fixed two spotlight rings that measured their target before layout settled. Absorption band cleanup. Abutting sub-pixel SVG rects were drawing lines that werenāt in the data. Settled the mean vs deepest-per-column question and fixed decade ticks that failed at both ends of the axis. Housekeeping. Moved specs and plans out to docs/specs and docs/plans. Personal ignores went into .git/info/exclude so no tracked file carries tooling names. Rate limiting. Sized the burst from the appās real fan-out per action rather than from click counts. The n=6 row plus an auto-refetch was quietly doubling the load. Web hosting. Containerized and deployed to Fly.io as a single process. Cold start from a snapshot is about 1.6s, occasionally up to 22s if the snapshot gets discarded. Argon solves in 2.8s on the deployed box against 1.4s locally. Suspended machines cost nothing, so occasional use stays near a dollar or two a month. Also added rate-limiter logging that identifies refused clients, and confirmed the proxy overwrites forged IP headers, so spoofing doesnāt get you past the limit.
Devlog #5 or 6??? Since the site went live, most of the work has been cleanup rather than new physics. The whole app used to talk in first person. Every explanation said āI compute thisā or āwhat Iām showing you.ā It read like the code was narrating itself, which was odd. So I went through the entire Python engine module by module and rewrote it in plain technical prose. Thatās done. Then I started on the frontend, which had way more of it. The disclosure text, the physics notes under each equation, the view intros. Thatās still in progress. there were 2 things I had to be extra careful about. Some of those strings are checked word-for-word by tests, so rewording one has potential to break complete the build by itself. In addition, I also tidied the repo layout for public viewing, fixed a deploy pipeline failure, and added privacy-safe visitor counting. Right now iām cutting padding, and pitching it so a high schooler can follow it without boring a physics grad.
DEVLOG : 7? Since that last update, the cleanup turned into actual features. I finished the frontend narrator pass. Every disclosure string, every physics note, every view intro is now plain prose instead of the app talking about itself in first person. Then I went after the parts of the app that were just annoying to use. Plots are zoomable now. Wheel to zoom, drag to pan, on all five analytic views. I also built a small notation layer so the ASCII the engine emits gets typeset properly at render time, subscripts and superscripts where they belong, without dragging in a whole math library. The big one was mobile. The app used to just refuse to render below a certain width. Now it works down to 320px: a proper mobile shell, view tabs instead of a sidebar list, controls that collapse, and per-view width floors so nothing spills sideways. That took a lot of small fixes I did not expect, a fixed SVG viewBox that hid fixed-width text, and an overflow rule that was already scrolling the page sideways before I touched anything. After that, the URL got a real history. Back and Forward actually work now, and moving between orbitals pushes a history entry while flipping a display toggle just replaces one. Added a copy-link button and keyboard shortcuts for stepping through n, l, m and switching views. Last thing, the title is now just AtomSim. The tagline was doing nothing for anyone.
Devlog #8 This update was mostly about cleaning things up. Firstly, I went through the whole site with a checklist of things that make websites feel cheap or fake. I took out the gradients, made the rounded pill-shaped buttons and badges square, and replaced an emoji warning icon with a normal one. Then I added a Terms page and a Privacy page, linked at the bottom of the side panel. The privacy page explains what the app does and doesnāt track, which isnāt much. All of this was to remove any āALL AIā msgs ive received I also changed the license. AtomSim used to be MIT, which meant anyone could take it and sell it. Now itās CC BY-NC 4.0, so people can still use it, share it and change it, as long as they credit me and donāt make money off it. Every font on the site is now Poppins, and itās bundled with the app so it doesnāt have to load from Google. After that I reread all the text on the site and in the README and fixed anything that sounded robotic. That included a few curly quotes and one sentence that sounded like a press release. I also rewrote the line explaining āprovenanceā so it just says what it means. All of that is live on the site now. Next up is making the atom move. If you mix two states, the electron cloud sloshes back and forth at the exact frequency of the light the atom gives off. Iāve planned it out and Iām starting on it next. I also wrote down a big list of other ideas for later.
Devlog #9 God Ive got a lot show since the last update. First, the atom moves now. If you mix two states, you can watch the electron cloud slosh back and forth. Arrows show where the electron is flowing, and you can color the cloud by its phase. I also changed the look to seem more natural and less AI, I added a plain white theme with a dark mode, grids on every graph, and buttons to save any graph as a picture or a spreadsheet. Then I added a bunch of other features such as: Potassium and calcium, the first atoms past argon. Thereās a mini experiment showing why 4s fills before 3d, even when 3d is lower in energy. A table that checks my calculations against real lab measurements for every atom from helium to calcium. sp, sp2 and sp3 hybrid orbitals, the shapes chemists use for bonds. Lines showing exactly where the electron can never be (nodes), and a scale bar in real units. A āmeasure the electronā button that drops dots one at a time until they build up the real shape. Some smaller things: Every graph has a āReproduce in Pythonā box with code you can copy. Any number can be cited with one click. You can export 3D models for printing. Shared links now preview the actual orbital. Thereās an API guide, a changelog and a feedback link. I also made the site faster by saving common results, and I fixed the phase colors so colorblind people can tell them apart. I still need to test it in a browser and then deploy it so stay tuned for that!
Devlog #10 Since last time Iāve mostly been adding new physics, so hereās the list. Momentum space: The Radial view now shows how fast the electron is likely to be moving, not just where it is. This one is exact math too. Decay cascade: An excited hydrogen atom doesnāt fall straight to the bottom. It drops down step by step, and now you can watch every path it might take and how likely each one is. Lasers: Thereās a new laser panel where you shine light on the atom and watch the electron flip back and forth between two levels (these are called Rabi oscillations). Relativity: For one-electron atoms you can now see the Dirac version of the wavefunction, which is what you get when you add Einsteinās relativity to quantum mechanics. The proton radius puzzle: The nucleus isnāt a perfect point. It has a size, and that shifts the energy levels a tiny bit. Two different experiments measured the protonās size and got different answers, and you can see both predictions side by side. Antihydrogen: You can now make an atom out of antimatter. It matches normal hydrogen exactly, and the app explains why. Nuclear mass slider: You can drag the nucleus mass anywhere from as light as an electron to heavier than tritium and watch the atom change as you go. All of this is getting pushed to the live site now, so it should be up soon!
Ships:
Atom Sim is a browser app that solves atoms from scratch and shows you the result. Hydrogen comes out of closed-form math, real atoms like carbon and argon come out of a Hartree-Fock solver I wrote, and you can look at any of them as a 3D electron cloud, a 2D slice, a radial plot, an energy-level diagram or an emission spectrum. You can also break physics on purpose: switch off the Pauli exclusion principle, switch off electron exchange, or type in your own potential V(r) and see what kind of atom falls out. The rule I built everything around is that the model never quietly lies. Every number carries a tag saying how it was made: exact, numerical, approximation, counterfactual, or just a visual choice. That tag follows the number from the solver all the way to the label on screen. What was challenging Hartree-Fock was brutal. The angular coefficients in the Fock operator are easy to get slightly wrong, and when you do, the solver still converges and hands you smooth, beautiful, completely wrong orbitals. Nothing crashes, nothing warns you. I had to re-derive the algebra instead of nudging numbers until a benchmark matched. Error bars were the other trap. Mine looked great for a while and were simply lying, because the real error was coming from the box size, not the grid spacing I was measuring. Argon also took about an hour on a uniform grid until I moved to an exponential mesh, which cut it to seconds. What Iām proud of That itās honest. Plenty of simulators draw a pretty orbital and say nothing about where it came from. Mine tells you, and the tests enforce it. The spectra are checked against real NIST data inside the test suite, so a physics regression fails CI rather than shipping quietly. How to test it Itās live at https://atomsim.fly.dev . The server sleeps when nobody is using it, so the very first load can take around 15 seconds. After that itās quick. Good things to try: pick n=3, l=1 and rotate the cloud, then flip to Plane view for the cross-section. Switch the element to argon. Open a guided tour if you want the short version. Every view is a shareable URL, so you can link someone to an exact state.
AtomSim is a website I built that lets you actually see what an atom looks like. You pick an element, or hydrogen, and pick which electron shell you want to look at. Then it draws it. Not a cartoon of dots going around a circle like the diagrams in school, the real shape, the cloud where the electron actually is. Some of them look like spheres, some look like dumbbells, some look like weird four leaf clovers. All of that is real, it just falls out of the math. You can spin it around, slice it in half, look at it as a graph instead, or look at the colored lines of light the atom gives off when it gets hot. That last one is how we know what stars are made of, and you can watch it happen. The part I care about most is that it never fakes anything. Every single number on the screen carries a label saying how it was made. Some are exact, straight from the equations. Some are computed numerically with an error bar attached. Some are approximations, and it says which physical effects it left out. And a few are deliberate āwhat ifā experiments, like turning off the rule that stops two electrons sitting in the same place, just to see the atom collapse. Those are labeled too. So if a picture is pretty rather than true, the app tells you. I wanted something a curious fifteen year old could poke at for an hour and come away with a correct picture in their head, not a comfortable wrong one. It runs in a browser, works on a phone, and every view has its own link you can share. PS: It also has mobile view now!...
|
1792990059.5776522
|
1793076459.5776522
|
|
33903
|
Senior Fitness Scheduler by @cognitayohan | Starda Senior Fitness Scheduler by @cognitayohan | Stardance...
|
cognitayohan
|
2
|
4.0
|
38
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-27T03:38:56Z", "hours": 3.0, "multiplier": 11.31, "payout": 31, "blessing": "neutral", "text": "Ship #2: After reviewing community requests, I added a few more features for the app to improve its usability! The original features include you can update schedules, log in to your account, and all physical activity monitors follow CDC physical activity guidelines. This app supports both UN SDG 3 and 10 in the UN Sustainability Goals. The new features added since the last ship includes Android offline APK artifact, Emergency contact/911 easy calling during emergency, better scrolling logic, fixed dark mode, and images to showcase exercises better (picture showcases this feature). Let me know if there is anything else to add in the future! Thank you for reading this and your support on this projectš!", "repo": "https://github.com/robot3-track/Senior-Fitness-Scheduler", "demo": "https://senior-fitness-scheduler.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-13T00:13:32Z", "hours": 1.0, "multiplier": 7.99, "payout": 7, "blessing": "neutral", "text": "Ship #1: The app is up and running with the core features all functioning as supposed to! Right now you can update schedules, log in to your account, and all physical activity monitors follow CDC physical activity guidelines. This app supports both UN SDG 3 and 10 in the UN Sustainability Goals. Let me know if there is anything else to add in the future!", "repo": "https://github.com/robot3-track/Senior-Fitness-Scheduler", "demo": "https://senior-fitness-scheduler.vercel.app/"}]...
|
[{"post_id": 35575, "ts": "202 [{"post_id": 35575, "ts": "2026-07-27T03:28:15Z", "hours": 0.4836, "text": "Devlog 9: Updated scrolling features for better UI and also updated font size so mobile view can be fixed as well. In addition, I also added new exercises and images that correspond to the exercises so users can understand how the exercises are performed more accurately with no guessing!"}, {"post_id": 34765, "ts": "2026-07-25T19:04:47Z", "hours": 0.3461, "text": "Devlog 8: Added easy Android download and built new Favicon for the app"}, {"post_id": 34746, "ts": "2026-07-25T18:36:47Z", "hours": 0.5017, "text": "Devlog 7: Added new features for elderly safety! I added enhanced emergency modal contacts, with automatic-fillout on SMS/CALL for calling 911 on mobile devices upon the press of a button. Now the elderly can also add their own contacts for calling automatically. Lastly, one more integration included adding pdf export for sharing with doctors about daily routines."}, {"post_id": 34333, "ts": "2026-07-24T22:55:45Z", "hours": 0.4067, "text": "Devlog 6: I added new android files for offline access! This gives users the ability to have it on the go on Android devices, even if they are offline! I built this using Github Artifacts with android-build.yml in .github/workflows."}, {"post_id": 27966, "ts": "2026-07-13T22:30:01Z", "hours": 0.2867, "text": "Devlog 5: Completely recode page.tsx and app UI to match elderly support."}, {"post_id": 27908, "ts": "2026-07-13T20:41:20Z", "hours": 0.3103, "text": "Devlog 4: Continued to manually update UI to remove unappealing aspects in color scheme."}, {"post_id": 27811, "ts": "2026-07-13T18:13:30Z", "hours": 0.4475, "text": "Devlog 3: Updated UI to look more appealing to users and added more features to make the app more gamified."}, {"post_id": 26987, "ts": "2026-07-12T03:39:41Z", "hours": 0.5453, "text": "Devlog 2: Updated layout and favicon for the metadata of the app Included new UI format to match current health app-styles that can be seen around the world currently."}, {"post_id": 26935, "ts": "2026-07-12T00:47:00Z", "hours": 0.3681, "text": "Devlog 1: Initial Commit and Setup I created the base framework files and UI for the app, along with a clear Readme that describes the purposes of the app. Much more to come!"}]...
|
Title: Senior Fitness Scheduler by @cognitayohan | Title: Senior Fitness Scheduler by @cognitayohan | Stardance
Devlogs:
Devlog 1: Initial Commit and Setup I created the base framework files and UI for the app, along with a clear Readme that describes the purposes of the app. Much more to come!
Devlog 2: Updated layout and favicon for the metadata of the app Included new UI format to match current health app-styles that can be seen around the world currently.
Devlog 3: Updated UI to look more appealing to users and added more features to make the app more gamified.
Devlog 4: Continued to manually update UI to remove unappealing aspects in color scheme.
Devlog 5: Completely recode page.tsx and app UI to match elderly support.
Devlog 6: I added new android files for offline access! This gives users the ability to have it on the go on Android devices, even if they are offline! I built this using Github Artifacts with android-build.yml in .github/workflows.
Devlog 7: Added new features for elderly safety! I added enhanced emergency modal contacts, with automatic-fillout on SMS/CALL for calling 911 on mobile devices upon the press of a button. Now the elderly can also add their own contacts for calling automatically. Lastly, one more integration included adding pdf export for sharing with doctors about daily routines.
Devlog 8: Added easy Android download and built new Favicon for the app
Devlog 9: Updated scrolling features for better UI and also updated font size so mobile view can be fixed as well. In addition, I also added new exercises and images that correspond to the exercises so users can understand how the exercises are performed more accurately with no guessing!
Ships:
Ship #1: The app is up and running with the core features all functioning as supposed to! Right now you can update schedules, log in to your account, and all physical activity monitors follow CDC physical activity guidelines. This app supports both UN SDG 3 and 10 in the UN Sustainability Goals. Let me know if there is anything else to add in the future!
Ship #2: After reviewing community requests, I added a few more features for the app to improve its usability! The original features include you can update schedules, log in to your account, and all physical activity monitors follow CDC physical activity guidelines. This app supports both UN SDG 3 and 10 in the UN Sustainability Goals. The new features added since the last ship includes Android offline APK artifact, Emergency contact/911 easy calling during emergency, better scrolling logic, fixed dark mode, and images to showcase exercises better (picture showcases this feature). Let me know if there is anything else to add in the future! Thank you for reading this and your support on this projectš!...
|
1792993910.2245045
|
1793080310.2245045
|
|
34046
|
My Space - Save Messages by @najil_kilayil | Stard My Space - Save Messages by @najil_kilayil | Stardance...
|
najil_kilayil
|
2
|
8.0
|
28
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T14:00:12Z", "hours": 5.0, "multiplier": 4.0, "payout": 20, "blessing": "neutral", "text": "I created a website with modern UI with glasmorphism effect. The website allows you to save important notes (text form). The notes are safe from others by a localStorage PIN security system. The website is only accessible when the PIN is correct. Basic features :- PIN screen, Background animation, Animation UI, Dynamic navbar, Points system, edit-copy-remove options, Connected localstorage, Custom mouse icon etc Try it, and feel free to give feedback to improve the progress! :)", "repo": "https://github.com/najilkilayil/my-space", "demo": "https://my-space-save.vercel.app/"}, {"ship_num": 2, "ts": "2026-08-02T15:46:48Z", "hours": 3.0, "multiplier": 2.75, "payout": 8, "blessing": "neutral", "text": "I created a simple website with modern UI design and PIN security system. That allows you to save important notes (in text format) in a website. It will store in your local storage. The website is only accessible when the security PIN is correct Try it, And feel free to give feedback!", "repo": "https://github.com/najilkilayil/my-space", "demo": "https://my-space-save.vercel.app/"}]...
|
[{"post_id": 45309, "ts": "202 [{"post_id": 45309, "ts": "2026-08-11T17:53:09Z", "hours": 0.76, "text": "Devlog #9 Now, i got a another funny plan, earn points to unlock features such as copy and edit when user earn and collect the points. So i defined the points as keys and with emoji of a key which is more suitable for this website theme! So i added a div section that shows the total keys that user collects at the top-right on the website and also added how many keys are collected from each note list, so i added the keys amount on each list. And i created my own principle to calculate the keys earned per list note, The keys are calculated based on letter count. 1 key per 4 letter count. If the letter count is less than 4 the key will be 0 and if the letter count is 10 that fore the keys count is 2. that is, if letter count is not completely divisible by 4 the nearest completely divided value is selected. This is the major logic for my keys calculating system! Then i added another animation text which will show up when the user hovered on the top-right keys points section. i decided that to unlock copy feature need more than 100 and 150 keys for unlock editing feature. So i added if-else condition inside the editMsg() and copyMsg() functions, when the amount on keys is less than that of it will show up a alert with how much keys more needed to unlock that feature. Its very booring to show as default browser alerting system so i thought why should i alert this through keysinfo area. So i just created a function called infoKey() with a parameter ātextā which will help to reduce complicity and retyping the code again and again! Then to make for carzy and funny appearence changed the default mouse pointer into a key emoji and made the movement based on collect xy axis of the mouse using js and also hided the defult icon in body style area"}, {"post_id": 45211, "ts": "2026-08-11T15:17:53Z", "hours": 1.8422, "text": "Devlog #8 Today i changed the head title and subtitle from the top into the bottom with input box. And made the both sections for dynamic as well as the user focus in and focus out in the input box. Now i thought to add copy and edit options for each notes. For that i changed the render()ās html with edit and copy button tags as similar as delete button, then i created each funcion called editMsg() and copyMsg(). To work the editMsg(), when the user selects and click on the note that the user need to edit, the text will appear as well as with the input box got autofocus in and the text to be edited is automaticaly typed in the input box. Added a if-else condition to identify the user is sending new note or it is already existing and editing, if it is exisits and the user is editing then submiting again the note will rechange into new one! In copyMsg(), i simply used ddefault navigor function with clipboard connection and with the value to copy the user selected text. I just added the normal āalertā feature at first when the user click on copy and it successfully copied and when successfully edited the note. I got a plan to make the āalert notiicationsā more attactive and dynamic. So added another section div inside the bottom area div then animated as popup from bottom and going back to bottom (outside the page), with that time the heading and subhead section become small width and then came back to normal when the alert is disappeared for this animation i used js of its very complicated to re-use whenever it needs (for edit and copy button). So i created a function alertNoti() with two parameters! Then solved some scrolling bugs i found that the website is automatically scrolling down as well as according to the movement of the background dots. So i disabled all the overflow of the all elements including body and excluding section div, which make the website only scroll and show the scroll bar when the section list is overflow!"}, {"post_id": 41419, "ts": "2026-08-05T16:46:41Z", "hours": 0.8242, "text": "Devlog #7 Today, i added lock emoji icon moeving with overlapping effect animation in PIN screen using CSS and CSS function keyframe. At that time i got another idea why should i add something like this animation on the background, So i just created a tiny-dot and added the same animation function then i connected with JS to visible multiple tiny-dots at a time using for-loop with same animation. Btw i used a root value in CSS for the both animation to delay the animation according to there class count, which will gave the animation at different timeing! Then i changed the input box of the PIN screen into a completely invisible and only shows the dots so PIN with colours (as green for correct and red with shakeing the dots animation for incorrect PIN).. I got a inspiration from a reel that i saw on Instagram today where the website is completely with theme of term GLASSMORPHISM. then i thought to add this theme into my project so changes the opacity of everything into .7 and remove some of the border and background colour and some with background colour with transparent! Then I added a header at main screen with fixed position of the main and sub headings with the same theme glassmorphism effect!"}, {"post_id": 40178, "ts": "2026-08-03T16:11:22Z", "hours": 1.4983, "text": "Devlog #6 Today, i decided to change the theme and color palette of the website and mind-set to add more animations! I selected a colour palette with a bases of dark-theme which is more comfortable for the users. So i changed white-purple theme into black-blue theme. So i selected colours for all the elements and added box shadow and border outline and element shadow effect. Then i changed the PIN screen buttons into circle from a semi-rectangular shape with suitable colours and hovering effects, Then i added a simple emoji icon on the PIN screen which gave more attraction and fill up the empty space. Put all the PIN screen elements such heading and subheadings, buttons and PIN input area in a box containing a special border and effect! A added a simple transition animation between two sections (PIN Screen and Main screen) like fadeIn and fadeout animation effect! Also added the colour effect for the PIN input box that indicates the correct PIN with green and incorrect with a shake animation with red colour effect which made the PIN screen more attractive and modern look, i also added a cyan colour effect to the input when the user clickes a number button. Then change the empty state into new modern with new text format. As well as added a icon emoji on the each list menu like a pointer. As well as changed the date format 3/8/2026 into 03-Aug-2026 which make the user more easier to understand the date. Iam thinking to change the input text box into a modern look, so changed the width of the box into small and hide the submit button, the box will expand and show the submit button when the user focus on the box, and also added a āblur()ā in JS to came back to small size when the user clicks the submit button Then finally added a animation thats perfectly matches for adding or removing list menu As well as i choose some fonts style from google.fonts.com and decided to use in the website."}, {"post_id": 39520, "ts": "2026-08-02T15:07:33Z", "hours": 0.5586, "text": "Devlog #5 - Adding Deleting feature To make the website more user-friendly thought to add delete option if user needs to remove or delete the saved note! Created a function with two parameters one for the selecting the array of the user selected to delete (from localStorage) and another parameter is number of the section list to remove that section! and also added a conformation alert notification to conform the user actually needed to delete it or not! Then made the button more attractive like hovering animation and etc"}, {"post_id": 39392, "ts": "2026-08-02T10:33:33Z", "hours": 0.8483, "text": "Devlog #4 - Password System when considering about privacy and security measurements added a security PIN system that secure the list that have been saved in the localStoarge system. Now needed to save this PIN also in the localStorage and work the renderMsg() if the password is correct else doesnāt show it! PIN is linked with localstorage and simpley added a if-else condition to identify the user is new in here or not, if the PIN is not saved in localstorage can understand that the user new here, thatfore it will shows a text to create the PIN and else if there is saved PIN shows a text to enter the PIN to continue. When the user needed to create a pin added a another security condition that doesnāt allow to create if the PIN is less than 4 digit, the user strictly needed a 4 digits PIN to continue Then added a function to reset the PIN when the user forgot the PIN, user can reset everything (including list menu) by double clicking the C (resetbtn) with conforming the alert notification then the user can reset everything!"}, {"post_id": 39365, "ts": "2026-08-02T09:27:45Z", "hours": 0.6247, "text": "Devlog 3 - Working on JS Completed working on basic UI design, Now lets work on backend desk! Called all the necessary elements from HTML into JS. Then added function for the submit button to add the list menu with text that the user have entered in the input box and also added the codes that makes and get current/today date from the device and add that also into the list. Connect the list with local storage for save the list menu. For that to show the saved list when ever the user opened the website, created a function ārenderMsg()ā In renderMsg() added a if condition to show that if there is no saved list or it was a new user, show the empty state."}, {"post_id": 39321, "ts": "2026-08-02T06:56:14Z", "hours": 0.4006, "text": "Devlog #2 In this part, added a empty state when a new user or there is no saved messages , shows a custom message that indicates there is nothing saved! So added a section called āempty_stateā. Here is the demo of that!"}, {"post_id": 28498, "ts": "2026-07-14T19:44:32Z", "hours": 0.5261, "text": "About the Project It is a simple user-friendly website that user can sent texts to memorize or to save it on the local storage. Devlog #1 I just created html and css files. And designed the website. tried to make to look as modern, simple and clear-structure, created the text input and sent button and fixed their positions to fix it even when the website need to be scrolled. Designed the column-list like a each card which make the website for clear."}]...
|
Title: My Space - Save Messages by @najil_kilayil Title: My Space - Save Messages by @najil_kilayil | Stardance
Devlogs:
About the Project It is a simple user-friendly website that user can sent texts to memorize or to save it on the local storage. Devlog #1 I just created html and css files. And designed the website. tried to make to look as modern, simple and clear-structure, created the text input and sent button and fixed their positions to fix it even when the website need to be scrolled. Designed the column-list like a each card which make the website for clear.
Devlog #2 In this part, added a empty state when a new user or there is no saved messages , shows a custom message that indicates there is nothing saved! So added a section called āempty_stateā. Here is the demo of that!
Devlog 3 - Working on JS Completed working on basic UI design, Now lets work on backend desk! Called all the necessary elements from HTML into JS. Then added function for the submit button to add the list menu with text that the user have entered in the input box and also added the codes that makes and get current/today date from the device and add that also into the list. Connect the list with local storage for save the list menu. For that to show the saved list when ever the user opened the website, created a function ārenderMsg()ā In renderMsg() added a if condition to show that if there is no saved list or it was a new user, show the empty state.
Devlog #4 - Password System when considering about privacy and security measurements added a security PIN system that secure the list that have been saved in the localStoarge system. Now needed to save this PIN also in the localStorage and work the renderMsg() if the password is correct else doesnāt show it! PIN is linked with localstorage and simpley added a if-else condition to identify the user is new in here or not, if the PIN is not saved in localstorage can understand that the user new here, thatfore it will shows a text to create the PIN and else if there is saved PIN shows a text to enter the PIN to continue. When the user needed to create a pin added a another security condition that doesnāt allow to create if the PIN is less than 4 digit, the user strictly needed a 4 digits PIN to continue Then added a function to reset the PIN when the user forgot the PIN, user can reset everything (including list menu) by double clicking the C (resetbtn) with conforming the alert notification then the user can reset everything!
Devlog #5 - Adding Deleting feature To make the website more user-friendly thought to add delete option if user needs to remove or delete the saved note! Created a function with two parameters one for the selecting the array of the user selected to delete (from localStorage) and another parameter is number of the section list to remove that section! and also added a conformation alert notification to conform the user actually needed to delete it or not! Then made the button more attractive like hovering animation and etc
Devlog #6 Today, i decided to change the theme and color palette of the website and mind-set to add more animations! I selected a colour palette with a bases of dark-theme which is more comfortable for the users. So i changed white-purple theme into black-blue theme. So i selected colours for all the elements and added box shadow and border outline and element shadow effect. Then i changed the PIN screen buttons into circle from a semi-rectangular shape with suitable colours and hovering effects, Then i added a simple emoji icon on the PIN screen which gave more attraction and fill up the empty space. Put all the PIN screen elements such heading and subheadings, buttons and PIN input area in a box containing a special border and effect! A added a simple transition animation between two sections (PIN Screen and Main screen) like fadeIn and fadeout animation effect! Also added the colour effect for the PIN input box that indicates the correct PIN with green and incorrect with a shake animation with red colour effect which made the PIN screen more attractive and modern look, i also added a cyan colour effect to the input when the user clickes a number button. Then change the empty state into new modern with new text format. As well as added a icon emoji on the each list menu like a pointer. As well as changed the date format 3/8/2026 into 03-Aug-2026 which make the user more easier to understand the date. Iam thinking to change the input text box into a modern look, so changed the width of the box into small and hide the submit button, the box will expand and show the submit button when the user focus on the box, and also added a āblur()ā in JS to came back to small size when the user clicks the submit button Then finally added a animation thats perfectly matches for adding or removing list menu As well as i choose some fonts style from google.fonts.com and decided to use in the website.
Devlog #7 Today, i added lock emoji icon moeving with overlapping effect animation in PIN screen using CSS and CSS function keyframe. At that time i got another idea why should i add something like this animation on the background, So i just created a tiny-dot and added the same animation function then i connected with JS to visible multiple tiny-dots at a time using for-loop with same animation. Btw i used a root value in CSS for the both animation to delay the animation according to there class count, which will gave the animation at different timeing! Then i changed the input box of the PIN screen into a completely invisible and only shows the dots so PIN with colours (as green for correct and red with shakeing the dots animation for incorrect PIN).. I got a inspiration from a reel that i saw on Instagram today where the website is completely with theme of term GLASSMORPHISM. then i thought to add this theme into my project so changes the opacity of everything into .7 and remove some of the border and background colour and some with background colour with transparent! Then I added a header at main screen with fixed position of the main and sub headings with the same theme glassmorphism effect!
Devlog #8 Today i changed the head title and subtitle from the top into the bottom with input box. And made the both sections for dynamic as well as the user focus in and focus out in the input box. Now i thought to add copy and edit options for each notes. For that i changed the render()ās html with edit and copy button tags as similar as delete button, then i created each funcion called editMsg() and copyMsg(). To work the editMsg(), when the user selects and click on the note that the user need to edit, the text will appear as well as with the input box got autofocus in and the text to be edited is automaticaly typed in the input box. Added a if-else condition to identify the user is sending new note or it is already existing and editing, if it is exisits and the user is editing then submiting again the note will rechange into new one! In copyMsg(), i simply used ddefault navigor function with clipboard connection and with the value to copy the user selected text. I just added the normal āalertā feature at first when the user click on copy and it successfully copied and when successfully edited the note. I got a plan to make the āalert notiicationsā more attactive and dynamic. So added another section div inside the bottom area div then animated as popup from bottom and going back to bottom (outside the page), with that time the heading and subhead section become small width and then came back to normal when the alert is disappeared for this animation i used js of its very complicated to re-use whenever it needs (for edit and copy button). So i created a function alertNoti() with two parameters! Then solved some scrolling bugs i found that the website is automatically scrolling down as well as according to the movement of the background dots. So i disabled all the overflow of the all elements including body and excluding section div, which make the website only scroll and show the scroll bar when the section list is overflow!
Devlog #9 Now, i got a another funny plan, earn points to unlock features such as copy and edit when user earn and collect the points. So i defined the points as keys and with emoji of a key which is more suitable for this website theme! So i added a div section that shows the total keys that user collects at the top-right on the website and also added how many keys are collected from each note list, so i added the keys amount on each list. And i created my own principle to calculate the keys earned per list note, The keys are calculated based on letter count. 1 key per 4 letter count. If the letter count is less than 4 the key will be 0 and if the letter count is 10 that fore the keys count is 2. that is, if letter count is not completely divisible by 4 the nearest completely divided value is selected. This is the major logic for my keys calculating system! Then i added another animation text which will show up when the user hovered on the top-right keys points section. i decided that to unlock copy feature need more than 100 and 150 keys for unlock editing feature. So i added if-else condition inside the editMsg() and copyMsg() functions, when the amount on keys is less than that of it will show up a alert with how much keys more needed to unlock that feature. Its very booring to show as default browser alerting system so i thought why should i alert this through keysinfo area. So i just created a function called infoKey() with a parameter ātextā which will help to reduce complicity and retyping the code again and again! Then to make for carzy and funny appearence changed the default mouse pointer into a key emoji and made the movement based on collect xy axis of the mouse using js and also hided the defult icon in body style area
Ships:
I created a simple website with modern UI design and PIN security system. That allows you to save important notes (in text format) in a website. It will store in your local storage. The website is only accessible when the security PIN is correct Try it, And feel free to give feedback!
I created a website with modern UI with glasmorphism effect. The website allows you to save important notes (text form). The notes are safe from others by a localStorage PIN security system. The website is only accessible when the PIN is correct. Basic features :- PIN screen, Background animation, Animation UI, Dynamic navbar, Points system, edit-copy-remove options, Connected localstorage, Custom mouse icon etc Try it, and feel free to give feedback to improve the progress! :)...
|
1792849900.3351183
|
1793713900.3351183
|
|
34089
|
Carnival Chaos by @Nico | Stardance
|
Nico
|
2
|
56.0
|
482
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-08T16:26:51Z", "hours": 30.0, "multiplier": 16.44, "payout": 482, "blessing": "neutral", "text": "Carnival Chaos Carnival Chaos is a short, WarioWare-like game with 7 fun minigames you need to complete to win Hay bale climb - Platform up the hay bales to collect the coins Whack-a-mole - Click on all the moles before time runs out Dunk Tank - rapidly click the target as fast as you can to dunk the person Water Gun - Spray the target with your water gun to fill up the meter and win High Striker - Hit the button with the hammer to ring the bell Tug of War - Hit quick-time events to pull on the rope. pull far enough to win Face Painting - Paint the face to match the template. If you are close enough to the guide, you win the game! Once you win, youāll see how long you took. Click play again and see how fast you can go!. My fastest time is 90.30 seconds. Try to beat that! Have fun!!!", "repo": "https://github.com/DinoMito1/Carnival-Chaos", "demo": "https://dino-mito.itch.io/carnival-chaos"}, {"ship_num": 2, "ts": "2026-08-18T18:43:59Z", "hours": 26.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Carnival Chaos This is a WarioWare-like game There are 4 quick minigames you must complete to win A platformer - climb on hay bales and collect the coins Whack-a-mole - click all of the moles in time Dunk Tank - rapidly hit the target many times Water Gun - spray water at a target to fill up the bar and win When you win, youāll see how long you took to win. Try again and see how fast you can go my fastest time is 31.10 seconds. Try beating that! Hope you have fun!", "repo": "https://github.com/DinoMito1/Carnival-Chaos", "demo": "https://dino-mito.itch.io/carnival-chaos"}]...
|
[{"post_id": 77720, "ts": "202 [{"post_id": 77720, "ts": "2026-10-08T02:44:08Z", "hours": 2.5572, "text": "One Last Devlog! This devlog will be a shorter one. There wasnāt to much work left to do, so this last section didnāt take too long. I added another option into settings, being a manual toggle for mobile controls, incase they dont turn on automatically for mobile users or you just want to try the controls on PC. I also made a pause button . During any level of the game you can press the button to pause the game and decide whether to continue or quit back to the start of the game. I canāt believe this game is finally finished! Iāll be shipping it very soon, but in the meantime, you can try the game here! Let me know what you think!"}, {"post_id": 73724, "ts": "2026-09-25T19:49:24Z", "hours": 10.935, "text": "THE FINAL MINIGAME!!! Took a while, but I finally finished minigame 7! You have to paint the face to match the reference image before time runs out. This minigame was super difficult to get working because i needed to edit the face texture during run time, and I had no idea how to do that. Once I got the drawing to work I ran into another problem ā how do you beat the game? I ended up having it check every pixel of your drawing against the reference image and keeping track of how many are the same color and letting you win as long as you are at least 70% accurate. I thought I was finished, so I exported the game and gave it one last test. It didnāt work. For some reason, when I exported to web, none of the drawing parts would work and I had to recode parts of the minigame several times. Eventually I got everything working. I know I just complained a lot, but I am really proud of this. Itās easily the most difficult thing Iāve made yet. Go test the game, tell me what you think! You can try it here!"}, {"post_id": 68378, "ts": "2026-09-15T01:05:16Z", "hours": 8.6708, "text": "Minigame Six!!! Itās Tug of War! You have to hit the QTEs to pull the rope in your direction and win the minigame. I originally started making an entire different minigame, but after working on it for several hours I realized it wasnāt very fun at all and scrapped it. I spent forever tweaking with the different numbers for this game, trying to get it to feel nice to play, and I think its pretty fun now. I also tried showing off the game to my brothers on mobile and they really struggled to use the mobile arrow key things, so they helped me fix it so that the 1st and 4th minigame are easier to play on phone. Iām trying really hard to balance the difficulty for this while keeping this fun for everyone, but for those looking for a challenge, I am planning on adding a hard mode soon If you want to try the game, you can play it here !"}, {"post_id": 64563, "ts": "2026-09-09T02:17:49Z", "hours": 8.0703, "text": "Iām back with minigame five! This one is based on those hammer tower games I can never remember the name of You have to press spacebar when the hammer is above the button to swing down and ring the bell! I also added⦠MOBILE SUPPORT Every single minigame now works on mobile. I made custom arrow key buttons for the platforming and water gun game on mobile. I also slightly polished some older things, mainly the first two minigames, making it slightly more obvious when you win and playing a sad sound when you lose If you want to try the game, you can play it here Sorry its been a while since my last devlog. Iāve been on vacation for the last several days and now school has started again. Iāll try to make 2 more minigames for a total of 7, and then I will be happy to call this complete!"}, {"post_id": 47856, "ts": "2026-08-16T02:43:27Z", "hours": 6.0897, "text": "Fourth Minigame!!! You have to shoot the target with the water gun to fill up the bar in time to win the minigame. The target is constantly moving along a track so it is more difficult to stay on the target. I was struggling for a while to get this minigame feeling fun. Whenever I tested it, it always felt like something was missing so I tried a bunch of different stuff, like adding little sound effects or making the target react to being sprayed with water. I tried lots of different things, not all of them got used, but I think Iām happy with how this plays right now With the fourth minigame finished, Iād say the game is finished too. I just have to write the README and put it on Itch.io, then this will be fully done. You can expect to see this get shipped soon!"}, {"post_id": 45250, "ts": "2026-08-11T16:26:19Z", "hours": 5.9428, "text": "Minigame Number 3!!! Its a Dunk Tank! You have to hit the target a bunch of times before time runs out to dunk the person and win the minigame. My little brother wanted to help out with this one so I let him make the splash sound for the dunk tank. speaking of my brother, I let him play test everything once I finished this minigame and he seemed to really enjoy it. He was playing for 20+ minutes trying to get a fast time, so Iām feeling pretty good about the game right now. I also added a volume slider in settings, this is where most of my time was spent. I originally was going to make the slider change the decibel level of every sound in the game individually, but since decibels are logarithmic, I didnāt know how to mute the audio this way. After a while I figured out how to scale volume linearly, but the way I was doing would require me to redo all of the audio ingame. I spent multiple hours messing around with audio stuff trying to make the slider work how I wanted, until I thought that there has to be an easier way. Then I found out about Audio Buses. I did exactly what I was already doing to all of the sounds to only the Audio Bus instead and this fixed my several hour long problem almost immediately. Just one more minigame to go and I think this game will be finished!"}, {"post_id": 42864, "ts": "2026-08-07T20:25:01Z", "hours": 3.9539, "text": "You can win now! Yippee!!! I made a win screen that shows if you beat all the minigames and a loss screen that shows if you somehow run out of lives. Both of the screens have a big retry button that takes you back to the menu, so you wont have to reopen the game to play again anymore. The win screen also has a cool sign that shows off your time and your best time. Your best time is saved if you retry so you can try to win all minigames as fast as you can To keep track of your time I just start a timer as soon as you press the start button and then check how long its been once you win I also added sound!!! It felt way too quiet playing through the game so I added some simple sound effects for stuff like clicking buttons, whacking moles, jumping, and some others. The sound effects were super fun to make because they are all just my voice lol. Iām not sure why this took me so long to do, it didnt feel like that much stuff. Regardless, I think Iāll make two more minigames after this, and then this will be ready to ship!"}, {"post_id": 40541, "ts": "2026-08-04T05:13:34Z", "hours": 3.4028, "text": "Second minigame finished!!! This one is just like classic Whack-a-mole games. You have to hit all the moles in time to win! This minigame was actually the quickest and easiest thing to code so far. (Though i did spend an embarrassingly long time on the art) Instead most of my time in Godot was spent polishing some things I didnāt like too much yet. The coins in the first minigame float up and down now. I forgot to do this when I first made them. Instead of just disappearing, your lives, which are tickets, rip in two then fade away when you lose a minigame. Lastly, I put an indicator before each minigame to show what itās controls are. Such as arrow keys or mouse. Then when the minigame starts it shows in big text on the screen what your goal is. For example on the platforming minigame it says COLLECT Sorry for the longer devlog, I had a lot of little things I did I thought were worth sharing. Im really starting to like how this is coming along, so you can expect to see more devlogs from me soon."}, {"post_id": 38491, "ts": "2026-07-31T22:02:27Z", "hours": 4.3592, "text": "Finished the platforming minigame! It is based on those big stacks of hay you can climb at carnivals sometimes. You have to try and collect three coins before time is up to win. I wanted to give the little character a walking animation but i was struggling to figure it out so they just have a slightly different sprite while walking. I messed around with the movement speed and minigame time for a while to try and get good so overall im pretty happy with this."}, {"post_id": 35593, "ts": "2026-07-27T03:57:05Z", "hours": 2.0839, "text": "Made the menu for Carnival Chaos. This is going to be a WarioWare-like game where you complete several different carnival themed minigames to win! I got distracted making the art for a while and decided to make the building animated, but it took me forever to figure out how to use timers. I know thereās not too much right now but please let me know if you have any thoughts or criticism!"}]...
|
Title: Carnival Chaos by @Nico | Stardance
Devlog Title: Carnival Chaos by @Nico | Stardance
Devlogs:
Made the menu for Carnival Chaos. This is going to be a WarioWare-like game where you complete several different carnival themed minigames to win! I got distracted making the art for a while and decided to make the building animated, but it took me forever to figure out how to use timers. I know thereās not too much right now but please let me know if you have any thoughts or criticism!
Finished the platforming minigame! It is based on those big stacks of hay you can climb at carnivals sometimes. You have to try and collect three coins before time is up to win. I wanted to give the little character a walking animation but i was struggling to figure it out so they just have a slightly different sprite while walking. I messed around with the movement speed and minigame time for a while to try and get good so overall im pretty happy with this.
Second minigame finished!!! This one is just like classic Whack-a-mole games. You have to hit all the moles in time to win! This minigame was actually the quickest and easiest thing to code so far. (Though i did spend an embarrassingly long time on the art) Instead most of my time in Godot was spent polishing some things I didnāt like too much yet. The coins in the first minigame float up and down now. I forgot to do this when I first made them. Instead of just disappearing, your lives, which are tickets, rip in two then fade away when you lose a minigame. Lastly, I put an indicator before each minigame to show what itās controls are. Such as arrow keys or mouse. Then when the minigame starts it shows in big text on the screen what your goal is. For example on the platforming minigame it says COLLECT Sorry for the longer devlog, I had a lot of little things I did I thought were worth sharing. Im really starting to like how this is coming along, so you can expect to see more devlogs from me soon.
You can win now! Yippee!!! I made a win screen that shows if you beat all the minigames and a loss screen that shows if you somehow run out of lives. Both of the screens have a big retry button that takes you back to the menu, so you wont have to reopen the game to play again anymore. The win screen also has a cool sign that shows off your time and your best time. Your best time is saved if you retry so you can try to win all minigames as fast as you can To keep track of your time I just start a timer as soon as you press the start button and then check how long its been once you win I also added sound!!! It felt way too quiet playing through the game so I added some simple sound effects for stuff like clicking buttons, whacking moles, jumping, and some others. The sound effects were super fun to make because they are all just my voice lol. Iām not sure why this took me so long to do, it didnt feel like that much stuff. Regardless, I think Iāll make two more minigames after this, and then this will be ready to ship!
Minigame Number 3!!! Its a Dunk Tank! You have to hit the target a bunch of times before time runs out to dunk the person and win the minigame. My little brother wanted to help out with this one so I let him make the splash sound for the dunk tank. speaking of my brother, I let him play test everything once I finished this minigame and he seemed to really enjoy it. He was playing for 20+ minutes trying to get a fast time, so Iām feeling pretty good about the game right now. I also added a volume slider in settings, this is where most of my time was spent. I originally was going to make the slider change the decibel level of every sound in the game individually, but since decibels are logarithmic, I didnāt know how to mute the audio this way. After a while I figured out how to scale volume linearly, but the way I was doing would require me to redo all of the audio ingame. I spent multiple hours messing around with audio stuff trying to make the slider work how I wanted, until I thought that there has to be an easier way. Then I found out about Audio Buses. I did exactly what I was already doing to all of the sounds to only the Audio Bus instead and this fixed my several hour long problem almost immediately. Just one more minigame to go and I think this game will be finished!
Fourth Minigame!!! You have to shoot the target with the water gun to fill up the bar in time to win the minigame. The target is constantly moving along a track so it is more difficult to stay on the target. I was struggling for a while to get this minigame feeling fun. Whenever I tested it, it always felt like something was missing so I tried a bunch of different stuff, like adding little sound effects or making the target react to being sprayed with water. I tried lots of different things, not all of them got used, but I think Iām happy with how this plays right now With the fourth minigame finished, Iād say the game is finished too. I just have to write the README and put it on Itch.io, then this will be fully done. You can expect to see this get shipped soon!
Iām back with minigame five! This one is based on those hammer tower games I can never remember the name of You have to press spacebar when the hammer is above the button to swing down and ring the bell! I also added⦠MOBILE SUPPORT Every single minigame now works on mobile. I made custom arrow key buttons for the platforming and water gun game on mobile. I also slightly polished some older things, mainly the first two minigames, making it slightly more obvious when you win and playing a sad sound when you lose If you want to try the game, you can play it here Sorry its been a while since my last devlog. Iāve been on vacation for the last several days and now school has started again. Iāll try to make 2 more minigames for a total of 7, and then I will be happy to call this complete!
Minigame Six!!! Itās Tug of War! You have to hit the QTEs to pull the rope in your direction and win the minigame. I originally started making an entire different minigame, but after working on it for several hours I realized it wasnāt very fun at all and scrapped it. I spent forever tweaking with the different numbers for this game, trying to get it to feel nice to play, and I think its pretty fun now. I also tried showing off the game to my brothers on mobile and they really struggled to use the mobile arrow key things, so they helped me fix it so that the 1st and 4th minigame are easier to play on phone. Iām trying really hard to balance the difficulty for this while keeping this fun for everyone, but for those looking for a challenge, I am planning on adding a hard mode soon If you want to try the game, you can play it here !
THE FINAL MINIGAME!!! Took a while, but I finally finished minigame 7! You have to paint the face to match the reference image before time runs out. This minigame was super difficult to get working because i needed to edit the face texture during run time, and I had no idea how to do that. Once I got the drawing to work I ran into another problem ā how do you beat the game? I ended up having it check every pixel of your drawing against the reference image and keeping track of how many are the same color and letting you win as long as you are at least 70% accurate. I thought I was finished, so I exported the game and gave it one last test. It didnāt work. For some reason, when I exported to web, none of the drawing parts would work and I had to recode parts of the minigame several times. Eventually I got everything working. I know I just complained a lot, but I am really proud of this. Itās easily the most difficult thing Iāve made yet. Go test the game, tell me what you think! You can try it here!
One Last Devlog! This devlog will be a shorter one. There wasnāt to much work left to do, so this last section didnāt take too long. I added another option into settings, being a manual toggle for mobile controls, incase they dont turn on automatically for mobile users or you just want to try the controls on PC. I also made a pause button . During any level of the game you can press the button to pause the game and decide whether to continue or quit back to the start of the game. I canāt believe this game is finally finished! Iāll be shipping it very soon, but in the meantime, you can try the game here! Let me know what you think!
Ships:
Carnival Chaos This is a WarioWare-like game There are 4 quick minigames you must complete to win A platformer - climb on hay bales and collect the coins Whack-a-mole - click all of the moles in time Dunk Tank - rapidly hit the target many times Water Gun - spray water at a target to fill up the bar and win When you win, youāll see how long you took to win. Try again and see how fast you can go my fastest time is 31.10 seconds. Try beating that! Hope you have fun!
Carnival Chaos Carnival Chaos is a short, WarioWare-like game with 7 fun minigames you need to complete to win Hay bale climb - Platform up the hay bales to collect the coins Whack-a-mole - Click on all the moles before time runs out Dunk Tank - rapidly click the target as fast as you can to dunk the person Water Gun - Spray the target with your water gun to fill up the meter and win High Striker - Hit the button with the hammer to ring the bell Tug of War - Hit quick-time events to pull on the rope. pull far enough to win Face Painting - Paint the face to match the template. If you are close enough to the guide, you win the game! Once you win, youāll see how long you took. Click play again and see how fast you can go!. My fastest time is 90.30 seconds. Try to beat that! Have fun!!!...
|
1792990292.565813
|
1793076692.565813
|
|
34143
|
Spectralis by @DeltaVortex | Stardance
|
DeltaVortex
|
2
|
332.84
|
4092
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-06T05:56:33Z", "hours": 236.0, "multiplier": 16.89, "payout": 3884, "blessing": "neutral", "text": "Spectralis shiplarp 2 ā Stardance āwuzzup guysā So much has happened since shiplarp 1 and I cannot wait to not break down what changed. I will. Iām lazy. Not right now though. Cat or dog? redeem_code.claim() āthe celebrationā Weāve gone through so many changes since last time that it deserves an actual celebration: a very cool, very awesome custom visualizer for Stardance. Claim yours: Help > Manage Visualizers, then redeem stardance-lts-pulp . āfound a bug?ā Including the dreaded Tim Cook issues ā DM me: Discord: @deltav0rtex Slack: deltavortex Canāt wait to hear the feedback and all the bugs you dig up. āthis is the end*ā *end for now, redeem codes permitting YIPEE!!!", "repo": "https://github.com/Dareto-Dream/Spectralis", "demo": "https://spectralis.deltavdevs.com"}, {"ship_num": 2, "ts": "2026-08-14T06:50:58Z", "hours": 23.0, "multiplier": 12.89, "payout": 208, "blessing": "neutral", "text": "Spectralis shiplarp ā v5.3.0 āshipped itā Notepads. A spin wheel. Dead zones that arenāt OBS-only anymore. Playlists that donāt look like a log file. Spotify that actually behaves. Thatās the version. āwhatās in itā Notepad system: docked panel, tabs, pop-out window, saves to track tags Spin wheel: weighted entries, saved wheel lists, notepad-fed Dead zones now shift the appās own layout, not just OBS overlays Spotify: playlist sync, queue, pause, and Discord presence all fixed Fixed: playlist rows missing RowBackground (looked like a terminal, my bad) Fixed: nav rebuilding the entire view every click Fixed: library load blocking window open on big libraries Fixed: spectrum bars snapping instead of moving (FFT overlap bumped to 75%) Fixed: soundcloud playhead, word-mode timestamp export, track-switch click/pop āthatās itā PICKLE!!!", "repo": "https://github.com/Dareto-Dream/Spectralis", "demo": "https://spectralis.deltavdevs.com"}]...
|
[{"post_id": 65615, "ts": "202 [{"post_id": 65615, "ts": "2026-09-10T21:10:25Z", "hours": 9.8333, "text": "Spectralis devlog #44 āHello again proggersā Did it. Fixed a genuine ton of bugs, following through on the mess from devlog #43. Tempted to just drop 6.1.0 right now, but holding off ā want to get a few new features in and brainstorm some more QoL first so this actually feels like a finished product, not just a stopgap. Also: finally going to bed. the bar was āfix the bugsā and I cleared it, going higher anyway Cat or dog? sleep(ā) Okay letās get into it~ āYapā Real closure on the websocket/CDN/prod chaos from last devlog. Cleared out a lot in one sitting, and instead of rushing 6.1.0 out the door on relief alone, choosing to actually sit with it a bit longer. āThe Great Sufferingā 1 ā The Bug Backlog, Actually Cleared Worked through the fallout from devlog #43 ā websocket issues, the CDN backup failures, all of it ā and got a genuine ton of it fixed in one real pass instead of piecemeal patching. 2 ā Holding Off On 6.1.0, On Purpose Could ship right now. Choosing not to. Want to work in a few new features and brainstorm more QoL first, so the release feels complete rather than just āthe bugs are gone, ship it.ā Patience over momentum this time. 3 ā Finally Going To Bed After devlog #43ās two-days-no-sleep spiral, actually calling it and going to bed now. Today off is finally getting used the way it was supposed to be used. the sleep debt collector finally caught up āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one about to get real sleep for the first time in a while. Q: Why not just ship 6.1.0 now if the bugs are fixed? A: Because ābug-freeā and āactually doneā arenāt the same bar, and this oneās worth clearing the second one too. Q: Was this the same chaos from devlog #43? A: Same fires, all put out this round. Q: What kind of new features are being considered? A: Not locked in yet ā that brainstorming is the next step, not this devlog. Q: Sleep status, finally? A: Handled. Going now. āThis is the end*ā *end for now, actual sleep permitting PLAY!!!"}, {"post_id": 65271, "ts": "2026-09-10T08:34:54Z", "hours": 2.5, "text": "Spectralis devlog #43 āHello again proggersā [2:47am] okay so. websockets again, more of them, and now the CDN backup is failing too which is great, love that for me. on my 4th coffee at this point, energy drink count is starting to get concerning honestly and Iām not gonna pretend it isnāt. pretty sure i debugged the cdn thing at 4am purely out of spite Cat or dog? idk man catch (Exception e) { } at this point Okay letās get into it, or at least try to~ āYapā so continuing from devlog #42ās websocket hardening, turns out hardening one part just revealed the next part was also fragile, shocking, anyway. need to push something to prod to actually get it working but canāt do that without interrupting infra which is currently live so thatās a whole separate problem I have to solve first before I can solve the actual problem. love layers. āThe Great Sufferingā 1 ā More Websocket Issues more of them. found while poking at the hardening from last devlog. not sure if figuring this part out took 20 minutes or 3 hours honestly, timeās doing something weird tonight. 2 ā CDN Backup Is Failing on top of the websocket stuff, cdn backups just started failing too. not connected to each other as far as i can tell but who knows at this point, everything feels connected at 3am. 3 ā Need To Push To Prod, Canāt Without Interrupting Infra the actual fix needs to go to prod but pushing it right now means interrupting live infra, which i donāt want to do blind, so now i need a plan for THAT before the real fix even goes out. process problem wrapped around the actual problem, great. 4 ā Shared Play Is Doing The AI-Look Thing Again noticed shared playās UI is drifting into the same generic-AI-looking territory the main site kept getting flagged for back in devlog #21-#24. damn. gonna have to redo that too. not tonight though, one disaster at a time. 5 ā Oh And I Found A Missing Semicolon spent a genuinely embarrassing amount of time on a bug that turned out to be a missing semicolon. send help. actually donāt, just let me suffer, i clearly deserve it at this hour. 6 ā No Sleep For 2 Days, Hitting Now itās catching up. hard. luckily got tomorrow off so plan is stay up tongiht finish this, and just completely pass out tomorrow instead. worth it. probably. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: a human programmer. you. the one reading this at whatever hour youāre reading it, hopefully not also running on 2 days no sleep Q: Is the websocket hardening from #42 actually working? A: mostly? finding more edge cases as i go, which is annoying but also kind of expected honestly Q: Why canāt you just push to prod now? A: because infraās live and i donāt want to interrupt it blind, need an actual plan for that part first Q: Is shared play getting a full redesign again? A: yeah probably, later though, not adding a 4th fire to tonight Q: Sleep plan? A: none tonight, all of it tomorrow, thatās the whole plan āThis is the end ā *end for now, semicolons permitting send sleep!!!"}, {"post_id": 65216, "ts": "2026-09-10T06:03:36Z", "hours": 9.7103, "text": "Spectralis devlog #42 āHello again proggersā Spent this round hardening shared queues, mostly because WebSockets are just genuinely cool and itās about time they got treated that way in this codebase. a devlog motivated entirely by āwebsockets are coolā is a valid devlog Cat or dog? ws:// Okay letās get into it~ āYapā Shared queues have been functional but not particularly resilient this whole time, riding on shared playās presence/reactions/queue work from way back in devlog #9. This round was about actually hardening that layer instead of leaving it fragile. āThe Great Sufferingā 1 ā Hardening Shared Queues Went through and shored up a bunch of the underlying bases for shared queues ā the stuff that only matters once real connections are dropping, reconnecting, and behaving unpredictably instead of the clean happy-path test case. 2 ā Because WebSockets Are Cool Genuinely part of the motivation here. Real-time bidirectional connections are just satisfying to get right, and shared queues are exactly the kind of feature that benefits from taking that layer seriously instead of treating it as plumbing. not every feature needs a dramatic bug story, sometimes itās just āwanted to do it wellā āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one hardening infrastructure purely because itās fun to get right. Q: Is this related to the shared play work from devlog #9? A: Same general system, this round focused specifically on making the queue layer more resilient. Q: What does āhardeningā mean here specifically? A: Making the shared queue behavior hold up better under real conditions ā drops, reconnects, timing edge cases ā rather than just the clean test path. Q: Any bugs found during this pass? A: Nothing dramatic enough to call out individually, mostly proactive resilience work. Q: Whatās next? A: Podcast mode and the randomizer work from devlog #41 are both still ongoing threads. āThis is the end*ā *end for now, dropped connections permitting P_P!!!"}, {"post_id": 64674, "ts": "2026-09-09T08:17:56Z", "hours": 5.2669, "text": "Spectralis devlog #41 āHello again proggersā Podcast modeās in the works, with a real new way to actually find saved podcasts instead of digging for them. Also fixed the randomizing tools so they actually help pick a song instead of just existing decoratively. And: class got canceled for a hurricane watch, so tonightās an all-nighter by default. free 10 hours courtesy of a hurricane, weird way to get them Cat or dog? shuffle(weighted=True) Okay letās get into it~ āYapā Two real features this round plus a forced schedule change. Podcast modeās genuinely new territory for the app, the randomizer fix is a smaller but meaningful UX improvement, and the hurricane watch just handed over a full night that wasnāt originally planned for grinding. āThe Great Sufferingā 1 ā Podcast Mode, In Progress Building out actual podcast support, including a new way to locate saved podcasts rather than just treating them like any other track and hoping they surface in the right place. Real new territory for the app compared to the music-first feature set so far. 2 ā Randomizing Tools, Actually Useful Now The shuffle/randomizer tools existed before but werenāt really doing anything meaningful ā mostly there in name. Fixed so they actually aid in song selection now instead of just sitting there as a checkbox nobody trusted. a randomizer that doesnāt actually help you pick anything is just decoration 3 ā The Hurricane Watch Situation Class got canceled due to a hurricane watch, which means tonightās turning into a full grind session that wasnāt originally on the calendar. Silver lining of a weather delay, I suppose. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one getting a bonus grind night courtesy of a hurricane watch. Q: Is podcast mode close to done? A: In progress, this devlogās the early build phase, not the finish line. Q: What was actually wrong with the randomizer before? A: It existed but didnāt meaningfully help pick songs ā more decorative than functional. Fixed to actually aid selection now. Q: Is Song Wars rework from devlog #40 still going? A: Ongoing, this devlogās focus shifted to podcast mode and the randomizer instead. Q: Stay safe with the hurricane watch, by the way. A: Appreciated. Staying inside, staying coding. āThis is the end*ā *end for now, hurricane watches permitting POOL!!!"}, {"post_id": 64588, "ts": "2026-09-09T03:01:20Z", "hours": 10.0, "text": "Spectralis devlog #40 āHello again proggersā 10 straight hours, and the highlight is getting tricked by Sunoās own scraper path. There was a decoy path that looked exactly like the real music endpoint, and it just returned forbidden the whole time. Maybe Iām the bot in this scenario. Unclear. got outsmarted by a decoy URL, humbling Cat or dog? 403 Forbidden Okay letās get into it~ āYapā Continuing the reverse-engineering grind from devlog #39, Suno specifically threw a curveball this round. Beyond that, spent real time thinking about what the app actually is and why certain features exist, plus started tearing into Song Wars, which has apparently been quietly buggy for a while. āThe Great Sufferingā 1 ā The Suno Decoy Path Suno provides a path that looks exactly like the real music endpoint, structurally identical, right down to how it responds at a glance. In reality it just returns forbidden every time. Spent real time thinking this was progress before realizing it was a dead end dressed up as a working one. maybe im the bot 2 ā Actually Fixed It, After Testing Once the decoy was identified for what it was, found the real path and got it working properly. Testing it thoroughly this time before calling it done, given how devlog #39 went. 3 ā Identity Of The App Spent real time thinking through what Spectralis actually is at this point, and justifying why certain features exist rather than just accumulating them because they seemed cool at the time. Less code, more āwhy does this exist and does it still make sense.ā 4 ā Song Wars Rework, Started Started tearing into Song Wars, which turns out to be hella buggy underneath. Early stages of a rework rather than a patch job, since patching individual bugs in it hasnāt been holding up. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who got fooled by a decoy API path for a while. Q: Was the Suno issue related to the S3 discovery from devlog #38? A: Same general integration, different specific obstacle this round. Q: Is Song Wars getting a full rewrite or just fixes? A: Leaning toward a real rework rather than more patches, given how buggy itās turned out to be. Q: What does āidentity of the appā work actually produce? A: Not code directly ā more a filter for which features actually belong and why, going forward. Q: Howās the 10 hour grind treating you? A: Productive despite the decoy detour. Real progress by the end of it. āThis is the end*ā *end for now, decoy paths permitting PAP!!!"}, {"post_id": 64321, "ts": "2026-09-08T16:38:31Z", "hours": 11.5997, "text": "Spectralis devlog #39 āHello again proggersā All-nighter, running on 3 Monsters and a Coke Zero. Reverse engineering APIs is hard as hell, and untitled.stream in particular fought back the whole way. Also snuck in a fix for a Spotify library issue on the side. 3 Monsters and a Coke Zero is not a nutrition plan, itās a battle strategy Cat or dog? 429 Too Many Requests Okay letās get into it~ āYapā Following up on devlog #38ās untitled.stream compat work ā turns out āworking on itā undersold how hard it actually was. Genuinely brutal reverse engineering session, plus a smaller fix that came out of the same stretch of work. āThe Great Sufferingā 1 ā untitled.stream Was Particularly Hard To Crack Chasing this compatibility since devlog #38, and it turned out to be one of the harder reverse-engineering targets yet. No public API to lean on, so it was the usual slow grind of observing behavior and piecing together how it actually works under the hood. some APIs give up easy, this was not one of them 2 ā Reverse Engineering APIs In General: Still Hard Not a new lesson given devlog #17ās whole saga, but worth restating: this category of work is consistently the hardest and slowest kind on the whole project. Going in with better patience and verification habits this time though, which helped. 3 ā Spotify Library Polling, Increased Bumped how often libraries get polled to account for some Spotify-side issues that were surfacing. Smaller fix, but a real one, found and shipped in the same session. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who ran on three energy drinks to crack one integration. Q: Is untitled.stream compat actually working now? A: Meaningfully further along after this session, following up from devlog #38ās start on it. Q: Did this go better than devlog #17ās reverse-engineering disaster? A: Yes ā hard and slow, but productive this time rather than a total dead end. Q: What was the Spotify polling issue specifically? A: Library state getting out of sync too easily ā more frequent polling keeps it closer to accurate. Q: Sleep status? A: Same as every other all-nighter devlog. Not great. Worth it this time though. āThis is the end*ā *end for now, rate limits permitting PIPSQUEAK!!!"}, {"post_id": 64034, "ts": "2026-09-08T05:01:47Z", "hours": 9.5333, "text": "Spectralis devlog #38 āHello again proggersā Sunoās integration broke after their latest TOS update, so that got fixed. Also added Discord Rich Presence control for capsules, started chasing down a batch of connections that quietly broke or got dropped over time, and picked up a fun trivia fact along the way: Suno apparently hosts on AWS S3. a TOS update breaking an integration, name a more classic story Cat or dog? S3:// Okay letās get into it~ āYapā Mixed bag this round: one reactive fix from an external platform change, one genuinely new feature, and the start of a cleanup pass on integrations that have been quietly rotting since whenever they last got touched. āThe Great Sufferingā 1 ā Suno Integration, Fixed Sunoās newest TOS update broke the existing integration. Patched it back up to work with the new terms. Reactive fix, not a fun one, but necessary. 2 ā Capsule DRPC Control Real new feature: Spectralis capsules can now control Discord Rich Presence, so a capsule can show custom status while itās playing instead of the app just showing generic now-playing info. 3 ā Chasing Down Broken And Dropped Connections Going through existing integrations that broke with newer updates on the other end, or that got dropped along the way and never revisited ā untitled.stream compatibility being one specific example. Working through the backlog of āthis used to workā one at a time. 4 ā Suno Hosts On AWS S3 Small fun discovery while poking around the integration: Sunoās hosting is on AWS S3. Not actionable, just neat to know. 5 ā Looking For New Platforms Actively looking for what to integrate with next. Feedback on what platforms people actually want would genuinely help shape this. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one whose integration broke because someone else updated a TOS page. Q: Whatās DRPC? A: Discord Rich Presence ā the status shown under someoneās name in Discord. Capsules can now set custom status through it. Q: Whatās untitled.stream compat about? A: One of the connections that broke or got left behind at some point ā being actively worked back into shape. Q: What platforms are being considered for new integration? A: Not decided yet, genuinely open to suggestions. Q: Was the Suno fix hard? A: Not conceptually, just annoying ā an external change forcing reactive work instead of planned work. Q: Whatās the image order now? A: Changed my mind again ā meme first, app screenshot second this time. The devlog #37 order didnāt stick. āThis is the end*ā *end for now, TOS updates permitting POP!!!"}, {"post_id": 63804, "ts": "2026-09-07T19:28:07Z", "hours": 15.4, "text": "Spectralis devlog #37 āHello again proggersā Working through the feedback wave from the ship, including an upcoming maybe-new streaming service integration. Reverse engineering, again, yay. Also completely forgot Hackclubās 10 hour limit was a thing and ran 5 hours over it. Itās fine. Everythingās fine. last time reverse engineering a streaming service ate 12 hours and produced nothing, so this is either growth or dĆ©jĆ vu Cat or dog? HKEY_LOCAL_MACHINE Okay letās get into it~ āYapā Post-ship feedback turned into real changes fast, and one of themās a streaming service integration thatās back to reverse-engineering territory ā hopefully with better luck than the devlog #17 saga. Also, format note: switching up how devlogs get posted going forward. āThe Great Sufferingā 1 ā Maybe New Streaming Service Support Working on possible support for another streaming service, and since it doesnāt have a public API either, that means reverse engineering again. Learned some hard lessons from devlog #17ās all-nighter about this exact kind of work, applying them here ā verifying before implementing, checking whether somethingās already patched before sinking hours into it. 2 ā 15 Hours, Not 10 Completely lost track of Hackclubās 10 hour session limit and blew past it by 5 hours. Not the plan, happened anyway, no regrets loud enough to stop it from happening again probably. time limits are more of a guideline when youāre mid-flow 3 ā A Format Change, By Request People like the meme format but keep asking to actually see the project itself, which is fair ā problem is most of whatās happening is engine work, and a screenshot of raw code just doesnāt communicate much on its own. Going to try posting an actual screenshot as the first image and keep the meme as the second, going forward. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who just blew past a 10 hour limit by half again as much. Q: Is this streaming integration going to end like devlog #17ās did? A: Hoping not ā going in more carefully this time given how that one went. Q: Why not just show code screenshots if people want to see the project? A: Raw engine code doesnāt communicate much visually to most people. Trying to find screenshots that actually show something meaningful instead. Q: Will the meme format go away? A: No, staying as image two. Just adding an actual project screenshot as image one. Q: Howās the feedback wave going overall? A: Productive, this streaming service idea being one direct result of it. āThis is the end*ā *end for now, session limits permitting POSSIBLE!!!"}, {"post_id": 62666, "ts": "2026-09-06T04:36:39Z", "hours": 9.8669, "text": "Spectralis devlog #36 āHello again proggersā Last log before 6.0.1 tries to ship to everyone. Except Mac, remember? If anyone ā and by anyone I mean basically no one ā has the app downloaded already, you should see the update land fairly soon. āanyoneā carrying a lot of self-deprecation in that sentence Cat or dog? v6.0.1 Okay letās get into it~ āYapā Four things landing in this round: video export from devlog #35 finally patched back in properly, the about page expanded, a real EQ upgrade, and more webview bugs cleared out. Then itās out the door. āThe Great Sufferingā 1 ā Video Export, Actually Patched In Announced back in devlog #35, and this round itās actually working and patched into the build for real instead of just existing as a headline feature nobody could touch yet. 2 ā About Page, Expanded Grew the about page out ā more actual content instead of the bare-minimum version itās had this whole time. 3 ā A Far More Advanced EQ System Real upgrade here: new EQ with envelope styling and a handful of presets. Meaningfully more capable than whatever was there before, for anyone who actually cares about shaping their sound instead of just hitting play. 4 ā More Webview Bugs, Patched Following the WebView2Host fast-path fix from devlog #9, a few more webview-related bugs got cleared out this round. Apparently that surface keeps finding new ways to misbehave. webview bugs are the gift that keeps on giving 5 ā 6.0.1 Ships, Mac Excluded (Still) Same LTS-only policy from devlog #32 applies ā Mac isnāt getting 6.0.1 as a minor. Everyone else should see the update land soon. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one about to auto-update basically no one to 6.0.1. Q: Why doesnāt Mac get 6.0.1? A: Same policy from devlog #32 ā Mac only gets LTS releases, not minors, unless itās a Mac-specific patch. Q: Whatās new in the EQ system specifically? A: Envelope styling plus a set of presets, a real step up from the previous version. Q: Is video export from devlog #35 fully working now? A: Yes, patched in properly this round. Q: When does 6.0.1 land? A: Fairly soon, per this devlog, for anyone who already has the app installed. āThis is the end*ā *end for now, update pushes permitting PEBBLE!!!"}, {"post_id": 62302, "ts": "2026-09-05T16:34:34Z", "hours": 9.5667, "text": "Spectralis devlog #35 āHello again proggersā Long way from v5.3.0, thatās for sure. New shipās cooking, and itās built directly off the feedback wave from devlog #33 ā took what came in and actually built more on top of it. Also, the big one this round: video export is here. 35 devlogs from ālast shipā to this Cat or dog? .mp4 Okay letās get into it~ āYapā This oneās a real feedback-driven ship, not just internal roadmap stuff. Fed reports and requests all the way back from devlog #2ās post-first-ship feedback into the app, and video export was the headline addition that came out of it. āThe Great Sufferingā 1 ā Feedback Actually Became Features Everything that came in since devlog #2, right after the very first ship, finally got folded back into this release, not just patched as bugs but expanded into more app. Real loop from āhereās whatās wrong/missingā way back then to āhereās it, fixed and built outā now. 2 ā Video Export Is Here For music makers who want something to post ā YouTube, Klipy, wherever youāre posting cool stuff ā Spectralis can now export video directly instead of just playing audio and visualizers live. Been a long time coming given how much the visualizer/capsule work has built up across devlogs #7, #18, #23, and #29-#30. 3 ā This Is The New Ship, Not The Finished One Announcing the direction this round more than closing it out ā the surprise from devlog #33/#34 still rides along on this too. Full picture coming as it actually ships. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who just got a whole export pipeline for their trouble. Q: What can video export actually do? A: Exports your visualizer/capsule output as an actual video file, suited for posting to platforms like YouTube or Klipy. Q: Is this the same ship as the Stardance surprise from devlog #34? A: Same overall release window, yes. Q: How much of this came directly from user feedback? A: A meaningful chunk ā some of it going all the way back to devlog #2, right after the very first ship. Q: Whenās it actually dropping? A: Still in progress. This is the announcement, not the release. āThis is the end*ā *end for now, export pipelines permitting PS: couldnāt find a good meme this time, so you get corporate gif slop instead. Enjoy. PICKLE!!!"}, {"post_id": 61350, "ts": "2026-09-04T07:08:42Z", "hours": 7.2333, "text": "Spectralis devlog #34 āHello again proggersā Still on the devlog commits grind. The surprise from devlog #33 is actually finished now, releasing alongside the next Stardance ship as soon as this current one clears. Meanwhile, spent this round scouring the app for small edge cases and UI stuff thatās been quietly overlooked. the surprise is done, the suspense is not Cat or dog? edge_case.md Okay letās get into it~ āYapā Two tracks this devlog: the surprise from last time is locked and ready, waiting on the current ship to clear before it goes out with Stardance. In the meantime, doing a proper sweep for the small stuff ā edge cases and UI rough edges that donāt show up unless youāre specifically hunting for them. āThe Great Sufferingā 1 ā The Surprise Is Finished Whatever it is, itās done. Releasing with the next Stardance ship, not this current one ā has to clear first. Still not saying what it is. still not telling you, patience 2 ā Scouring For Edge Cases Going through the app specifically looking for edge cases that got missed during normal feature work ā the inputs and states nobody thinks to test until something breaks in a very specific, very rare way. 3 ā UI Stuff That Got Overlooked Alongside the edge cases, hunting down small UI issues that slipped through ā spacing, alignment, states that donāt look quite right, the stuff thatās easy to miss when youāre heads-down building instead of using the app like a regular person would. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one hunting edge cases nobody else would think to try. Q: Whatās the surprise? A: Patience, my dear child. Q: Why wait for the current ship to clear first? A: Cleaner to let one release settle before stacking the surprise onto the next one. Q: Any specific edge cases found yet? A: Sweepās ongoing, nothing dramatic enough to call out individually yet. Q: Still not saying what the surprise is? A: Correct. Ask again next devlog. āThis is the end*ā *end for now, edge cases permitting PERISHABLE!!!"}, {"post_id": 60763, "ts": "2026-09-03T11:03:52Z", "hours": 5.8667, "text": "Spectralis devlog #33 āHello again proggersā First real wave of feedback since Mac shipped in devlog #32, and itās been genuinely good. Patching a handful of bugs people actually pointed out, plus one quick clarification for a specific rater who had a question. real users, real feedback, feels different from testing solo Cat or dog? feedback.md Okay letās get into it~ āYapā Shipping to actual people instead of just self-testing changes the kind of bugs that surface. Round of patches based directly on what came in, plus a couple of housekeeping notes. āThe Great Sufferingā 1 ā Real Feedback, First Time At This Scale Genuinely solid feedback wave since the Mac release. Different flavor of bug reports than internal testing ever produces ā actual usage patterns finding things a solo QA pass wouldnāt. 2 ā Patching What Got Pointed Out Working through the specific bugs raised by that feedback. Direct fixes for direct reports, exactly the kind of loop thatās supposed to happen once somethingās actually in peopleās hands. 3 ā Quick Note For A Specific Rater One rater asked about the track used in devlog #1 ā itās a custom remix of āDeleteā by Ninjirachi. DM if you want the file. 4 ā How To Reach Out For anyone hitting issues with the app: Slack works, or Discord at @deltav0rtex . Genuinely want the reports, keep them coming. 5 ā A Surprise Is Coming Next Ship Got something tucked away for the next release that should land well. Not spoiling it here, staying quiet on purpose. Minor patch for this roundās QoL fixes drops within the next two days. teasing it and saying nothing else, thatās the whole bit āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one actually reading feedback instead of guessing whatās broken. Q: How do I report a bug? A: Slack, or Discord ā @deltav0rtex . Q: What was that track in devlog #1? A: A custom remix of āDeleteā by Ninjirachi. DM for the file if you want it. Q: Is the current bug list from this feedback wave big? A: Manageable, working through it directly rather than batching for a bigger release. Q: Any plans to formalize a feedback/bug channel later? A: Not stated yet, current setup is DMs and Slack for now. Q: Whatās the surprise for next ship? A: Not saying. Thatās the point of a surprise. Q: Whenās the minor QoL patch dropping? A: Within the next two days. āThis is the end*ā *end for now, bug reports permitting PARABLE!!!"}, {"post_id": 60643, "ts": "2026-09-03T04:06:16Z", "hours": 3.4, "text": "Spectralis devlog #32 āHello again proggersā Macās out. Actually out, actually available, actually done. Took way longer than expected ā the site needed updating and every single update script needed fixing before this could actually go out the door clean. āwe got mac outā undersells how much site and script work that actually took Cat or dog? .pkg Okay letās get into it~ āYapā Closing the loop that started way back in devlog #19 with a borrowed Mac and a hopeful āfingers crossed,ā went through the decoding fixes in devlog #28, the platform-assumption hotfix in devlog #26, and now itās actually shipped. Quick policy reminder while weāre here, since it matters going forward. āThe Great Sufferingā 1 ā The Site Needed Updating First Before Mac could actually go out, the site itself needed real updates to reflect it ā new download option, new platform messaging, none of which existed yet. Took a real chunk of the time this release ate. 2 ā Every Update Script Needed Fixing Following up on the Windows/Linux-centric script assumptions caught back in devlog #26 ā turns out that wasnāt a one-off fix, it touched update scripts broadly. Had to go through and fix them properly for Mac to actually be able to update itself going forward, not just install once. 3 ā Mac Is Actually Out After all of that: itās live. Full journey from borrowed hardware sessions to an actual public release. 4 ā Reminder: Mac Only Gets LTS Quick policy note, stated plainly since it matters: Mac only receives LTS releases going forward, not minor updates, unless a minor is a Mac-specific patch. Same access-constraint reasoning from devlog #19 ā this isnāt changing anytime soon, so setting the expectation clearly now. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who just found out āship Macā secretly meant ārebuild the update pipeline.ā Q: Does Mac get every LTS release? A: Yes, every LTS. Just not the minors in between, unless that minor is Mac-specific. Q: Why not give Mac full parity now that itās out? A: Hardware access is still the bottleneck ā same reasoning as devlog #19, testing and building for Mac isnāt a routine, always-available thing yet. Q: What took so long between the decoding fixes in devlog #28 and now? A: Mostly the site and update script work described above ā the actual build was closer to ready than the delivery pipeline around it was. Q: Is this the end of the Mac saga? A: The release side, yes. Ongoing maintenance is just going to follow the LTS-only cadence from here. āThis is the end*ā *end for now, update scripts permitting POP!!!"}, {"post_id": 59211, "ts": "2026-08-31T21:37:18Z", "hours": 9.9, "text": "Spectralis devlog #31 āHello again proggersā More QoL, a real bug fixed in world editing, and a proper in-depth test run of the whole thing. Honest verdict after actually using it for real: still sucks, still hate it, but itās at least somewhat usable now. Progress, technically. āsomewhat usableā is a real milestone when you started from āactively badā Cat or dog? node.isCorrupt Okay letās get into it~ āYapā World editingās been the newer, rougher part of the studio since the Godot-inspired redesign in devlog #29. This round was about actually running it through its paces instead of just building on top of it, and that testing found a real problem. āThe Great Sufferingā 1 ā More QoL Another pass of small quality-of-life improvements, continuing the trend from the last couple devlogs. Nothing individually huge, all of it adds up. 2 ā The Bad Node Bug Found and fixed a genuinely bad node bug in the world section during testing. The kind of bug that only shows up once youāre actually building real worlds instead of poking at an empty editor. 3 ā The In-Depth Test Run Took world editing for a real, thorough run this time instead of a quick sanity check. Built something with actual substance in it and used the tool the way itās meant to be used. 4 ā The Honest Verdict Still sucks. Still hate using it. But after this round of fixes and QoL, itās crossed into āsomewhat usableā territory, which is more than could be said before this session. low bar, cleared, moving on āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who just admitted their own tool still sucks and shipped it anyway. Q: Is world editing done now? A: No, āsomewhat usableā is the current state, not āfinished.ā More work ahead. Q: How bad was the node bug? A: Bad enough to matter, found through actual real-world testing rather than a quick check. Q: Is this related to the layer work from devlog #30? A: Different area ā that was capsules/timeline, this is world editing specifically. Q: Whatās the plan to make world editing not suck? A: Keep testing it for real, keep fixing what that testing turns up. This devlogās the start of that loop, not the end. āThis is the end*ā *end for now, corrupted nodes permitting PAPLE!!!"}, {"post_id": 58336, "ts": "2026-08-30T18:33:09Z", "hours": 9.3333, "text": "Spectralis devlog #30 āHello again proggersā Following up on the studio redesign from last devlog ā actually building inside that new layer system now. Lyric importer, a bezier tool that fought back the whole way, and capsules jumped to full HD. 30 devlogs in and the bezier tool still almost won Cat or dog? bezier.controlPoint Okay letās get into it~ āYapā Layers from devlog #29ās redesign got real functionality built on top of them this round, plus a genuinely useful new import path and a resolution bump that shouldāve probably happened earlier. āThe Great Sufferingā 1 ā Layer Fixes Cleaned up a handful of issues in the new After Effects-style layer system from last devlog ā the kind of rough edges that only show up once youāre actually building real content in it instead of just looking at the layout. 2 ā Lyric Importer: Auto Vector Layers + Keyframing New importer that takes lyric timing and automatically generates vector layers, keyframed to match. Turns what used to be manual layer-by-layer, keyframe-by-keyframe setup into an actual import step. Big time save for anything lyric-driven, including future capsules like the demo from devlog #18. 3 ā A Few More Bugs, Squashed Small round of additional fixes alongside the bigger items, nothing individually dramatic. 4 ā Capsule Resolution: Bumped To Full HD Capsules render at full HD now instead of whatever lower resolution they were capped at before. Straightforward upgrade, noticeably better output. 5 ā The Bezier Tool (Which Was Hell) Added a real bezier curve tool to the timeline/layer editing. Genuinely brutal to get right ā curve math, control point handling, and making it feel intuitive to actually drag are three different hard problems stacked on top of each other. Worth it, but it fought back the whole way. bezier curves: simple in theory, a nightmare in an actual editor UI 6 ā Timeline And Tool QoL Assorted quality-of-life improvements across the timeline and tools generally ā the small friction-reduction stuff that adds up once youāre using the studio for real work instead of just testing it. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who just fought a bezier tool and mostly won. Q: Does the lyric importer work with the demo capsule from devlog #18? A: That one was hand-timed and hand-built before this importer existed ā this toolās for making the next ones faster. Q: Why was the bezier tool specifically so hard? A: Curve math, control point interaction, and UI feel all had to work together, and getting any one of them wrong makes the whole tool feel broken. Q: Is full HD the resolution ceiling now, or is higher coming later? A: Full HD is what shipped this round. No commitment yet on going higher. Q: Is the studio redesign from devlog #29 basically done now? A: Getting real functionality built on it, which is a good sign, but still ongoing. āThis is the end*ā *end for now, control points permitting PALPABLE!!!"}, {"post_id": 57958, "ts": "2026-08-30T09:12:42Z", "hours": 9.7667, "text": "Spectralis devlog #29 āHello again proggersā The studioās finally looking like a real UI tool instead of a collection of windows held together by vibes. Two design references pulled this round: Godot for world editing, and Adobe After Effects for capsules. stealing good ideas from great tools is called ādesign research,ā look it up Cat or dog? Ctrl+Shift+F Okay letās get into it~ āYapā Studioās been the least polished part of the whole app for a while, mostly functional, rarely pretty. This round actually leaned into real interface design instead of just adding buttons where they fit, borrowing structure from two tools that already solved similar problems well. āThe Great Sufferingā 1 ā Godot-Inspired World Editing World editing took cues from Godotās editor layout ā the way it structures a scene tree, viewport, and inspector panel together as one coherent workspace instead of scattered windows. Applying that same structural thinking to world editing here, since worlds are conceptually similar: a tree of pieces youāre arranging in space. 2 ā After Effects-Inspired Capsules Capsule editing leaned on After Effects instead, specifically the layer/timeline/composition mental model. Capsules are time-based and layered by nature ā a story surface, a visualizer, audio all stacked together ā so a timeline-and-layers metaphor fits better than a flat property list ever did. 3 ā The Studio Finally Feels Like A Tool Combined, these two reference points are whatās pushing the studio from āinternal dev utilityā toward something that actually feels designed for someone to sit down and use, not just something built incrementally to unblock whatever feature needed it that week. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one borrowing UI patterns from two very different but very good tools. Q: Is this a full rewrite of the studio UI? A: More a restructuring around better mental models than a ground-up rebuild, but it touches a lot of surface area. Q: Why Godot for world editing specifically? A: Scene/viewport/inspector is a well-worn pattern for spatial editing, and worlds are fundamentally a spatial arrangement problem. Q: Why After Effects for capsules? A: Capsules stack time-based layers ā story, visualizer, audio ā which maps naturally onto a timeline/layers workflow instead of flat settings. Q: Does this connect to the visualizer toolkit grind from devlogs #25-#27? A: Same broader authoring-tools push, yes, this is the UI side catching up to that work. āThis is the end*ā *end for now, layer panels permitting POP!!!"}, {"post_id": 57408, "ts": "2026-08-29T15:34:29Z", "hours": 8.4333, "text": "Spectralis devlog #28 āHello again proggersā LTS 6 is out. Genuinely out, not āshipped to nowhereā out like devlog #11. Sleep deprivationās fully caught up though ā first chance I get, Iām passing out on the couch with the cat and thatās non-negotiable at this point. the catās getting a co-author credit at this rate Cat or dog? couch, specifically, with the cat, immediately Okay letās get into it~ āYapā Long stretch from devlog #26 through here finally paid off. LTS 6 pushed, and the major macOS decoding problems from the borrowed-Mac build sessions actually got fixed. Real progress, real exhaustion, both at once. āThe Great Sufferingā 1 ā LTS 6 Is Out Following the hydra-bug fight in devlog #20, the Electron relearn and Mac hotfix in #26, and the binary format detour in #27 ā itās actually pushed now. Linux and Windows builds are the ones going out first. 2 ā Major macOS Decoding Problems, Fixed Following up on the platform-assumption bug from devlog #26, where Windows/Linux-centric scripts choked on Mac being neither ā dug into the actual decoding issues on macOS and got the major ones resolved this round. 3 ā Mac Release Is Coming, Just Not Today No Mac hardware access again until Monday, so the macOS build follows a bit after Linux/Windows instead of dropping same-day. Same access constraint from devlog #19, still the bottleneck, still the plan. 4 ā Sleep Is Winning Officially out of gas. Couch, cat, first available window. This devlog is basically the victory lap before collapsing. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one about to lose consciousness on a couch next to a cat, mission accomplished. Q: Is LTS 6 out for everyone right now? A: Linux and Windows, yes. macOS is coming shortly after once Mac access is available again Monday. Q: Were the macOS decoding problems from the script issue in devlog #26? A: Related territory, yes ā once the platform-assumption bug got flagged, the deeper decoding issues underneath it got found and fixed too. Q: Any concerns going into the Mac release specifically? A: Nothing unresolved as of this devlog, but access is still limited to occasional sessions, so timingās dependent on that. Q: Whatās next after this? A: Sleep. Genuinely, actually sleep, before anything else touches this project. āThis is the end*ā *end for now, couch naps permitting thud Zzzzzz!!!"}, {"post_id": 56861, "ts": "2026-08-28T20:36:45Z", "hours": 9.3, "text": "Spectralis devlog #27 āHello again proggersā Still going. Decided mid-grind to switch off JSON-based saving entirely and move to a proper binary streamed format instead ā faster save/load, way less CPU overhead. Which sounds like a clean upgrade until you realize it means reading books on binary format design that were probably written before I was. my caffeine and my reading list have diverged wildly tonight Cat or dog? BinaryWriter Okay letās get into it~ āYapā The pivot away from JSON wasnāt planned going into tonight, it just became obviously worth it partway through the toolkit grind. Now stuck in the part of the process nobody enjoys: documentation, theory, and CS ideation before any of the actual implementation gets to happen. āThe Great Sufferingā 1 ā JSONās Getting Replaced Moving off JSON-based saving to a binary streamed format. The reasoningās simple ā faster save/load, meaningfully less CPU usage ā but simple reasoning doesnāt mean simple implementation. 2 ā Reading Books Older Than Me Digging into binary streaming format theory means reading material that predates this whole project by a wide margin, some of it by a lot more than that. Foundational stuff, just not exactly light reading at this hour. 3 ā Documentation And Theory Hell Currently deep in the least glamorous part of any format redesign: reading documentation, working through theory, and CS ideation before writing a single line that actually does anything. Necessary, still miserable at 2am. the implementation is the fun part and itās still hours away 4 ā Sun Came Up, Had A Sandwich, Kept Going Watched the sunrise somewhere in the middle of the theory reading. Had an egg and bacon sandwich for breakfast, genuinely delicious, best part of the night so far. No sleep planned until tonight ā just powering through on breakfast fuel instead. breakfast during an all-nighter hits different āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one reading format-design theory older than their own project at 2am. Q: Why move off JSON now, mid-grind? A: Became clear it was the right call while working on the visualizer toolkit ā better performance characteristics were worth the detour. Q: Is this related to the toolkit from devlog #25/#26? A: Same overall session, this is a scope addition that came up while working on it. Q: When does actual implementation start? A: Once the theory and documentation phase actually resolves. Not there yet. Q: Is tonight ever going to end? A: Not until tonight, apparently ā sunās already up and thereās no sleep planned before then. āThis is the end*ā *end for now, binary formats permitting PAM!!!"}, {"post_id": 56521, "ts": "2026-08-28T10:00:04Z", "hours": 2.9008, "text": "Spectralis devlog #26 āHello again proggersā Still grinding the visualizer toolkit from devlog #25. Fueled up properly this time ā favorite tunes on, Coke Zero and a Monster Ultra on deck, going the entire night. Also, small detour: past me apparently gave in and used Electron at some point, so present me now has to relearn it from scratch. past me makes decisions present me has to live with, name a more accurate description of software Cat or dog? require(āelectronā) Okay letās get into it~ āYapā Two threads tonight: the toolkit grind continuing from last devlog, and a genuinely surprising discovery on the Mac build front thatās going to need its own hotfix branch. āThe Great Sufferingā 1 ā Relearning Electron Past-me committed to Electron somewhere along the way and current-me forgot most of it. Spending part of tonight just getting back up to speed on something that used to be second nature. Annoying, but at least itās a known quantity once it clicks back in. 2 ā The Toolkit, Still Grinding Same visualizer toolkit as devlog #25. Not done yet, but the nightās young and thereās caffeine involved. Hoping to actually close real ground on it before LTS needs to be ready. 3 ā Mac Build Actually Compiles Now Following up on devlog #19ās borrowed-Mac session ā got it to build and compile this time. Real progress on a front thatās been genuinely hardware-constrained the whole way. 4 ā Turns Out Mac Isnāt Windows Or Linux (Shocking, I Know) Hereās the surprising part: a lot of the build scripts turned out to be Windows/Linux-centric, and Mac is, in fact, neither of those operating systems. Somehow this wasnāt obvious until actually staring at a failing script on real Mac hardware. three major desktop OSes and somehow I only accounted for two of them 5 ā Hotfix Branch Incoming Need to spin up a hotfix specifically for the platform-assumption problem in the scripts, and hoping it merges back clean without conflicts. Given tonightās track record so far, cautiously optimistic. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who forgot their own framework choice from past-self. Q: Why Electron in the first place? A: Decision from before this devlog series apparently, reasons unclear at this hour, dealing with the consequences now regardless. Q: Is the Mac hotfix urgent? A: Ties directly into whether LTS with Mac support actually holds together, so yes, fairly urgent. Q: Was assuming Windows/Linux-only scripts really a mistake nobody caught until now? A: Apparently so. Borrowed-Mac hardware access from devlog #19 finally exposed it. Q: Toolkit status vs. hotfix status tonight ā which wins? A: Whichever gets further before the caffeine runs out. Probably both get some progress. āThis is the end*ā *end for now, merge conflicts permitting PROPER!!!"}, {"post_id": 55615, "ts": "2026-08-27T16:05:39Z", "hours": 9.3964, "text": "Spectralis devlog #25 āHello again proggersā Short one, Iām about to pass out for real this time. Ground away at the visualizer toolkit for a long stretch and itās still nowhere near done. another one for the ānot as close as I thoughtā pile Cat or dog? too tired to pick one honestly Okay quick version~ āYapā Same visualizer editor territory from devlog #23, except the format not-changing this time didnāt mean the finish line got any closer. Long grind, real progress somewhere in there probably, just not a done toolkit at the end of it. āThe Great Sufferingā 1 ā The Toolkit Isnāt Close Put in a long stretch on it and itās genuinely still far from finished. Not a small gap either, just more scope than one exhausted session could close. 2 ā Iām Cooked Thatās the whole update. No dramatic bug story tonight, just hours in and not enough left to keep going. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who should probably close the laptop now. Q: Is this the same visualizer editor from devlog #23? A: Same one. Still cooking, longer than expected. Q: Any specific blockers? A: Too tired to write them up properly tonight. Next devlog, probably, once thereās actual sleep behind it. Q: Whenās it landing? A: Unknown. Not this session. āThis is the end*ā *end for now, actually sleeping this time POOL!!!"}, {"post_id": 55404, "ts": "2026-08-27T06:36:57Z", "hours": 2.3342, "text": "Spectralis devlog #24 āHello again proggersā Rewrote the README a third time. Not because it was wrong, because proper prose and actual formatting apparently reads as ācompletely AIā to whoeverās judging it, and Iām too burnt out to keep arguing that point. So it just got redone instead. canāt fight the vibes, can only rewrite around them Cat or dog? README.md Okay letās get into it~ āYapā Small win buried in the exhaustion: websiteās on version 4 now and it didnāt get flagged this time. First one that made it through clean since devlog #21 started this whole saga. Progress, even if the READMEās now on its third rewrite for reasons that have nothing to do with whether itās actually good. āThe Great Sufferingā 1 ā README Rewrite #3 Same content, restructured again, because well-formatted prose keeps getting read as an AI tell regardless of who wrote it or how. Not going to keep relitigating this one, just redid it and moved on. 2 ā Website v4 Survived The actual good news. Fourth pass on the site, first one that didnāt get flagged. Whatever combination of changes from devlog #21 onward finally landed right. 3 ā Hoping The App Gets Checked Next If the docs and the website keep clearing review, maybe eventually the actual app gets looked at instead of just the surface-level stuff around it. Thatās the real hope here ā less time defending prose formatting, more time on the thing that actually matters. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one whose actual writing keeps getting mistaken for a machineās. Q: Why does formatted prose get flagged as AI? A: Genuinely unclear, and at this point not worth the energy to keep contesting. Rewriting around it was faster than arguing it. Q: Is this the fourth full website redesign? A: Yes ā devlog #14, then #21ās rework, and now this pass, landing clean. Q: Has the app itself ever been flagged? A: Not yet, and thatās sort of the point of this devlog ā hoping it stays that way, or at least gets a fair look if it comes up. Q: Howās the burnout? A: Present. Noted. Continuing anyway. āThis is the end*ā *end for now, formatting opinions permitting PEEL!!!"}, {"post_id": 55123, "ts": "2026-08-26T16:10:50Z", "hours": 2.6669, "text": "Spectralis devlog #23 āHello again proggersā Introducing the visualizer editor. Been sitting on this one for a while without announcing it, for a very specific reason: every single time it felt ready, the format changed again and āreadyā moved further away. Think itās actually real this time. announced it in my head about six times before this devlog Cat or dog? visualizer.format Okay letās get into it~ āYapā Grinding all night on this one, branch and v1 dropping tomorrow. No promises beyond that, just the plan and the fact that this has been quietly cooking for way longer than any single devlog has let on. āThe Great Sufferingā 1 ā Why This Wasnāt Announced Sooner Kept hitting the point where the editor felt done, then rethinking the underlying format and starting that part over. Easier to just not announce something that keeps changing shape than to keep walking back a āitās readyā claim in public. 2 ā v1 And The Branch, Tomorrow Committing to it now ā v1 and the branch land tomorrow. Whole nightās going toward getting there, which given the last 22 devlogs of this project is either a great sign or a very familiar warning sign. history suggests: could go either way 3 ā What The Visualizer Editor Actually Is A real editor for building visualizers instead of the visualizer side of the app staying built-in-only. Ties back to everything from the capsule/worlds work in devlogs #7 and #8 and the custom visualizer built for the demo capsule in devlog #18 ā this is the tool version of doing that by hand. 4 ā Hackatime Also Just Died (Or My PC Did) On top of everything else, Hackatime seems to be down, or my PCās cooked, unclear which yet. Either way tracked hours for tonight are now undefined. Yipee. unlogged hours are the best kind of hours, said nobodyās time tracker ever āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one about to pull yet another all-nighter for a feature reveal. Q: Why did the format keep changing? A: Each pass revealed a new limitation once actually used for real, and fixing that meant reworking the format again rather than shipping something known to be wrong. Q: Is this related to the demo capsule visualizer from devlog #18? A: Same territory. That one was hand-built. This is the editor meant to make building one not require doing it by hand. Q: Whatās āv1ā mean here specifically? A: First real usable version, branch-only for now, not a full public release yet. Q: Any risk this slips again? A: Always possible given the track record, but committing to tomorrow specifically this time. āThis is the end*ā *end for now, format stability permitting PEPLE!!!"}, {"post_id": 54323, "ts": "2026-08-25T08:40:49Z", "hours": 4.6333, "text": "Spectralis devlog #22 āHello again proggersā Posting this before I pass out for real. And no, that wasnāt me faceplanting the keyboard, that was the cat walking across it. Very important distinction. the cat gets a commit credit for that one, honestly Cat or dog? cat, apparently, tonight specifically Okay letās get into it~ āYapā Back on the ever-growing pile of bugs and QoL from devlog #20ās hydra fight ā turns out killing all the tiny bugs once doesnāt mean they stay dead forever, more just showed up in the meantime. Made real progress anyway. āThe Great Sufferingā 1 ā A Few Spotify Bugs, Actually Squashed Chased down and fixed a handful of Spotify-side bugs this round. Not a full audit like earlier devlogs, just real ground covered on stuff thatās been sitting in the pile. 2 ā Resizing QA Went through resizing behavior across the app and did a real QA pass on it ā the kind of thing thatās easy to skip until someone resizes a window in a way you never tested and everything looks wrong. 3 ā The Multi-Channel Stream Queue Idea Had the idea to implement multi-channel support for Streamer Queue. Started on it, and itās genuinely probably too big to land fully before LTS ships ā most likely going in as a stub for now rather than a finished feature, with the real implementation following after. āhorrible ideaā is doing some self-aware lifting there and I stand by it āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who mistook a cat for their own exhaustion, and honestly it couldāve gone either way. Q: Whatās a āstubā mean for multi-channel here? A: The scaffolding and interface exist, the real functional implementation doesnāt yet. Placeholder with intent, not a real feature. Q: Is this the same bug pile from devlog #20? A: Same pile, refilled since then. Small bugs apparently regenerate on their own schedule, not just when youāre actively fighting them. Q: Why is multi-channel āhorribleā if youāre building it anyway? A: Because scope-wise itās a lot more than it looks like on paper, and admitting that upfront beats pretending itās simple. Q: Sleep status tonight? A: About to happen, actually, this time. Catās taking the credit either way. āThis is the end*ā *end for now, sleepy cats permitting PEOPLE!!!"}, {"post_id": 54216, "ts": "2026-08-25T03:14:52Z", "hours": 6.1014, "text": "Spectralis devlog #21 āHello again proggersā Flagged for āAI websiteā again. By Shipwrights this time. Getting a little tired of this specific accusation, honestly ā a commit log sitting right there would show actual work happening over actual time, but apparently thatās a few extra minutes nobody wants to spend. the receipts exist, nobodyās asking to see them Cat or dog? git log āoneline Okay letās get into it~ āYapā Third redesign of the site now. Not because the flag was right, but because if this keeps happening itās worth just making the ālooks AI-madeā argument harder to make at all, regardless of whether it was ever a fair read in the first place. āThe Great Sufferingā 1 ā Flagged Again Shipwrights flagged the site as AI-generated. Same accusation as the devlog #12-#14 saga, different flagger this time. Slightly more annoying with each repeat, since the actual work historyās right there for anyone willing to look. 2 ā The Annoying Part Itās not that the site got flagged, itās that the disproof is trivially available ā commits, timestamps, iterative changes across three separate rebuilds ā and checking that apparently isnāt part of the process. Frustrating, not devastating. 3 ā Redesigned It A Third Time Rather than fight the flag directly, changed the site again. Third pass now, and it genuinely reads less like generic AI-slop territory than the last version did. Whether that satisfies the next flag or not, itās a real improvement on its own merits. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one whoās redesigned this website three separate times partly to dodge a false flag. Q: Whatās Shipwrights? A: The one doing the flagging this round. Q: Is the flag actually accurate? A: No ā thereās a real commit history behind the site across devlogs #12 through #14 and now this one. The flagās wrong, just annoying to keep disproving. Q: Does this redesign replace the one from devlog #14? A: Yes, third full pass on top of that one. Q: Any plan if it gets flagged a fourth time? A: Probably the same plan: keep the receipts, keep improving the site anyway, move on. āThis is the end*ā *end for now, false flags permitting PALPABLE!!!"}, {"post_id": 53903, "ts": "2026-08-24T16:41:40Z", "hours": 7.9, "text": "Spectralis devlog #20 āHello again proggersā Two zero. Milestone devlog, and itās a good one: LTS is about to actually go out the door, Mac included, today. we made it, barely, on no sleep, as tradition demands Cat or dog? git revert HEAD 7 Okay letās get into it āYapā Spent the whole night doing QoL and QA on all the tiny bugs that had been getting pushed aside devlog after devlog. Turns out āsmall bugsā and āeasy to fixā are not the same category, and the whole night proved it the hard way. āThe Great Sufferingā 1 ā Hydra Bugs Every single one of the small deferred bugs got patched, and every single patch spawned about three new ones in its place. Fix one, watch three grow back. Felt less like debugging and more like fighting something with a regeneration mechanic. cut off one head, three more show up, name a more accurate bug report 2 ā Tried Claude Code Out Of Exhaustion Got tired enough mid-hydra-fight to set up Claude Code and hand off some of the grind. It did not go well ā ended up rearranging the repo and commit layout in ways that made the history a mess, not the bugs. 3 ā Had To Undo Its Commits Rolled back what Claude Code did and went back to fixing things manually. Lesson for the night: handing off a messy, deep-in-it repo state to an agent mid-crisis is not the same as handing off a clean one. 4 ā Actually Got All The Tiny Bugs Out After all of that, the hydraās actually dead. Every deferred small bug from the last 19 devlogs finally cleared in one sitting, which is the whole reason todayās release is happening at all. 5 ā Mac Release, Today Following up on devlog #19ās borrowed-Mac build attempt ā releasing to Mac today alongside everything else. First real payoff from that session. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who fought a hydra of bugs all night and won, barely. Q: Did Claude Code actually break anything functional, or just the repo layout? A: Just history and commit structure, nothing shipped broke because of it. Still a mess worth undoing. Q: Is this LTS build the one from devlog #19ās prep? A: Yes, same one. This was the final QA gauntlet before it goes out. Q: Is Mac really getting it today? A: Thatās the plan, following through on the borrowed-Mac build session from last devlog. Q: 20 devlogs in, anything youād do differently? A: Sleep more, probably. Not going to happen, but itād be the right answer. āThis is the end*ā *end for now, hydra heads permitting PROPERTY!!!"}, {"post_id": 53619, "ts": "2026-08-24T08:31:21Z", "hours": 4.2003, "text": "Spectralis devlog #19 āHello again proggersā v6 LTS is on the horizon. Scheduled time with a friend who actually owns a Tim Cook machine, fingers crossed a Mac build comes out the other side of that session actually working. praying to the WWDC gods Cat or dog? arm64 Okay letās get into it~ āYapā First real LTS push. Different mindset than the last 18 devlogs of feature work and 3am bug hunts ā LTS means stability first, and it also means finally taking a real swing at macOS instead of leaving it as a someday problem. āThe Great Sufferingā 1 ā Prepping For v6 LTS Getting the groundwork in place for the first Long Term Support build. Less āship the coolest thing,ā more āship the thing that wonāt need constant babysitting after release.ā 2 ā Borrowing A Friendās Mac Donāt own a Mac. Scheduled dedicated time with a friendās actual Apple hardware to attempt a real build instead of guessing blind or fighting a CI-only setup with no way to actually test the output. 3 ā The Honest Caveat: Mac Support Will Lag Straight talk: limited access to Mac hardware means Mac builds will very likely only get LTS releases going forward, and will land late relative to betas and regular updates on other platforms. Not ideal, but better to say it now than pretend otherwise. canāt test what you canāt touch āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one borrowing a friendās Mac because Apple hardware access is not a given. Q: Will Mac users get every update? A: Realistically, no ā LTS builds only for the foreseeable future, and later than other platforms. Access to hardware is the bottleneck, not desire to support it. Q: Why prioritize LTS over a beta cycle right now? A: Stabilityās the actual goal for v6. Betas can come later once the LTS foundationās solid. Q: Is the Mac build guaranteed to work this session? A: No promises. Thatās what āfingers crossedā means. Q: What happens if the Mac session doesnāt go well? A: Try again next time hardware access lines up. Not giving up on it, just constrained by it. āThis is the end*ā *end for now, Tim Cook machines permitting PRINCIPLE!!!"}, {"post_id": 53545, "ts": "2026-08-24T04:19:31Z", "hours": 7.8, "text": "Spectralis devlog #18 āHello again proggersā First real demo capsule is live. Not a screenshot, not a ātrust me it worksā ā an actual .spectralis file you can grab and open yourself, right after devlog #17ās night of nothing. Felt good to ship something that isnāt a revert for once. redemption arc, one demo file at a time Cat or dog? demo.spectralis Okay letās get into it~ āYapā Wanted the first public demo to actually show off what a capsule can do, not just be a proof of concept nobody can open. So itās a full one: real track, real hand-timed lyrics, and a visualizer built specifically for it instead of a generic default. āThe Great Sufferingā 1 ā The Demoās Live demo.spectralis is up at cdn.deltavdevs.com now. First capsule anyone outside this devlog series can actually download and open. 2 ā The Track And The Lyrics Built around Black Coastās āTRNDSTTRā (Lucian Remix). Lyrics for it were timed and written into the capsule by hand ā not pulled from some export, actually sat down and did the timing work myself. 3 ā The Visualizerās Custom, Not A Default Also built the visualizer specifically for this capsule instead of shipping the demo with a stock one. Wanted the first thing people see from Spectralis to actually demonstrate what the capsule format can do end to end ā audio, synced lyrics, and a visual built to match, all in one file. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one downloading the first real capsule demo. Q: Whereās the demo? A: cdn.deltavdevs.com/spectralis/demo.spectralis ā direct download, no wrapper page. Q: Did you write the lyrics yourself or pull them from somewhere? A: Wrote and timed them in by hand for this capsule specifically. Q: Is the visualizer reusable for other capsules? A: Built for this one specifically, but nothing stopping it from getting adapted or reused as a base for others later. Q: Is this what stories/capsules from devlog #7-#8 were building toward? A: Exactly that. This is the first one actually finished and out in the world instead of just being tested locally. āThis is the end*ā *end for now, capsule downloads permitting PARODY!!!"}, {"post_id": 53182, "ts": "2026-08-23T16:54:15Z", "hours": 12.2667, "text": "Spectralis devlog #17 āHello again proggersā 12 hours. All-nighter. Zero sleep. Feature isnāt in the app. Nothing shipped. This is the devlog where I explain what an entire night of work bought me, and the honest answer is āa very expensive lesson.ā worth it? absolutely not. did i learn something? also debatable Cat or dog? catch (ApiDoesNotExistException) Okay letās get into it~ āYapā Got ambitious. Decided Spectralis should integrate with everything ā Pandora, Amazon Music, a bunch of other big platforms on top of what already works. Turns out āeverythingā includes a lot of services that simply donāt offer a public API to integrate with in the first place, and finding that out was not the fast part of the night. āThe Great Sufferingā 1 ā The APIs Just Donāt Exist Pandora, Amazon Music, and others: no public API to build against. Not āhard to find,ā not āpoorly documented,ā just not there. Shouldāve been step zero, ended up being the thing that derailed the entire night once discovered mid-build instead of before starting. 2 ā So I Built Backdoors Instead Spent a huge chunk of the 12 hours reverse-engineering and building unofficial access paths instead, since the front door didnāt exist. This is the kind of work that eats hours and produces nothing you can point to until itās fully working, if it ever gets there. 3 ā Most Of Them Were Already Patched Implemented several of these backdoor approaches only to find out the platforms had already closed the exact gaps being exploited, sometimes before the implementation was even finished. Built things that were dead on arrival by the time they existed. patched before i even shipped it, incredible timing 4 ā Asked Claude, Got A Hallucinated Answer, Followed It Anyway At the point of giving up, asked for a way to make it work anyway. Got a confident-sounding approach back that didnāt actually correspond to anything real, and followed it blindly instead of verifying it first, because by that point it was hour 10-something and verifying things sounded like more effort than it was. 5 ā Ripped The Whole Feature Out End state: none of it works, none of it can work without real API access that doesnāt exist, so the entire feature attempt got stripped back out of the codebase. 12 hours, one commitās worth of net progress, and that commit is the revert. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who just found out platforms without public APIs stay that way for a reason. Q: Is any of this coming back later? A: Not until thereās an actual, real, non-reverse-engineered way in. Not chasing patched backdoors again. Q: Should you have asked Claude earlier instead of at hour 10? A: Probably. Should also have double-checked what it said instead of following it blind at 4am. Two separate lessons from one night. Q: Was any of the 12 hours useful? A: Now know definitively which platforms are and arenāt worth attempting. Thatās the only thing salvaged. Q: Sleep status? A: Catastrophic. Handling that before touching code again. āThis is the end*ā *end for now, actual sleep permitting Im gonna go pass out on the couch ADIOS!!!"}, {"post_id": 52796, "ts": "2026-08-23T04:27:01Z", "hours": 0.6667, "text": "Spectralis devlog #16 āHello again proggersā Short one. Found the website pipeline issue from devlog #15. Cat or dog? sudo āYapā It wasnāt the code. It was permissions. The site was calling root but never actually had access to root, which is exactly why it worked fine locally and fell over the second it hit deployment. āIt woRKS On My macHiNeā ā the oldest curse in software, and I said it unironically. classic āThis is the end*ā *end for now, root access permitting PAPAYA!!!"}, {"post_id": 52775, "ts": "2026-08-23T03:46:04Z", "hours": 2.0667, "text": "Spectralis devlog #15 āHello again proggersā I lied. Posted devlog #14 saying the site was done and shipped, and the deploy pipeline crashed basically the second it went out. So thatās fun. On the bright side, v5.4.2 also went out this round, and itās actually solid. āitās doneā is apparently my curse word Cat or dog? dequeue() Okay letās get into it~ āYapā Website pipeline ate itself right after devlog #14 posted, which is its own kind of poetic. Meanwhile the app side had a genuinely good run ā six real fixes landed, one of them embarrassing enough to name directly. āThe Great Sufferingā 1 ā The Website Pipeline Crashed Right After I Said It Shipped Devlog #14 said done. Pipeline said otherwise, immediately. Working on getting it back up, this is very much a ādeveloping situationā and not a āresolvedā one yet. 2 ā Listener Requests Auto-Queue Now Requests from listeners now auto-queue instead of needing a manual step to actually land in the queue. 3 ā Audio Literally Never Played, Whoops Exactly what it says. Somewhere in there, audio just wasnāt playing. Found and fixed, extremely glad this one got caught. a music player where the music doesnāt play is a bold minimalist statement 4 ā Found It: Join Links Were Missing A Slash Root cause of a chunk of shared-play join weirdness ā the links were missing a slash. One character. Fixed, join links actually resolve correctly now. 5 ā Host Room Button Actually Tells You Something Now The host room button used to just sit there. Now it actually communicates state back to you instead of leaving you guessing whether anything happened. 6 ā Host Room Was Dropping Every Tick Forever Host room had a bug where it was dropping on every single tick, indefinitely, rather than staying stable. Fixed so the room actually holds instead of degrading in real time. 7 ā yt-dlp Was 5 Months Stale, Updated The bundled yt-dlp from devlog #10 hadnāt been touched in 5 months. Updated. Stale extraction tooling breaking silently is exactly the kind of thing that sneaks up on you. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who called the website shipped and got immediately humbled by CI. Q: Is the website back up yet? A: Working on it. Genuinely not resolved as of this devlog. Q: How long was audio actually broken for? A: Not specified, but āliterally never playedā is about as bad as this category of bug gets. Fixed now. Q: Was the missing-slash bug related to the join link work from devlog #9? A: Yes, same feature area, this was the actual root cause of some of the lingering weirdness there. Q: Is 5.4.2 stable? A: As far as testing shows. Same disclaimer as always applies. āThis is the end*ā *end for now, deploy pipelines permitting PARABLE!!!"}, {"post_id": 52728, "ts": "2026-08-23T01:43:09Z", "hours": 2.1678, "text": "Spectralis devlog #14 āHello again proggersā Siteās done. Actually done. Got it to a place I actually liked instead of just a place I was tired of looking at, and shipped it. Three devlogs of fighting the generic-AI-look problem and it finally landed somewhere that feels like Spectralis instead of every other landing page on the internet. took long enough Cat or dog? git push origin main Okay letās get into it~ āYapā After devlog #12 and #13ās whole ordeal of everything converging on the same generic design no matter what got tried, something finally clicked and stuck. Shipped it. Two honest confessions on the way out the door, might as well log them here instead of pretending otherwise. āThe Great Sufferingā 1 ā Itās Live The full rework from the last two devlogs is done and pushed. Went from āeverything looks like AI made itā to something that actually feels intentional. Whatever finally broke the streak, it worked. 2 ā The Help & Manuals Tab Is A Placebo Button Full transparency: the Help & Manuals tab on the site exists, looks real, sits right where youād expect it, and does essentially nothing right now. Itās there because a site without one looks incomplete, not because thereās real content behind it yet. Consider it a placeholder wearing a real buttonās clothes. itās not lying, itās aspirational 3 ā I Copied FL Studioās Homepage. Hard. Not going to pretend otherwise: leaned on FL Studioās site pretty heavily for structure and layout ideas here. And honestly, thatās just how this works ā programming, design, all of it is borrowing from people who borrowed from the people before them. Nobodyās inventing layout from first principles in 2026. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who finally shipped a website after three devlogs of fighting it. Q: Is Help & Manuals actually going to do anything eventually? A: Presumably, someday. Right now itās a promise the button is making on behalf of a future devlog. Q: Isnāt copying FL Studioās homepage kind of a big deal? A: Structure and layout inspiration, not a straight copy-paste. And realistically, every site borrows from something ā this oneās just being honest about the source. Q: Did the āeverything looks like AIā problem from devlog #13 actually get solved? A: Yes, finally. Whatever changed between then and now worked. Q: Whatās next now that the siteās shipped? A: I finally get to ship my project without worrying about AI looking websites āThis is the end*ā *end for now, placebo buttons permitting PLACEBO!!!"}, {"post_id": 52690, "ts": "2026-08-22T23:32:19Z", "hours": 10.1028, "text": "Spectralis devlog #13 āHello again proggersā Still on the website. Turns out the āmake it not look like AI made itā problem does not have an easy exit ā everything ends up looking like AI made it no matter what gets tried. Also had to ask Claude how to center a div. Yes, that div. The one every developer has fought since the dawn of CSS. the irony of asking an AI how to make something look less AI-made is not lost on me Cat or dog? display: flex Okay letās get into it~ āYapā Round two on the visual rework from last devlog, and the honest update is: itās harder than expected. Every direction tried still lands somewhere in āgeneric modern web design,ā which might just be what modern web design looks like right now regardless of whoās making it. āThe Great Sufferingā 1 ā Everything Still Looks Like AI Made It Tried multiple directions this round trying to get away from the generic look. Kept landing back in the same neighborhood anyway. Starting to suspect this isnāt a ātry harderā problem, itās just what the current design language space looks like from basically every angle right now. 2 ā Had To Ask Claude How To Center A Div The oldest joke in frontend development, still funny because itās still true. Got stuck on it anyway. Some things never stop being annoying regardless of how many years of CSS have gone by. flexbox has existed for a decade and this is still where we are 3 ā Pulled Up W3Schools For The First Time In Forever Dug up an old W3Schools reference mid-debugging, and it is dusty as hell at this point but the informationās still correct. Sometimes the ancient reference site is exactly whatās needed, aesthetics of the source be damned. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who asked an AI to help make something look less like an AI made it. Q: Did the AI-startup look actually get fixed this round? A: Not fully. Still fighting it. Thatās most of this devlog. Q: Why does everything converge on the same generic look? A: Best guess: current tools and current design trends both nudge toward the same handful of patterns, so escaping it takes more than just trying different colors. Q: Is W3Schools still reliable? A: Apparently yes. Dated presentation, correct information. Q: Whenās the website actually done? A: Closer than devlog #12, not there yet. Ask devlog #14. āThis is the end*ā *end for now, centered divs permitting PEPPLE!!!"}, {"post_id": 51936, "ts": "2026-08-21T21:25:25Z", "hours": 10.2181, "text": "Spectralis devlog #12 āHello again proggersā Websiteās getting a real pass. Not new copy this time, actual visual identity work, because it currently reads like every AI startup landing page that ever came out of the middle of California, and Spectralis is not that. gradient blob, bold sans headline, ārevolutionize your workflowā ā no Cat or dog? theme.css Okay letās get into it~ āYapā Not released yet, deliberately. This oneās still in progress, but close enough that itās worth logging before itās done instead of only after. The goalās simple to say and annoying to actually do: stop looking generic. āThe Great Sufferingā 1 ā The AI-Startup Look Had To Go Somewhere along the way the site had drifted into the exact aesthetic every seed-stage AI company in the Bay Area ships with ā same fonts, same soft gradients, same layout rhythm everyoneās using because everyone else is using it. None of that says anything about what Spectralis actually is. 2 ā Actual Visual Identity Work Working through what the site should look like instead of whatās easy to reach for by default. This is the slow part ā not writing more copy, actually deciding what the thing looks like and why, instead of inheriting a templateās opinions by accident. 3 ā Not Done, Getting Close Deliberately not shipping this mid-rework. Better to land it as one coherent pass than dribble out half-finished visual changes and confuse anyone who lands on the page in between. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one trying to make a music appās website stop looking like a fundraising deck. Q: What specifically screamed āAI startupā? A: The general vibe more than any one element ā the kind of design every YC-adjacent landing page converges on when nobody makes an active choice. Q: Why not ship incrementally instead of waiting? A: A visual identity rework half-applied looks worse than the thing itās replacing. Waiting for it to be coherent. Q: How close is close? A: Close. Not ānext devlogā close necessarily, but visibly closer than devlog #11 left it. Q: Does this touch the changelog-from-backend system from devlog #5? A: No, that infrastructure stays as-is. This is purely visual. āThis is the end*ā *end for now, gradient blobs permitting POGO!!!"}, {"post_id": 51267, "ts": "2026-08-20T20:03:38Z", "hours": 1.8481, "text": "Spectralis devlog #11 āHello again proggersā Docs got a full rework this round. Also turns out v5.4.1 went out to nobody, because it never actually got pushed to the CDN. Tagged, released, announced probably, and completely inaccessible the whole time. shipped a release into a void and called it done Cat or dog? docs/ Okay letās get into it~ āYapā Started as a documentation pass and ended with the realization that the last release had been sitting local this whole time instead of where anyone could actually get it. Two very different kinds of work, same devlog. āThe Great Sufferingā 1 ā The Entire Doc Rework Not a touch-up, a full rework. Docs, README, and STANDARDS all got restructured rather than patched in place, since patching them individually over the last several devlogs had left them internally inconsistent with each other and with what the app actually does now. 2 ā 5.4.1 Never Made It To The CDN The actual headline bug of this devlog. v5.4.1 shipped, in the sense that it was built, tagged, and probably announced somewhere ā but never got pushed to the CDN, meaning nobody could actually download it. Public-facing, and it was quietly broken the whole time until someone noticed. a release that ships to nowhere didnāt really ship 3 ā Fixed And Actually Pushed Corrected the CDN push so 5.4.1 is genuinely available now, not just tagged in git looking like it is. Also part of why the doc rework mattered ā docs referencing a version nobody could download was its own kind of lie. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who tagged a release and forgot the part where people can actually get it. Q: How long was 5.4.1 unavailable? A: Long enough to be embarrassing, short enough to fix before it became a real problem. Caught during this pass. Q: Why redo the docs entirely instead of patching them again? A: Because incremental doc patches across several devlogs had drifted apart from each other and from the app. A full rework got everything back in sync at once. Q: Is this the same CDN that serves changelogs now (devlog #5)? A: Same one. This time the release binary itself was the thing missing, not just content. Q: Anything else quietly broken that hasnāt surfaced yet? A: Unknown by definition. Thatās what the next devlog is for. āThis is the end*ā *end for now, CDN pushes permitting POPPY!!!"}, {"post_id": 51122, "ts": "2026-08-20T16:50:19Z", "hours": 11.1333, "text": "Spectralis devlog #10 āHello again proggersā 11 hours, zero sleep, and somewhere in the middle of that a full release went out. v5.4.1, then v5.4.1.2 right behind it because apparently one patch release wasnāt enough punishment for one night. sleep is a scheduling conflict I lost Cat or dog? winmm.dll Okay letās get into it~ āYapā Started as a normal patch pass and turned into a full Linux compatibility audit at 3am, because it turns out shipping something cross-platform means actually checking what ācross-platformā was quietly lying about. Found four separate ways the app was secretly Windows-only, fixed all of them, shipped twice. āThe Great Sufferingā 1 ā winmm.dll Doesnāt Exist On Linux, Who Knew Something was calling into winmm.dll directly. Which is a Windows multimedia API. Which does not exist on Linux. Genuinely did not know this was happening until it broke loudly. āwho knewā is doing a lot of work in that commit message 2 ā Shipped A .exe To Linux, My Bad Somewhere in the build/packaging step, a .exe was ending up in the Linux build. An executable format Linux does not run. Not a subtle bug, just an embarrassing one. 3 ā Song Wars Closing = Surprise Alt+F4 Closing Song Wars was apparently also closing the entire app, unprompted, no warning. A feature window doubling as a kill switch is not a feature, itās a trap. 4 ā Yeeted yt-dlp + ffmpeg Into Linux Land, Zero Installs Needed The actual fix underneath most of this: bundled yt-dlp and ffmpeg directly for Linux instead of assuming theyād already be installed system-wide, which they very often werenāt. Zero external installs needed now, it just works out of the box. 5 ā Last Page Isnāt A Dead End Anymore Merged in from feature/story-pager-finish ā reaching the last page of a story used to just⦠stop. Dead end, nothing to do. Fixed so it actually resolves properly instead of leaving you stranded on the final page. 6 ā Two Releases In One Night v5.4.1 went out, then a second pass turned up enough left over that v5.4.1.2 followed right after. Both merged through staging same night, same sleepless stretch. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who found out about winmm.dll at 3am. Q: Was Spectralis actually broken on Linux before this? A: In at least four distinct ways, yes. Missing binaries, a stray .exe, a Windows-only DLL call, and an app-closing bug. Now fixed. Q: Why two patch releases instead of one? A: v5.4.1 went out, more got found immediately after, and waiting felt worse than just shipping v5.4.1.2 same night. Q: Did you actually not sleep? A: Correct. Not recommending it. Doing it anyway next time, probably. Q: Is Linux actually solid now? A: As solid as one very long, very tired night of testing can confirm. Time will tell the rest. āThis is the end*ā *end for now, sleep schedules permitting PIBBLE!!!"}, {"post_id": 50150, "ts": "2026-08-19T07:58:44Z", "hours": 5.4667, "text": "Spectralis devlog #9 ā 5.4.0 is public āHello again proggersā 5.4.0 is actually out, publicly, in peopleās hands. Diffed v5.3.4 through v5.4.0: 40 commits, Aug 16-18, four threads of work. Cat or dog? spectral.resume() āYapā Shared play became joinable, Streamer Queue and the Discord bot got hardened, story/visualizer bugs got chased down in one sitting, and some platform/perf issues got caught. None of these were small. āThe Great Sufferingā 1 ā Shared Play Can Be Joined Now spectralis://shared-play/join links used to fall through to nothing. Now routed to a real handler. 2 ā Streamer Queue: Host Controls + A Bot That Wonāt Die Host can add tracks and mark played/skipped directly, no viewer round-trip. Desktop got an add-to-queue button and history panel. Both pollers (desktop + bot) back off dead rooms instead of hammering them. SQ API calls got a 10s timeout + one retry, GETs only ā mutating calls donāt retry, to avoid double-submitting on a timed-out-but-successful response. Bot had zero global error handlers before this. One bad promise took the whole process down silently. Now it logs and survives, plus 3-attempt startup retry. 3 ā Story Pages vs. Visualizers: Three Bugs, One Afternoon A capsule with both used to have them fight. Story can now queue a surface behind it ā TryAdvancePastStory() swaps in the queued surface on spectral.resume(). Audio was starting under the story before the reader finished ā now gated on whether a surface is queued. Once queued, picker/prev-next/keyboard could still hijack it ā new IsVisualizerLocked blocks all three (user-picked āSpecial:ā visualizers stay switchable). 4 ā Platform + Perf Fixes MP3 decoding silently depended on Windowsā ACM codec via Mp3FileReader. Swapped to NLayer, pure managed decoder ā MP3s decode on Linux/macOS now too. WebView2Host inline-rendered small visualizers via NavigateToString, which serves from about:blank with no real origin and tanks frame rate ā everything goes through the fast file-backed path now. Auto-cycle switching checked IsLoaded/IsPlaying, both false during Spotify playback since Spotify never loads into the local engine ā switched to HasTrack/IsPlaying. And: a regex stripping onclick=āā¦ā had no exception, matched JS identifiers like onSomething =, and being quote-unguarded ate everything to the next stray quote anywhere later in the file. Fixed with a -block carve-out. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one whoās been waiting on shared play join links forever. Q: Was shared play really host-only until now? A: Yes. The link existed, it just went nowhere. Q: How bad was the regex bug? A: Silent corruption of unrelated code anywhere later in the file, no error thrown. Very glad itās found. Q: Is 5.4.0 stable? A: As far as testing shows. Thatās what everyone says right before the hotfix. āThis is the end*ā *end for now, public users permitting PEBBLE!!!"}, {"post_id": 49430, "ts": "2026-08-18T08:25:19Z", "hours": 10.7003, "text": "Spectralis devlog #8 āHello again proggersā 10 hours 48 minutes. Again. Didnāt plan it, didnāt notice it happening, just looked up and the sun had done a full cycle. This time it was capsules and worlds actually getting built and tested for real instead of just existing in theory. weāve been here before and we will be here again Cat or dog? Capsule.story + Capsule.visualizer print(fāI try to make stu{2f} which {actually_coexist} {10h48m_later}ā) Okay letās get into it~ āYapā Stories came back in devlog #7 as a concept. This round was making and testing the first actual .spectralis capsules and worlds built on that concept, which is a different job entirely ā turns out āthe architecture supports itā and āa real capsule with a real story actually worksā are two very different milestones. Also fixed a bug that only shows up once youāre actually testing real capsules instead of imagining them, and a GitHub pull issue that had nothing to do with any of this and ate time anyway. āThe Great Sufferingā 1 ā Building And Testing The First Real Capsules And Worlds Most of the 10 hours 48 minutes, honestly. Going from āstories and worlds work in conceptā to actually authoring capsules, loading them, and confirming the hooks ā track start, track control, the custom HTML page ā behave the way theyāre supposed to under real content instead of a test stub. This is the part where theory meets āwait, why is this blank.ā 2 ā A Story And A Visualizer Couldnāt Both Exist In One Capsule Found this one while testing, not before. A capsule with both a story and a visualizer defined would break, since apparently the two werenāt built to coexist in the same capsule at all. Fixed so a single capsule can hold both without one stepping on the other. the two features that were supposed to be siblings turned out to be enemies 3 ā GitHub Was Being Weird About Pulling Somewhere in the middle of all this, git decided pulling wasnāt going to just work. Fixed the pulling issue, which is the kind of fix that has no interesting story attached, it was just broken and then it wasnāt. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who said āquick testā and looked up 10 hours 48 minutes later. Q: Was the story/visualizer bug there since devlog #7? A: Presumably, yes. Nobody had actually tried putting both in one capsule until this round. Q: What does ātesting capsules and worldsā actually involve? A: Authoring real ones, loading them in the app, and checking the hooks ā track start, track control, custom HTML rendering ā behave correctly with actual content, not placeholder data. Q: What was the GitHub pulling issue? A: Not going into detail, it wasnāt interesting, it was just broken. Fixed now. Q: Is this the last capsule/worlds devlog? A: No idea. Ask devlog #9. āThis is the end*ā *end for now, git remotes permitting PEPPERONI!!!"}, {"post_id": 49210, "ts": "2026-08-17T21:23:21Z", "hours": 10.1667, "text": "Spectralis devlog #7 ā welcome 5.4.0 āHello again proggersā 5.4.0ās out. This one brought back a feature Iād basically buried, hardened two systems that were still a little too trust-me-bro, and finally let shared play open where it shouldāve been opening the whole time. Also touched the docs, which Iām choosing to be proud of. Cat or dog? .spectralis print(fāI try to make stu{2f} which {actually_ships} {5.4.0}ā) Okay letās get into it~ āYapā Big one this round is stories coming back into .spectralis capsules, except not as the thing they used to be ā modernized, closer to how album worlds work now, as a proper custom HTML page with real hooks instead of whatever they were before. Rest of the release was hardening and cleanup: Streamer Queue and Discord got a pass to make sure live use doesnāt fall over, shared play finally opens in-app, and the docs stopped lying about what the app actually does. bringing back a feature I killed is a personality trait at this point āThe Great Sufferingā 1 ā Stories Are Back, But Not The Same Stories Old stories concept is back inside .spectralis capsules, rebuilt to match how album worlds work now instead of resurrecting the original implementation as-is. Each oneās a custom HTML page with real hooks into the player ā starting tracks, track control, the works ā instead of being a static bolt-on. Bringing it back meant actually integrating it with the current architecture, not just copy-pasting the old version back in. 2 ā Streamer Queue + Discord Got Hardened Both of these existed and mostly worked, which is different from āsurvives actually being used live by a streamer with chat moving.ā Went through and hardened the interaction between Streamer Queue and the Discord bot ā the stuff that only shows up under real load or real edge cases instead of a clean local test run. āmostly worksā is doing a lot of lifting in software 3 ā Shared Play Opens In App Now Shared play used to need you to go find it. Now thereās an actual open-in-app implementation, so joining a shared room is a real in-app flow instead of a workaround. Small change on paper, but itās the difference between a feature people use and a feature people forget exists. 4 ā Docs, README, and STANDARDS Actually Match Reality Updated the docs, README, and STANDARDS to reflect whatās actually in the app at this point instead of an earlier version of it. Boring work, necessary work, the kind of thing that only gets noticed when itās wrong. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who buried a feature and then dug it back up two versions later. Q: Why bring stories back instead of leaving them dead? A: Because the concept was good, the old implementation just wasnāt, and album worlds proved the modernized version of the idea actually works. Q: What counts as āhardeningā for Streamer Queue and Discord? A: The stuff that only breaks under real conditions ā live chat, real timing, real edge cases ā not the happy path you get testing solo. Q: Does shared play opening in-app change how sessions work? A: No, same sessions, same presence/reactions/queue from devlog #6. Just a real entry point now instead of a workaround. Q: Anything left over for next time? A: Always. This is a devlog series, not a finish line. āThis is the end*ā *end for now, capsule hooks permitting åč§!!!"}, {"post_id": 48667, "ts": "2026-08-17T05:02:56Z", "hours": 9.6881, "text": "Spectralis devlog #6 āHello again proggersā Website stuff wrapped up at the 310ee27 merge, then everything shifted straight into Streamer Queue and shared play. Ten commits deep on dev, plus one fix thatās sitting uncommitted in the working tree because itās the kind of thing you want to stare at twice before you trust it. Cat or dog? Mp3FileReaderBase print(fāI try to make stu{2f} which {actually_decodes} {cross_platform}ā) Okay letās get into it~ āYapā Streamer Queue went from ābackend endpoints existā to āactual UI with history and add-to-queueā over the course of ten commits, shared play picked up presence and reactions along the way, and then right at the end I found out the MP3 decoder has been quietly depending on a Windows-only codec this whole time. Great. cross-platform, they said. itāll be fine, they said āThe Great Sufferingā 1 ā Streamer Queue Backend, Then Actually Wiring It Up 402e2efā2b74f97 built out the Streamer Queue backend endpoints ā host add, mark played, mark skipped ā and wired them into the client through a new StreamerQueueViewModel. Backend existing and backend actually being called by anything are two different milestones, and this covered both. 2 ā The UI Caught Up 16c4b26 added the add-to-queue button and a history panel, so Streamer Queue stopped being an API youād have to hit manually and became something thatās actually usable in the app. 3 ā Shared Play Learned About Presence and Reactions ecb43e6 and c7a19c2 ā shared play now fetches and exposes presence and reaction snapshots straight from the CDN. 7e60e15 then had SharedPlaySessionController pass presence, reactions, and queue through properly instead of any of those three living off on their own. 4 ā HostAsync Was Ignoring The Host 92f2079. Found and fixed HostAsync quietly ignoring the hostās actual settings ā not great for a feature called āhost a shared play session.ā the host had opinions the whole time, we just werenāt asking 5 ā Preloading and the Full Shared UI 22bc56e preloads the next track into the shared room too, so listeners arenāt waiting on it live. f2df836 (HEAD) rounds it out with listener count, a reactions ticker, and a request list in the shared play UI ā the room finally looks like it has people in it. Net diff for this stretch: SectionViewModels.cs (+206), backend/src/main.rs (+103), plus the SharedPlay CDN client/models and StreamerQueueView.axaml. 6 ā The Uncommitted One: MP3 Playback Was Windows-Only This Whole Time AudioEngine.cs and VideoExportEngine.cs were both using Mp3FileReader, which under the hood calls Windowsā ACM codec (msacm32.dll) to decompress. Which does not exist on Linux or macOS. Swapping to Mp3FileReaderBase with an NLayer decompressor instead ā NLayer.NAudioSupport added to Spectralis.Core.csproj ā since NLayer is a pure managed decoder and doesnāt care what OS itās on. Not committed yet, wanted to sit with it first. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who just found out MP3 playback only worked on one OS. Q: Was Spectralis actually cross-platform before this fix? A: For anything that wasnāt MP3 audio, sure. For MP3 specifically, only on Windows, silently, this whole time. Q: Why leave the audio fix uncommitted? A: Swapping a decoder for something this central deserves a beat of ādoes this actually sound rightā before it goes in, not just ādoes it build.ā Q: Whatās the difference between Streamer Queue and the regular request queue? A: Streamer Queue is host-controlled ā add, mark played, mark skipped, from the streamerās side, with its own history panel, separate from the public submission flow. Q: Did shared play or Streamer Queue touch the Discord bot? A: No, this roundās entirely Spectralis.App/Spectralis.Core and the Rust backend. Botās untouched. āThis is the end*ā *end for now, ACM codecs permitting PARROT!!!"}, {"post_id": 48057, "ts": "2026-08-16T10:39:23Z", "hours": 2.2006, "text": "Spectralis devlog #5 āHello again proggersā This oneās website side, not app side. Less āwatches chat and reacts,ā more āstop lying to people who land on the page.ā Changelogs, copy, and a pile of QoL that all needed doing at once, so they got done at once. Cat or dog? GET /changelog print(fāI try to make stu{2f} which {actually_updates} {2day}ā) Okay letās get into it~ āYapā The website had drifted into āhardcoded strings and vibesā territory. Changelog was static, copy was doing the thing where every sentence has an exclamation point and says nothing, and a bunch of small friction points had just been sitting there unfixed because none of them were dramatic enough on their own to stop and deal with. death by a thousand papercuts, website edition āThe Great Sufferingā 1 ā Changelogs Moved To The Backend Changelog used to live as static content baked into the site itself, which meant every release meant a redeploy just to update a text block. Now itās served from the backend, so shipping a new version updates the changelog without touching the frontend at all. Site and release process finally agree with each other. 2 ā Marketing Fluff: Removed Went through the copy and cut the stuff that existed to sound exciting instead of to say something. Fewer exclamation points, fewer vague superlatives, more actual sentences about what the thing does. Turns out āitās fastā means more than āblazingly fast, lightning quick, revolutionaryā stacked in one line. RIP to several adjectives, you will not be missed 3 ā A Bunch Of Small QoL Fixes The kind of stuff thatās individually boring but collectively the difference between a site that feels maintained and one that doesnāt ā broken anchor links, inconsistent spacing that had been āfine for nowā for way too long, a couple of buttons that didnāt actually do what their label said, loading states that just werenāt there before. Nothing here gets its own numbered section because none of it deserves one, but all of it needed fixing. 4 ā Site and Backend Actually Talk Now With changelogs pulled from the backend, the website stopped being a static artifact that occasionally gets redeployed and started being an actual client of the backend itās supposed to represent. Small architectural shift, disproportionate amount of relief. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who wrote āblazingly fastā unironically at some point. Q: Why was the changelog static in the first place? A: Because it was easy at the time and āat the timeā was a while ago. Q: Is the marketing copy gone entirely now? A: No, just the fluff. The site still has to say what Spectralis does, it just doesnāt need six adjectives to do it. Q: Does this affect the Discord bot or the app? A: No, this oneās website-only. App and bot are untouched this round. Q: What counts as a āsmall QoL fixā that didnāt get its own section? A: The stuff thatās annoying to list individually but adds up to āthe site feels better now.ā Youāll notice it without being told what it was. āThis is the end*ā *end for now, copywriting urges permitting CYA!!!"}, {"post_id": 47986, "ts": "2026-08-16T08:15:58Z", "hours": 11.9667, "text": "Spectralis devlog #4 āHello again proggersā Uh. So. Itās been 11 hours. We sat down, opened the bot code, and just⦠didnāt stop. No devlog got posted because posting a devlog requires noticing that time is a thing thatās passing, and that stopped happening somewhere around hour 3. this is fine, this has always been fine Cat or dog? channelLock.ts print(fāI try to make stu{2f} which {actually_locked} {11hrs_later}ā) Okay letās get into it, before I forget more of it~ āYapā No app changes this round. Zero. Not one line touched in Spectralis.App or Spectralis.Core. This whole stretch was 100% the Discord bot, going from āstubbed slash commandsā to ābot that actually watches chat and does something about it.ā āThe Great Sufferingā 1 ā Railway Kept Rebuilding Rust For No Reason v5.3.2. Railway was rebuilding the entire backend on every single deploy regardless of whether the Rust actually changed. Pinned the build so it stops doing that. Small fix, saved a genuinely upsetting amount of deploy time. 2 ā The Bot Learned to Watch Chat v5.3.3, and the actual reason for the 11 hours. The bot now watches the queue channel and reacts to song submissions as they come in, instead of just sitting there answering slash commands and pretending it doesnāt see anything else happening. 3 ā New Files, New Problems messageSubmission.ts showed up to handle reacting to and tracking submitted songs in chat. channelLock.ts showed up next to it to handle locking logic for the watched channel, because a bot watching chat unsupervised is a bot that needs boundaries. 4 ā Bot Token Can Now Actually See Things Bumped the bot tokenās permissions so it can see and read submissions in the first place, which, in hindsight, was load-bearing for āwatches chat and reacts to submissions.ā Canāt react to what you canāt read. 5 ā New Slash Commands, Existing Ones Got Bigger set-closed-message and set-open-message let streamers customize what shows up when the queue opens or closes instead of eating a hardcoded string. open-queue/close-queue got extended to actually talk to the new messaging and channel-lock logic instead of just flipping a flag and hoping. 6 ā Everything Downstream Had to Catch Up db.ts, sqApi.ts, nowPlayingPoller.ts, types.ts, and index.ts all expanded to support the submission-tracking flow end to end. Backend picked up a small related change too, +11/-2 in main.rs, mostly plumbing to support what the bot needed on the other end. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who let this go 11 hours without a devlog. Q: How did 11 hours happen? A: One slash command needed one more file, which needed one more type, which needed the bot to actually be able to read messages, and then the sun came up. Q: Is the C# app okay? A: Untouched and fine. It got the week off. Q: Why does the bot need to watch chat instead of just answering commands? A: Song submissions happen by posting in the channel, not by running a command every time. The bot needed to actually see that to react to and track them. Q: Whatās channelLock.ts for? A: Making sure the watched channel behaves predictably while the bot is actively tracking submissions in it, instead of reacting to chaos. Q: Are we caught up on devlogs now? A: This is #4. We are exactly as caught up as weāre going to get. āThis is the end*ā *end for now, sleep permitting PANCAKES!!!"}, {"post_id": 47399, "ts": "2026-08-15T09:49:05Z", "hours": 5.2097, "text": "Spectralis devlog #3 āHello again proggersā Back at it. This round wasnāt visualizer polish or UI cleanup, it was Song Wars/SQ backend stuff and a Discord bot that didnāt exist yesterday. Less āmake it pretty,ā more āmake it not lie to people.ā Cat or dog? AcceptingSubmissions print(fāI try to make stu{2f} which {actually_closes} {2day}ā) Okay letās get into it~ āYapā Turns out āturn off the fee toggleā and āactually prevent the fee-gated actionā are two different things, and I had only been doing the first one. Also built an entire close-queue flow because apparently streamers want to stop taking requests sometimes, which, fair. And then thereās a Discord bot now. That happened too. scope creep? never heard of her āThe Great Sufferingā 1 ā The Free Skip Loophole Turning off āSkip feeā or āSuper Skip feeā removed the option from the public request page (sq.html/sq.js) just fine. What it did NOT do was stop the backend from accepting skip/super-skip attempts anyway ā submit, upload, promote, all of it. Toggle says no, server says sure why not. Backend now actually rejects those attempts when the toggleās off, closing the gap where a disabled tier was quietly still free. the frontend was lying and the backend believed it Still preserved: turning a toggle ON with a $0 amount is a real, intentional free tier. That distinction stays. 2 ā Close Queue Didnāt Exist There was a āQueue enabledā toggle, but no way to just⦠stop taking requests without digging into settings. Added a real AcceptingSubmissions flag, separate from that, plus a one-click āClose Queueā/āReopen Queueā button right next to āCopy Submit URLā in the header. No settings menu detour required. When closed, the public page still shows now-playing and queue count, just hides the request/skip/super-skip forms behind a ārequests are closedā banner. Streamer can keep browsing and playing from the existing queue the whole time, since the appās queue view was never gated on āenabledā to begin with. 3 ā Now Playing Was Just Empty This Whole Time Found this one by accident while wiring Close Queue: the public pageās āNow Playingā section never actually populated for anyone who wasnāt the owner, because the backend just wasnāt sending track info to non-owner viewers. Fixed alongside everything else. 4 ā A Discord Bot Shows Up New discord-bot/ folder, Node.js + TypeScript, discord.js, with a full PLANNING.md for the design: PIN-based pairing so the streamer generates a short-lived PIN in-app and runs /link-queue in Discord with no secrets ever touching chat, a scoped bot-token concept kept separate from the full owner token, and a (guildId, channelId) ā room mapping so one bot instance can serve many servers. /queue, /request, /skip, /superskip are fully wired against the existing public SQ API and build clean. /link-queue, /close-queue, /open-queue are stubbed with TODOs since they need backend PIN/token endpoints that donāt exist yet, which is now the next backend work item. Everything typechecks and builds clean across the board ā Rust release build, Spectralis.App, and the botās tsc. āFAQ (no one asked these but they are here)ā Q: Why does Spectralis need a Discord bot? A: Because apparently the request queue living only on a web page wasnāt enough surface area. Now it can also live in your server. Q: Whatās PIN-based pairing? A: Streamer gets a short-lived PIN in-app, runs one Discord command with it, done. No tokens or secrets ever posted in chat. Q: Anything left over from last devlog? A: Chat template drift is still an EDITH problem, not a Spectralis one. Wrong repo, wrong devlog. āThis is the end*ā *end for now, PIN endpoints permitting PIZZA!!!"}, {"post_id": 46741, "ts": "2026-08-14T06:44:16Z", "hours": 6.1242, "text": "Spectralis devlog #2 āHello again proggersā New project, same yapping. This oneās Spectralis ā the WinForms-to-Avalonia refugee that somehow ended up with a spin wheel, notepads, dead zones, and Spotify playlist sync bolted onto it. 917 commits deep and counting. Cat or dog? RowBackground print(fāI try to make stu{2f} which {actually_renders} {2day}ā) Okay letās get into it~ āYapā This stretch was less āone big featureā and more ādeath by a thousand small horrors,ā which honestly might just be what maintaining a music app is. Playlists, now playing, the visualizer pipeline, and a wheel of all things all got touched. a spin wheel. in a music app. sure āThe Great Sufferingā 1 ā Playlists Looked Like a Log File For way too long, the playlist view rendered like plain rows in a terminal instead of, yāknow, an app. Turns out library explicitly set RowBackground and playlists just⦠didnāt. So it fell back to the themeās default accent-tinted fill on every single row instead of the real styling. One missing property. Thatās it. Thatās the bug. found staring at my own code for an hour 2 ā Every Nav Click Rebuilt The World ContentControl was tearing down and rebuilding the entire section view from scratch on every single navigation click. Fixed by caching views per viewmodel instead of nuking them each time. App feels like itās not fighting itself anymore. 3 ā Library Load Was Blocking the Window From Even Opening Big libraries meant the window just⦠wouldnāt show up. Load was sitting on the UI thread like it owned the place. Moved off it. Window opens now regardless of how unhinged your library size is. 4 ā Spectrum Bars Were Snapping FFT window was running back-to-back instead of overlapping, so spectrum/spectrogram/loudness only actually updated every ~185ms even at 60fps render ā bars were snapping to new values instead of moving. Bumped overlap to 75% and eased toward target instead of drawing raw values. Smooth now. Suspiciously smooth. 5 ā Notepads and the Wheel Happened Somewhere in here a full notepad feature got built ā embed model, tag service, docked panel in now playing, pop-out window, save-to-track-tags ā and then immediately got wired into a spin wheel with weighted entries, its own model, and a saved-wheels list. Neither of these were planned at the start of the week. Both exist now. 6 ā Spotify Actually Behaves Spotify stopped pausing forever, stopped lying about the queue, stopped refusing to shut up, and playlists now actually sync instead of just vibing. Also Discord presence shows Spotify tracks now instead of just going blank like it forgot what music was. 7 ā Small Bugs, Deployed With Extreme Prejudice Soundcloud playhead was showing the previous trackās end position on load, fixed. Word mode wasnāt saving timestamps so exports came out empty, fixed. Track-switch click (and the pop when another app grabs the audio device) got a quick fade instead. Dead zones stopped being OBS-only and now shift the appās own layout too. āFAQ (no one asked these but they are here)ā Q: What is Spectralis? A: A local + Spotify + SoundCloud music player with a visualizer pipeline, OBS integration, and apparently a spin wheel now. Originally WinForms, migrated to Avalonia across 917 commits. Q: Why does a music player need dead zones? A: For OBS overlay layouts ā panels and toasts need to know where not to render so they donāt cover your stream elements. Itās a layout constraint system wearing a spooky name. Q: Was the RowBackground bug really just one missing line? A: Yes. Iām still thinking about it. Q: Is the wheel feature load-bearing or a bit? A: Unclear. It has weighted spins, saved wheel lists, and its own viewmodel. Feels load-bearing now. Q: Whatās next? A: Whatever the changelog for the version after 5.4.0 ends up needing. Probably something I havenāt broken yet. āThis is the end*ā *end for now, RowBackground permitting ADIOS!!!šššš"}, {"post_id": 27486, "ts": "2026-07-13T02:54:53Z", "hours": 16.6944, "text": "DEVLOG 001 initial setup with hackclub this is the 5th iteration of the spectralis audio visualizer app core features changed: switched from WinForms to AvaloniaUI refined UI design and theming fixed api related issues added streamer support and automated queueing web share audio hosting refinements to the embedded audio visualizer system bug fixes: fixed an issue with the youtube API placeholder fix for Spotify webplayer playback fixed an issue with the viz switcher would āhideā behind the html visualizers"}]...
|
Title: Spectralis by @DeltaVortex | Stardance
Dev Title: Spectralis by @DeltaVortex | Stardance
Devlogs:
DEVLOG 001 initial setup with hackclub this is the 5th iteration of the spectralis audio visualizer app core features changed: switched from WinForms to AvaloniaUI refined UI design and theming fixed api related issues added streamer support and automated queueing web share audio hosting refinements to the embedded audio visualizer system bug fixes: fixed an issue with the youtube API placeholder fix for Spotify webplayer playback fixed an issue with the viz switcher would āhideā behind the html visualizers
Spectralis devlog #2 āHello again proggersā New project, same yapping. This oneās Spectralis ā the WinForms-to-Avalonia refugee that somehow ended up with a spin wheel, notepads, dead zones, and Spotify playlist sync bolted onto it. 917 commits deep and counting. Cat or dog? RowBackground print(fāI try to make stu{2f} which {actually_renders} {2day}ā) Okay letās get into it~ āYapā This stretch was less āone big featureā and more ādeath by a thousand small horrors,ā which honestly might just be what maintaining a music app is. Playlists, now playing, the visualizer pipeline, and a wheel of all things all got touched. a spin wheel. in a music app. sure āThe Great Sufferingā 1 ā Playlists Looked Like a Log File For way too long, the playlist view rendered like plain rows in a terminal instead of, yāknow, an app. Turns out library explicitly set RowBackground and playlists just⦠didnāt. So it fell back to the themeās default accent-tinted fill on every single row instead of the real styling. One missing property. Thatās it. Thatās the bug. found staring at my own code for an hour 2 ā Every Nav Click Rebuilt The World ContentControl was tearing down and rebuilding the entire section view from scratch on every single navigation click. Fixed by caching views per viewmodel instead of nuking them each time. App feels like itās not fighting itself anymore. 3 ā Library Load Was Blocking the Window From Even Opening Big libraries meant the window just⦠wouldnāt show up. Load was sitting on the UI thread like it owned the place. Moved off it. Window opens now regardless of how unhinged your library size is. 4 ā Spectrum Bars Were Snapping FFT window was running back-to-back instead of overlapping, so spectrum/spectrogram/loudness only actually updated every ~185ms even at 60fps render ā bars were snapping to new values instead of moving. Bumped overlap to 75% and eased toward target instead of drawing raw values. Smooth now. Suspiciously smooth. 5 ā Notepads and the Wheel Happened Somewhere in here a full notepad feature got built ā embed model, tag service, docked panel in now playing, pop-out window, save-to-track-tags ā and then immediately got wired into a spin wheel with weighted entries, its own model, and a saved-wheels list. Neither of these were planned at the start of the week. Both exist now. 6 ā Spotify Actually Behaves Spotify stopped pausing forever, stopped lying about the queue, stopped refusing to shut up, and playlists now actually sync instead of just vibing. Also Discord presence shows Spotify tracks now instead of just going blank like it forgot what music was. 7 ā Small Bugs, Deployed With Extreme Prejudice Soundcloud playhead was showing the previous trackās end position on load, fixed. Word mode wasnāt saving timestamps so exports came out empty, fixed. Track-switch click (and the pop when another app grabs the audio device) got a quick fade instead. Dead zones stopped being OBS-only and now shift the appās own layout too. āFAQ (no one asked these but they are here)ā Q: What is Spectralis? A: A local + Spotify + SoundCloud music player with a visualizer pipeline, OBS integration, and apparently a spin wheel now. Originally WinForms, migrated to Avalonia across 917 commits. Q: Why does a music player need dead zones? A: For OBS overlay layouts ā panels and toasts need to know where not to render so they donāt cover your stream elements. Itās a layout constraint system wearing a spooky name. Q: Was the RowBackground bug really just one missing line? A: Yes. Iām still thinking about it. Q: Is the wheel feature load-bearing or a bit? A: Unclear. It has weighted spins, saved wheel lists, and its own viewmodel. Feels load-bearing now. Q: Whatās next? A: Whatever the changelog for the version after 5.4.0 ends up needing. Probably something I havenāt broken yet. āThis is the end*ā *end for now, RowBackground permitting ADIOS!!!šššš
Spectralis devlog #3 āHello again proggersā Back at it. This round wasnāt visualizer polish or UI cleanup, it was Song Wars/SQ backend stuff and a Discord bot that didnāt exist yesterday. Less āmake it pretty,ā more āmake it not lie to people.ā Cat or dog? AcceptingSubmissions print(fāI try to make stu{2f} which {actually_closes} {2day}ā) Okay letās get into it~ āYapā Turns out āturn off the fee toggleā and āactually prevent the fee-gated actionā are two different things, and I had only been doing the first one. Also built an entire close-queue flow because apparently streamers want to stop taking requests sometimes, which, fair. And then thereās a Discord bot now. That happened too. scope creep? never heard of her āThe Great Sufferingā 1 ā The Free Skip Loophole Turning off āSkip feeā or āSuper Skip feeā removed the option from the public request page (sq.html/sq.js) just fine. What it did NOT do was stop the backend from accepting skip/super-skip attempts anyway ā submit, upload, promote, all of it. Toggle says no, server says sure why not. Backend now actually rejects those attempts when the toggleās off, closing the gap where a disabled tier was quietly still free. the frontend was lying and the backend believed it Still preserved: turning a toggle ON with a $0 amount is a real, intentional free tier. That distinction stays. 2 ā Close Queue Didnāt Exist There was a āQueue enabledā toggle, but no way to just⦠stop taking requests without digging into settings. Added a real AcceptingSubmissions flag, separate from that, plus a one-click āClose Queueā/āReopen Queueā button right next to āCopy Submit URLā in the header. No settings menu detour required. When closed, the public page still shows now-playing and queue count, just hides the request/skip/super-skip forms behind a ārequests are closedā banner. Streamer can keep browsing and playing from the existing queue the whole time, since the appās queue view was never gated on āenabledā to begin with. 3 ā Now Playing Was Just Empty This Whole Time Found this one by accident while wiring Close Queue: the public pageās āNow Playingā section never actually populated for anyone who wasnāt the owner, because the backend just wasnāt sending track info to non-owner viewers. Fixed alongside everything else. 4 ā A Discord Bot Shows Up New discord-bot/ folder, Node.js + TypeScript, discord.js, with a full PLANNING.md for the design: PIN-based pairing so the streamer generates a short-lived PIN in-app and runs /link-queue in Discord with no secrets ever touching chat, a scoped bot-token concept kept separate from the full owner token, and a (guildId, channelId) ā room mapping so one bot instance can serve many servers. /queue, /request, /skip, /superskip are fully wired against the existing public SQ API and build clean. /link-queue, /close-queue, /open-queue are stubbed with TODOs since they need backend PIN/token endpoints that donāt exist yet, which is now the next backend work item. Everything typechecks and builds clean across the board ā Rust release build, Spectralis.App, and the botās tsc. āFAQ (no one asked these but they are here)ā Q: Why does Spectralis need a Discord bot? A: Because apparently the request queue living only on a web page wasnāt enough surface area. Now it can also live in your server. Q: Whatās PIN-based pairing? A: Streamer gets a short-lived PIN in-app, runs one Discord command with it, done. No tokens or secrets ever posted in chat. Q: Anything left over from last devlog? A: Chat template drift is still an EDITH problem, not a Spectralis one. Wrong repo, wrong devlog. āThis is the end*ā *end for now, PIN endpoints permitting PIZZA!!!
Spectralis devlog #4 āHello again proggersā Uh. So. Itās been 11 hours. We sat down, opened the bot code, and just⦠didnāt stop. No devlog got posted because posting a devlog requires noticing that time is a thing thatās passing, and that stopped happening somewhere around hour 3. this is fine, this has always been fine Cat or dog? channelLock.ts print(fāI try to make stu{2f} which {actually_locked} {11hrs_later}ā) Okay letās get into it, before I forget more of it~ āYapā No app changes this round. Zero. Not one line touched in Spectralis.App or Spectralis.Core. This whole stretch was 100% the Discord bot, going from āstubbed slash commandsā to ābot that actually watches chat and does something about it.ā āThe Great Sufferingā 1 ā Railway Kept Rebuilding Rust For No Reason v5.3.2. Railway was rebuilding the entire backend on every single deploy regardless of whether the Rust actually changed. Pinned the build so it stops doing that. Small fix, saved a genuinely upsetting amount of deploy time. 2 ā The Bot Learned to Watch Chat v5.3.3, and the actual reason for the 11 hours. The bot now watches the queue channel and reacts to song submissions as they come in, instead of just sitting there answering slash commands and pretending it doesnāt see anything else happening. 3 ā New Files, New Problems messageSubmission.ts showed up to handle reacting to and tracking submitted songs in chat. channelLock.ts showed up next to it to handle locking logic for the watched channel, because a bot watching chat unsupervised is a bot that needs boundaries. 4 ā Bot Token Can Now Actually See Things Bumped the bot tokenās permissions so it can see and read submissions in the first place, which, in hindsight, was load-bearing for āwatches chat and reacts to submissions.ā Canāt react to what you canāt read. 5 ā New Slash Commands, Existing Ones Got Bigger set-closed-message and set-open-message let streamers customize what shows up when the queue opens or closes instead of eating a hardcoded string. open-queue/close-queue got extended to actually talk to the new messaging and channel-lock logic instead of just flipping a flag and hoping. 6 ā Everything Downstream Had to Catch Up db.ts, sqApi.ts, nowPlayingPoller.ts, types.ts, and index.ts all expanded to support the submission-tracking flow end to end. Backend picked up a small related change too, +11/-2 in main.rs, mostly plumbing to support what the bot needed on the other end. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who let this go 11 hours without a devlog. Q: How did 11 hours happen? A: One slash command needed one more file, which needed one more type, which needed the bot to actually be able to read messages, and then the sun came up. Q: Is the C# app okay? A: Untouched and fine. It got the week off. Q: Why does the bot need to watch chat instead of just answering commands? A: Song submissions happen by posting in the channel, not by running a command every time. The bot needed to actually see that to react to and track them. Q: Whatās channelLock.ts for? A: Making sure the watched channel behaves predictably while the bot is actively tracking submissions in it, instead of reacting to chaos. Q: Are we caught up on devlogs now? A: This is #4. We are exactly as caught up as weāre going to get. āThis is the end*ā *end for now, sleep permitting PANCAKES!!!
Spectralis devlog #5 āHello again proggersā This oneās website side, not app side. Less āwatches chat and reacts,ā more āstop lying to people who land on the page.ā Changelogs, copy, and a pile of QoL that all needed doing at once, so they got done at once. Cat or dog? GET /changelog print(fāI try to make stu{2f} which {actually_updates} {2day}ā) Okay letās get into it~ āYapā The website had drifted into āhardcoded strings and vibesā territory. Changelog was static, copy was doing the thing where every sentence has an exclamation point and says nothing, and a bunch of small friction points had just been sitting there unfixed because none of them were dramatic enough on their own to stop and deal with. death by a thousand papercuts, website edition āThe Great Sufferingā 1 ā Changelogs Moved To The Backend Changelog used to live as static content baked into the site itself, which meant every release meant a redeploy just to update a text block. Now itās served from the backend, so shipping a new version updates the changelog without touching the frontend at all. Site and release process finally agree with each other. 2 ā Marketing Fluff: Removed Went through the copy and cut the stuff that existed to sound exciting instead of to say something. Fewer exclamation points, fewer vague superlatives, more actual sentences about what the thing does. Turns out āitās fastā means more than āblazingly fast, lightning quick, revolutionaryā stacked in one line. RIP to several adjectives, you will not be missed 3 ā A Bunch Of Small QoL Fixes The kind of stuff thatās individually boring but collectively the difference between a site that feels maintained and one that doesnāt ā broken anchor links, inconsistent spacing that had been āfine for nowā for way too long, a couple of buttons that didnāt actually do what their label said, loading states that just werenāt there before. Nothing here gets its own numbered section because none of it deserves one, but all of it needed fixing. 4 ā Site and Backend Actually Talk Now With changelogs pulled from the backend, the website stopped being a static artifact that occasionally gets redeployed and started being an actual client of the backend itās supposed to represent. Small architectural shift, disproportionate amount of relief. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who wrote āblazingly fastā unironically at some point. Q: Why was the changelog static in the first place? A: Because it was easy at the time and āat the timeā was a while ago. Q: Is the marketing copy gone entirely now? A: No, just the fluff. The site still has to say what Spectralis does, it just doesnāt need six adjectives to do it. Q: Does this affect the Discord bot or the app? A: No, this oneās website-only. App and bot are untouched this round. Q: What counts as a āsmall QoL fixā that didnāt get its own section? A: The stuff thatās annoying to list individually but adds up to āthe site feels better now.ā Youāll notice it without being told what it was. āThis is the end*ā *end for now, copywriting urges permitting CYA!!!
Spectralis devlog #6 āHello again proggersā Website stuff wrapped up at the 310ee27 merge, then everything shifted straight into Streamer Queue and shared play. Ten commits deep on dev, plus one fix thatās sitting uncommitted in the working tree because itās the kind of thing you want to stare at twice before you trust it. Cat or dog? Mp3FileReaderBase print(fāI try to make stu{2f} which {actually_decodes} {cross_platform}ā) Okay letās get into it~ āYapā Streamer Queue went from ābackend endpoints existā to āactual UI with history and add-to-queueā over the course of ten commits, shared play picked up presence and reactions along the way, and then right at the end I found out the MP3 decoder has been quietly depending on a Windows-only codec this whole time. Great. cross-platform, they said. itāll be fine, they said āThe Great Sufferingā 1 ā Streamer Queue Backend, Then Actually Wiring It Up 402e2efā2b74f97 built out the Streamer Queue backend endpoints ā host add, mark played, mark skipped ā and wired them into the client through a new StreamerQueueViewModel. Backend existing and backend actually being called by anything are two different milestones, and this covered both. 2 ā The UI Caught Up 16c4b26 added the add-to-queue button and a history panel, so Streamer Queue stopped being an API youād have to hit manually and became something thatās actually usable in the app. 3 ā Shared Play Learned About Presence and Reactions ecb43e6 and c7a19c2 ā shared play now fetches and exposes presence and reaction snapshots straight from the CDN. 7e60e15 then had SharedPlaySessionController pass presence, reactions, and queue through properly instead of any of those three living off on their own. 4 ā HostAsync Was Ignoring The Host 92f2079. Found and fixed HostAsync quietly ignoring the hostās actual settings ā not great for a feature called āhost a shared play session.ā the host had opinions the whole time, we just werenāt asking 5 ā Preloading and the Full Shared UI 22bc56e preloads the next track into the shared room too, so listeners arenāt waiting on it live. f2df836 (HEAD) rounds it out with listener count, a reactions ticker, and a request list in the shared play UI ā the room finally looks like it has people in it. Net diff for this stretch: SectionViewModels.cs (+206), backend/src/main.rs (+103), plus the SharedPlay CDN client/models and StreamerQueueView.axaml. 6 ā The Uncommitted One: MP3 Playback Was Windows-Only This Whole Time AudioEngine.cs and VideoExportEngine.cs were both using Mp3FileReader, which under the hood calls Windowsā ACM codec (msacm32.dll) to decompress. Which does not exist on Linux or macOS. Swapping to Mp3FileReaderBase with an NLayer decompressor instead ā NLayer.NAudioSupport added to Spectralis.Core.csproj ā since NLayer is a pure managed decoder and doesnāt care what OS itās on. Not committed yet, wanted to sit with it first. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who just found out MP3 playback only worked on one OS. Q: Was Spectralis actually cross-platform before this fix? A: For anything that wasnāt MP3 audio, sure. For MP3 specifically, only on Windows, silently, this whole time. Q: Why leave the audio fix uncommitted? A: Swapping a decoder for something this central deserves a beat of ādoes this actually sound rightā before it goes in, not just ādoes it build.ā Q: Whatās the difference between Streamer Queue and the regular request queue? A: Streamer Queue is host-controlled ā add, mark played, mark skipped, from the streamerās side, with its own history panel, separate from the public submission flow. Q: Did shared play or Streamer Queue touch the Discord bot? A: No, this roundās entirely Spectralis.App/Spectralis.Core and the Rust backend. Botās untouched. āThis is the end*ā *end for now, ACM codecs permitting PARROT!!!
Spectralis devlog #7 ā welcome 5.4.0 āHello again proggersā 5.4.0ās out. This one brought back a feature Iād basically buried, hardened two systems that were still a little too trust-me-bro, and finally let shared play open where it shouldāve been opening the whole time. Also touched the docs, which Iām choosing to be proud of. Cat or dog? .spectralis print(fāI try to make stu{2f} which {actually_ships} {5.4.0}ā) Okay letās get into it~ āYapā Big one this round is stories coming back into .spectralis capsules, except not as the thing they used to be ā modernized, closer to how album worlds work now, as a proper custom HTML page with real hooks instead of whatever they were before. Rest of the release was hardening and cleanup: Streamer Queue and Discord got a pass to make sure live use doesnāt fall over, shared play finally opens in-app, and the docs stopped lying about what the app actually does. bringing back a feature I killed is a personality trait at this point āThe Great Sufferingā 1 ā Stories Are Back, But Not The Same Stories Old stories concept is back inside .spectralis capsules, rebuilt to match how album worlds work now instead of resurrecting the original implementation as-is. Each oneās a custom HTML page with real hooks into the player ā starting tracks, track control, the works ā instead of being a static bolt-on. Bringing it back meant actually integrating it with the current architecture, not just copy-pasting the old version back in. 2 ā Streamer Queue + Discord Got Hardened Both of these existed and mostly worked, which is different from āsurvives actually being used live by a streamer with chat moving.ā Went through and hardened the interaction between Streamer Queue and the Discord bot ā the stuff that only shows up under real load or real edge cases instead of a clean local test run. āmostly worksā is doing a lot of lifting in software 3 ā Shared Play Opens In App Now Shared play used to need you to go find it. Now thereās an actual open-in-app implementation, so joining a shared room is a real in-app flow instead of a workaround. Small change on paper, but itās the difference between a feature people use and a feature people forget exists. 4 ā Docs, README, and STANDARDS Actually Match Reality Updated the docs, README, and STANDARDS to reflect whatās actually in the app at this point instead of an earlier version of it. Boring work, necessary work, the kind of thing that only gets noticed when itās wrong. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who buried a feature and then dug it back up two versions later. Q: Why bring stories back instead of leaving them dead? A: Because the concept was good, the old implementation just wasnāt, and album worlds proved the modernized version of the idea actually works. Q: What counts as āhardeningā for Streamer Queue and Discord? A: The stuff that only breaks under real conditions ā live chat, real timing, real edge cases ā not the happy path you get testing solo. Q: Does shared play opening in-app change how sessions work? A: No, same sessions, same presence/reactions/queue from devlog #6. Just a real entry point now instead of a workaround. Q: Anything left over for next time? A: Always. This is a devlog series, not a finish line. āThis is the end*ā *end for now, capsule hooks permitting åč§!!!
Spectralis devlog #8 āHello again proggersā 10 hours 48 minutes. Again. Didnāt plan it, didnāt notice it happening, just looked up and the sun had done a full cycle. This time it was capsules and worlds actually getting built and tested for real instead of just existing in theory. weāve been here before and we will be here again Cat or dog? Capsule.story + Capsule.visualizer print(fāI try to make stu{2f} which {actually_coexist} {10h48m_later}ā) Okay letās get into it~ āYapā Stories came back in devlog #7 as a concept. This round was making and testing the first actual .spectralis capsules and worlds built on that concept, which is a different job entirely ā turns out āthe architecture supports itā and āa real capsule with a real story actually worksā are two very different milestones. Also fixed a bug that only shows up once youāre actually testing real capsules instead of imagining them, and a GitHub pull issue that had nothing to do with any of this and ate time anyway. āThe Great Sufferingā 1 ā Building And Testing The First Real Capsules And Worlds Most of the 10 hours 48 minutes, honestly. Going from āstories and worlds work in conceptā to actually authoring capsules, loading them, and confirming the hooks ā track start, track control, the custom HTML page ā behave the way theyāre supposed to under real content instead of a test stub. This is the part where theory meets āwait, why is this blank.ā 2 ā A Story And A Visualizer Couldnāt Both Exist In One Capsule Found this one while testing, not before. A capsule with both a story and a visualizer defined would break, since apparently the two werenāt built to coexist in the same capsule at all. Fixed so a single capsule can hold both without one stepping on the other. the two features that were supposed to be siblings turned out to be enemies 3 ā GitHub Was Being Weird About Pulling Somewhere in the middle of all this, git decided pulling wasnāt going to just work. Fixed the pulling issue, which is the kind of fix that has no interesting story attached, it was just broken and then it wasnāt. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who said āquick testā and looked up 10 hours 48 minutes later. Q: Was the story/visualizer bug there since devlog #7? A: Presumably, yes. Nobody had actually tried putting both in one capsule until this round. Q: What does ātesting capsules and worldsā actually involve? A: Authoring real ones, loading them in the app, and checking the hooks ā track start, track control, custom HTML rendering ā behave correctly with actual content, not placeholder data. Q: What was the GitHub pulling issue? A: Not going into detail, it wasnāt interesting, it was just broken. Fixed now. Q: Is this the last capsule/worlds devlog? A: No idea. Ask devlog #9. āThis is the end*ā *end for now, git remotes permitting PEPPERONI!!!
Spectralis devlog #9 ā 5.4.0 is public āHello again proggersā 5.4.0 is actually out, publicly, in peopleās hands. Diffed v5.3.4 through v5.4.0: 40 commits, Aug 16-18, four threads of work. Cat or dog? spectral.resume() āYapā Shared play became joinable, Streamer Queue and the Discord bot got hardened, story/visualizer bugs got chased down in one sitting, and some platform/perf issues got caught. None of these were small. āThe Great Sufferingā 1 ā Shared Play Can Be Joined Now spectralis://shared-play/join links used to fall through to nothing. Now routed to a real handler. 2 ā Streamer Queue: Host Controls + A Bot That Wonāt Die Host can add tracks and mark played/skipped directly, no viewer round-trip. Desktop got an add-to-queue button and history panel. Both pollers (desktop + bot) back off dead rooms instead of hammering them. SQ API calls got a 10s timeout + one retry, GETs only ā mutating calls donāt retry, to avoid double-submitting on a timed-out-but-successful response. Bot had zero global error handlers before this. One bad promise took the whole process down silently. Now it logs and survives, plus 3-attempt startup retry. 3 ā Story Pages vs. Visualizers: Three Bugs, One Afternoon A capsule with both used to have them fight. Story can now queue a surface behind it ā TryAdvancePastStory() swaps in the queued surface on spectral.resume(). Audio was starting under the story before the reader finished ā now gated on whether a surface is queued. Once queued, picker/prev-next/keyboard could still hijack it ā new IsVisualizerLocked blocks all three (user-picked āSpecial:ā visualizers stay switchable). 4 ā Platform + Perf Fixes MP3 decoding silently depended on Windowsā ACM codec via Mp3FileReader. Swapped to NLayer, pure managed decoder ā MP3s decode on Linux/macOS now too. WebView2Host inline-rendered small visualizers via NavigateToString, which serves from about:blank with no real origin and tanks frame rate ā everything goes through the fast file-backed path now. Auto-cycle switching checked IsLoaded/IsPlaying, both false during Spotify playback since Spotify never loads into the local engine ā switched to HasTrack/IsPlaying. And: a regex stripping onclick=āā¦ā had no exception, matched JS identifiers like onSomething =, and being quote-unguarded ate everything to the next stray quote anywhere later in the file. Fixed with a -block carve-out. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one whoās been waiting on shared play join links forever. Q: Was shared play really host-only until now? A: Yes. The link existed, it just went nowhere. Q: How bad was the regex bug? A: Silent corruption of unrelated code anywhere later in the file, no error thrown. Very glad itās found. Q: Is 5.4.0 stable? A: As far as testing shows. Thatās what everyone says right before the hotfix. āThis is the end*ā *end for now, public users permitting PEBBLE!!!
Spectralis devlog #10 āHello again proggersā 11 hours, zero sleep, and somewhere in the middle of that a full release went out. v5.4.1, then v5.4.1.2 right behind it because apparently one patch release wasnāt enough punishment for one night. sleep is a scheduling conflict I lost Cat or dog? winmm.dll Okay letās get into it~ āYapā Started as a normal patch pass and turned into a full Linux compatibility audit at 3am, because it turns out shipping something cross-platform means actually checking what ācross-platformā was quietly lying about. Found four separate ways the app was secretly Windows-only, fixed all of them, shipped twice. āThe Great Sufferingā 1 ā winmm.dll Doesnāt Exist On Linux, Who Knew Something was calling into winmm.dll directly. Which is a Windows multimedia API. Which does not exist on Linux. Genuinely did not know this was happening until it broke loudly. āwho knewā is doing a lot of work in that commit message 2 ā Shipped A .exe To Linux, My Bad Somewhere in the build/packaging step, a .exe was ending up in the Linux build. An executable format Linux does not run. Not a subtle bug, just an embarrassing one. 3 ā Song Wars Closing = Surprise Alt+F4 Closing Song Wars was apparently also closing the entire app, unprompted, no warning. A feature window doubling as a kill switch is not a feature, itās a trap. 4 ā Yeeted yt-dlp + ffmpeg Into Linux Land, Zero Installs Needed The actual fix underneath most of this: bundled yt-dlp and ffmpeg directly for Linux instead of assuming theyād already be installed system-wide, which they very often werenāt. Zero external installs needed now, it just works out of the box. 5 ā Last Page Isnāt A Dead End Anymore Merged in from feature/story-pager-finish ā reaching the last page of a story used to just⦠stop. Dead end, nothing to do. Fixed so it actually resolves properly instead of leaving you stranded on the final page. 6 ā Two Releases In One Night v5.4.1 went out, then a second pass turned up enough left over that v5.4.1.2 followed right after. Both merged through staging same night, same sleepless stretch. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who found out about winmm.dll at 3am. Q: Was Spectralis actually broken on Linux before this? A: In at least four distinct ways, yes. Missing binaries, a stray .exe, a Windows-only DLL call, and an app-closing bug. Now fixed. Q: Why two patch releases instead of one? A: v5.4.1 went out, more got found immediately after, and waiting felt worse than just shipping v5.4.1.2 same night. Q: Did you actually not sleep? A: Correct. Not recommending it. Doing it anyway next time, probably. Q: Is Linux actually solid now? A: As solid as one very long, very tired night of testing can confirm. Time will tell the rest. āThis is the end*ā *end for now, sleep schedules permitting PIBBLE!!!
Spectralis devlog #11 āHello again proggersā Docs got a full rework this round. Also turns out v5.4.1 went out to nobody, because it never actually got pushed to the CDN. Tagged, released, announced probably, and completely inaccessible the whole time. shipped a release into a void and called it done Cat or dog? docs/ Okay letās get into it~ āYapā Started as a documentation pass and ended with the realization that the last release had been sitting local this whole time instead of where anyone could actually get it. Two very different kinds of work, same devlog. āThe Great Sufferingā 1 ā The Entire Doc Rework Not a touch-up, a full rework. Docs, README, and STANDARDS all got restructured rather than patched in place, since patching them individually over the last several devlogs had left them internally inconsistent with each other and with what the app actually does now. 2 ā 5.4.1 Never Made It To The CDN The actual headline bug of this devlog. v5.4.1 shipped, in the sense that it was built, tagged, and probably announced somewhere ā but never got pushed to the CDN, meaning nobody could actually download it. Public-facing, and it was quietly broken the whole time until someone noticed. a release that ships to nowhere didnāt really ship 3 ā Fixed And Actually Pushed Corrected the CDN push so 5.4.1 is genuinely available now, not just tagged in git looking like it is. Also part of why the doc rework mattered ā docs referencing a version nobody could download was its own kind of lie. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who tagged a release and forgot the part where people can actually get it. Q: How long was 5.4.1 unavailable? A: Long enough to be embarrassing, short enough to fix before it became a real problem. Caught during this pass. Q: Why redo the docs entirely instead of patching them again? A: Because incremental doc patches across several devlogs had drifted apart from each other and from the app. A full rework got everything back in sync at once. Q: Is this the same CDN that serves changelogs now (devlog #5)? A: Same one. This time the release binary itself was the thing missing, not just content. Q: Anything else quietly broken that hasnāt surfaced yet? A: Unknown by definition. Thatās what the next devlog is for. āThis is the end*ā *end for now, CDN pushes permitting POPPY!!!
Spectralis devlog #12 āHello again proggersā Websiteās getting a real pass. Not new copy this time, actual visual identity work, because it currently reads like every AI startup landing page that ever came out of the middle of California, and Spectralis is not that. gradient blob, bold sans headline, ārevolutionize your workflowā ā no Cat or dog? theme.css Okay letās get into it~ āYapā Not released yet, deliberately. This oneās still in progress, but close enough that itās worth logging before itās done instead of only after. The goalās simple to say and annoying to actually do: stop looking generic. āThe Great Sufferingā 1 ā The AI-Startup Look Had To Go Somewhere along the way the site had drifted into the exact aesthetic every seed-stage AI company in the Bay Area ships with ā same fonts, same soft gradients, same layout rhythm everyoneās using because everyone else is using it. None of that says anything about what Spectralis actually is. 2 ā Actual Visual Identity Work Working through what the site should look like instead of whatās easy to reach for by default. This is the slow part ā not writing more copy, actually deciding what the thing looks like and why, instead of inheriting a templateās opinions by accident. 3 ā Not Done, Getting Close Deliberately not shipping this mid-rework. Better to land it as one coherent pass than dribble out half-finished visual changes and confuse anyone who lands on the page in between. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one trying to make a music appās website stop looking like a fundraising deck. Q: What specifically screamed āAI startupā? A: The general vibe more than any one element ā the kind of design every YC-adjacent landing page converges on when nobody makes an active choice. Q: Why not ship incrementally instead of waiting? A: A visual identity rework half-applied looks worse than the thing itās replacing. Waiting for it to be coherent. Q: How close is close? A: Close. Not ānext devlogā close necessarily, but visibly closer than devlog #11 left it. Q: Does this touch the changelog-from-backend system from devlog #5? A: No, that infrastructure stays as-is. This is purely visual. āThis is the end*ā *end for now, gradient blobs permitting POGO!!!
Spectralis devlog #13 āHello again proggersā Still on the website. Turns out the āmake it not look like AI made itā problem does not have an easy exit ā everything ends up looking like AI made it no matter what gets tried. Also had to ask Claude how to center a div. Yes, that div. The one every developer has fought since the dawn of CSS. the irony of asking an AI how to make something look less AI-made is not lost on me Cat or dog? display: flex Okay letās get into it~ āYapā Round two on the visual rework from last devlog, and the honest update is: itās harder than expected. Every direction tried still lands somewhere in āgeneric modern web design,ā which might just be what modern web design looks like right now regardless of whoās making it. āThe Great Sufferingā 1 ā Everything Still Looks Like AI Made It Tried multiple directions this round trying to get away from the generic look. Kept landing back in the same neighborhood anyway. Starting to suspect this isnāt a ātry harderā problem, itās just what the current design language space looks like from basically every angle right now. 2 ā Had To Ask Claude How To Center A Div The oldest joke in frontend development, still funny because itās still true. Got stuck on it anyway. Some things never stop being annoying regardless of how many years of CSS have gone by. flexbox has existed for a decade and this is still where we are 3 ā Pulled Up W3Schools For The First Time In Forever Dug up an old W3Schools reference mid-debugging, and it is dusty as hell at this point but the informationās still correct. Sometimes the ancient reference site is exactly whatās needed, aesthetics of the source be damned. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who asked an AI to help make something look less like an AI made it. Q: Did the AI-startup look actually get fixed this round? A: Not fully. Still fighting it. Thatās most of this devlog. Q: Why does everything converge on the same generic look? A: Best guess: current tools and current design trends both nudge toward the same handful of patterns, so escaping it takes more than just trying different colors. Q: Is W3Schools still reliable? A: Apparently yes. Dated presentation, correct information. Q: Whenās the website actually done? A: Closer than devlog #12, not there yet. Ask devlog #14. āThis is the end*ā *end for now, centered divs permitting PEPPLE!!!
Spectralis devlog #14 āHello again proggersā Siteās done. Actually done. Got it to a place I actually liked instead of just a place I was tired of looking at, and shipped it. Three devlogs of fighting the generic-AI-look problem and it finally landed somewhere that feels like Spectralis instead of every other landing page on the internet. took long enough Cat or dog? git push origin main Okay letās get into it~ āYapā After devlog #12 and #13ās whole ordeal of everything converging on the same generic design no matter what got tried, something finally clicked and stuck. Shipped it. Two honest confessions on the way out the door, might as well log them here instead of pretending otherwise. āThe Great Sufferingā 1 ā Itās Live The full rework from the last two devlogs is done and pushed. Went from āeverything looks like AI made itā to something that actually feels intentional. Whatever finally broke the streak, it worked. 2 ā The Help & Manuals Tab Is A Placebo Button Full transparency: the Help & Manuals tab on the site exists, looks real, sits right where youād expect it, and does essentially nothing right now. Itās there because a site without one looks incomplete, not because thereās real content behind it yet. Consider it a placeholder wearing a real buttonās clothes. itās not lying, itās aspirational 3 ā I Copied FL Studioās Homepage. Hard. Not going to pretend otherwise: leaned on FL Studioās site pretty heavily for structure and layout ideas here. And honestly, thatās just how this works ā programming, design, all of it is borrowing from people who borrowed from the people before them. Nobodyās inventing layout from first principles in 2026. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who finally shipped a website after three devlogs of fighting it. Q: Is Help & Manuals actually going to do anything eventually? A: Presumably, someday. Right now itās a promise the button is making on behalf of a future devlog. Q: Isnāt copying FL Studioās homepage kind of a big deal? A: Structure and layout inspiration, not a straight copy-paste. And realistically, every site borrows from something ā this oneās just being honest about the source. Q: Did the āeverything looks like AIā problem from devlog #13 actually get solved? A: Yes, finally. Whatever changed between then and now worked. Q: Whatās next now that the siteās shipped? A: I finally get to ship my project without worrying about AI looking websites āThis is the end*ā *end for now, placebo buttons permitting PLACEBO!!!
Spectralis devlog #15 āHello again proggersā I lied. Posted devlog #14 saying the site was done and shipped, and the deploy pipeline crashed basically the second it went out. So thatās fun. On the bright side, v5.4.2 also went out this round, and itās actually solid. āitās doneā is apparently my curse word Cat or dog? dequeue() Okay letās get into it~ āYapā Website pipeline ate itself right after devlog #14 posted, which is its own kind of poetic. Meanwhile the app side had a genuinely good run ā six real fixes landed, one of them embarrassing enough to name directly. āThe Great Sufferingā 1 ā The Website Pipeline Crashed Right After I Said It Shipped Devlog #14 said done. Pipeline said otherwise, immediately. Working on getting it back up, this is very much a ādeveloping situationā and not a āresolvedā one yet. 2 ā Listener Requests Auto-Queue Now Requests from listeners now auto-queue instead of needing a manual step to actually land in the queue. 3 ā Audio Literally Never Played, Whoops Exactly what it says. Somewhere in there, audio just wasnāt playing. Found and fixed, extremely glad this one got caught. a music player where the music doesnāt play is a bold minimalist statement 4 ā Found It: Join Links Were Missing A Slash Root cause of a chunk of shared-play join weirdness ā the links were missing a slash. One character. Fixed, join links actually resolve correctly now. 5 ā Host Room Button Actually Tells You Something Now The host room button used to just sit there. Now it actually communicates state back to you instead of leaving you guessing whether anything happened. 6 ā Host Room Was Dropping Every Tick Forever Host room had a bug where it was dropping on every single tick, indefinitely, rather than staying stable. Fixed so the room actually holds instead of degrading in real time. 7 ā yt-dlp Was 5 Months Stale, Updated The bundled yt-dlp from devlog #10 hadnāt been touched in 5 months. Updated. Stale extraction tooling breaking silently is exactly the kind of thing that sneaks up on you. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who called the website shipped and got immediately humbled by CI. Q: Is the website back up yet? A: Working on it. Genuinely not resolved as of this devlog. Q: How long was audio actually broken for? A: Not specified, but āliterally never playedā is about as bad as this category of bug gets. Fixed now. Q: Was the missing-slash bug related to the join link work from devlog #9? A: Yes, same feature area, this was the actual root cause of some of the lingering weirdness there. Q: Is 5.4.2 stable? A: As far as testing shows. Same disclaimer as always applies. āThis is the end*ā *end for now, deploy pipelines permitting PARABLE!!!
Spectralis devlog #16 āHello again proggersā Short one. Found the website pipeline issue from devlog #15. Cat or dog? sudo āYapā It wasnāt the code. It was permissions. The site was calling root but never actually had access to root, which is exactly why it worked fine locally and fell over the second it hit deployment. āIt woRKS On My macHiNeā ā the oldest curse in software, and I said it unironically. classic āThis is the end*ā *end for now, root access permitting PAPAYA!!!
Spectralis devlog #17 āHello again proggersā 12 hours. All-nighter. Zero sleep. Feature isnāt in the app. Nothing shipped. This is the devlog where I explain what an entire night of work bought me, and the honest answer is āa very expensive lesson.ā worth it? absolutely not. did i learn something? also debatable Cat or dog? catch (ApiDoesNotExistException) Okay letās get into it~ āYapā Got ambitious. Decided Spectralis should integrate with everything ā Pandora, Amazon Music, a bunch of other big platforms on top of what already works. Turns out āeverythingā includes a lot of services that simply donāt offer a public API to integrate with in the first place, and finding that out was not the fast part of the night. āThe Great Sufferingā 1 ā The APIs Just Donāt Exist Pandora, Amazon Music, and others: no public API to build against. Not āhard to find,ā not āpoorly documented,ā just not there. Shouldāve been step zero, ended up being the thing that derailed the entire night once discovered mid-build instead of before starting. 2 ā So I Built Backdoors Instead Spent a huge chunk of the 12 hours reverse-engineering and building unofficial access paths instead, since the front door didnāt exist. This is the kind of work that eats hours and produces nothing you can point to until itās fully working, if it ever gets there. 3 ā Most Of Them Were Already Patched Implemented several of these backdoor approaches only to find out the platforms had already closed the exact gaps being exploited, sometimes before the implementation was even finished. Built things that were dead on arrival by the time they existed. patched before i even shipped it, incredible timing 4 ā Asked Claude, Got A Hallucinated Answer, Followed It Anyway At the point of giving up, asked for a way to make it work anyway. Got a confident-sounding approach back that didnāt actually correspond to anything real, and followed it blindly instead of verifying it first, because by that point it was hour 10-something and verifying things sounded like more effort than it was. 5 ā Ripped The Whole Feature Out End state: none of it works, none of it can work without real API access that doesnāt exist, so the entire feature attempt got stripped back out of the codebase. 12 hours, one commitās worth of net progress, and that commit is the revert. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who just found out platforms without public APIs stay that way for a reason. Q: Is any of this coming back later? A: Not until thereās an actual, real, non-reverse-engineered way in. Not chasing patched backdoors again. Q: Should you have asked Claude earlier instead of at hour 10? A: Probably. Should also have double-checked what it said instead of following it blind at 4am. Two separate lessons from one night. Q: Was any of the 12 hours useful? A: Now know definitively which platforms are and arenāt worth attempting. Thatās the only thing salvaged. Q: Sleep status? A: Catastrophic. Handling that before touching code again. āThis is the end*ā *end for now, actual sleep permitting Im gonna go pass out on the couch ADIOS!!!
Spectralis devlog #18 āHello again proggersā First real demo capsule is live. Not a screenshot, not a ātrust me it worksā ā an actual .spectralis file you can grab and open yourself, right after devlog #17ās night of nothing. Felt good to ship something that isnāt a revert for once. redemption arc, one demo file at a time Cat or dog? demo.spectralis Okay letās get into it~ āYapā Wanted the first public demo to actually show off what a capsule can do, not just be a proof of concept nobody can open. So itās a full one: real track, real hand-timed lyrics, and a visualizer built specifically for it instead of a generic default. āThe Great Sufferingā 1 ā The Demoās Live demo.spectralis is up at cdn.deltavdevs.com now. First capsule anyone outside this devlog series can actually download and open. 2 ā The Track And The Lyrics Built around Black Coastās āTRNDSTTRā (Lucian Remix). Lyrics for it were timed and written into the capsule by hand ā not pulled from some export, actually sat down and did the timing work myself. 3 ā The Visualizerās Custom, Not A Default Also built the visualizer specifically for this capsule instead of shipping the demo with a stock one. Wanted the first thing people see from Spectralis to actually demonstrate what the capsule format can do end to end ā audio, synced lyrics, and a visual built to match, all in one file. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one downloading the first real capsule demo. Q: Whereās the demo? A: cdn.deltavdevs.com/spectralis/demo.spectralis ā direct download, no wrapper page. Q: Did you write the lyrics yourself or pull them from somewhere? A: Wrote and timed them in by hand for this capsule specifically. Q: Is the visualizer reusable for other capsules? A: Built for this one specifically, but nothing stopping it from getting adapted or reused as a base for others later. Q: Is this what stories/capsules from devlog #7-#8 were building toward? A: Exactly that. This is the first one actually finished and out in the world instead of just being tested locally. āThis is the end*ā *end for now, capsule downloads permitting PARODY!!!
Spectralis devlog #19 āHello again proggersā v6 LTS is on the horizon. Scheduled time with a friend who actually owns a Tim Cook machine, fingers crossed a Mac build comes out the other side of that session actually working. praying to the WWDC gods Cat or dog? arm64 Okay letās get into it~ āYapā First real LTS push. Different mindset than the last 18 devlogs of feature work and 3am bug hunts ā LTS means stability first, and it also means finally taking a real swing at macOS instead of leaving it as a someday problem. āThe Great Sufferingā 1 ā Prepping For v6 LTS Getting the groundwork in place for the first Long Term Support build. Less āship the coolest thing,ā more āship the thing that wonāt need constant babysitting after release.ā 2 ā Borrowing A Friendās Mac Donāt own a Mac. Scheduled dedicated time with a friendās actual Apple hardware to attempt a real build instead of guessing blind or fighting a CI-only setup with no way to actually test the output. 3 ā The Honest Caveat: Mac Support Will Lag Straight talk: limited access to Mac hardware means Mac builds will very likely only get LTS releases going forward, and will land late relative to betas and regular updates on other platforms. Not ideal, but better to say it now than pretend otherwise. canāt test what you canāt touch āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one borrowing a friendās Mac because Apple hardware access is not a given. Q: Will Mac users get every update? A: Realistically, no ā LTS builds only for the foreseeable future, and later than other platforms. Access to hardware is the bottleneck, not desire to support it. Q: Why prioritize LTS over a beta cycle right now? A: Stabilityās the actual goal for v6. Betas can come later once the LTS foundationās solid. Q: Is the Mac build guaranteed to work this session? A: No promises. Thatās what āfingers crossedā means. Q: What happens if the Mac session doesnāt go well? A: Try again next time hardware access lines up. Not giving up on it, just constrained by it. āThis is the end*ā *end for now, Tim Cook machines permitting PRINCIPLE!!!
Spectralis devlog #20 āHello again proggersā Two zero. Milestone devlog, and itās a good one: LTS is about to actually go out the door, Mac included, today. we made it, barely, on no sleep, as tradition demands Cat or dog? git revert HEAD 7 Okay letās get into it āYapā Spent the whole night doing QoL and QA on all the tiny bugs that had been getting pushed aside devlog after devlog. Turns out āsmall bugsā and āeasy to fixā are not the same category, and the whole night proved it the hard way. āThe Great Sufferingā 1 ā Hydra Bugs Every single one of the small deferred bugs got patched, and every single patch spawned about three new ones in its place. Fix one, watch three grow back. Felt less like debugging and more like fighting something with a regeneration mechanic. cut off one head, three more show up, name a more accurate bug report 2 ā Tried Claude Code Out Of Exhaustion Got tired enough mid-hydra-fight to set up Claude Code and hand off some of the grind. It did not go well ā ended up rearranging the repo and commit layout in ways that made the history a mess, not the bugs. 3 ā Had To Undo Its Commits Rolled back what Claude Code did and went back to fixing things manually. Lesson for the night: handing off a messy, deep-in-it repo state to an agent mid-crisis is not the same as handing off a clean one. 4 ā Actually Got All The Tiny Bugs Out After all of that, the hydraās actually dead. Every deferred small bug from the last 19 devlogs finally cleared in one sitting, which is the whole reason todayās release is happening at all. 5 ā Mac Release, Today Following up on devlog #19ās borrowed-Mac build attempt ā releasing to Mac today alongside everything else. First real payoff from that session. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who fought a hydra of bugs all night and won, barely. Q: Did Claude Code actually break anything functional, or just the repo layout? A: Just history and commit structure, nothing shipped broke because of it. Still a mess worth undoing. Q: Is this LTS build the one from devlog #19ās prep? A: Yes, same one. This was the final QA gauntlet before it goes out. Q: Is Mac really getting it today? A: Thatās the plan, following through on the borrowed-Mac build session from last devlog. Q: 20 devlogs in, anything youād do differently? A: Sleep more, probably. Not going to happen, but itād be the right answer. āThis is the end*ā *end for now, hydra heads permitting PROPERTY!!!
Spectralis devlog #21 āHello again proggersā Flagged for āAI websiteā again. By Shipwrights this time. Getting a little tired of this specific accusation, honestly ā a commit log sitting right there would show actual work happening over actual time, but apparently thatās a few extra minutes nobody wants to spend. the receipts exist, nobodyās asking to see them Cat or dog? git log āoneline Okay letās get into it~ āYapā Third redesign of the site now. Not because the flag was right, but because if this keeps happening itās worth just making the ālooks AI-madeā argument harder to make at all, regardless of whether it was ever a fair read in the first place. āThe Great Sufferingā 1 ā Flagged Again Shipwrights flagged the site as AI-generated. Same accusation as the devlog #12-#14 saga, different flagger this time. Slightly more annoying with each repeat, since the actual work historyās right there for anyone willing to look. 2 ā The Annoying Part Itās not that the site got flagged, itās that the disproof is trivially available ā commits, timestamps, iterative changes across three separate rebuilds ā and checking that apparently isnāt part of the process. Frustrating, not devastating. 3 ā Redesigned It A Third Time Rather than fight the flag directly, changed the site again. Third pass now, and it genuinely reads less like generic AI-slop territory than the last version did. Whether that satisfies the next flag or not, itās a real improvement on its own merits. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one whoās redesigned this website three separate times partly to dodge a false flag. Q: Whatās Shipwrights? A: The one doing the flagging this round. Q: Is the flag actually accurate? A: No ā thereās a real commit history behind the site across devlogs #12 through #14 and now this one. The flagās wrong, just annoying to keep disproving. Q: Does this redesign replace the one from devlog #14? A: Yes, third full pass on top of that one. Q: Any plan if it gets flagged a fourth time? A: Probably the same plan: keep the receipts, keep improving the site anyway, move on. āThis is the end*ā *end for now, false flags permitting PALPABLE!!!
Spectralis devlog #22 āHello again proggersā Posting this before I pass out for real. And no, that wasnāt me faceplanting the keyboard, that was the cat walking across it. Very important distinction. the cat gets a commit credit for that one, honestly Cat or dog? cat, apparently, tonight specifically Okay letās get into it~ āYapā Back on the ever-growing pile of bugs and QoL from devlog #20ās hydra fight ā turns out killing all the tiny bugs once doesnāt mean they stay dead forever, more just showed up in the meantime. Made real progress anyway. āThe Great Sufferingā 1 ā A Few Spotify Bugs, Actually Squashed Chased down and fixed a handful of Spotify-side bugs this round. Not a full audit like earlier devlogs, just real ground covered on stuff thatās been sitting in the pile. 2 ā Resizing QA Went through resizing behavior across the app and did a real QA pass on it ā the kind of thing thatās easy to skip until someone resizes a window in a way you never tested and everything looks wrong. 3 ā The Multi-Channel Stream Queue Idea Had the idea to implement multi-channel support for Streamer Queue. Started on it, and itās genuinely probably too big to land fully before LTS ships ā most likely going in as a stub for now rather than a finished feature, with the real implementation following after. āhorrible ideaā is doing some self-aware lifting there and I stand by it āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who mistook a cat for their own exhaustion, and honestly it couldāve gone either way. Q: Whatās a āstubā mean for multi-channel here? A: The scaffolding and interface exist, the real functional implementation doesnāt yet. Placeholder with intent, not a real feature. Q: Is this the same bug pile from devlog #20? A: Same pile, refilled since then. Small bugs apparently regenerate on their own schedule, not just when youāre actively fighting them. Q: Why is multi-channel āhorribleā if youāre building it anyway? A: Because scope-wise itās a lot more than it looks like on paper, and admitting that upfront beats pretending itās simple. Q: Sleep status tonight? A: About to happen, actually, this time. Catās taking the credit either way. āThis is the end*ā *end for now, sleepy cats permitting PEOPLE!!!
Spectralis devlog #23 āHello again proggersā Introducing the visualizer editor. Been sitting on this one for a while without announcing it, for a very specific reason: every single time it felt ready, the format changed again and āreadyā moved further away. Think itās actually real this time. announced it in my head about six times before this devlog Cat or dog? visualizer.format Okay letās get into it~ āYapā Grinding all night on this one, branch and v1 dropping tomorrow. No promises beyond that, just the plan and the fact that this has been quietly cooking for way longer than any single devlog has let on. āThe Great Sufferingā 1 ā Why This Wasnāt Announced Sooner Kept hitting the point where the editor felt done, then rethinking the underlying format and starting that part over. Easier to just not announce something that keeps changing shape than to keep walking back a āitās readyā claim in public. 2 ā v1 And The Branch, Tomorrow Committing to it now ā v1 and the branch land tomorrow. Whole nightās going toward getting there, which given the last 22 devlogs of this project is either a great sign or a very familiar warning sign. history suggests: could go either way 3 ā What The Visualizer Editor Actually Is A real editor for building visualizers instead of the visualizer side of the app staying built-in-only. Ties back to everything from the capsule/worlds work in devlogs #7 and #8 and the custom visualizer built for the demo capsule in devlog #18 ā this is the tool version of doing that by hand. 4 ā Hackatime Also Just Died (Or My PC Did) On top of everything else, Hackatime seems to be down, or my PCās cooked, unclear which yet. Either way tracked hours for tonight are now undefined. Yipee. unlogged hours are the best kind of hours, said nobodyās time tracker ever āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one about to pull yet another all-nighter for a feature reveal. Q: Why did the format keep changing? A: Each pass revealed a new limitation once actually used for real, and fixing that meant reworking the format again rather than shipping something known to be wrong. Q: Is this related to the demo capsule visualizer from devlog #18? A: Same territory. That one was hand-built. This is the editor meant to make building one not require doing it by hand. Q: Whatās āv1ā mean here specifically? A: First real usable version, branch-only for now, not a full public release yet. Q: Any risk this slips again? A: Always possible given the track record, but committing to tomorrow specifically this time. āThis is the end*ā *end for now, format stability permitting PEPLE!!!
Spectralis devlog #24 āHello again proggersā Rewrote the README a third time. Not because it was wrong, because proper prose and actual formatting apparently reads as ācompletely AIā to whoeverās judging it, and Iām too burnt out to keep arguing that point. So it just got redone instead. canāt fight the vibes, can only rewrite around them Cat or dog? README.md Okay letās get into it~ āYapā Small win buried in the exhaustion: websiteās on version 4 now and it didnāt get flagged this time. First one that made it through clean since devlog #21 started this whole saga. Progress, even if the READMEās now on its third rewrite for reasons that have nothing to do with whether itās actually good. āThe Great Sufferingā 1 ā README Rewrite #3 Same content, restructured again, because well-formatted prose keeps getting read as an AI tell regardless of who wrote it or how. Not going to keep relitigating this one, just redid it and moved on. 2 ā Website v4 Survived The actual good news. Fourth pass on the site, first one that didnāt get flagged. Whatever combination of changes from devlog #21 onward finally landed right. 3 ā Hoping The App Gets Checked Next If the docs and the website keep clearing review, maybe eventually the actual app gets looked at instead of just the surface-level stuff around it. Thatās the real hope here ā less time defending prose formatting, more time on the thing that actually matters. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one whose actual writing keeps getting mistaken for a machineās. Q: Why does formatted prose get flagged as AI? A: Genuinely unclear, and at this point not worth the energy to keep contesting. Rewriting around it was faster than arguing it. Q: Is this the fourth full website redesign? A: Yes ā devlog #14, then #21ās rework, and now this pass, landing clean. Q: Has the app itself ever been flagged? A: Not yet, and thatās sort of the point of this devlog ā hoping it stays that way, or at least gets a fair look if it comes up. Q: Howās the burnout? A: Present. Noted. Continuing anyway. āThis is the end*ā *end for now, formatting opinions permitting PEEL!!!
Spectralis devlog #25 āHello again proggersā Short one, Iām about to pass out for real this time. Ground away at the visualizer toolkit for a long stretch and itās still nowhere near done. another one for the ānot as close as I thoughtā pile Cat or dog? too tired to pick one honestly Okay quick version~ āYapā Same visualizer editor territory from devlog #23, except the format not-changing this time didnāt mean the finish line got any closer. Long grind, real progress somewhere in there probably, just not a done toolkit at the end of it. āThe Great Sufferingā 1 ā The Toolkit Isnāt Close Put in a long stretch on it and itās genuinely still far from finished. Not a small gap either, just more scope than one exhausted session could close. 2 ā Iām Cooked Thatās the whole update. No dramatic bug story tonight, just hours in and not enough left to keep going. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who should probably close the laptop now. Q: Is this the same visualizer editor from devlog #23? A: Same one. Still cooking, longer than expected. Q: Any specific blockers? A: Too tired to write them up properly tonight. Next devlog, probably, once thereās actual sleep behind it. Q: Whenās it landing? A: Unknown. Not this session. āThis is the end*ā *end for now, actually sleeping this time POOL!!!
Spectralis devlog #26 āHello again proggersā Still grinding the visualizer toolkit from devlog #25. Fueled up properly this time ā favorite tunes on, Coke Zero and a Monster Ultra on deck, going the entire night. Also, small detour: past me apparently gave in and used Electron at some point, so present me now has to relearn it from scratch. past me makes decisions present me has to live with, name a more accurate description of software Cat or dog? require(āelectronā) Okay letās get into it~ āYapā Two threads tonight: the toolkit grind continuing from last devlog, and a genuinely surprising discovery on the Mac build front thatās going to need its own hotfix branch. āThe Great Sufferingā 1 ā Relearning Electron Past-me committed to Electron somewhere along the way and current-me forgot most of it. Spending part of tonight just getting back up to speed on something that used to be second nature. Annoying, but at least itās a known quantity once it clicks back in. 2 ā The Toolkit, Still Grinding Same visualizer toolkit as devlog #25. Not done yet, but the nightās young and thereās caffeine involved. Hoping to actually close real ground on it before LTS needs to be ready. 3 ā Mac Build Actually Compiles Now Following up on devlog #19ās borrowed-Mac session ā got it to build and compile this time. Real progress on a front thatās been genuinely hardware-constrained the whole way. 4 ā Turns Out Mac Isnāt Windows Or Linux (Shocking, I Know) Hereās the surprising part: a lot of the build scripts turned out to be Windows/Linux-centric, and Mac is, in fact, neither of those operating systems. Somehow this wasnāt obvious until actually staring at a failing script on real Mac hardware. three major desktop OSes and somehow I only accounted for two of them 5 ā Hotfix Branch Incoming Need to spin up a hotfix specifically for the platform-assumption problem in the scripts, and hoping it merges back clean without conflicts. Given tonightās track record so far, cautiously optimistic. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who forgot their own framework choice from past-self. Q: Why Electron in the first place? A: Decision from before this devlog series apparently, reasons unclear at this hour, dealing with the consequences now regardless. Q: Is the Mac hotfix urgent? A: Ties directly into whether LTS with Mac support actually holds together, so yes, fairly urgent. Q: Was assuming Windows/Linux-only scripts really a mistake nobody caught until now? A: Apparently so. Borrowed-Mac hardware access from devlog #19 finally exposed it. Q: Toolkit status vs. hotfix status tonight ā which wins? A: Whichever gets further before the caffeine runs out. Probably both get some progress. āThis is the end*ā *end for now, merge conflicts permitting PROPER!!!
Spectralis devlog #27 āHello again proggersā Still going. Decided mid-grind to switch off JSON-based saving entirely and move to a proper binary streamed format instead ā faster save/load, way less CPU overhead. Which sounds like a clean upgrade until you realize it means reading books on binary format design that were probably written before I was. my caffeine and my reading list have diverged wildly tonight Cat or dog? BinaryWriter Okay letās get into it~ āYapā The pivot away from JSON wasnāt planned going into tonight, it just became obviously worth it partway through the toolkit grind. Now stuck in the part of the process nobody enjoys: documentation, theory, and CS ideation before any of the actual implementation gets to happen. āThe Great Sufferingā 1 ā JSONās Getting Replaced Moving off JSON-based saving to a binary streamed format. The reasoningās simple ā faster save/load, meaningfully less CPU usage ā but simple reasoning doesnāt mean simple implementation. 2 ā Reading Books Older Than Me Digging into binary streaming format theory means reading material that predates this whole project by a wide margin, some of it by a lot more than that. Foundational stuff, just not exactly light reading at this hour. 3 ā Documentation And Theory Hell Currently deep in the least glamorous part of any format redesign: reading documentation, working through theory, and CS ideation before writing a single line that actually does anything. Necessary, still miserable at 2am. the implementation is the fun part and itās still hours away 4 ā Sun Came Up, Had A Sandwich, Kept Going Watched the sunrise somewhere in the middle of the theory reading. Had an egg and bacon sandwich for breakfast, genuinely delicious, best part of the night so far. No sleep planned until tonight ā just powering through on breakfast fuel instead. breakfast during an all-nighter hits different āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one reading format-design theory older than their own project at 2am. Q: Why move off JSON now, mid-grind? A: Became clear it was the right call while working on the visualizer toolkit ā better performance characteristics were worth the detour. Q: Is this related to the toolkit from devlog #25/#26? A: Same overall session, this is a scope addition that came up while working on it. Q: When does actual implementation start? A: Once the theory and documentation phase actually resolves. Not there yet. Q: Is tonight ever going to end? A: Not until tonight, apparently ā sunās already up and thereās no sleep planned before then. āThis is the end*ā *end for now, binary formats permitting PAM!!!
Spectralis devlog #28 āHello again proggersā LTS 6 is out. Genuinely out, not āshipped to nowhereā out like devlog #11. Sleep deprivationās fully caught up though ā first chance I get, Iām passing out on the couch with the cat and thatās non-negotiable at this point. the catās getting a co-author credit at this rate Cat or dog? couch, specifically, with the cat, immediately Okay letās get into it~ āYapā Long stretch from devlog #26 through here finally paid off. LTS 6 pushed, and the major macOS decoding problems from the borrowed-Mac build sessions actually got fixed. Real progress, real exhaustion, both at once. āThe Great Sufferingā 1 ā LTS 6 Is Out Following the hydra-bug fight in devlog #20, the Electron relearn and Mac hotfix in #26, and the binary format detour in #27 ā itās actually pushed now. Linux and Windows builds are the ones going out first. 2 ā Major macOS Decoding Problems, Fixed Following up on the platform-assumption bug from devlog #26, where Windows/Linux-centric scripts choked on Mac being neither ā dug into the actual decoding issues on macOS and got the major ones resolved this round. 3 ā Mac Release Is Coming, Just Not Today No Mac hardware access again until Monday, so the macOS build follows a bit after Linux/Windows instead of dropping same-day. Same access constraint from devlog #19, still the bottleneck, still the plan. 4 ā Sleep Is Winning Officially out of gas. Couch, cat, first available window. This devlog is basically the victory lap before collapsing. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one about to lose consciousness on a couch next to a cat, mission accomplished. Q: Is LTS 6 out for everyone right now? A: Linux and Windows, yes. macOS is coming shortly after once Mac access is available again Monday. Q: Were the macOS decoding problems from the script issue in devlog #26? A: Related territory, yes ā once the platform-assumption bug got flagged, the deeper decoding issues underneath it got found and fixed too. Q: Any concerns going into the Mac release specifically? A: Nothing unresolved as of this devlog, but access is still limited to occasional sessions, so timingās dependent on that. Q: Whatās next after this? A: Sleep. Genuinely, actually sleep, before anything else touches this project. āThis is the end*ā *end for now, couch naps permitting thud Zzzzzz!!!
Spectralis devlog #29 āHello again proggersā The studioās finally looking like a real UI tool instead of a collection of windows held together by vibes. Two design references pulled this round: Godot for world editing, and Adobe After Effects for capsules. stealing good ideas from great tools is called ādesign research,ā look it up Cat or dog? Ctrl+Shift+F Okay letās get into it~ āYapā Studioās been the least polished part of the whole app for a while, mostly functional, rarely pretty. This round actually leaned into real interface design instead of just adding buttons where they fit, borrowing structure from two tools that already solved similar problems well. āThe Great Sufferingā 1 ā Godot-Inspired World Editing World editing took cues from Godotās editor layout ā the way it structures a scene tree, viewport, and inspector panel together as one coherent workspace instead of scattered windows. Applying that same structural thinking to world editing here, since worlds are conceptually similar: a tree of pieces youāre arranging in space. 2 ā After Effects-Inspired Capsules Capsule editing leaned on After Effects instead, specifically the layer/timeline/composition mental model. Capsules are time-based and layered by nature ā a story surface, a visualizer, audio all stacked together ā so a timeline-and-layers metaphor fits better than a flat property list ever did. 3 ā The Studio Finally Feels Like A Tool Combined, these two reference points are whatās pushing the studio from āinternal dev utilityā toward something that actually feels designed for someone to sit down and use, not just something built incrementally to unblock whatever feature needed it that week. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one borrowing UI patterns from two very different but very good tools. Q: Is this a full rewrite of the studio UI? A: More a restructuring around better mental models than a ground-up rebuild, but it touches a lot of surface area. Q: Why Godot for world editing specifically? A: Scene/viewport/inspector is a well-worn pattern for spatial editing, and worlds are fundamentally a spatial arrangement problem. Q: Why After Effects for capsules? A: Capsules stack time-based layers ā story, visualizer, audio ā which maps naturally onto a timeline/layers workflow instead of flat settings. Q: Does this connect to the visualizer toolkit grind from devlogs #25-#27? A: Same broader authoring-tools push, yes, this is the UI side catching up to that work. āThis is the end*ā *end for now, layer panels permitting POP!!!
Spectralis devlog #30 āHello again proggersā Following up on the studio redesign from last devlog ā actually building inside that new layer system now. Lyric importer, a bezier tool that fought back the whole way, and capsules jumped to full HD. 30 devlogs in and the bezier tool still almost won Cat or dog? bezier.controlPoint Okay letās get into it~ āYapā Layers from devlog #29ās redesign got real functionality built on top of them this round, plus a genuinely useful new import path and a resolution bump that shouldāve probably happened earlier. āThe Great Sufferingā 1 ā Layer Fixes Cleaned up a handful of issues in the new After Effects-style layer system from last devlog ā the kind of rough edges that only show up once youāre actually building real content in it instead of just looking at the layout. 2 ā Lyric Importer: Auto Vector Layers + Keyframing New importer that takes lyric timing and automatically generates vector layers, keyframed to match. Turns what used to be manual layer-by-layer, keyframe-by-keyframe setup into an actual import step. Big time save for anything lyric-driven, including future capsules like the demo from devlog #18. 3 ā A Few More Bugs, Squashed Small round of additional fixes alongside the bigger items, nothing individually dramatic. 4 ā Capsule Resolution: Bumped To Full HD Capsules render at full HD now instead of whatever lower resolution they were capped at before. Straightforward upgrade, noticeably better output. 5 ā The Bezier Tool (Which Was Hell) Added a real bezier curve tool to the timeline/layer editing. Genuinely brutal to get right ā curve math, control point handling, and making it feel intuitive to actually drag are three different hard problems stacked on top of each other. Worth it, but it fought back the whole way. bezier curves: simple in theory, a nightmare in an actual editor UI 6 ā Timeline And Tool QoL Assorted quality-of-life improvements across the timeline and tools generally ā the small friction-reduction stuff that adds up once youāre using the studio for real work instead of just testing it. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who just fought a bezier tool and mostly won. Q: Does the lyric importer work with the demo capsule from devlog #18? A: That one was hand-timed and hand-built before this importer existed ā this toolās for making the next ones faster. Q: Why was the bezier tool specifically so hard? A: Curve math, control point interaction, and UI feel all had to work together, and getting any one of them wrong makes the whole tool feel broken. Q: Is full HD the resolution ceiling now, or is higher coming later? A: Full HD is what shipped this round. No commitment yet on going higher. Q: Is the studio redesign from devlog #29 basically done now? A: Getting real functionality built on it, which is a good sign, but still ongoing. āThis is the end*ā *end for now, control points permitting PALPABLE!!!
Spectralis devlog #31 āHello again proggersā More QoL, a real bug fixed in world editing, and a proper in-depth test run of the whole thing. Honest verdict after actually using it for real: still sucks, still hate it, but itās at least somewhat usable now. Progress, technically. āsomewhat usableā is a real milestone when you started from āactively badā Cat or dog? node.isCorrupt Okay letās get into it~ āYapā World editingās been the newer, rougher part of the studio since the Godot-inspired redesign in devlog #29. This round was about actually running it through its paces instead of just building on top of it, and that testing found a real problem. āThe Great Sufferingā 1 ā More QoL Another pass of small quality-of-life improvements, continuing the trend from the last couple devlogs. Nothing individually huge, all of it adds up. 2 ā The Bad Node Bug Found and fixed a genuinely bad node bug in the world section during testing. The kind of bug that only shows up once youāre actually building real worlds instead of poking at an empty editor. 3 ā The In-Depth Test Run Took world editing for a real, thorough run this time instead of a quick sanity check. Built something with actual substance in it and used the tool the way itās meant to be used. 4 ā The Honest Verdict Still sucks. Still hate using it. But after this round of fixes and QoL, itās crossed into āsomewhat usableā territory, which is more than could be said before this session. low bar, cleared, moving on āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who just admitted their own tool still sucks and shipped it anyway. Q: Is world editing done now? A: No, āsomewhat usableā is the current state, not āfinished.ā More work ahead. Q: How bad was the node bug? A: Bad enough to matter, found through actual real-world testing rather than a quick check. Q: Is this related to the layer work from devlog #30? A: Different area ā that was capsules/timeline, this is world editing specifically. Q: Whatās the plan to make world editing not suck? A: Keep testing it for real, keep fixing what that testing turns up. This devlogās the start of that loop, not the end. āThis is the end*ā *end for now, corrupted nodes permitting PAPLE!!!
Spectralis devlog #32 āHello again proggersā Macās out. Actually out, actually available, actually done. Took way longer than expected ā the site needed updating and every single update script needed fixing before this could actually go out the door clean. āwe got mac outā undersells how much site and script work that actually took Cat or dog? .pkg Okay letās get into it~ āYapā Closing the loop that started way back in devlog #19 with a borrowed Mac and a hopeful āfingers crossed,ā went through the decoding fixes in devlog #28, the platform-assumption hotfix in devlog #26, and now itās actually shipped. Quick policy reminder while weāre here, since it matters going forward. āThe Great Sufferingā 1 ā The Site Needed Updating First Before Mac could actually go out, the site itself needed real updates to reflect it ā new download option, new platform messaging, none of which existed yet. Took a real chunk of the time this release ate. 2 ā Every Update Script Needed Fixing Following up on the Windows/Linux-centric script assumptions caught back in devlog #26 ā turns out that wasnāt a one-off fix, it touched update scripts broadly. Had to go through and fix them properly for Mac to actually be able to update itself going forward, not just install once. 3 ā Mac Is Actually Out After all of that: itās live. Full journey from borrowed hardware sessions to an actual public release. 4 ā Reminder: Mac Only Gets LTS Quick policy note, stated plainly since it matters: Mac only receives LTS releases going forward, not minor updates, unless a minor is a Mac-specific patch. Same access-constraint reasoning from devlog #19 ā this isnāt changing anytime soon, so setting the expectation clearly now. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who just found out āship Macā secretly meant ārebuild the update pipeline.ā Q: Does Mac get every LTS release? A: Yes, every LTS. Just not the minors in between, unless that minor is Mac-specific. Q: Why not give Mac full parity now that itās out? A: Hardware access is still the bottleneck ā same reasoning as devlog #19, testing and building for Mac isnāt a routine, always-available thing yet. Q: What took so long between the decoding fixes in devlog #28 and now? A: Mostly the site and update script work described above ā the actual build was closer to ready than the delivery pipeline around it was. Q: Is this the end of the Mac saga? A: The release side, yes. Ongoing maintenance is just going to follow the LTS-only cadence from here. āThis is the end*ā *end for now, update scripts permitting POP!!!
Spectralis devlog #33 āHello again proggersā First real wave of feedback since Mac shipped in devlog #32, and itās been genuinely good. Patching a handful of bugs people actually pointed out, plus one quick clarification for a specific rater who had a question. real users, real feedback, feels different from testing solo Cat or dog? feedback.md Okay letās get into it~ āYapā Shipping to actual people instead of just self-testing changes the kind of bugs that surface. Round of patches based directly on what came in, plus a couple of housekeeping notes. āThe Great Sufferingā 1 ā Real Feedback, First Time At This Scale Genuinely solid feedback wave since the Mac release. Different flavor of bug reports than internal testing ever produces ā actual usage patterns finding things a solo QA pass wouldnāt. 2 ā Patching What Got Pointed Out Working through the specific bugs raised by that feedback. Direct fixes for direct reports, exactly the kind of loop thatās supposed to happen once somethingās actually in peopleās hands. 3 ā Quick Note For A Specific Rater One rater asked about the track used in devlog #1 ā itās a custom remix of āDeleteā by Ninjirachi. DM if you want the file. 4 ā How To Reach Out For anyone hitting issues with the app: Slack works, or Discord at @deltav0rtex . Genuinely want the reports, keep them coming. 5 ā A Surprise Is Coming Next Ship Got something tucked away for the next release that should land well. Not spoiling it here, staying quiet on purpose. Minor patch for this roundās QoL fixes drops within the next two days. teasing it and saying nothing else, thatās the whole bit āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one actually reading feedback instead of guessing whatās broken. Q: How do I report a bug? A: Slack, or Discord ā @deltav0rtex . Q: What was that track in devlog #1? A: A custom remix of āDeleteā by Ninjirachi. DM for the file if you want it. Q: Is the current bug list from this feedback wave big? A: Manageable, working through it directly rather than batching for a bigger release. Q: Any plans to formalize a feedback/bug channel later? A: Not stated yet, current setup is DMs and Slack for now. Q: Whatās the surprise for next ship? A: Not saying. Thatās the point of a surprise. Q: Whenās the minor QoL patch dropping? A: Within the next two days. āThis is the end*ā *end for now, bug reports permitting PARABLE!!!
Spectralis devlog #34 āHello again proggersā Still on the devlog commits grind. The surprise from devlog #33 is actually finished now, releasing alongside the next Stardance ship as soon as this current one clears. Meanwhile, spent this round scouring the app for small edge cases and UI stuff thatās been quietly overlooked. the surprise is done, the suspense is not Cat or dog? edge_case.md Okay letās get into it~ āYapā Two tracks this devlog: the surprise from last time is locked and ready, waiting on the current ship to clear before it goes out with Stardance. In the meantime, doing a proper sweep for the small stuff ā edge cases and UI rough edges that donāt show up unless youāre specifically hunting for them. āThe Great Sufferingā 1 ā The Surprise Is Finished Whatever it is, itās done. Releasing with the next Stardance ship, not this current one ā has to clear first. Still not saying what it is. still not telling you, patience 2 ā Scouring For Edge Cases Going through the app specifically looking for edge cases that got missed during normal feature work ā the inputs and states nobody thinks to test until something breaks in a very specific, very rare way. 3 ā UI Stuff That Got Overlooked Alongside the edge cases, hunting down small UI issues that slipped through ā spacing, alignment, states that donāt look quite right, the stuff thatās easy to miss when youāre heads-down building instead of using the app like a regular person would. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one hunting edge cases nobody else would think to try. Q: Whatās the surprise? A: Patience, my dear child. Q: Why wait for the current ship to clear first? A: Cleaner to let one release settle before stacking the surprise onto the next one. Q: Any specific edge cases found yet? A: Sweepās ongoing, nothing dramatic enough to call out individually yet. Q: Still not saying what the surprise is? A: Correct. Ask again next devlog. āThis is the end*ā *end for now, edge cases permitting PERISHABLE!!!
Spectralis devlog #35 āHello again proggersā Long way from v5.3.0, thatās for sure. New shipās cooking, and itās built directly off the feedback wave from devlog #33 ā took what came in and actually built more on top of it. Also, the big one this round: video export is here. 35 devlogs from ālast shipā to this Cat or dog? .mp4 Okay letās get into it~ āYapā This oneās a real feedback-driven ship, not just internal roadmap stuff. Fed reports and requests all the way back from devlog #2ās post-first-ship feedback into the app, and video export was the headline addition that came out of it. āThe Great Sufferingā 1 ā Feedback Actually Became Features Everything that came in since devlog #2, right after the very first ship, finally got folded back into this release, not just patched as bugs but expanded into more app. Real loop from āhereās whatās wrong/missingā way back then to āhereās it, fixed and built outā now. 2 ā Video Export Is Here For music makers who want something to post ā YouTube, Klipy, wherever youāre posting cool stuff ā Spectralis can now export video directly instead of just playing audio and visualizers live. Been a long time coming given how much the visualizer/capsule work has built up across devlogs #7, #18, #23, and #29-#30. 3 ā This Is The New Ship, Not The Finished One Announcing the direction this round more than closing it out ā the surprise from devlog #33/#34 still rides along on this too. Full picture coming as it actually ships. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who just got a whole export pipeline for their trouble. Q: What can video export actually do? A: Exports your visualizer/capsule output as an actual video file, suited for posting to platforms like YouTube or Klipy. Q: Is this the same ship as the Stardance surprise from devlog #34? A: Same overall release window, yes. Q: How much of this came directly from user feedback? A: A meaningful chunk ā some of it going all the way back to devlog #2, right after the very first ship. Q: Whenās it actually dropping? A: Still in progress. This is the announcement, not the release. āThis is the end*ā *end for now, export pipelines permitting PS: couldnāt find a good meme this time, so you get corporate gif slop instead. Enjoy. PICKLE!!!
Spectralis devlog #36 āHello again proggersā Last log before 6.0.1 tries to ship to everyone. Except Mac, remember? If anyone ā and by anyone I mean basically no one ā has the app downloaded already, you should see the update land fairly soon. āanyoneā carrying a lot of self-deprecation in that sentence Cat or dog? v6.0.1 Okay letās get into it~ āYapā Four things landing in this round: video export from devlog #35 finally patched back in properly, the about page expanded, a real EQ upgrade, and more webview bugs cleared out. Then itās out the door. āThe Great Sufferingā 1 ā Video Export, Actually Patched In Announced back in devlog #35, and this round itās actually working and patched into the build for real instead of just existing as a headline feature nobody could touch yet. 2 ā About Page, Expanded Grew the about page out ā more actual content instead of the bare-minimum version itās had this whole time. 3 ā A Far More Advanced EQ System Real upgrade here: new EQ with envelope styling and a handful of presets. Meaningfully more capable than whatever was there before, for anyone who actually cares about shaping their sound instead of just hitting play. 4 ā More Webview Bugs, Patched Following the WebView2Host fast-path fix from devlog #9, a few more webview-related bugs got cleared out this round. Apparently that surface keeps finding new ways to misbehave. webview bugs are the gift that keeps on giving 5 ā 6.0.1 Ships, Mac Excluded (Still) Same LTS-only policy from devlog #32 applies ā Mac isnāt getting 6.0.1 as a minor. Everyone else should see the update land soon. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one about to auto-update basically no one to 6.0.1. Q: Why doesnāt Mac get 6.0.1? A: Same policy from devlog #32 ā Mac only gets LTS releases, not minors, unless itās a Mac-specific patch. Q: Whatās new in the EQ system specifically? A: Envelope styling plus a set of presets, a real step up from the previous version. Q: Is video export from devlog #35 fully working now? A: Yes, patched in properly this round. Q: When does 6.0.1 land? A: Fairly soon, per this devlog, for anyone who already has the app installed. āThis is the end*ā *end for now, update pushes permitting PEBBLE!!!
Spectralis devlog #37 āHello again proggersā Working through the feedback wave from the ship, including an upcoming maybe-new streaming service integration. Reverse engineering, again, yay. Also completely forgot Hackclubās 10 hour limit was a thing and ran 5 hours over it. Itās fine. Everythingās fine. last time reverse engineering a streaming service ate 12 hours and produced nothing, so this is either growth or dĆ©jĆ vu Cat or dog? HKEY_LOCAL_MACHINE Okay letās get into it~ āYapā Post-ship feedback turned into real changes fast, and one of themās a streaming service integration thatās back to reverse-engineering territory ā hopefully with better luck than the devlog #17 saga. Also, format note: switching up how devlogs get posted going forward. āThe Great Sufferingā 1 ā Maybe New Streaming Service Support Working on possible support for another streaming service, and since it doesnāt have a public API either, that means reverse engineering again. Learned some hard lessons from devlog #17ās all-nighter about this exact kind of work, applying them here ā verifying before implementing, checking whether somethingās already patched before sinking hours into it. 2 ā 15 Hours, Not 10 Completely lost track of Hackclubās 10 hour session limit and blew past it by 5 hours. Not the plan, happened anyway, no regrets loud enough to stop it from happening again probably. time limits are more of a guideline when youāre mid-flow 3 ā A Format Change, By Request People like the meme format but keep asking to actually see the project itself, which is fair ā problem is most of whatās happening is engine work, and a screenshot of raw code just doesnāt communicate much on its own. Going to try posting an actual screenshot as the first image and keep the meme as the second, going forward. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who just blew past a 10 hour limit by half again as much. Q: Is this streaming integration going to end like devlog #17ās did? A: Hoping not ā going in more carefully this time given how that one went. Q: Why not just show code screenshots if people want to see the project? A: Raw engine code doesnāt communicate much visually to most people. Trying to find screenshots that actually show something meaningful instead. Q: Will the meme format go away? A: No, staying as image two. Just adding an actual project screenshot as image one. Q: Howās the feedback wave going overall? A: Productive, this streaming service idea being one direct result of it. āThis is the end*ā *end for now, session limits permitting POSSIBLE!!!
Spectralis devlog #38 āHello again proggersā Sunoās integration broke after their latest TOS update, so that got fixed. Also added Discord Rich Presence control for capsules, started chasing down a batch of connections that quietly broke or got dropped over time, and picked up a fun trivia fact along the way: Suno apparently hosts on AWS S3. a TOS update breaking an integration, name a more classic story Cat or dog? S3:// Okay letās get into it~ āYapā Mixed bag this round: one reactive fix from an external platform change, one genuinely new feature, and the start of a cleanup pass on integrations that have been quietly rotting since whenever they last got touched. āThe Great Sufferingā 1 ā Suno Integration, Fixed Sunoās newest TOS update broke the existing integration. Patched it back up to work with the new terms. Reactive fix, not a fun one, but necessary. 2 ā Capsule DRPC Control Real new feature: Spectralis capsules can now control Discord Rich Presence, so a capsule can show custom status while itās playing instead of the app just showing generic now-playing info. 3 ā Chasing Down Broken And Dropped Connections Going through existing integrations that broke with newer updates on the other end, or that got dropped along the way and never revisited ā untitled.stream compatibility being one specific example. Working through the backlog of āthis used to workā one at a time. 4 ā Suno Hosts On AWS S3 Small fun discovery while poking around the integration: Sunoās hosting is on AWS S3. Not actionable, just neat to know. 5 ā Looking For New Platforms Actively looking for what to integrate with next. Feedback on what platforms people actually want would genuinely help shape this. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one whose integration broke because someone else updated a TOS page. Q: Whatās DRPC? A: Discord Rich Presence ā the status shown under someoneās name in Discord. Capsules can now set custom status through it. Q: Whatās untitled.stream compat about? A: One of the connections that broke or got left behind at some point ā being actively worked back into shape. Q: What platforms are being considered for new integration? A: Not decided yet, genuinely open to suggestions. Q: Was the Suno fix hard? A: Not conceptually, just annoying ā an external change forcing reactive work instead of planned work. Q: Whatās the image order now? A: Changed my mind again ā meme first, app screenshot second this time. The devlog #37 order didnāt stick. āThis is the end*ā *end for now, TOS updates permitting POP!!!
Spectralis devlog #39 āHello again proggersā All-nighter, running on 3 Monsters and a Coke Zero. Reverse engineering APIs is hard as hell, and untitled.stream in particular fought back the whole way. Also snuck in a fix for a Spotify library issue on the side. 3 Monsters and a Coke Zero is not a nutrition plan, itās a battle strategy Cat or dog? 429 Too Many Requests Okay letās get into it~ āYapā Following up on devlog #38ās untitled.stream compat work ā turns out āworking on itā undersold how hard it actually was. Genuinely brutal reverse engineering session, plus a smaller fix that came out of the same stretch of work. āThe Great Sufferingā 1 ā untitled.stream Was Particularly Hard To Crack Chasing this compatibility since devlog #38, and it turned out to be one of the harder reverse-engineering targets yet. No public API to lean on, so it was the usual slow grind of observing behavior and piecing together how it actually works under the hood. some APIs give up easy, this was not one of them 2 ā Reverse Engineering APIs In General: Still Hard Not a new lesson given devlog #17ās whole saga, but worth restating: this category of work is consistently the hardest and slowest kind on the whole project. Going in with better patience and verification habits this time though, which helped. 3 ā Spotify Library Polling, Increased Bumped how often libraries get polled to account for some Spotify-side issues that were surfacing. Smaller fix, but a real one, found and shipped in the same session. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who ran on three energy drinks to crack one integration. Q: Is untitled.stream compat actually working now? A: Meaningfully further along after this session, following up from devlog #38ās start on it. Q: Did this go better than devlog #17ās reverse-engineering disaster? A: Yes ā hard and slow, but productive this time rather than a total dead end. Q: What was the Spotify polling issue specifically? A: Library state getting out of sync too easily ā more frequent polling keeps it closer to accurate. Q: Sleep status? A: Same as every other all-nighter devlog. Not great. Worth it this time though. āThis is the end*ā *end for now, rate limits permitting PIPSQUEAK!!!
Spectralis devlog #40 āHello again proggersā 10 straight hours, and the highlight is getting tricked by Sunoās own scraper path. There was a decoy path that looked exactly like the real music endpoint, and it just returned forbidden the whole time. Maybe Iām the bot in this scenario. Unclear. got outsmarted by a decoy URL, humbling Cat or dog? 403 Forbidden Okay letās get into it~ āYapā Continuing the reverse-engineering grind from devlog #39, Suno specifically threw a curveball this round. Beyond that, spent real time thinking about what the app actually is and why certain features exist, plus started tearing into Song Wars, which has apparently been quietly buggy for a while. āThe Great Sufferingā 1 ā The Suno Decoy Path Suno provides a path that looks exactly like the real music endpoint, structurally identical, right down to how it responds at a glance. In reality it just returns forbidden every time. Spent real time thinking this was progress before realizing it was a dead end dressed up as a working one. maybe im the bot 2 ā Actually Fixed It, After Testing Once the decoy was identified for what it was, found the real path and got it working properly. Testing it thoroughly this time before calling it done, given how devlog #39 went. 3 ā Identity Of The App Spent real time thinking through what Spectralis actually is at this point, and justifying why certain features exist rather than just accumulating them because they seemed cool at the time. Less code, more āwhy does this exist and does it still make sense.ā 4 ā Song Wars Rework, Started Started tearing into Song Wars, which turns out to be hella buggy underneath. Early stages of a rework rather than a patch job, since patching individual bugs in it hasnāt been holding up. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one who got fooled by a decoy API path for a while. Q: Was the Suno issue related to the S3 discovery from devlog #38? A: Same general integration, different specific obstacle this round. Q: Is Song Wars getting a full rewrite or just fixes? A: Leaning toward a real rework rather than more patches, given how buggy itās turned out to be. Q: What does āidentity of the appā work actually produce? A: Not code directly ā more a filter for which features actually belong and why, going forward. Q: Howās the 10 hour grind treating you? A: Productive despite the decoy detour. Real progress by the end of it. āThis is the end*ā *end for now, decoy paths permitting PAP!!!
Spectralis devlog #41 āHello again proggersā Podcast modeās in the works, with a real new way to actually find saved podcasts instead of digging for them. Also fixed the randomizing tools so they actually help pick a song instead of just existing decoratively. And: class got canceled for a hurricane watch, so tonightās an all-nighter by default. free 10 hours courtesy of a hurricane, weird way to get them Cat or dog? shuffle(weighted=True) Okay letās get into it~ āYapā Two real features this round plus a forced schedule change. Podcast modeās genuinely new territory for the app, the randomizer fix is a smaller but meaningful UX improvement, and the hurricane watch just handed over a full night that wasnāt originally planned for grinding. āThe Great Sufferingā 1 ā Podcast Mode, In Progress Building out actual podcast support, including a new way to locate saved podcasts rather than just treating them like any other track and hoping they surface in the right place. Real new territory for the app compared to the music-first feature set so far. 2 ā Randomizing Tools, Actually Useful Now The shuffle/randomizer tools existed before but werenāt really doing anything meaningful ā mostly there in name. Fixed so they actually aid in song selection now instead of just sitting there as a checkbox nobody trusted. a randomizer that doesnāt actually help you pick anything is just decoration 3 ā The Hurricane Watch Situation Class got canceled due to a hurricane watch, which means tonightās turning into a full grind session that wasnāt originally on the calendar. Silver lining of a weather delay, I suppose. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one getting a bonus grind night courtesy of a hurricane watch. Q: Is podcast mode close to done? A: In progress, this devlogās the early build phase, not the finish line. Q: What was actually wrong with the randomizer before? A: It existed but didnāt meaningfully help pick songs ā more decorative than functional. Fixed to actually aid selection now. Q: Is Song Wars rework from devlog #40 still going? A: Ongoing, this devlogās focus shifted to podcast mode and the randomizer instead. Q: Stay safe with the hurricane watch, by the way. A: Appreciated. Staying inside, staying coding. āThis is the end*ā *end for now, hurricane watches permitting POOL!!!
Spectralis devlog #42 āHello again proggersā Spent this round hardening shared queues, mostly because WebSockets are just genuinely cool and itās about time they got treated that way in this codebase. a devlog motivated entirely by āwebsockets are coolā is a valid devlog Cat or dog? ws:// Okay letās get into it~ āYapā Shared queues have been functional but not particularly resilient this whole time, riding on shared playās presence/reactions/queue work from way back in devlog #9. This round was about actually hardening that layer instead of leaving it fragile. āThe Great Sufferingā 1 ā Hardening Shared Queues Went through and shored up a bunch of the underlying bases for shared queues ā the stuff that only matters once real connections are dropping, reconnecting, and behaving unpredictably instead of the clean happy-path test case. 2 ā Because WebSockets Are Cool Genuinely part of the motivation here. Real-time bidirectional connections are just satisfying to get right, and shared queues are exactly the kind of feature that benefits from taking that layer seriously instead of treating it as plumbing. not every feature needs a dramatic bug story, sometimes itās just āwanted to do it wellā āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one hardening infrastructure purely because itās fun to get right. Q: Is this related to the shared play work from devlog #9? A: Same general system, this round focused specifically on making the queue layer more resilient. Q: What does āhardeningā mean here specifically? A: Making the shared queue behavior hold up better under real conditions ā drops, reconnects, timing edge cases ā rather than just the clean test path. Q: Any bugs found during this pass? A: Nothing dramatic enough to call out individually, mostly proactive resilience work. Q: Whatās next? A: Podcast mode and the randomizer work from devlog #41 are both still ongoing threads. āThis is the end*ā *end for now, dropped connections permitting P_P!!!
Spectralis devlog #43 āHello again proggersā [2:47am] okay so. websockets again, more of them, and now the CDN backup is failing too which is great, love that for me. on my 4th coffee at this point, energy drink count is starting to get concerning honestly and Iām not gonna pretend it isnāt. pretty sure i debugged the cdn thing at 4am purely out of spite Cat or dog? idk man catch (Exception e) { } at this point Okay letās get into it, or at least try to~ āYapā so continuing from devlog #42ās websocket hardening, turns out hardening one part just revealed the next part was also fragile, shocking, anyway. need to push something to prod to actually get it working but canāt do that without interrupting infra which is currently live so thatās a whole separate problem I have to solve first before I can solve the actual problem. love layers. āThe Great Sufferingā 1 ā More Websocket Issues more of them. found while poking at the hardening from last devlog. not sure if figuring this part out took 20 minutes or 3 hours honestly, timeās doing something weird tonight. 2 ā CDN Backup Is Failing on top of the websocket stuff, cdn backups just started failing too. not connected to each other as far as i can tell but who knows at this point, everything feels connected at 3am. 3 ā Need To Push To Prod, Canāt Without Interrupting Infra the actual fix needs to go to prod but pushing it right now means interrupting live infra, which i donāt want to do blind, so now i need a plan for THAT before the real fix even goes out. process problem wrapped around the actual problem, great. 4 ā Shared Play Is Doing The AI-Look Thing Again noticed shared playās UI is drifting into the same generic-AI-looking territory the main site kept getting flagged for back in devlog #21-#24. damn. gonna have to redo that too. not tonight though, one disaster at a time. 5 ā Oh And I Found A Missing Semicolon spent a genuinely embarrassing amount of time on a bug that turned out to be a missing semicolon. send help. actually donāt, just let me suffer, i clearly deserve it at this hour. 6 ā No Sleep For 2 Days, Hitting Now itās catching up. hard. luckily got tomorrow off so plan is stay up tongiht finish this, and just completely pass out tomorrow instead. worth it. probably. āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: a human programmer. you. the one reading this at whatever hour youāre reading it, hopefully not also running on 2 days no sleep Q: Is the websocket hardening from #42 actually working? A: mostly? finding more edge cases as i go, which is annoying but also kind of expected honestly Q: Why canāt you just push to prod now? A: because infraās live and i donāt want to interrupt it blind, need an actual plan for that part first Q: Is shared play getting a full redesign again? A: yeah probably, later though, not adding a 4th fire to tonight Q: Sleep plan? A: none tonight, all of it tomorrow, thatās the whole plan āThis is the end ā *end for now, semicolons permitting send sleep!!!
Spectralis devlog #44 āHello again proggersā Did it. Fixed a genuine ton of bugs, following through on the mess from devlog #43. Tempted to just drop 6.1.0 right now, but holding off ā want to get a few new features in and brainstorm some more QoL first so this actually feels like a finished product, not just a stopgap. Also: finally going to bed. the bar was āfix the bugsā and I cleared it, going higher anyway Cat or dog? sleep(ā) Okay letās get into it~ āYapā Real closure on the websocket/CDN/prod chaos from last devlog. Cleared out a lot in one sitting, and instead of rushing 6.1.0 out the door on relief alone, choosing to actually sit with it a bit longer. āThe Great Sufferingā 1 ā The Bug Backlog, Actually Cleared Worked through the fallout from devlog #43 ā websocket issues, the CDN backup failures, all of it ā and got a genuine ton of it fixed in one real pass instead of piecemeal patching. 2 ā Holding Off On 6.1.0, On Purpose Could ship right now. Choosing not to. Want to work in a few new features and brainstorm more QoL first, so the release feels complete rather than just āthe bugs are gone, ship it.ā Patience over momentum this time. 3 ā Finally Going To Bed After devlog #43ās two-days-no-sleep spiral, actually calling it and going to bed now. Today off is finally getting used the way it was supposed to be used. the sleep debt collector finally caught up āFAQ (no one asked these but they are here)ā Q: What is a āproggerā? A: A human programmer. You. The one about to get real sleep for the first time in a while. Q: Why not just ship 6.1.0 now if the bugs are fixed? A: Because ābug-freeā and āactually doneā arenāt the same bar, and this oneās worth clearing the second one too. Q: Was this the same chaos from devlog #43? A: Same fires, all put out this round. Q: What kind of new features are being considered? A: Not locked in yet ā that brainstorming is the next step, not this devlog. Q: Sleep status, finally? A: Handled. Going now. āThis is the end*ā *end for now, actual sleep permitting PLAY!!!
Ships:
Spectralis shiplarp ā v5.3.0 āshipped itā Notepads. A spin wheel. Dead zones that arenāt OBS-only anymore. Playlists that donāt look like a log file. Spotify that actually behaves. Thatās the version. āwhatās in itā Notepad system: docked panel, tabs, pop-out window, saves to track tags Spin wheel: weighted entries, saved wheel lists, notepad-fed Dead zones now shift the appās own layout, not just OBS overlays Spotify: playlist sync, queue, pause, and Discord presence all fixed Fixed: playlist rows missing RowBackground (looked like a terminal, my bad) Fixed: nav rebuilding the entire view every click Fixed: library load blocking window open on big libraries Fixed: spectrum bars snapping instead of moving (FFT overlap bumped to 75%) Fixed: soundcloud playhead, word-mode timestamp export, track-switch click/pop āthatās itā PICKLE!!!
Spectralis shiplarp 2 ā Stardance āwuzzup guysā So much has happened since shiplarp 1 and I cannot wait to not break down what changed. I will. Iām lazy. Not right now though. Cat or dog? redeem_code.claim() āthe celebrationā Weāve gone through so many changes since last time that it deserves an actual celebration: a very cool, very awesome custom visualizer for Stardance. Claim yours: Help > Manage Visualizers, then redeem stardance-lts-pulp . āfound a bug?ā Including the dreaded Tim Cook issues ā DM me: Discord: @deltav0rtex Slack: deltavortex Canāt wait to hear the feedback and all the bugs you dig up. āthis is the end*ā *end for now, redeem codes permitting YIPEE!!!...
|
1792878434.706125
|
1793742434.706125
|
|
34425
|
Will's Site by @Gooderswills | Stardance
|
Gooderswills
|
2
|
4.0
|
8
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-04T16:29:29Z", "hours": 3.0, "multiplier": 2.81, "payout": 8, "blessing": "neutral", "text": "I have made quite a few changes since the first version of my website, here they are: I added my email to the contact me section, added my projects to my website, added links to other subdomains, started a blog, added what I am studying, added a photos section where I upload cool photos I have taken, added a custom 404 page and added what programming languages I know", "repo": "https://github.com/Gooderswills/WillsSite", "demo": "https://gooderswills.github.io/WillsSite/"}, {"ship_num": 2, "ts": "2026-07-13T18:48:45Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I was able to make my personal site that includes information about me and in a style that I like, it is fully custom and functions correctly", "repo": "https://github.com/Gooderswills/WillsSite", "demo": "https://gooderswills.github.io/WillsSite/"}]...
|
[{"post_id": 75611, "ts": "202 [{"post_id": 75611, "ts": "2026-09-30T15:38:08Z", "hours": 1.5614, "text": "Itās been a while! But I have been making changes to my site throughout, some of these changes are: Added what subject I am studying, changed the links to lead to github (more professional), made a photo section where cool photos I take go, added the PyDesk link to the subdomains section, added navbar spacing and finally I added a custom 404 page and my skills (what programming languages I know)"}, {"post_id": 59776, "ts": "2026-09-01T18:28:26Z", "hours": 0.6797, "text": "I added a blog.html file so that I could make a blog section on my website, I also added the blog link on my main site, I then wrote my first blog about AI and then I ensure it all worked and linked the css up. I also added home and all blog pages to the blogs foe easier navigation View my first blog here: https://wgdev.uk/blog/state-of-ai-september-2026"}, {"post_id": 50429, "ts": "2026-08-19T16:26:44Z", "hours": 0.5511, "text": "I added my gmail so people can email me if needed, I also added some of my stardance projects to my website, I then also added links to the subdomains at the bottom, this could help with search optimisation but is mainly there for people to view some cool projects easier"}, {"post_id": 27846, "ts": "2026-07-13T18:46:13Z", "hours": 0.3308, "text": "I updated the styling, making it look cooler and more polished, I also added a readme file and published the website to github pages, overall the website looks and functions better now"}, {"post_id": 27730, "ts": "2026-07-13T15:26:48Z", "hours": 0.6622, "text": "I filled the basic structure and followed the tutorial so that I was able to include everything, I created the Read me. next I need to add more details and add better css"}]...
|
Title: Will's Site by @Gooderswills | Stardanc Title: Will's Site by @Gooderswills | Stardance
Devlogs:
I filled the basic structure and followed the tutorial so that I was able to include everything, I created the Read me. next I need to add more details and add better css
I updated the styling, making it look cooler and more polished, I also added a readme file and published the website to github pages, overall the website looks and functions better now
I added my gmail so people can email me if needed, I also added some of my stardance projects to my website, I then also added links to the subdomains at the bottom, this could help with search optimisation but is mainly there for people to view some cool projects easier
I added a blog.html file so that I could make a blog section on my website, I also added the blog link on my main site, I then wrote my first blog about AI and then I ensure it all worked and linked the css up. I also added home and all blog pages to the blogs foe easier navigation View my first blog here: https://wgdev.uk/blog/state-of-ai-september-2026
Itās been a while! But I have been making changes to my site throughout, some of these changes are: Added what subject I am studying, changed the links to lead to github (more professional), made a photo section where cool photos I take go, added the PyDesk link to the subdomains section, added navbar spacing and finally I added a custom 404 page and my skills (what programming languages I know)
Ships:
I was able to make my personal site that includes information about me and in a style that I like, it is fully custom and functions correctly
I have made quite a few changes since the first version of my website, here they are: I added my email to the contact me section, added my projects to my website, added links to other subdomains, started a blog, added what I am studying, added a photos section where I upload cool photos I have taken, added a custom 404 page and added what programming languages I know...
|
1793098373.9816644
|
1793184773.9816644
|
|
34601
|
Tempo by @evanssidhu | Stardance
|
evanssidhu
|
2
|
97.0
|
1805
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T05:07:17Z", "hours": 4.0, "multiplier": 11.52, "payout": 50, "blessing": "neutral", "text": "This is the second ship of the project. This is a pretty small ship aimed at addressing some feedback posted during my last ship. Originally I planned to do a complete UI overhaul, but I decided to just focus on minor improvements now since I have to balance projects with school and donāt know if I am going to have time to work on projects as much. I also want to take a little break from projects to focus on my mental health as well since I have been dedicating multiple hours almost every day purely on making projects. Anyways, enough about that and back to the project. If you want to see the changes from the previous ship, I have them outlined in the devlog below. If you want to see the main features added in the first ship, I have it posted as well shortly below to read. Thank you and I hope you like using my project, if you have any more feedback please outline it in your vote message as I love hearing how I can make my projects better. If you do not want to scroll down to the previous ship message or the readme, here is it posted below. Previous Ship Message Tempo is finally complete. It took way too many hours to finish, mostly through self inflicted pain of using hooks instead of asynchronous functions for the engine. I know that this might not be the greatest project for how long it took, but I am proud to say that itās finally been shipped even after the many times I wanted to quit. I made this project because I play a little bit of chess and after getting limited to only 1 game review per day I thought it would be a good idea to make my own game review (yes I know other sites exist but wheres the fun in that). Anyways enough about that, here are the project features (definetly not copied from the readme) Features Game Review: Check how well you played in your previous games by simply entering your chess.com username or by manually loading a pgn file. Move Feedback: Instant updates on how well the engine thinks your move is. Move Classifications: How well the engine evaluates your moves. Classifications such as Miss, Great, or Brilliant are also included. Engine Lines: What the engine thinks is the best line to play in a position. Accuracies: How accurate you played relative to the best moves Graph: A visual and interactive graph on how much your expected win percentage changed throughout a game Classification Report: A total summary of how many of each type of move you played History Tree: View the total game history and easily branch off the main path. Play: Play against a friend in person, or play against the engine. Custom positions can be used as well. Custom Positions: Set up a custom position to load later. Settings: Change the app or board theme. If you are still reading this, thank you and I hope you enjoy using my site.", "repo": "https://github.com/es1228/Tempo", "demo": "https://es1228.github.io/Tempo/"}, {"ship_num": 2, "ts": "2026-08-16T22:48:34Z", "hours": 93.0, "multiplier": 18.77, "payout": 1755, "blessing": "neutral", "text": "Ship Message Tempo is finally complete. It took way too many hours to finish, mostly through self inflicted pain of using hooks instead of asynchronous functions for the engine. I know that this might not be the greatest project for how long it took, but I am proud to say that itās finally been shipped even after the many times I wanted to quit. I made this project because I play a little bit of chess and after getting limited to only 1 game review per day I thought it would be a good idea to make my own game review (yes I know other sites exist but wheres the fun in that). Anyways enough about that, here are the project features (definetly not copied from the readme) Features Game Review: Check how well you played in your previous games by simply entering your chess.com username or by manually loading a pgn file. Move Feedback: Instant updates on how well the engine thinks your move is. Move Classifications: How well the engine evaluates your moves. Classifications such as Miss, Great, or Brilliant are also included. Engine Lines: What the engine thinks is the best line to play in a position. Accuracies: How accurate you played relative to the best moves Graph: A visual and interactive graph on how much your expected win percentage changed throughout a game Classification Report: A total summary of how many of each type of move you played History Tree: View the total game history and easily branch off the main path. Play: Play against a friend in person, or play against the engine. Custom positions can be used as well. Custom Positions: Set up a custom position to load later. Settings: Change the app or board theme. If you are still reading this, thank you and I hope you enjoy using my site.", "repo": "https://github.com/es1228/Tempo", "demo": "https://es1228.github.io/Tempo/"}]...
|
[{"post_id": 63372, "ts": "202 [{"post_id": 63372, "ts": "2026-09-07T04:54:05Z", "hours": 0.6231, "text": "Devlog 24 Small devlog, I was about to do another ship after addressing the feedback from last time, but I noticed a small bug where brilliant moves did not show sometimes. It turns out the issue was much simpler than I was testing for and it was due to a small multiplication sign error when converting the mate evaluation to centipawns to check if a move was winning."}, {"post_id": 63350, "ts": "2026-09-07T03:58:57Z", "hours": 3.7075, "text": "Devlog 23 Hello again everybody! I know its been a long time since I last worked on this project, but I read the feedback on this project and addressed your suggestions. Most of the feedback was on ui/ux improvements, so as a result I removed all mentions of infinity/nan on the site, as it looks rather unpolished and unprofessional. I also changed the modal dialogs from the built in alert function to a less intrusive custom toast notification. Lastly, a couple people said the engine took slightly long to make moves, so I slightly lowered the engine depth for games and also removed another delay I originally added to make the engine feel more human like in its thinking time. In terms of the game review engine I decided to keep it the same as it works pretty quickly due to a worker pool being used, but I did change the dialog slightly to make it feel like something is happening in the background, which suprisingly actually makes it feel faster. Anyways, to everyone that tried this project and gave feedback, thank you as it was much appreciated."}, {"post_id": 48501, "ts": "2026-08-16T21:30:43Z", "hours": 1.5022, "text": "Devlog 22 The site is now live. I actually had a lot of issues in deploying this site for some reason (mainly due to the large stockfish binaries stored in git lfs and the coi serviceworker) and my deployments just kept failing. I eventually got it straightened out now and I am ready to ship the project."}, {"post_id": 47758, "ts": "2026-08-15T21:57:35Z", "hours": 2.4678, "text": "Devlog 21 The history view has finally been properly migrated to a tree structure. Now since that is finally complete, I know it has been long overdue but it is finally time to ship this project."}, {"post_id": 47293, "ts": "2026-08-15T04:37:46Z", "hours": 6.0658, "text": "Devlog 20 Another devlog here focusing on bug fixes, and I am happy to say that almost everything is pretty much complete. Iāve fixed pretty much every out of sync issue, and even got game reviews to load pretty much instantly. It literally took only around 5 seconds to load a 65 move game, so that is finally optimized. I think the issue was some web workers were not terminating properly and taking up too much memory. Anyways I hope to finally have this project out very soon, and the only thing I might to is try to get the history tree working. Today I actually did kind of get it to work but it caused massive performance degradations for some reason and was causing some conflicts with other components as well."}, {"post_id": 47078, "ts": "2026-08-14T18:24:08Z", "hours": 4.785, "text": "Devlog 19 More progress has been made adding features and fixing bugs. Iāll highlight the changes below. Features Game Chart The game chart has been updated to include custom dots and lines showing the move classifications and key points during the game (brilliant moves, great moves, mistake, blunder, and miss). You can also click on the chart to go to that move. History View The history view has now been updated to show the classification icons next to the move, which should make it easier to find moves you are looking for Fixes/Optimizations Memoization Data in the game chart has now been memoized. This prevents the chart from crashing the page due to trying to process data many times per second. Stockfish evaluations Game review evaluations now use an active worker pool to run multiple evaluations at once rather than just one at a time. Positions are also cached now so all evaluations share 1 chess instance. In practice, this has reduced the game review time for a 20 move game from over 1 minute to around 7 seconds, which is around a 90% decrease."}, {"post_id": 46601, "ts": "2026-08-13T23:14:42Z", "hours": 2.3281, "text": "Devlog 18 A few things in this devlog, I separated the game review panel into 2 sections containing the review report and engine analysis. Iāve also refined the classifications for great and brilliant. Brilliant Move Changes The sacrifice can now be anywhere on the board, not just for the piece that moved Trading a lower value piece for a higher value piece (ex: taking a knight but losing a pawn) no longer counts as brilliant Illegal moves (pins, checks, etc.,) no longer contribute to the attacking piece values Great Move Changes Taking a hanging piece or trading lower value pieces for higher value pieces (ex: capturing a hanging queen or recapturing during a trade) no longer count as great moves."}, {"post_id": 46134, "ts": "2026-08-13T04:37:45Z", "hours": 1.8517, "text": "Devlog 17 After a long time, Iāve finally added brilliant moves. This was done by comparing a squares attackers and defenders to determine if the piece is hanging. If a move results in that piece being hanging/sacrificed, and is the top engine move, then the classification will return brilliant. Iāve attached an example below in a game where GothamChess does what he does best and sacrifices both his rooks."}, {"post_id": 46084, "ts": "2026-08-13T01:13:20Z", "hours": 3.2308, "text": "Devlog 16 Iāve added the last 2 features related to game review, accuracies and the eval chart. The last thing I plan to to is add some polish, brilliant moves, and maybe try working on the history/pgn tree again."}, {"post_id": 45932, "ts": "2026-08-12T18:35:37Z", "hours": 2.4761, "text": "Devlog 15 Iāve added a few more features related to game review in this devlog. First, I added a section to view the top 2 engine lines on each move. Iāve also added a table to view classifications for the entire game."}, {"post_id": 45416, "ts": "2026-08-11T20:58:03Z", "hours": 0.9417, "text": "Devlog 14 Iām going to post more frequently as this project gets wrapped up, and Iāve just finished caching the game review data so feedback is instant if you load in game to review. I also decided to add colors to the start and end squares based on classification because it looks nice. Iāve attached a video below, I donāt know why my screen recorder records very laggy but I promise itās not actually that laggy."}, {"post_id": 45004, "ts": "2026-08-11T04:20:50Z", "hours": 4.3753, "text": "Devlog 13 Iāve been working on the game review stats, and iāve implemented a function to classify an entire game and tally up the classifications (which was actually harder than it looked, since i needed to rewrite my hooks since hooks cannot be called within functions). It now works pretty decently, but I do want to optimize performance a bit since it takes a while. Funnily enough there was an issue where if the worker resolved too early it would not terminate and create a memory leak and eat your entire system memory, but thats fixed now."}, {"post_id": 44308, "ts": "2026-08-09T23:45:35Z", "hours": 7.9586, "text": "Devlog 12 I really donāt like going this long without posting a devlog, but debugging move classifications was really painful. I encountered an issue where if you went through many moves very quickly, it resulted in classifications not working properly since stockfish could only give evaluations for the current move. This is not ideal since most classifications require checking the evaluation drop, which requires 2+ points of evaluation. I tried many things, first I tried running 3 different stockfish web workers inside the stockfish hook, which caused a couple issues and was not very performant. Next I tried using a single worker and passing in 3 positions, however since the web worker is single threaded it didnāt really work all that well. I also tried using a queue to run each instance one at a time, but that got complex quickly and still did not work. I also wanted to merge the classification and evaluation hooks, which created a 500 line mess of a file which was a nightmare to maintain. Finally, I decided to revert all my changes and keep the hooks separate and simple, and created 3 instances of evaluation hooks within my classification hook. This was much cleaner and actually worked really well, so I wasted 8 hours making things too complex.# Devlog 12 I really donāt like going this long without posting a devlog, but debugging move classifications was really painful. I encountered an issue where if you went through many moves very quickly, it resulted in classifications not working properly since stockfish could only give evaluations for the current move. This is not ideal since most classifications require checking the evaluation drop, which requires 2+ points of evaluation. I tried many things, first I tried running 3 different stockfish web workers inside the stockfish hook, which caused a couple issues and was not very performant. Next I tried using a single worker and passing in 3 positions, however since the web worker is single threaded it didnāt really work all that well. I also tried using a queue to run each instance one at a time, but that got complex quickly and still did not work. I also wanted to merge the classification and evaluation hooks, which created a 500 line mess of a file which was a nightmare to maintain. Finally, I decided to revert all my changes and keep the hooks separate and simple, and created 3 instances of evaluation hooks within my classification hook. This was much cleaner and actually worked really well, so I wasted 8 hours making things too complex."}, {"post_id": 41619, "ts": "2026-08-05T22:47:45Z", "hours": 2.9967, "text": "Devlog 11 I am finally back to this project, and this time did not wait 8 hours to post a devlog. Anyways, I added two major features today, custom position imports (which I forgot to do last time) and engine play. Features Custom Position Imports You can now import a position into the custom position editor, which is great for things like loading puzzles and endgames to practice against the engine. You can also export positions by pressing the copy button to copy the position fen to the clipboard. Play Against Engine You can now play games against stockfish, and choose a difficulty level from 0-20. As mentioned above I believe this is a quite useful feature for things like just playing by yourself or practicing different endgames against the computer. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls Board Themes/Styles Miss and Great moves History View Play In Person Custom Position Setup Play Against Engine Full Game Review/Engine Analysis (In Progress) Brilliant Moves"}, {"post_id": 37328, "ts": "2026-07-29T23:27:39Z", "hours": 8.7039, "text": "Devlog 10 I finished work on in-person gameplay and custom position setups, all that is left now is to finish adding engine play, polish game review, and add brilliant moves. Promotions You can now choose the piece you would like to promote to (no longer auto queen). In Person Play You can now create a game to be played in person between 2 people. Time controls are also availible. Custom Positions You can now load custom positions via drag and drop, which is useful for practicing endgames or creating puzzles. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls Board Themes/Styles Miss and Great moves History View Play In Person Custom Position Setup [] Full Game Review/Engine Analysis (In Progress) Play Against Engine (In Progress) Brilliant Moves"}, {"post_id": 36679, "ts": "2026-07-28T21:54:34Z", "hours": 8.5064, "text": "Devlog 9 I tried to convert the history from a linear array into a tree, and it did not go well. I spent literal hours trying to get it to work and look at tutorials, but it just did not want to work. So for now iāve decided to stop working on that feature, and just focus on the last few remaining tasks. I do have to fix a couple of things since a lot of features are currently in progress, but I will post another devlog later showing the updated features."}, {"post_id": 34189, "ts": "2026-07-24T18:26:16Z", "hours": 7.4164, "text": "Devlog 8 Sorry again for the long devlog, some things took a bit longer than I expected. Anyways, icons/glyphs have been added in this devlog. Iāve also fixed some issues with move backtracking. Additional classifications such as miss and great have been added, which took a while since I had to do a lot of refactors to store all the data in cache, and I also didnāt realize I sometimes was tracking the evaluations for the next moves, not the ones just played, which took a while New classifications Miss : Miss is when the previous player makes a bad move, but the next player fails to capitalize on it causing the evaluation to drop back to near where it was before. Great : Great moves are the only moves in the position that work, provided that the outcome is drawn or winning and you are not already winning had you not played the move. It compares 2 lines of stockfish to evaluate the evaluation difference and check for the conditions outlined above. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls Board Themes/Styles Miss and Great moves History View (In Progress) Full Game Review/Engine Analysis (In Progress) Play In Person Play Against Engine Custom Position Setup Brilliant Moves"}, {"post_id": 33467, "ts": "2026-07-23T13:22:55Z", "hours": 2.5939, "text": "Devlog 7 Lots of QOL features and fixes added today, iāve added a basic view of move history, and added a settings page where you can change the theme of the website or board. Next, I do want to work on features that do not involve the game review, such as pass and play or engine play. Move History You can now properly go through a gameās moves and view all played moves in the side pane. Themes Website theming has been added, alongside being able to choose the colors you would like the board to be. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls Board Themes/Styles History View (In Progress) Full Game Review/Engine Analysis (In Progress) Play In Person Play Against Engine Custom Position Setup Advanced Classifications (Miss, Great, Brilliant)"}, {"post_id": 32763, "ts": "2026-07-22T03:57:08Z", "hours": 3.5231, "text": "Devlog 6 Second devlog today, this is more of an extension of the previous devlog since a lot of features were not fully polished yet. Since then move playback has been added and I also added a game review container. Most of the logic has now been implemented, all thats left now is a little polish and styling. The only logic thats left is trying to find a way to add proper move history and advanced classifications. I also attached a demo video this time since I forgot to last devlog. Move Playback It is now possible to use arrows to traverse forwards and backwards if a PGN file is imported. Game Review Container I added a little side container which will be used to show the stats of the game review. Currently it only shows the opening and move feedback, but it will be expanded to show accuracies and a full breakdown of the analysis and position similar to chess.com. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls History View Board Themes/Styles Play In Person Play Against Engine Custom Position Setup Advanced Classifications (Miss, Great, Brilliant) Changelog 0e4db3c e2552b0"}, {"post_id": 32610, "ts": "2026-07-21T21:52:00Z", "hours": 8.4406, "text": "Devlog 5 Sorry for the long devlog, some things took longer than expected. First I decided to waste time trying to improve the UI until I remembered I suck at design and just decided to revert to the original design. Then I spent forever wondering why my input textbox would not work properly just for me to change e.target.value to e.currentTarget.value. Although I guess where would the fun be if there was no struggle. Anyways, here are the features I added. Board Controls It is now possible to flip the board and go forwards and backwards through moves. Importing from other sources This one took a bit of time, but now you can import games from Chess.com, or provide your own PGN/FEN. Later on Iāll probably also add Lichess as an import source as well. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, Lichess, etc.,) (In Progress) Playback/History Controls (In Progress) Board Themes/Styles Play In Person Play Against Engine Custom Position Setup Advanced Classifications (Miss, Great, Brilliant)"}, {"post_id": 31026, "ts": "2026-07-19T02:37:20Z", "hours": 3.3967, "text": "Devlog 4 Site Styling Site styling has been added in this commit, and it also comes with light/dark mode. The evaluation bar has also been added, and is responsive based on the win probability formula. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Themes/Styles Play In Person Play Against Engine Playback/History Controls Importing from other sources (FEN, PGN, Chess.com, Lichess, etc.,) Custom Position Setup Advanced Classifications (Miss, Great, Brilliant)"}, {"post_id": 30437, "ts": "2026-07-17T23:52:15Z", "hours": 4.6394, "text": "Devlog 3 Move Classifications Move classifications have finally been added. I thought it wouldnāt take this long but instead I spent hours trying to deal with react asynchronous state and trying to coordinate different hooks to play along nicely. Thankfully it works properly now (hopefully). The classifications added are best, excellent, good, inaccuracy, mistake, blunder, and theory. Opening names have also been added as well. Next Steps Next, Iāll work on making the site actually look pretty and have functionality. Importing games should also come next after that. Towards the end iāll add other classifications as well such as miss, great, and brilliant, however, I expect them to be more difficult as they have slightly stricter classifications."}, {"post_id": 29258, "ts": "2026-07-16T01:54:05Z", "hours": 3.6022, "text": "Devlog 2 Playable Chess! There is now a playable UI to play Chess games. This was done using a mix of chess.js for the logic and react-chessboard for the UI. Most of the logic was handled by the board, however click/drag to move took some time to add. There is also positional evaluations and engine feedback now. Next Steps Next, I plan on creating the actual site design and controls. I also want to add a way to import games from sites like chess.com, and have the ability to load a full game rather than just a position. Move classification is also something that should be implemented soon. Demo Video"}, {"post_id": 28068, "ts": "2026-07-14T02:54:31Z", "hours": 1.6744, "text": "Devlog 1 I started work on Tempo, a chess analysis site to review your games. Chess engines such as Stockfish are easily self-hostable anyways, so there is no reason for sites like chess.com to limit game analysis to 1 per day. Whatās New Added move analysis using Stockfish, which is fully selfhosted. Figuring out web workers and UCI was pretty time consuming, but eventually I got the hang of it and figured it out. Next Steps Next, I plan to work on creating the chessboard and site UI. Later Iāll add move classifications such as āBlunderā, āMistakeā, āExcellentā, etc. Maybe iāll add āBrilliantā moves, but there seems to be no clear definition of one other than āa good sacrificeā."}]...
|
Title: Tempo by @evanssidhu | Stardance
Devlogs:
Title: Tempo by @evanssidhu | Stardance
Devlogs:
Devlog 1 I started work on Tempo, a chess analysis site to review your games. Chess engines such as Stockfish are easily self-hostable anyways, so there is no reason for sites like chess.com to limit game analysis to 1 per day. Whatās New Added move analysis using Stockfish, which is fully selfhosted. Figuring out web workers and UCI was pretty time consuming, but eventually I got the hang of it and figured it out. Next Steps Next, I plan to work on creating the chessboard and site UI. Later Iāll add move classifications such as āBlunderā, āMistakeā, āExcellentā, etc. Maybe iāll add āBrilliantā moves, but there seems to be no clear definition of one other than āa good sacrificeā.
Devlog 2 Playable Chess! There is now a playable UI to play Chess games. This was done using a mix of chess.js for the logic and react-chessboard for the UI. Most of the logic was handled by the board, however click/drag to move took some time to add. There is also positional evaluations and engine feedback now. Next Steps Next, I plan on creating the actual site design and controls. I also want to add a way to import games from sites like chess.com, and have the ability to load a full game rather than just a position. Move classification is also something that should be implemented soon. Demo Video
Devlog 3 Move Classifications Move classifications have finally been added. I thought it wouldnāt take this long but instead I spent hours trying to deal with react asynchronous state and trying to coordinate different hooks to play along nicely. Thankfully it works properly now (hopefully). The classifications added are best, excellent, good, inaccuracy, mistake, blunder, and theory. Opening names have also been added as well. Next Steps Next, Iāll work on making the site actually look pretty and have functionality. Importing games should also come next after that. Towards the end iāll add other classifications as well such as miss, great, and brilliant, however, I expect them to be more difficult as they have slightly stricter classifications.
Devlog 4 Site Styling Site styling has been added in this commit, and it also comes with light/dark mode. The evaluation bar has also been added, and is responsive based on the win probability formula. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Themes/Styles Play In Person Play Against Engine Playback/History Controls Importing from other sources (FEN, PGN, Chess.com, Lichess, etc.,) Custom Position Setup Advanced Classifications (Miss, Great, Brilliant)
Devlog 5 Sorry for the long devlog, some things took longer than expected. First I decided to waste time trying to improve the UI until I remembered I suck at design and just decided to revert to the original design. Then I spent forever wondering why my input textbox would not work properly just for me to change e.target.value to e.currentTarget.value. Although I guess where would the fun be if there was no struggle. Anyways, here are the features I added. Board Controls It is now possible to flip the board and go forwards and backwards through moves. Importing from other sources This one took a bit of time, but now you can import games from Chess.com, or provide your own PGN/FEN. Later on Iāll probably also add Lichess as an import source as well. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, Lichess, etc.,) (In Progress) Playback/History Controls (In Progress) Board Themes/Styles Play In Person Play Against Engine Custom Position Setup Advanced Classifications (Miss, Great, Brilliant)
Devlog 6 Second devlog today, this is more of an extension of the previous devlog since a lot of features were not fully polished yet. Since then move playback has been added and I also added a game review container. Most of the logic has now been implemented, all thats left now is a little polish and styling. The only logic thats left is trying to find a way to add proper move history and advanced classifications. I also attached a demo video this time since I forgot to last devlog. Move Playback It is now possible to use arrows to traverse forwards and backwards if a PGN file is imported. Game Review Container I added a little side container which will be used to show the stats of the game review. Currently it only shows the opening and move feedback, but it will be expanded to show accuracies and a full breakdown of the analysis and position similar to chess.com. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls History View Board Themes/Styles Play In Person Play Against Engine Custom Position Setup Advanced Classifications (Miss, Great, Brilliant) Changelog 0e4db3c e2552b0
Devlog 7 Lots of QOL features and fixes added today, iāve added a basic view of move history, and added a settings page where you can change the theme of the website or board. Next, I do want to work on features that do not involve the game review, such as pass and play or engine play. Move History You can now properly go through a gameās moves and view all played moves in the side pane. Themes Website theming has been added, alongside being able to choose the colors you would like the board to be. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls Board Themes/Styles History View (In Progress) Full Game Review/Engine Analysis (In Progress) Play In Person Play Against Engine Custom Position Setup Advanced Classifications (Miss, Great, Brilliant)
Devlog 8 Sorry again for the long devlog, some things took a bit longer than I expected. Anyways, icons/glyphs have been added in this devlog. Iāve also fixed some issues with move backtracking. Additional classifications such as miss and great have been added, which took a while since I had to do a lot of refactors to store all the data in cache, and I also didnāt realize I sometimes was tracking the evaluations for the next moves, not the ones just played, which took a while New classifications Miss : Miss is when the previous player makes a bad move, but the next player fails to capitalize on it causing the evaluation to drop back to near where it was before. Great : Great moves are the only moves in the position that work, provided that the outcome is drawn or winning and you are not already winning had you not played the move. It compares 2 lines of stockfish to evaluate the evaluation difference and check for the conditions outlined above. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls Board Themes/Styles Miss and Great moves History View (In Progress) Full Game Review/Engine Analysis (In Progress) Play In Person Play Against Engine Custom Position Setup Brilliant Moves
Devlog 9 I tried to convert the history from a linear array into a tree, and it did not go well. I spent literal hours trying to get it to work and look at tutorials, but it just did not want to work. So for now iāve decided to stop working on that feature, and just focus on the last few remaining tasks. I do have to fix a couple of things since a lot of features are currently in progress, but I will post another devlog later showing the updated features.
Devlog 10 I finished work on in-person gameplay and custom position setups, all that is left now is to finish adding engine play, polish game review, and add brilliant moves. Promotions You can now choose the piece you would like to promote to (no longer auto queen). In Person Play You can now create a game to be played in person between 2 people. Time controls are also availible. Custom Positions You can now load custom positions via drag and drop, which is useful for practicing endgames or creating puzzles. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls Board Themes/Styles Miss and Great moves History View Play In Person Custom Position Setup [] Full Game Review/Engine Analysis (In Progress) Play Against Engine (In Progress) Brilliant Moves
Devlog 11 I am finally back to this project, and this time did not wait 8 hours to post a devlog. Anyways, I added two major features today, custom position imports (which I forgot to do last time) and engine play. Features Custom Position Imports You can now import a position into the custom position editor, which is great for things like loading puzzles and endgames to practice against the engine. You can also export positions by pressing the copy button to copy the position fen to the clipboard. Play Against Engine You can now play games against stockfish, and choose a difficulty level from 0-20. As mentioned above I believe this is a quite useful feature for things like just playing by yourself or practicing different endgames against the computer. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls Board Themes/Styles Miss and Great moves History View Play In Person Custom Position Setup Play Against Engine Full Game Review/Engine Analysis (In Progress) Brilliant Moves
Devlog 12 I really donāt like going this long without posting a devlog, but debugging move classifications was really painful. I encountered an issue where if you went through many moves very quickly, it resulted in classifications not working properly since stockfish could only give evaluations for the current move. This is not ideal since most classifications require checking the evaluation drop, which requires 2+ points of evaluation. I tried many things, first I tried running 3 different stockfish web workers inside the stockfish hook, which caused a couple issues and was not very performant. Next I tried using a single worker and passing in 3 positions, however since the web worker is single threaded it didnāt really work all that well. I also tried using a queue to run each instance one at a time, but that got complex quickly and still did not work. I also wanted to merge the classification and evaluation hooks, which created a 500 line mess of a file which was a nightmare to maintain. Finally, I decided to revert all my changes and keep the hooks separate and simple, and created 3 instances of evaluation hooks within my classification hook. This was much cleaner and actually worked really well, so I wasted 8 hours making things too complex.# Devlog 12 I really donāt like going this long without posting a devlog, but debugging move classifications was really painful. I encountered an issue where if you went through many moves very quickly, it resulted in classifications not working properly since stockfish could only give evaluations for the current move. This is not ideal since most classifications require checking the evaluation drop, which requires 2+ points of evaluation. I tried many things, first I tried running 3 different stockfish web workers inside the stockfish hook, which caused a couple issues and was not very performant. Next I tried using a single worker and passing in 3 positions, however since the web worker is single threaded it didnāt really work all that well. I also tried using a queue to run each instance one at a time, but that got complex quickly and still did not work. I also wanted to merge the classification and evaluation hooks, which created a 500 line mess of a file which was a nightmare to maintain. Finally, I decided to revert all my changes and keep the hooks separate and simple, and created 3 instances of evaluation hooks within my classification hook. This was much cleaner and actually worked really well, so I wasted 8 hours making things too complex.
Devlog 13 Iāve been working on the game review stats, and iāve implemented a function to classify an entire game and tally up the classifications (which was actually harder than it looked, since i needed to rewrite my hooks since hooks cannot be called within functions). It now works pretty decently, but I do want to optimize performance a bit since it takes a while. Funnily enough there was an issue where if the worker resolved too early it would not terminate and create a memory leak and eat your entire system memory, but thats fixed now.
Devlog 14 Iām going to post more frequently as this project gets wrapped up, and Iāve just finished caching the game review data so feedback is instant if you load in game to review. I also decided to add colors to the start and end squares based on classification because it looks nice. Iāve attached a video below, I donāt know why my screen recorder records very laggy but I promise itās not actually that laggy.
Devlog 15 Iāve added a few more features related to game review in this devlog. First, I added a section to view the top 2 engine lines on each move. Iāve also added a table to view classifications for the entire game.
Devlog 16 Iāve added the last 2 features related to game review, accuracies and the eval chart. The last thing I plan to to is add some polish, brilliant moves, and maybe try working on the history/pgn tree again.
Devlog 17 After a long time, Iāve finally added brilliant moves. This was done by comparing a squares attackers and defenders to determine if the piece is hanging. If a move results in that piece being hanging/sacrificed, and is the top engine move, then the classification will return brilliant. Iāve attached an example below in a game where GothamChess does what he does best and sacrifices both his rooks.
Devlog 18 A few things in this devlog, I separated the game review panel into 2 sections containing the review report and engine analysis. Iāve also refined the classifications for great and brilliant. Brilliant Move Changes The sacrifice can now be anywhere on the board, not just for the piece that moved Trading a lower value piece for a higher value piece (ex: taking a knight but losing a pawn) no longer counts as brilliant Illegal moves (pins, checks, etc.,) no longer contribute to the attacking piece values Great Move Changes Taking a hanging piece or trading lower value pieces for higher value pieces (ex: capturing a hanging queen or recapturing during a trade) no longer count as great moves.
Devlog 19 More progress has been made adding features and fixing bugs. Iāll highlight the changes below. Features Game Chart The game chart has been updated to include custom dots and lines showing the move classifications and key points during the game (brilliant moves, great moves, mistake, blunder, and miss). You can also click on the chart to go to that move. History View The history view has now been updated to show the classification icons next to the move, which should make it easier to find moves you are looking for Fixes/Optimizations Memoization Data in the game chart has now been memoized. This prevents the chart from crashing the page due to trying to process data many times per second. Stockfish evaluations Game review evaluations now use an active worker pool to run multiple evaluations at once rather than just one at a time. Positions are also cached now so all evaluations share 1 chess instance. In practice, this has reduced the game review time for a 20 move game from over 1 minute to around 7 seconds, which is around a 90% decrease.
Devlog 20 Another devlog here focusing on bug fixes, and I am happy to say that almost everything is pretty much complete. Iāve fixed pretty much every out of sync issue, and even got game reviews to load pretty much instantly. It literally took only around 5 seconds to load a 65 move game, so that is finally optimized. I think the issue was some web workers were not terminating properly and taking up too much memory. Anyways I hope to finally have this project out very soon, and the only thing I might to is try to get the history tree working. Today I actually did kind of get it to work but it caused massive performance degradations for some reason and was causing some conflicts with other components as well.
Devlog 21 The history view has finally been properly migrated to a tree structure. Now since that is finally complete, I know it has been long overdue but it is finally time to ship this project.
Devlog 22 The site is now live. I actually had a lot of issues in deploying this site for some reason (mainly due to the large stockfish binaries stored in git lfs and the coi serviceworker) and my deployments just kept failing. I eventually got it straightened out now and I am ready to ship the project.
Devlog 23 Hello again everybody! I know its been a long time since I last worked on this project, but I read the feedback on this project and addressed your suggestions. Most of the feedback was on ui/ux improvements, so as a result I removed all mentions of infinity/nan on the site, as it looks rather unpolished and unprofessional. I also changed the modal dialogs from the built in alert function to a less intrusive custom toast notification. Lastly, a couple people said the engine took slightly long to make moves, so I slightly lowered the engine depth for games and also removed another delay I originally added to make the engine feel more human like in its thinking time. In terms of the game review engine I decided to keep it the same as it works pretty quickly due to a worker pool being used, but I did change the dialog slightly to make it feel like something is happening in the background, which suprisingly actually makes it feel faster. Anyways, to everyone that tried this project and gave feedback, thank you as it was much appreciated.
Devlog 24 Small devlog, I was about to do another ship after addressing the feedback from last time, but I noticed a small bug where brilliant moves did not show sometimes. It turns out the issue was much simpler than I was testing for and it was due to a small multiplication sign error when converting the mate evaluation to centipawns to check if a move was winning.
Ships:
Ship Message Tempo is finally complete. It took way too many hours to finish, mostly through self inflicted pain of using hooks instead of asynchronous functions for the engine. I know that this might not be the greatest project for how long it took, but I am proud to say that itās finally been shipped even after the many times I wanted to quit. I made this project because I play a little bit of chess and after getting limited to only 1 game review per day I thought it would be a good idea to make my own game review (yes I know other sites exist but wheres the fun in that). Anyways enough about that, here are the project features (definetly not copied from the readme) Features Game Review: Check how well you played in your previous games by simply entering your chess.com username or by manually loading a pgn file. Move Feedback: Instant updates on how well the engine thinks your move is. Move Classifications: How well the engine evaluates your moves. Classifications such as Miss, Great, or Brilliant are also included. Engine Lines: What the engine thinks is the best line to play in a position. Accuracies: How accurate you played relative to the best moves Graph: A visual and interactive graph on how much your expected win percentage changed throughout a game Classification Report: A total summary of how many of each type of move you played History Tree: View the total game history and easily branch off the main path. Play: Play against a friend in person, or play against the engine. Custom positions can be used as well. Custom Positions: Set up a custom position to load later. Settings: Change the app or board theme. If you are still reading this, thank you and I hope you enjoy using my site.
This is the second ship of the project. This is a pretty small ship aimed at addressing some feedback posted during my last ship. Originally I planned to do a complete UI overhaul, but I decided to just focus on minor improvements now since I have to balance projects with school and donāt know if I am going to have time to work on projects as much. I also want to take a little break from projects to focus on my mental health as well since I have been dedicating multiple hours almost every day purely on making projects. Anyways, enough about that and back to the project. If you want to see the changes from the previous ship, I have them outlined in the devlog below. If you want to see the main features added in the first ship, I have it posted as well shortly below to read. Thank you and I hope you like using my project, if you have any more feedback please outline it in your vote message as I love hearing how I can make my projects better. If you do not want to scroll down to the previous ship message or the readme, here is it posted below. Previous Ship Message Tempo is finally complete. It took way too many hours to finish, mostly through self inflicted pain of using hooks instead of asynchronous functions for the engine. I know that this might not be the greatest project for how long it took, but I am proud to say that itās finally been shipped even after the many times I wanted to quit. I made this project because I play a little bit of chess and after getting limited to only 1 game review per day I thought it would be a good idea to make my own game review (yes I know other sites exist but wheres the fun in that). Anyways enough about that, here are the project features (definetly not copied from the readme) Features Game Review: Check how well you played in your previous games by simply entering your chess.com username or by manually loading a pgn file. Move Feedback: Instant updates on how well the engine thinks your move is. Move Classifications: How well the engine evaluates your moves. Classifications such as Miss, Great, or Brilliant are also included. Engine Lines: What the engine thinks is the best line to play in a position. Accuracies: How accurate you played relative to the best moves Graph: A visual and interactive graph on how much your expected win percentage changed throughout a game Classification Report: A total summary of how many of each type of move you played History Tree: View the total game history and easily branch off the main path. Play: Play against a friend in person, or play against the engine. Custom positions can be used as well. Custom Positions: Set up a custom position to load later. Settings: Change the app or board theme. If you are still reading this, thank you and I hope you enjoy using my site....
|
1792986947.8720236
|
1793073347.8720236
|
|
34641
|
AccountantOS by @samarth_hota | Stardance
|
samarth_hota
|
2
|
4.0
|
6
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-04T21:27:19Z", "hours": 1.0, "multiplier": 11.11, "payout": 6, "blessing": "neutral", "text": "Accountant OS: What I made: I built Accountant OS, a lightweight, browser-based OS -type app for, get this⦠Accountants . It runs natively in the browser via one HTML file for a ālightweight experience.ā What was challenging: Structuring the layout to feel like a true āoperating systemā rather than just a standard web page took some trial and error. Additionally, routing the logic for the accounting widgets and ensuring the interactive elements updated dynamically without breaking the UI required careful attention to the code structure. //Tryna make this part professional twin. What I am proud of: I am really proud of the user interface and the āretroā design. Taking standard HTML and turning it into a customized, app-like environment is a great milestone, and Iām happy with how nostalgic it looks. What users should know so they can test this: Testing is completely frictionless (Stardance pun intented) you donāt need to install any heavy software or databases. Just download the .html file and double-click it to open it in your preferred web browser. Keep in mind that because it is a localized browser app, your data will reset if you refresh the page. //basically it has no memory but trust the process.", "repo": "https://github.com/samarthhota-cyber/Accountant-os", "demo": "https://samarthhota-cyber.github.io/Accountant-os/"}, {"ship_num": 2, "ts": "2026-07-19T00:42:06Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made this my own webOS, accountant OS. This webOS, primarily built in html, is a standalone web operating system with draggable windows, apps and FYI this will be updated sometime in the future.", "repo": "https://github.com/samarthhota-cyber/Accountant-os", "demo": "https://samarthhota-cyber.github.io/Accountant-os/"}]...
|
[{"post_id": 31607, "ts": "202 [{"post_id": 31607, "ts": "2026-07-20T04:33:51Z", "hours": 0.5083, "text": "1 introdction of the Centralized Database Explorer (DATABASE.EXE)Then (v1.0): Text storage and calculation values operated on disconnected, static page inputs. There was no capability to organize, create, or navigate multiple independent documents.Now (v5.0): Added a multi-node Directory manager that functions as a virtual relational file-system stored in local memory. Users can categorize files by format (Documents or Sheets), monitor file metadata (bytes, edit times), delete nodes, and initiate new files which load into editing buffers upon double-clicking.2. Fully Functional Dynamic Spreadsheet Grid (SHEETS.EXE)Then (v1.0): The spreadsheet app was restricted to a static HTML table structure representing a fixed, hard-coded tax margin computation form.Now (v5.0): Transformed into an interactive, multi-document 4x6 grid with column headers (AāD) and row indices (1ā6). Includes a dedicated Excel-style Formula Bar that reads active cells and parses custom math-reference strings (e.g., =A1+B1 or =B4-B3-B5). Changes are evaluated instantly.3. Custom Accountant OS Bookkeeping Theme & Mechanical Click SynthThen (v1.0): Styling was standard retro-grey, styled specifically around flat color panels. Keyboard interaction was silent.Now (v5.0): Polished the design with the warm parchment-colored Vintage Ledger theme, featuring custom margins and double-underlined ledger rules. Created a custom Web Audio API synthesizer that produces retro mechanical keyclick sound effects whenever the user types inside a document, spreadsheet cell, or terminal panel.4. Upgraded Multi-Document Buffer & File Association (DOCS.EXE)Then (v1.0): The notepad component supported editing only one single global string buffer without file associations.Now (v5.0): Fully integrated the text editor with the centralized directory database. The interface tracks active file-handling buffers, displays file state labels, and features a āCommit to DBā protocol to save edits back into the primary database.5. Interactive BIOS Boot loaderThen (v1.0): Accessing the page immediately showed the desktop environment with no startup stage.Now (v5.0): Implemented a classic AMI-style BIOS welcome sequence. The terminal tests RAM, registers system assets, and generates a boot chime using browser audio oscillators to ensure proper context registration before revealing the operating system.6. Refined Window Geometry with Viewport Clamping and Storage Save StateThen (v1.0): Draggable windows lacked boundary constraints, letting users pull elements entirely out of bounds. Window positions, sizes, and open/close states were lost on reload.Now (v5.0): Upgraded the dragging engine with boundary checks, clamping window positions within desktop margins. Window coordinates, width/height dimensions, minimization status, and active directories are saved to localStorage and recovered on bootup. Added a dynamic taskbar tabs manager that tracks window focus and supports minimize-to-tray switching.7. Real-Time Vector Sparklines & Sound VisualizerThen (v1.0): The asset simulation was limited to numeric text fields updating at fixed intervals. The audio synthesizer was a basic sound button with no graphic feedback.Now (v5.0): Integrated an HTML sparkline renderer inside the asset terminal, drawing historical market price lines for machinery (green) and T-bills (yellow). Additionally, added an animated equalizer visualizer inside the synth control applet that animates to procedural frequencies."}, {"post_id": 30990, "ts": "2026-07-19T00:36:09Z", "hours": 0.2892, "text": "Finished up a few touches and is ready for the world."}, {"post_id": 30960, "ts": "2026-07-18T23:40:10Z", "hours": 2.2033, "text": "I changed it to accountant os, and made drastic improvments with new apps and a retro looking desktop(which was pretty easy)."}, {"post_id": 28061, "ts": "2026-07-14T02:42:13Z", "hours": 0.3336, "text": "im making a referee os themed os"}]...
|
Title: AccountantOS by @samarth_hota | Stardance
Title: AccountantOS by @samarth_hota | Stardance
Devlogs:
im making a referee os themed os
I changed it to accountant os, and made drastic improvments with new apps and a retro looking desktop(which was pretty easy).
Finished up a few touches and is ready for the world.
1 introdction of the Centralized Database Explorer (DATABASE.EXE)Then (v1.0): Text storage and calculation values operated on disconnected, static page inputs. There was no capability to organize, create, or navigate multiple independent documents.Now (v5.0): Added a multi-node Directory manager that functions as a virtual relational file-system stored in local memory. Users can categorize files by format (Documents or Sheets), monitor file metadata (bytes, edit times), delete nodes, and initiate new files which load into editing buffers upon double-clicking.2. Fully Functional Dynamic Spreadsheet Grid (SHEETS.EXE)Then (v1.0): The spreadsheet app was restricted to a static HTML table structure representing a fixed, hard-coded tax margin computation form.Now (v5.0): Transformed into an interactive, multi-document 4x6 grid with column headers (AāD) and row indices (1ā6). Includes a dedicated Excel-style Formula Bar that reads active cells and parses custom math-reference strings (e.g., =A1+B1 or =B4-B3-B5). Changes are evaluated instantly.3. Custom Accountant OS Bookkeeping Theme & Mechanical Click SynthThen (v1.0): Styling was standard retro-grey, styled specifically around flat color panels. Keyboard interaction was silent.Now (v5.0): Polished the design with the warm parchment-colored Vintage Ledger theme, featuring custom margins and double-underlined ledger rules. Created a custom Web Audio API synthesizer that produces retro mechanical keyclick sound effects whenever the user types inside a document, spreadsheet cell, or terminal panel.4. Upgraded Multi-Document Buffer & File Association (DOCS.EXE)Then (v1.0): The notepad component supported editing only one single global string buffer without file associations.Now (v5.0): Fully integrated the text editor with the centralized directory database. The interface tracks active file-handling buffers, displays file state labels, and features a āCommit to DBā protocol to save edits back into the primary database.5. Interactive BIOS Boot loaderThen (v1.0): Accessing the page immediately showed the desktop environment with no startup stage.Now (v5.0): Implemented a classic AMI-style BIOS welcome sequence. The terminal tests RAM, registers system assets, and generates a boot chime using browser audio oscillators to ensure proper context registration before revealing the operating system.6. Refined Window Geometry with Viewport Clamping and Storage Save StateThen (v1.0): Draggable windows lacked boundary constraints, letting users pull elements entirely out of bounds. Window positions, sizes, and open/close states were lost on reload.Now (v5.0): Upgraded the dragging engine with boundary checks, clamping window positions within desktop margins. Window coordinates, width/height dimensions, minimization status, and active directories are saved to localStorage and recovered on bootup. Added a dynamic taskbar tabs manager that tracks window focus and supports minimize-to-tray switching.7. Real-Time Vector Sparklines & Sound VisualizerThen (v1.0): The asset simulation was limited to numeric text fields updating at fixed intervals. The audio synthesizer was a basic sound button with no graphic feedback.Now (v5.0): Integrated an HTML sparkline renderer inside the asset terminal, drawing historical market price lines for machinery (green) and T-bills (yellow). Additionally, added an animated equalizer visualizer inside the synth control applet that animates to procedural frequencies.
Ships:
I made this my own webOS, accountant OS. This webOS, primarily built in html, is a standalone web operating system with draggable windows, apps and FYI this will be updated sometime in the future.
Accountant OS: What I made: I built Accountant OS, a lightweight, browser-based OS -type app for, get this⦠Accountants . It runs natively in the browser via one HTML file for a ālightweight experience.ā What was challenging: Structuring the layout to feel like a true āoperating systemā rather than just a standard web page took some trial and error. Additionally, routing the logic for the accounting widgets and ensuring the interactive elements updated dynamically without breaking the UI required careful attention to the code structure. //Tryna make this part professional twin. What I am proud of: I am really proud of the user interface and the āretroā design. Taking standard HTML and turning it into a customized, app-like environment is a great milestone, and Iām happy with how nostalgic it looks. What users should know so they can test this: Testing is completely frictionless (Stardance pun intented) you donāt need to install any heavy software or databases. Just download the .html file and double-click it to open it in your preferred web browser. Keep in mind that because it is a localized browser app, your data will reset if you refresh the page. //basically it has no memory but trust the process....
|
1793000859.4530883
|
1793087259.4530883
|
|
34987
|
Ma-Site by @MuhammadAayanMirza | Stardance
|
MuhammadAayanMirza
|
2
|
32.45
|
323
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T03:45:02Z", "hours": 18.0, "multiplier": 13.12, "payout": 289, "blessing": "neutral", "text": "This is my First time coding! So like most people I made a Personal Site. The site is made using HTML, CSS and JavaScript, all of which I learned in the making of this website. There is a fun loading screen when you open the site, the arrow in the home section is clickable, and all the project cards and game cards are interactive and lead you to their respective links upon clicking. The āEmail meā button in the contact section leads you straight to my email. Hope you like the Site!!", "repo": "https://github.com/MuhammadAayanMirza/Ma-Site", "demo": "https://muhammadaayanmirza.github.io/Ma-Site/"}, {"ship_num": 2, "ts": "2026-07-23T11:12:08Z", "hours": 12.0, "multiplier": 2.78, "payout": 34, "blessing": "neutral", "text": "This Is My First Time Coding, So Like Most People I Made A Personal Site. I Learned A lot From This Journey, Huge Credit Goes To @Irtaza For Teaching Me Most Of The Code And What it Does. This Website Includes 3 Main Sections, Home, About Me, And Projects. The Contact Button On The Nav Bar Will Directly Lead You To My Email. Each Project Is Clickable And Leads To Their Respective Model. The Social Media Images Are Also Intractable. The Text And Image In The Home Section Increase Size When You Hover Over Them.", "repo": "https://github.com/MuhammadAayanMirza/Ma-Site", "demo": "https://muhammadaayanmirza.github.io/Ma-Site/"}]...
|
[{"post_id": 72705, "ts": "202 [{"post_id": 72705, "ts": "2026-09-23T15:24:35Z", "hours": 2.4514, "text": "Back to making this site even better!! In this session I dived deep into JavaScript to create this animated moving background for the site which I saw on @Irtaza ās site and I liked it alot. So I spent all this time trying to figure out how that works because I have no idea how JavaScript works. I also added my new game āThe Lat Digā to the game section aswell with a clickable link."}, {"post_id": 47864, "ts": "2026-08-16T03:33:55Z", "hours": 0.5792, "text": "Added some finishing touches to the site, made the site completely compatible on mobile and created a brand new Readme with pictures of all the sections of Ma-Site. Now I think Iām ready to ship this project and hopefully people of the Stardance community will like it!"}, {"post_id": 47596, "ts": "2026-08-15T16:15:49Z", "hours": 2.9853, "text": "Created the Contact section of the site with an interactive button that if you click will lead you straight to my email and the button glows really cool upon hovering on it. Most of the time in this session was spent on making all the elements on the desktop site also look the same or similar on the mobile site. This took a ton ton of time and Iām still fiddling around with it. Other than that I think the version 2 of Ma-Site is complete and I will soon ship this project and hopefully get a better multiplier than 2.78x ."}, {"post_id": 47401, "ts": "2026-08-15T09:50:29Z", "hours": 1.8664, "text": "Redesigned the Home section a bit and added a brand new Games section with the one game I have made called āHyper Slideā. Also now when you hover over the project cards and game card a drop shadow appears behind them making it feel like they are lifted above the page a bit which is cool. Now the site actually feels like a proper usable fun site. Now I need to add a proper contact section and maybe add something else that makes the website feel a bit more complete!"}, {"post_id": 47306, "ts": "2026-08-15T05:30:28Z", "hours": 1.7797, "text": "Redesigned the Projects section and added an animated arrow in the home section which is clickable and leads to the about me section in a smooth manner."}, {"post_id": 47059, "ts": "2026-08-14T17:48:42Z", "hours": 3.1622, "text": "Used JavaScript for the first time to animate the loading of the about section. Changed up the whole colour palette again because the last one was feeling a bit too dull and also polished up the about section of the site. Iām still experimenting with the projects sectionās colours and layout and I still need to animate that. It tales me alot of time to do this because this is my first ever coding project and learning new things takes a bit of time."}, {"post_id": 46813, "ts": "2026-08-14T10:13:39Z", "hours": 1.7314, "text": "Changed the colours of the project cards, changed font colours, removed a piece of text which wasnāt needed. Redid the whole About me section visually and adjusted all the sizes of elements across thew website. Iām still working on the sections to make em better and a new section is coming soon š"}, {"post_id": 46456, "ts": "2026-08-13T17:53:56Z", "hours": 1.0542, "text": "Added a loading screen with the text āWelcomeā in some different languages and ending of with āIām Aayanā because Iām Aayan. Also got rid of the curly arrows and small text as I think the landing page looks cleaner without it. The animation part was very difficult for me because it was very new to me, I started of by using JavaScript but for some reason that didnāt work I had to go back to the trusty old CSS."}, {"post_id": 46411, "ts": "2026-08-13T16:30:52Z", "hours": 2.2386, "text": "Still working on the landing page. I experimented alot with different Profile images, fonts for texts, navigation bar settings and the colour ways of the site. I want to get it right this time and make a strong base for the site!!"}, {"post_id": 45864, "ts": "2026-08-12T16:24:43Z", "hours": 1.5567, "text": "Adjusted all the components of the landing page, shifted the nav bar to the right which somehow removed the background of nav bar from the left side so also fixed that, tweaked what happens when you hover over the nav bar sections and added cool curly arrows to tell my interests in the first page. hope people like the colour scheme and layout now!"}, {"post_id": 45760, "ts": "2026-08-12T13:45:18Z", "hours": 1.4381, "text": "As I didnāt get any good ratings on my last ship, Iām redesigning my whole website. Starting of with colour palettes and the landing page. Letās see where this goes."}, {"post_id": 33423, "ts": "2026-07-23T10:48:22Z", "hours": 0.7358, "text": "There Were A Ton Of Issues That Popped Up On The Mobile Site. The Big One Was That There Was Overflow-x on the right hand side of the website on mobile. It Took Ages To Only Fix That Issue. When That Issue Was Fixed, Then The Nav Bar Started To Act Weird As It Was Not Following Along The Page Anymore. But Overall Iām Quite Happy With The Site. I Think It Is A Good First Coding Project For Me."}, {"post_id": 33392, "ts": "2026-07-23T09:26:23Z", "hours": 1.5422, "text": "Made The Website Mobile Friendly By Using CSS And The @media screen feature. Also Made All The Social Links In One Container For Better Alignment And Made Their Size Smaller So That They Donāt Feel Odd On The Page."}, {"post_id": 33093, "ts": "2026-07-22T18:08:29Z", "hours": 2.1575, "text": "I Refined The About Me Section. I Added PNGs Of The Social Platforms I Post Content On, I Made The PNGs Interactable So That When You Click Them They Lead You To The Respective Platform With My Profile Opened. I Also Refined The Navigation Bar After A Bit Of Tinkering With The Colour Wheel And Borders. Added Some Borders Around the Home Page And Underlines Under The Sectionās Titles."}, {"post_id": 32936, "ts": "2026-07-22T12:40:36Z", "hours": 1.9381, "text": "Finished The Projects Section. Learned A Whole Lot. Tinkered A lot With The Code. Made A Container With Multiple Divs, Added Images, Text And A Link To The Divs, So That When You Hover Over The Projects The Size Increases Slightly And If You Click Anywhere On The Image, text Or Background of The Project, It Will Direct You To The Project Link. Changed The Colour Scheme Of It A lot To See What Looked Best. Iām Quite Happy With This!"}, {"post_id": 32791, "ts": "2026-07-22T05:36:26Z", "hours": 1.2383, "text": "Completed The About Me Section Of The Site. Wrote A Thoughtful Paragraph About Myself And Added An Animated Text So That When You Are Reading The About Me Paragraph The Text Beneath āLoads inā. I Made A Link And Learned How To Make It Separate From The Other Links. I Also Added A Home Tab At The Top, I Felt It Was Needed."}, {"post_id": 32365, "ts": "2026-07-21T14:23:46Z", "hours": 1.9994, "text": "Thanks to my friend @Irtaza . I now know how to make all these cool things like changing the colour of your link, how to make them intractable, how to add a gradient background on to a container and make it animated so that the gradient moves and looks super duper amazing. Speaking of a container, I know how to make it finally and contain the text and image as one, so that it can be used in the css file. Margins were very infuriating but in the end it all worked out!"}, {"post_id": 31689, "ts": "2026-07-20T09:31:10Z", "hours": 0.56, "text": "I Learned How To Create Links, How To Add A Navigation Bar At The Top And How To Add Your Gmail As A Link. Iām Now Further Working On The About Me Section Trying To Refine It And Make It Look A Bit Professional!"}, {"post_id": 31161, "ts": "2026-07-19T10:27:07Z", "hours": 0.5992, "text": "Played Heavily Around With Fonts, Font sizes, Margins, etc. Made The Image a more suitable size and overall just having fun with it!"}, {"post_id": 29603, "ts": "2026-07-16T17:22:20Z", "hours": 1.2956, "text": "Learned CSS from my Friend @Irtaza and I am enjoying coding now. seeing the result of what you code is really cool!! Also the Color command wasnāt working for me because I kept typing ācolourā instead of color, I lived in The UK, thatās what it is meant to be ."}, {"post_id": 28455, "ts": "2026-07-14T18:23:40Z", "hours": 0.2506, "text": "First time coding anything, Iām finding the syntax difficult. Im kinda dumbā¦"}]...
|
Title: Ma-Site by @MuhammadAayanMirza | Stardance
Title: Ma-Site by @MuhammadAayanMirza | Stardance
Devlogs:
First time coding anything, Iām finding the syntax difficult. Im kinda dumbā¦
Learned CSS from my Friend @Irtaza and I am enjoying coding now. seeing the result of what you code is really cool!! Also the Color command wasnāt working for me because I kept typing ācolourā instead of color, I lived in The UK, thatās what it is meant to be .
Played Heavily Around With Fonts, Font sizes, Margins, etc. Made The Image a more suitable size and overall just having fun with it!
I Learned How To Create Links, How To Add A Navigation Bar At The Top And How To Add Your Gmail As A Link. Iām Now Further Working On The About Me Section Trying To Refine It And Make It Look A Bit Professional!
Thanks to my friend @Irtaza . I now know how to make all these cool things like changing the colour of your link, how to make them intractable, how to add a gradient background on to a container and make it animated so that the gradient moves and looks super duper amazing. Speaking of a container, I know how to make it finally and contain the text and image as one, so that it can be used in the css file. Margins were very infuriating but in the end it all worked out!
Completed The About Me Section Of The Site. Wrote A Thoughtful Paragraph About Myself And Added An Animated Text So That When You Are Reading The About Me Paragraph The Text Beneath āLoads inā. I Made A Link And Learned How To Make It Separate From The Other Links. I Also Added A Home Tab At The Top, I Felt It Was Needed.
Finished The Projects Section. Learned A Whole Lot. Tinkered A lot With The Code. Made A Container With Multiple Divs, Added Images, Text And A Link To The Divs, So That When You Hover Over The Projects The Size Increases Slightly And If You Click Anywhere On The Image, text Or Background of The Project, It Will Direct You To The Project Link. Changed The Colour Scheme Of It A lot To See What Looked Best. Iām Quite Happy With This!
I Refined The About Me Section. I Added PNGs Of The Social Platforms I Post Content On, I Made The PNGs Interactable So That When You Click Them They Lead You To The Respective Platform With My Profile Opened. I Also Refined The Navigation Bar After A Bit Of Tinkering With The Colour Wheel And Borders. Added Some Borders Around the Home Page And Underlines Under The Sectionās Titles.
Made The Website Mobile Friendly By Using CSS And The @media screen feature. Also Made All The Social Links In One Container For Better Alignment And Made Their Size Smaller So That They Donāt Feel Odd On The Page.
There Were A Ton Of Issues That Popped Up On The Mobile Site. The Big One Was That There Was Overflow-x on the right hand side of the website on mobile. It Took Ages To Only Fix That Issue. When That Issue Was Fixed, Then The Nav Bar Started To Act Weird As It Was Not Following Along The Page Anymore. But Overall Iām Quite Happy With The Site. I Think It Is A Good First Coding Project For Me.
As I didnāt get any good ratings on my last ship, Iām redesigning my whole website. Starting of with colour palettes and the landing page. Letās see where this goes.
Adjusted all the components of the landing page, shifted the nav bar to the right which somehow removed the background of nav bar from the left side so also fixed that, tweaked what happens when you hover over the nav bar sections and added cool curly arrows to tell my interests in the first page. hope people like the colour scheme and layout now!
Still working on the landing page. I experimented alot with different Profile images, fonts for texts, navigation bar settings and the colour ways of the site. I want to get it right this time and make a strong base for the site!!
Added a loading screen with the text āWelcomeā in some different languages and ending of with āIām Aayanā because Iām Aayan. Also got rid of the curly arrows and small text as I think the landing page looks cleaner without it. The animation part was very difficult for me because it was very new to me, I started of by using JavaScript but for some reason that didnāt work I had to go back to the trusty old CSS.
Changed the colours of the project cards, changed font colours, removed a piece of text which wasnāt needed. Redid the whole About me section visually and adjusted all the sizes of elements across thew website. Iām still working on the sections to make em better and a new section is coming soon š
Used JavaScript for the first time to animate the loading of the about section. Changed up the whole colour palette again because the last one was feeling a bit too dull and also polished up the about section of the site. Iām still experimenting with the projects sectionās colours and layout and I still need to animate that. It tales me alot of time to do this because this is my first ever coding project and learning new things takes a bit of time.
Redesigned the Projects section and added an animated arrow in the home section which is clickable and leads to the about me section in a smooth manner.
Redesigned the Home section a bit and added a brand new Games section with the one game I have made called āHyper Slideā. Also now when you hover over the project cards and game card a drop shadow appears behind them making it feel like they are lifted above the page a bit which is cool. Now the site actually feels like a proper usable fun site. Now I need to add a proper contact section and maybe add something else that makes the website feel a bit more complete!
Created the Contact section of the site with an interactive button that if you click will lead you straight to my email and the button glows really cool upon hovering on it. Most of the time in this session was spent on making all the elements on the desktop site also look the same or similar on the mobile site. This took a ton ton of time and Iām still fiddling around with it. Other than that I think the version 2 of Ma-Site is complete and I will soon ship this project and hopefully get a better multiplier than 2.78x .
Added some finishing touches to the site, made the site completely compatible on mobile and created a brand new Readme with pictures of all the sections of Ma-Site. Now I think Iām ready to ship this project and hopefully people of the Stardance community will like it!
Back to making this site even better!! In this session I dived deep into JavaScript to create this animated moving background for the site which I saw on @Irtaza ās site and I liked it alot. So I spent all this time trying to figure out how that works because I have no idea how JavaScript works. I also added my new game āThe Lat Digā to the game section aswell with a clickable link.
Ships:
This Is My First Time Coding, So Like Most People I Made A Personal Site. I Learned A lot From This Journey, Huge Credit Goes To @Irtaza For Teaching Me Most Of The Code And What it Does. This Website Includes 3 Main Sections, Home, About Me, And Projects. The Contact Button On The Nav Bar Will Directly Lead You To My Email. Each Project Is Clickable And Leads To Their Respective Model. The Social Media Images Are Also Intractable. The Text And Image In The Home Section Increase Size When You Hover Over Them.
This is my First time coding! So like most people I made a Personal Site. The site is made using HTML, CSS and JavaScript, all of which I learned in the making of this website. There is a fun loading screen when you open the site, the arrow in the home section is clickable, and all the project cards and game cards are interactive and lead you to their respective links upon clicking. The āEmail meā button in the contact section leads you straight to my email. Hope you like the Site!!...
|
1793065935.180986
|
1793152335.180986
|
|
35003
|
Dock Reflections by @omeriadon | Stardance
|
omeriadon
|
2
|
5.0
|
25
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-21T01:48:15Z", "hours": 4.0, "multiplier": 6.78, "payout": 14, "blessing": "neutral", "text": "I made a bunch of improvements to Dock reflections from the first version, including more options, and I also found it was kinda hogging up cpu and gpu because it kept rerendering. I tried to lower it, but I had some difficulty because this code wasnāt running in my app its in some other process (the dock), so i couldnt really control it. and i couldnt cache the rendered image either because when the user hovers over the dock it magnifies and stuff. in all i got it down to like 20% cpu, which admittedly isnāt very good but on a more powerful machine i think its worth it!", "repo": "https://github.com/omeriadon/DockReflections", "demo": "https://github.com/omeriadon/DockReflections/releases/tag/v1"}, {"ship_num": 2, "ts": "2026-07-14T11:26:24Z", "hours": 1.0, "multiplier": 10.85, "payout": 11, "blessing": "neutral", "text": "I made an ammonia tweak that makes your Dock very pretty, with customisable options to adjust various things like blur opacity etc.", "repo": "https://github.com/omeriadon/DockReflections", "demo": "https://github.com/omeriadon/DockReflections/releases/tag/v1"}]...
|
[{"post_id": 29391, "ts": "202 [{"post_id": 29391, "ts": "2026-07-16T10:00:46Z", "hours": 1.77, "text": "I added a red ring around apple music when music is currently playing. i added animation at first but i found it too distracting, so i removed it and now its just a static red ring. it really pops now, which is really nice š„°"}, {"post_id": 28801, "ts": "2026-07-15T09:31:24Z", "hours": 2.4033, "text": "The last version had a bug where it couldnāt colour tinted and clear icons properly, i have fixed that, and i think it looks really nice now!"}, {"post_id": 28224, "ts": "2026-07-14T11:25:10Z", "hours": 0.9847, "text": "This is quite a short project honestly. The way this works is that using Ammonia, which is a system tweak and extension loader for macOS, I inject some code into the macOS Dock that replaces the open-app indicator with my version as you can see below, and it adds a view below the app icons of the āreflectedā app icons. I also made a small utility app to adjust these values in. This injection is unsafe and can crash your mac, and needs disabling multiple security options, so doing this isnāt recommended for most people, but I really like how these look so Iāll keep it. š„°"}]...
|
Title: Dock Reflections by @omeriadon | Stardance
Title: Dock Reflections by @omeriadon | Stardance
Devlogs:
This is quite a short project honestly. The way this works is that using Ammonia, which is a system tweak and extension loader for macOS, I inject some code into the macOS Dock that replaces the open-app indicator with my version as you can see below, and it adds a view below the app icons of the āreflectedā app icons. I also made a small utility app to adjust these values in. This injection is unsafe and can crash your mac, and needs disabling multiple security options, so doing this isnāt recommended for most people, but I really like how these look so Iāll keep it. š„°
The last version had a bug where it couldnāt colour tinted and clear icons properly, i have fixed that, and i think it looks really nice now!
I added a red ring around apple music when music is currently playing. i added animation at first but i found it too distracting, so i removed it and now its just a static red ring. it really pops now, which is really nice š„°
Ships:
I made an ammonia tweak that makes your Dock very pretty, with customisable options to adjust various things like blur opacity etc.
I made a bunch of improvements to Dock reflections from the first version, including more options, and I also found it was kinda hogging up cpu and gpu because it kept rerendering. I tried to lower it, but I had some difficulty because this code wasnāt running in my app its in some other process (the dock), so i couldnt really control it. and i couldnt cache the rendered image either because when the user hovers over the dock it magnifies and stuff. in all i got it down to like 20% cpu, which admittedly isnāt very good but on a more powerful machine i think its worth it!...
|
1792878433.061005
|
1793742433.061005
|
|
35042
|
Fruit fall by @nurofenracealasigripa | Stardance
|
nurofenracealasigripa
|
2
|
12.0
|
66
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T13:47:21Z", "hours": 1.0, "multiplier": 14.97, "payout": 12, "blessing": "neutral", "text": "Fruit fall: a cozy game in which you need to catch falling fruit and avoid bombs. I added 2 more apple variants to make the game more fun. I also made it so that the game becomes harder as you progress. Also, browser variant is curently not available. Enjoy! Note: the code for this version is in fruitfallV2.cpp", "repo": "https://github.com/stoicaandrei-blip/Fruit-fall", "demo": "https://github.com/stoicaandrei-blip/Fruit-fall/releases/tag/V2.0.0"}, {"ship_num": 2, "ts": "2026-08-05T14:10:34Z", "hours": 11.0, "multiplier": 4.99, "payout": 54, "blessing": "neutral", "text": "Fruit fall: a cozy game in which you need to catch falling fruit and avoid falling bombs. The objective is to have a big score while surviving as long as possible: catch a bomb or let an apple fall and not only do you lose a life, but you also lose points. After each game you can visit the stats page to see if you got a new highscore and the number of played games. Are you interested in discovering more games made by me - press the more games button. The feedback one redirects you to a form to fill out. For more details including a more datailed how to play, credits and how to install the game without problems go read the github readme file. I hope you have fun playing!", "repo": "https://github.com/stoicaandrei-blip/Fruit-fall", "demo": "https://github.com/stoicaandrei-blip/Fruit-fall/releases/tag/V2.0.0"}]...
|
[{"post_id": 44564, "ts": "202 [{"post_id": 44564, "ts": "2026-08-10T12:30:35Z", "hours": 0.2642, "text": "Devlog 9: I finished the game! I made it so that the game getās a bit harder as you progress - the fruits fall faster. I also decided that a new menu variant simply isnāt needed since there are not that many buttons. i also donāt really know what game to do next :) Those changes have been added to github as v2.0.0"}, {"post_id": 44045, "ts": "2026-08-09T15:41:33Z", "hours": 0.5269, "text": "Devlog 8: I started updating the game. First of all i added 2 more apple variants: green and yellow. The red one only adds points, the yellow one adds 2 points instead of 1, and the yellow one adds a heart and 5 points.They are still not added on github :] I also had a small bug where if the health went over 4 it displayed an empty health bar."}, {"post_id": 40749, "ts": "2026-08-04T14:09:53Z", "hours": 1.3044, "text": "Devlog 7: I think this is the last devlog before the first version releases. The game was a bit too easy before so i made it so that you no longer can move the basket across the whole screen, only left or right. Also, i noticed there was a bug where all the bombs would spawn on the right and the apples on the left and i had to debug that for a while - it turns out it was a problem with the generating functions because all of them used the same seed."}, {"post_id": 40255, "ts": "2026-08-03T17:37:56Z", "hours": 2.8761, "text": "Devlog 6: Almost finished the entire game. i added a custom font to display the score. I added the stats page which displays the highscore and the number of games played. I also added an intro music and did some debugging: when you entered the stats page the stats would reset - it turned out to be the placement of the reset button. Instead of changing it, I added a timer that doesnāt let you reset the stats in the first second you are in the stats page. I thought i finished the game, but as i was playtesting it i discovered some bugs. After i solve them, the game would be ready for release :) Edit: I finally finished the game and it seems that there are no bugs: There were 3: -I made it so that after an apple falls on the ground you lose a heart, but, because the game waited for the health to reach less than 0, the game wouldnāt end as soon as you reached 0 health -The health bar wouldnāt reset after a game because i forgot to reset it -When a round ended, the wait timer triggered twice so you couldnāt play imidiately and the fruits would remain in the same position as before at the start of the new round - these 2 needed only minor code tweaks Here are some photos:"}, {"post_id": 36388, "ts": "2026-07-28T13:47:29Z", "hours": 1.3572, "text": "Devlog 5: I almost finished the gameplay :] Now, the fruit/bomb getās deleted when touching the ground or the basket. I also added a health bar and if you catch a bomb you lose a heart. If you lose all of them you lose. I encountered a bug where the game would delete 2 fruits even if you caught only one. Next i will add a score counter, and the stats page."}, {"post_id": 35784, "ts": "2026-07-27T13:01:03Z", "hours": 1.6397, "text": "Devlog4: Started working on the gameplay: a random object spawns - a fruit or a bomb. They spawn at a random position at the top of the screen and fall towards the ground. I had a lot of trouble with the spawning :( and did a lot of debugging. Next, i will detect when the player catches an object and delete it."}, {"post_id": 30568, "ts": "2026-07-18T07:56:48Z", "hours": 1.1283, "text": "Devlog 3: I finally finished the menu(i added a button to turn off/on the music)! Also i started working on the gameplay: i drew the background and added a basket texture that will appear instead of the mouseās arrow and made the start button functional.Next i will finish the gameplay :)"}, {"post_id": 29522, "ts": "2026-07-16T14:38:52Z", "hours": 1.5164, "text": "Devlog 2: I almost finished the menu. I drew the background image for it(you can see a timelapse down in the video), added the buttons: the play one(doesnāt work), stats one(also doesnāt work), exit(this one actually works, as well as the next ones), one that redirects you to a form to give feedback about the game and one that redirects you to my github profile to check out other games. The hardest part was adding the 2 buttons that redirect you since the procedure differs depending on OS(operating system if you didnāt know). To solve that i made a function that (theoretically) detect which OS the device is runnig and that adjusts the command, tho i could only test it for windows and it works correctly. Also i spent some time debugging the code because the background image wouldnāt show up - it turns out i set the origin wrong :|."}, {"post_id": 28345, "ts": "2026-07-14T15:24:54Z", "hours": 0.9317, "text": "Devlog 1: I have started a new game : Fruit fall. The idea is simple: you have to catch as many falling fruits as you can. If you catch a bomb or let a fruit fall to the ground you lose a heart. If you lose 3 hearts you lose. For the first day i did an intro screen that will play for the first 3 times you enter the game. The intro screen show what you see below and the fades away. Tommorow i will create the menu and some functions. Also i will try to post the journey on youtube. This is the channel: https://www.youtube.com/@Violentshrimpproductions"}]...
|
Title: Fruit fall by @nurofenracealasigripa | Star Title: Fruit fall by @nurofenracealasigripa | Stardance
Devlogs:
Devlog 1: I have started a new game : Fruit fall. The idea is simple: you have to catch as many falling fruits as you can. If you catch a bomb or let a fruit fall to the ground you lose a heart. If you lose 3 hearts you lose. For the first day i did an intro screen that will play for the first 3 times you enter the game. The intro screen show what you see below and the fades away. Tommorow i will create the menu and some functions. Also i will try to post the journey on youtube. This is the channel: https://www.youtube.com/@Violentshrimpproductions
Devlog 2: I almost finished the menu. I drew the background image for it(you can see a timelapse down in the video), added the buttons: the play one(doesnāt work), stats one(also doesnāt work), exit(this one actually works, as well as the next ones), one that redirects you to a form to give feedback about the game and one that redirects you to my github profile to check out other games. The hardest part was adding the 2 buttons that redirect you since the procedure differs depending on OS(operating system if you didnāt know). To solve that i made a function that (theoretically) detect which OS the device is runnig and that adjusts the command, tho i could only test it for windows and it works correctly. Also i spent some time debugging the code because the background image wouldnāt show up - it turns out i set the origin wrong :|.
Devlog 3: I finally finished the menu(i added a button to turn off/on the music)! Also i started working on the gameplay: i drew the background and added a basket texture that will appear instead of the mouseās arrow and made the start button functional.Next i will finish the gameplay :)
Devlog4: Started working on the gameplay: a random object spawns - a fruit or a bomb. They spawn at a random position at the top of the screen and fall towards the ground. I had a lot of trouble with the spawning :( and did a lot of debugging. Next, i will detect when the player catches an object and delete it.
Devlog 5: I almost finished the gameplay :] Now, the fruit/bomb getās deleted when touching the ground or the basket. I also added a health bar and if you catch a bomb you lose a heart. If you lose all of them you lose. I encountered a bug where the game would delete 2 fruits even if you caught only one. Next i will add a score counter, and the stats page.
Devlog 6: Almost finished the entire game. i added a custom font to display the score. I added the stats page which displays the highscore and the number of games played. I also added an intro music and did some debugging: when you entered the stats page the stats would reset - it turned out to be the placement of the reset button. Instead of changing it, I added a timer that doesnāt let you reset the stats in the first second you are in the stats page. I thought i finished the game, but as i was playtesting it i discovered some bugs. After i solve them, the game would be ready for release :) Edit: I finally finished the game and it seems that there are no bugs: There were 3: -I made it so that after an apple falls on the ground you lose a heart, but, because the game waited for the health to reach less than 0, the game wouldnāt end as soon as you reached 0 health -The health bar wouldnāt reset after a game because i forgot to reset it -When a round ended, the wait timer triggered twice so you couldnāt play imidiately and the fruits would remain in the same position as before at the start of the new round - these 2 needed only minor code tweaks Here are some photos:
Devlog 7: I think this is the last devlog before the first version releases. The game was a bit too easy before so i made it so that you no longer can move the basket across the whole screen, only left or right. Also, i noticed there was a bug where all the bombs would spawn on the right and the apples on the left and i had to debug that for a while - it turns out it was a problem with the generating functions because all of them used the same seed.
Devlog 8: I started updating the game. First of all i added 2 more apple variants: green and yellow. The red one only adds points, the yellow one adds 2 points instead of 1, and the yellow one adds a heart and 5 points.They are still not added on github :] I also had a small bug where if the health went over 4 it displayed an empty health bar.
Devlog 9: I finished the game! I made it so that the game getās a bit harder as you progress - the fruits fall faster. I also decided that a new menu variant simply isnāt needed since there are not that many buttons. i also donāt really know what game to do next :) Those changes have been added to github as v2.0.0
Ships:
Fruit fall: a cozy game in which you need to catch falling fruit and avoid falling bombs. The objective is to have a big score while surviving as long as possible: catch a bomb or let an apple fall and not only do you lose a life, but you also lose points. After each game you can visit the stats page to see if you got a new highscore and the number of played games. Are you interested in discovering more games made by me - press the more games button. The feedback one redirects you to a form to fill out. For more details including a more datailed how to play, credits and how to install the game without problems go read the github readme file. I hope you have fun playing!
Fruit fall: a cozy game in which you need to catch falling fruit and avoid bombs. I added 2 more apple variants to make the game more fun. I also made it so that the game becomes harder as you progress. Also, browser variant is curently not available. Enjoy! Note: the code for this version is in fruitfallV2.cpp...
|
1792875253.0223382
|
1793739253.0223382
|
|
35149
|
Wingspan for Pterodactyl by @brahmtejsawhney | Sta Wingspan for Pterodactyl by @brahmtejsawhney | Stardance...
|
brahmtejsawhney
|
2
|
38.44
|
680
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T07:32:22Z", "hours": 14.0, "multiplier": 17.93, "payout": 246, "blessing": "neutral", "text": "Hello! If you are new here, welcome! This is my flagship project called Wingspan, Itās used by system administrators and infrastructure managers to manage their virtual servers in bulk rather than one by one. This project works in the terminal with AMAZING Terminal UI! This is my second ship. I have worked on making the Server Purge Function, to easily delete servers in large quantities. In my previous ships, I worked on making the basics of the code and functions to index and search the database. I have received extremely positive comments for this project, and iām really proud of making it! Do star it on github if you like this one!", "repo": "https://github.com/brahmtej2009/wingspan", "demo": "https://github.com/brahmtej2009/Wingspan/blob/main/SHIPWRIGHTS.md"}, {"ship_num": 2, "ts": "2026-09-23T10:49:52Z", "hours": 24.0, "multiplier": 18.44, "payout": 434, "blessing": "neutral", "text": "Welcome to WingSpan, A project to bulk manage your self hosted hardware on pterodactyl. Easily search through servers, get detailed information, export lists based on precise filtering and more! It is made for people like me, who manage hundreds of servers daily, and need to perform bulk actions on them. Its posted on frictionless mission because it would make my life really easy as it automates a lot of my work and would save me a LOT of clicks! cant wait for you to try it out! <3", "repo": "https://github.com/brahmtej2009/wingspan", "demo": "https://github.com/brahmtej2009/Wingspan/blob/main/SHIPWRIGHTS.md"}]...
|
[{"post_id": 80768, "ts": "202 [{"post_id": 80768, "ts": "2026-10-18T18:48:38Z", "hours": 0.4375, "text": "ps: not an official devlog, just an update Show and Tell + Super Star This was another great show and tell, and OMG SUPER STAR! Thanks @Lazyllama ā¤ļø Ty guys, rly grateful!! Image shows me submitting to Show and Tell and 2nd Image showing my Super Star!"}, {"post_id": 80312, "ts": "2026-10-17T07:27:32Z", "hours": 2.9072, "text": "Devlog 19 Show and Tell #1 WINNER Project! š Progress Done Purge function has been completely created. I have worked on API Request Error Catching in duration of this devlog. I have integrated all the standard practices and error catching which is required, and now the program displays the error and a solution to fix it. Also, it tracks if there are any errors due to wingspan itself, and provides resolution! Great Stuff! I also started work on User Purge Function, which iāll release in the ship after shipping Server Purge. There was a bug in the release file, which prevented auto update in windows. Fixed that. Features Added/Worked on Better API Requests to Pterodactyl Rate Limit detector and queue Error Catching and Resolution Server Purge Function Completed Started work on User Purge What new I learnt I learnt to work with industry standard error catching I learnt to make better API systems I learnt to work with queues and rate limiters I learnt to use DELETE Protocol What I would be working on Completing Documentation till here Shipping till Server Purge AI Declaration Claude was used to find out bug in release file only. No AI was used in code during the span of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Release Page of the project, project homepage and some lovely previous votes screenshots."}, {"post_id": 79114, "ts": "2026-10-12T18:33:47Z", "hours": 2.0575, "text": "Devlog 18 Progress Done Purge feature is now functional. Server purges are working as expected. I have added 4 purge methods. Parameters are Forced/Unforced, and Verified and Unverified.So, FV,FU,UV,UU. When you choose unforced method, it would ensure a clean deletion, and ensure the entire data is wiped. On a forced delete, it would delete it from frontend, and only attempt to clean it entirely. Force method is useful to delete servers whose nodes have been discontinued, or conditions where unforced wouldnt work. Verified feature ensures that the purge process goes as close to the expected outcome as possible, and if anything is detected which shouldnt be so, wingspan would prompt you there, so you can take manual action right there on the spot while it purges. Unverified means that wingspan would try its best to delete all the servers given in the importlist and would not prompt the user in case of discrepancies. Features Added/Worked on Import Verification Server Name Live Verification Completed Beta Purge Function Updated Menu to allow Purge Function Wingspan now needs an Admin API key with Full Perms (Readonly no longer works) What I would be working on Bugchecking all the features I made Attempting to delete some servers in massive quantities. Starting work on User Purge Function Do changes in README.md for the new purge function documentation. Find a good reliable Pterodactyl API Docs Website. AI Declaration No AI was used in code in the duration of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Graphical UI of the Purge Function along with the questions it asks."}, {"post_id": 78414, "ts": "2026-10-10T18:32:47Z", "hours": 3.1958, "text": "Devlog 17 Show and Tell #1 WINNER Project! š Progress Done Ship Approved! Yay! Also, Show and Tell Winner! So, during the span of this devlog, I have worked on creating release files for this project, in a way that they do not have to be updated everr! Also, I have worked on the Purge Function, and have completed the server list import, and have made major changes in server list export function, which now exports minimally required data only for security reasons. Also, I have made quite a lot of confirmations that the person has to fill in order for the servers to actually get deleted, which is a good practice so a person doesnt anciently delete their entire pterodactyl. Also, I have worked on advanced logging in the import system and a very smart directory checker. Also, exporting now adds the panelās URL on top of the export file, so a wingspan session linked to another panel does not perform critical actions on wrong servers. It properly verifies the import file and gives a clear warning if needed. Features Added/Worked on Export Function Major Changes New Import Function Improved logging Purge Function Increased security and confirmations before taking critical actions. What new I learnt I learnt to export files I learnt to import files I learnt security and integrity tactics to prevent unwanted destruction I learnt to do better logging What I would be working on Completing server purge function Starting work on user purge function AI Declaration No AI was used in code in the duration of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached file shows and older video I recorded of me using the project."}, {"post_id": 77037, "ts": "2026-10-05T13:23:55Z", "hours": 5.5469, "text": "Devlog 16 Progress Done The project is still on its reviewing stage, in the meantime, I have worked on releasing the executable release for both windows and linux. The executables are internally dynamic, so it updates to the latest wingspan version on every boot. Alongside, I have also worked on a lot of bugfixes, added more detailed logging, Autoboot after Setup and more. I have also worked on the purge function, specifically on the server purge feature. I have completed the export function and import function for the server lists. So server lists could be imported to action functions. I have also worked on reducing the boot time for linux, and on a fresh install, its as little as 5 seconds for the complete install and setup. Iāll be releasing more things after the ship gets approved! Features Added/Worked on Enhanced Logging System Added Release Executables/Binaries Added Auto Updater Added Importer Function for exported server-lists Fixed bugs and slight performance enhancement for windows Massive performance enhancement for linux What new I learnt I learnt to make a formal logging system I learnt to create binaries of python I learnt how to export and import and edit csv I learnt to optimize code on linux I learnt to make Auto Updaters and Version Checkers What I would be working on Completing server purge function Improving performance for windows systems Adding verification of exports while importing them Warnings before destructive action AI Declaration No AI was used in code in the duration of this devlog. AI was used in helping me with creating the executables from the code. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Release Page of the project, Purge Window Screenshots and Export File Content Screenshots."}, {"post_id": 72609, "ts": "2026-09-23T10:33:51Z", "hours": 2.5994, "text": "Changelog Repo Created on Git, Code Uploaded. V1: Added: Server & Info Fn. Welcome to wingspan folks! <3"}, {"post_id": 71935, "ts": "2026-09-21T20:20:07Z", "hours": 4.2222, "text": "Devlog 14 Progress Done I know this is a very delayed devlog, I had my exams mid way. Iām into the 20th hour of the project, most of the stuff is made. API System is ready, most of the code which would be shared across multiple functions is ready. First function, of Bulk Search and server lookup is also complete. Server lookup function has a really cool UI. Alongside with that, I have also added export option to the Bulk Server Search, you can use the exported file on other functions which take actions on server. Features Added/Worked on Completed Bulk Search and Server Lookup Added server list export Added Shipwrights Docs (Readme for shipwrights) Worked on fixing bugs and README What new I learnt I learnt to work with CSV files I learnt to spoof responses to provide hardcoded outputs (For shipwrights testing) I learnt how to read and save data into json and env I learnt to add images into my Readme AI Declaration A little bit AI was used in CSV saving mechanics, so its saved in a way so could be read back easily for processing later. Server Lookupās UI was heavily created with help of AI, as I was not able to achieve that high information density without use of AI. Rest, updates in README and SHIPWRIGHTS.md were all done by hand with 0% AI. The attached image shows the new Server Lookup UI, new readme with banner and terminal header, shipwrights file, csv file output."}, {"post_id": 36602, "ts": "2026-07-28T20:22:42Z", "hours": 0.5042, "text": "Devlog 13 Progress Done I did not do much today as the schedule was really busy, I have done a little bit of debugging and bughunting by testing with different kinds of server eggs and parameters on pterodactyl. I have not found any major issue yet, there were some little issues with server search function where some parameters would not show up, that is fixed. Rest, I also am working on the server info function and the readme. Features Added/Worked on Finished with Server Search Worked on CSV Export Started work on Server Info Function AI Declaration No AI Used for this devlog period The attached photos show the new updates to the readme and docs."}, {"post_id": 36001, "ts": "2026-07-27T20:15:25Z", "hours": 1.0306, "text": "Devlog 12 Progress Done I am now making the Server Info function, which provides all the server information in one very well managed panel. Thanks to my fellow developer @stef [U0823APHVK7], I got to know that most of the pterodactyl API docs out there are AI generated and are mostly inaccurate. The accurate one is: https://pterodactyl-api.redbanana.dev I have also experienced issues with Pterodactyl itself, not working right with parameter based data fetching, Il work more on it as most likely its some my side issue. I am also working on adding some kind of live table display right into the terminal to beautifully display the data from the Server Info function. Features Added/Worked on Finished with Server Search Worked on CSV Export Started work on Server Info Function AI Declaration No AI Used for this devlog period The attached video show the preview pics of the new Server Info function."}, {"post_id": 35424, "ts": "2026-07-26T20:28:47Z", "hours": 0.6428, "text": "Devlog 11 Progress Done Im in the 14th Hour of the project, and I have worked on the readme. I have written installation process, and scopes of this project. Also, I have added credits as required. All content is human written, no AI used. Features Added/Worked on Added Readme AI Declaration No AI Used for this devlog period The attached video show the preview pics of the readme."}, {"post_id": 34748, "ts": "2026-07-25T18:37:48Z", "hours": 1.3872, "text": "Devlog 10 Progress Done Im in the 13th hour of the project, and have completely finished the first feature of Searching and Indexing servers. This feature allows you to search from bulk server lists and filter out servers based on all the parameters. It also works with any extension which you may add in future which adds more parameters in the panel, its universally compatible. Next, I would be working on the Purge function, on which we would be using the Search and Info function, to export a csv list and import it into the purgetool to eliminate servers. Features Added/Worked on Refined menus and controls Added more colors Added support for complete universal API [Explained above] Finished with the first function of the software What new I learnt I learnt to work with APIs I learnt to manage big data I learnt to make really complicated nested loops I learnt to convert Json and Lists from 2D to 1D AI Declaration A little bit of AI was used to automate repetitive tasks to save time in the search and info function, where filter rules had to be created for each datatype separately and code was mostly same as I written by hand. AI was used to just change variable names and fit it for other datatypes. AI was also used for debugging and checking if everything works alright. Wherever AI was used, has an AI marker in the source code. The attached video show the first working function which is filtering servers based on user inputs."}, {"post_id": 34235, "ts": "2026-07-24T19:23:32Z", "hours": 0.445, "text": "Devlog 9 Progress Done Im working on the final parts of the first function, that is filtering and exporting. Next I would be moving onto purge manager and related functions which are more useful in real life. Input of the ID parameter was giving vague errors when provided with ranges, It took me a lot of debugging to find the source of the issue, and that was a string was being compared to an int (str<int) in a part of code where I didnt typecast. That is fixed now. AI Declaration Close to None AI was used for this devlog. The attached images show the accepted input of the ID field when put with a range."}, {"post_id": 33694, "ts": "2026-07-23T20:23:16Z", "hours": 0.3294, "text": "Devlog 8 Progress Done Im done with Search and Info functionās basics. Only export options and other advanced options are left to be created. This is a really little 15 minute devlog to mark the achievement of the first actual usable feature in the program, which took me about 11 hours, and this project would be having about 20 of such large functions, making this an extremely detailed and big project. In this devlog, I also want to thank each and every follower of mine, for taking interest in my project and supporting me! Thankyou. AI Declaration Close to None AI was used for this devlog. Everything was done by hand for self learning and improvement. The attached images show the Banner of project."}, {"post_id": 33143, "ts": "2026-07-22T19:44:20Z", "hours": 1.6344, "text": "Devlog 7 Progress Done Im into the 12th hour of the project, and I have done a lot of progress on the first function, which is search and info. I have worked on the parameter search option which is an extremely bulky work as im making it compatible with future upgrades and any extra addons that the user may have which cause changes in the API, Iām adding dynamic automatic support for new fields too for search, while taking all inputs and performing operations in the terminal. I am completely AVOIDING AI for this devlog, and focusing on complete self improvement and understanding of such deeply nested code structures. This is a partial devlog, meaning it doesnt mark a completion of a feature. AI Declaration Close to None AI was used for this devlog. Everything was done by hand for self learning and improvement. The attached images show the home page, followed by the new Search from Parameters Modeā¦"}, {"post_id": 32494, "ts": "2026-07-21T18:30:08Z", "hours": 3.0075, "text": "Devlog 6 Progress Done Its the 11th hour into the project and the progress is booming! I have started working on the interactive menus of the program. I have also started work on the first function, which is āSearch and Infoā, in which you can select parameters to search from, and it performs bulk search for you, which you can export to a file, or use in the program internally to trigger actions, or get detailed info about. I have also added terminal ui from curses in this, for the parameter selector, and it looks really good! I also worked on algorithms which convert data from pterodactyl to a usable format for mass bulk searching. I am making it in a way that some of the load is shared on the pterodactyl server side for filtering, and the rest is done on machine running this program, so I can minimize the rate limiting and divide load among both the machines for bulk processing and improve speed. For example, basic filter arguments are run on pterodactyl serverās side (Handled built in by pterodactyl), whereas advanced parameter searches are done on user side as generally userās own system has more threads and is much better than the pterodactyl webserver. Features Added/Worked on Made menus and sections for first function Worked on algorithms to convert api responses to filterable data Worked on UI by adding curses based parameter selector Made first function, Search and Info What new I learnt I learnt to work with massive data and make algorithms to convert to usable data I learnt to make my first usable intractable terminal UI from curses I learnt to divide operations and perform load balancing for such bulk data AI Declaration Close to None AI was used for this devlog. All the algorithms which were made, where made completely by hand. AI was used for research purposes for curses as its a new field for me. All code blocks where AI has been used are marked in source code! The attached images show the home page, followed by new menus, along with the parameter selector and moreā¦"}, {"post_id": 31424, "ts": "2026-07-19T19:41:27Z", "hours": 1.7656, "text": "Devlog 5 Progress Done Its about the 8th hour into the project, Since around the past 1 hour, I have been reading and understanding the entire pterodactyl API. Learning everything from sending requests to sorting data according to needs. Not much progress was done on the main project, though I did a lot of testing in temp files and had a lot of learning. What new I learnt I learnt to use RestJS API system of Pterodactyl I learnt to use Requests in Python I learnt to capture data and filter/manipulate it from APIs I learnt to manage rate limits and error codes Sources Pterodactyl API Docs: https://pterodactyl-api-docs.netvpx.com/docs/intro AI Declaration No AI was used for the period of this devlog. Most of the work was only done for understanding and learning purposes which was done in temp files which is essential for the projectās development. The attached images show the pterodactyl AI docs which I am reading and testing."}, {"post_id": 30613, "ts": "2026-07-18T10:19:26Z", "hours": 2.2778, "text": "Devlog 4 Progress Done Its about the 6th hour into the project, I have worked on making a terminal UI on which you can click up and down arrows and space button to select servers from a list to do actions. I did not work on actual API yet, thats kept for the last, currently I am working on data sorting and filter functions and more. I also made a cool banner for the project! Sorry for the late devlog, took a lot of time debugging and learning this one. Features Added/Worked on Made a cool image banner on canva [No AI] Worked on filtering functions Worked on a better terminal UI with curses Made HomePage What new I learnt I learnt Graphic Design with Canva I learnt to work with Curses to make terminal UI I learnt to capture button clicks on terminal for functions AI Declaration Close to None AI was used for this devlog. I used AI to understand how the curses library works and how to make it perform actions on button clicks. Also, the tech-pterodactyl symbol on the banner was made with AI as I couldnt find a similar icon on the internet. The attached images show the new banner, followed by the homepage and terminal selector UI demo."}, {"post_id": 28897, "ts": "2026-07-15T14:28:47Z", "hours": 1.6511, "text": "Devlog 3 Progress Done Its the 3rd hour into the project, and I have worked on adding args feature (specifically for linux users) and have worked on the projectās banner and interactive setup menu. I have also added verification in the setup fields to ensure that the user fills in correct information, and even guides the user if wrong keys are entered after 2 tries. Alongside with it, I added colors and made a cool ASCII banner. I also added the system to make venv automatically on first boot (supported on both linux/windows) for those who are running the code directly uncompiled. Features Added/Worked on Added Colorful ASCII Banner [Check Attached Image] Added field verification for setup- Added Args support, Eg. wingspan setup Improved POST Added Auto Venv and Dependency Installer What new I learnt I learnt to work with ASCII Color Codes I learnt to make args on python I learnt how to work with Venv I learnt to work with Terminal Commands from python to install dependencies AI Declaration AI was used for this devlog period for generating the automatic venv and dependencies installer, and making it compatible for both linux and windows at the same time. AI was also used to help with the Args function as I have not had any experience with it before. The attached images show the program running on both Linux and Windows. First screenshot shows the automatic dependencies installer in action, followed by images of the new banner and guide text if the user enters wrong api key multiple times."}, {"post_id": 28503, "ts": "2026-07-14T19:58:23Z", "hours": 1.5825, "text": "Devlog 2 Progress Done Its been about the first hour into the project, and I have well planned everything and have started working on execution. I have started with the linux versions (CMD ONLY), because I dont have experience with GUI Apps and compiling to executables. I have started on configuration tool, which asks the user for all required API Keys and creates the config files and sets up the installation. I have also worked on a standard automatic dependency downloader, so it runs its own venv on boot, downloads its dependencies there, and runs normally. I would not be compiling it into an executable, so you can take and run it on linux, and copy paste it and run it on windows without any platform change issues. I also set up python library, āloggingā, to provide proper logs of every action, because it would be important for the users if anything goes wrong or they need history of the toolās actions. I have also added an entire system testing feature (POST) which triggers when the program is turned on. This is to ensure that no issues come while critical server actions are being performed by the software. It also checks if all the configs are built right. Features Added/Worked on Added Logging System Added Self Config tool Added dependency resolver Added a POST Test What new I learnt I learnt to work with logging library I learnt different logging levels I learnt how to read and save data into json and env I learnt to work with venv & auto pip installers I learnt that stardance has a 4000 char limit on devlogs I learnt to make a cool startup animation with ASCII I learnt to make a cool looking UI in terminal for config page AI Declaration AI was used to make a big empty blueprint list of all functions which I have to code, which makes the work easy as it allows me to visualize the functions pending to create and those which are done. AI was used in ASCII Animationās character generation. The attached image shows the ASCII Animation, and then some pics of the AutoConfig window, asking the user to enter the details to perform setup."}, {"post_id": 28444, "ts": "2026-07-14T18:06:10Z", "hours": 0.4731, "text": "Devlog 1 Project Details 1. The point/scope of this project So, this is going to be a project for all the hosting owners and homelab operators, who have to manually control/edit each server on pterodactyl to do basic actions which is the same to be done on multiple servers. If you dont know, Pterodactyl is a game/server hosting control panel which gives you a good UI to make your stuff easier to control and all.. but it does lack bulk change features, and there arent much addons for it, and addons also dont work well and get deleted everytime we upgrade the panel, which is a mess. 2. My Solution for the problem I would be making a standalone windows app + a linux cmd app which uses pterodactyl API to perform actions. It would provide a very comprehensive UI to specifically allow for bulk actions and add features which arent there in normal pterodactyl. 3. Features of my project After extensive planning and discussion with several other hosting/homelab owners, I have gathered a list of features which everyone require and would use on a regular basis if there was an app for it. So, my app would have the following features: Bulk Suspend/Unsuspend Bulk Delete Selective Purge Backup download Bulk resource change, or Copy 1 serverās resources and paste to multiple servers. Bulk Reinstall Bulk Transfer Settings page for storing api keys and more. Email notifications to notify users for bulk actions if scheduled. [Planned for a later stage, to be released with other matching updates] Make a management tab in which all nodeās real specs are shown, and heavy overloading or other parameter of servers are shown. Il take suggestions from UI of Proxmox and Proxmox Datacenter manager as thats a really good UI with a lot of pterodactyl usable features. User management features like Bulk Email, Bulk user delete, Specific User Purge (Like delete those without any server), User Clear (Clear all servers of a user) The complete flagship feature of panel speed booster, which does all required purges and makes panel faster Update monitor, so users can safely and reliably update their wingspan installation and get prompted whenever a new release is put. 4. Who am I/What do I do? I am Brahmtej Singh, a Python Developer, usually working with devops projects like automations and things, so this kinda project is a perfect fit of what I like to do! Im the founder of HostingKarle, I started with a pledge of providing a safe place to my customers. There are a lot LOT of scams out there in IT/Hosting sector, and I wish to change that. I always prioritized customer experience and trust building, and I also support developers by providing Free hosting services to support their development and projects! AI Use in Project and Other Details I am always very clear with AI Use, I believe to use it as a helping tool to navigate through complex logic building and automate repetitive tasks. All my AI use is properly logged and would be attached in every devlog, though I try my best to write what I know by hand. If you ever wish to contribute or to provide feedback on my work, please feel free to conact me on slack, ID: U0AJ2DDJ996 I always write all my devlogs by hand, every single detail is hand written and not passed through any AI tool, not even for grammatical or syntaxial fixing. My devlogs are mainly formatted like this: Introduction to what I did What new I learnt Project Impact / Upcoming Changes AI Use Declaration Attached Photo Description Thankyou for taking interest in my project. The attached image shows a screenshot of my current and future targets, written and planned out. This much text wouldnt fit in the text space, so had to attach a screenshot of the text planning. (First 15 Minutes into creation)"}]...
|
Title: Wingspan for Pterodactyl by @brahmtejsawhne Title: Wingspan for Pterodactyl by @brahmtejsawhney | Stardance
Devlogs:
Devlog 1 Project Details 1. The point/scope of this project So, this is going to be a project for all the hosting owners and homelab operators, who have to manually control/edit each server on pterodactyl to do basic actions which is the same to be done on multiple servers. If you dont know, Pterodactyl is a game/server hosting control panel which gives you a good UI to make your stuff easier to control and all.. but it does lack bulk change features, and there arent much addons for it, and addons also dont work well and get deleted everytime we upgrade the panel, which is a mess. 2. My Solution for the problem I would be making a standalone windows app + a linux cmd app which uses pterodactyl API to perform actions. It would provide a very comprehensive UI to specifically allow for bulk actions and add features which arent there in normal pterodactyl. 3. Features of my project After extensive planning and discussion with several other hosting/homelab owners, I have gathered a list of features which everyone require and would use on a regular basis if there was an app for it. So, my app would have the following features: Bulk Suspend/Unsuspend Bulk Delete Selective Purge Backup download Bulk resource change, or Copy 1 serverās resources and paste to multiple servers. Bulk Reinstall Bulk Transfer Settings page for storing api keys and more. Email notifications to notify users for bulk actions if scheduled. [Planned for a later stage, to be released with other matching updates] Make a management tab in which all nodeās real specs are shown, and heavy overloading or other parameter of servers are shown. Il take suggestions from UI of Proxmox and Proxmox Datacenter manager as thats a really good UI with a lot of pterodactyl usable features. User management features like Bulk Email, Bulk user delete, Specific User Purge (Like delete those without any server), User Clear (Clear all servers of a user) The complete flagship feature of panel speed booster, which does all required purges and makes panel faster Update monitor, so users can safely and reliably update their wingspan installation and get prompted whenever a new release is put. 4. Who am I/What do I do? I am Brahmtej Singh, a Python Developer, usually working with devops projects like automations and things, so this kinda project is a perfect fit of what I like to do! Im the founder of HostingKarle, I started with a pledge of providing a safe place to my customers. There are a lot LOT of scams out there in IT/Hosting sector, and I wish to change that. I always prioritized customer experience and trust building, and I also support developers by providing Free hosting services to support their development and projects! AI Use in Project and Other Details I am always very clear with AI Use, I believe to use it as a helping tool to navigate through complex logic building and automate repetitive tasks. All my AI use is properly logged and would be attached in every devlog, though I try my best to write what I know by hand. If you ever wish to contribute or to provide feedback on my work, please feel free to conact me on slack, ID: U0AJ2DDJ996 I always write all my devlogs by hand, every single detail is hand written and not passed through any AI tool, not even for grammatical or syntaxial fixing. My devlogs are mainly formatted like this: Introduction to what I did What new I learnt Project Impact / Upcoming Changes AI Use Declaration Attached Photo Description Thankyou for taking interest in my project. The attached image shows a screenshot of my current and future targets, written and planned out. This much text wouldnt fit in the text space, so had to attach a screenshot of the text planning. (First 15 Minutes into creation)
Devlog 2 Progress Done Its been about the first hour into the project, and I have well planned everything and have started working on execution. I have started with the linux versions (CMD ONLY), because I dont have experience with GUI Apps and compiling to executables. I have started on configuration tool, which asks the user for all required API Keys and creates the config files and sets up the installation. I have also worked on a standard automatic dependency downloader, so it runs its own venv on boot, downloads its dependencies there, and runs normally. I would not be compiling it into an executable, so you can take and run it on linux, and copy paste it and run it on windows without any platform change issues. I also set up python library, āloggingā, to provide proper logs of every action, because it would be important for the users if anything goes wrong or they need history of the toolās actions. I have also added an entire system testing feature (POST) which triggers when the program is turned on. This is to ensure that no issues come while critical server actions are being performed by the software. It also checks if all the configs are built right. Features Added/Worked on Added Logging System Added Self Config tool Added dependency resolver Added a POST Test What new I learnt I learnt to work with logging library I learnt different logging levels I learnt how to read and save data into json and env I learnt to work with venv & auto pip installers I learnt that stardance has a 4000 char limit on devlogs I learnt to make a cool startup animation with ASCII I learnt to make a cool looking UI in terminal for config page AI Declaration AI was used to make a big empty blueprint list of all functions which I have to code, which makes the work easy as it allows me to visualize the functions pending to create and those which are done. AI was used in ASCII Animationās character generation. The attached image shows the ASCII Animation, and then some pics of the AutoConfig window, asking the user to enter the details to perform setup.
Devlog 3 Progress Done Its the 3rd hour into the project, and I have worked on adding args feature (specifically for linux users) and have worked on the projectās banner and interactive setup menu. I have also added verification in the setup fields to ensure that the user fills in correct information, and even guides the user if wrong keys are entered after 2 tries. Alongside with it, I added colors and made a cool ASCII banner. I also added the system to make venv automatically on first boot (supported on both linux/windows) for those who are running the code directly uncompiled. Features Added/Worked on Added Colorful ASCII Banner [Check Attached Image] Added field verification for setup- Added Args support, Eg. wingspan setup Improved POST Added Auto Venv and Dependency Installer What new I learnt I learnt to work with ASCII Color Codes I learnt to make args on python I learnt how to work with Venv I learnt to work with Terminal Commands from python to install dependencies AI Declaration AI was used for this devlog period for generating the automatic venv and dependencies installer, and making it compatible for both linux and windows at the same time. AI was also used to help with the Args function as I have not had any experience with it before. The attached images show the program running on both Linux and Windows. First screenshot shows the automatic dependencies installer in action, followed by images of the new banner and guide text if the user enters wrong api key multiple times.
Devlog 4 Progress Done Its about the 6th hour into the project, I have worked on making a terminal UI on which you can click up and down arrows and space button to select servers from a list to do actions. I did not work on actual API yet, thats kept for the last, currently I am working on data sorting and filter functions and more. I also made a cool banner for the project! Sorry for the late devlog, took a lot of time debugging and learning this one. Features Added/Worked on Made a cool image banner on canva [No AI] Worked on filtering functions Worked on a better terminal UI with curses Made HomePage What new I learnt I learnt Graphic Design with Canva I learnt to work with Curses to make terminal UI I learnt to capture button clicks on terminal for functions AI Declaration Close to None AI was used for this devlog. I used AI to understand how the curses library works and how to make it perform actions on button clicks. Also, the tech-pterodactyl symbol on the banner was made with AI as I couldnt find a similar icon on the internet. The attached images show the new banner, followed by the homepage and terminal selector UI demo.
Devlog 5 Progress Done Its about the 8th hour into the project, Since around the past 1 hour, I have been reading and understanding the entire pterodactyl API. Learning everything from sending requests to sorting data according to needs. Not much progress was done on the main project, though I did a lot of testing in temp files and had a lot of learning. What new I learnt I learnt to use RestJS API system of Pterodactyl I learnt to use Requests in Python I learnt to capture data and filter/manipulate it from APIs I learnt to manage rate limits and error codes Sources Pterodactyl API Docs: https://pterodactyl-api-docs.netvpx.com/docs/intro AI Declaration No AI was used for the period of this devlog. Most of the work was only done for understanding and learning purposes which was done in temp files which is essential for the projectās development. The attached images show the pterodactyl AI docs which I am reading and testing.
Devlog 6 Progress Done Its the 11th hour into the project and the progress is booming! I have started working on the interactive menus of the program. I have also started work on the first function, which is āSearch and Infoā, in which you can select parameters to search from, and it performs bulk search for you, which you can export to a file, or use in the program internally to trigger actions, or get detailed info about. I have also added terminal ui from curses in this, for the parameter selector, and it looks really good! I also worked on algorithms which convert data from pterodactyl to a usable format for mass bulk searching. I am making it in a way that some of the load is shared on the pterodactyl server side for filtering, and the rest is done on machine running this program, so I can minimize the rate limiting and divide load among both the machines for bulk processing and improve speed. For example, basic filter arguments are run on pterodactyl serverās side (Handled built in by pterodactyl), whereas advanced parameter searches are done on user side as generally userās own system has more threads and is much better than the pterodactyl webserver. Features Added/Worked on Made menus and sections for first function Worked on algorithms to convert api responses to filterable data Worked on UI by adding curses based parameter selector Made first function, Search and Info What new I learnt I learnt to work with massive data and make algorithms to convert to usable data I learnt to make my first usable intractable terminal UI from curses I learnt to divide operations and perform load balancing for such bulk data AI Declaration Close to None AI was used for this devlog. All the algorithms which were made, where made completely by hand. AI was used for research purposes for curses as its a new field for me. All code blocks where AI has been used are marked in source code! The attached images show the home page, followed by new menus, along with the parameter selector and moreā¦
Devlog 7 Progress Done Im into the 12th hour of the project, and I have done a lot of progress on the first function, which is search and info. I have worked on the parameter search option which is an extremely bulky work as im making it compatible with future upgrades and any extra addons that the user may have which cause changes in the API, Iām adding dynamic automatic support for new fields too for search, while taking all inputs and performing operations in the terminal. I am completely AVOIDING AI for this devlog, and focusing on complete self improvement and understanding of such deeply nested code structures. This is a partial devlog, meaning it doesnt mark a completion of a feature. AI Declaration Close to None AI was used for this devlog. Everything was done by hand for self learning and improvement. The attached images show the home page, followed by the new Search from Parameters Modeā¦
Devlog 8 Progress Done Im done with Search and Info functionās basics. Only export options and other advanced options are left to be created. This is a really little 15 minute devlog to mark the achievement of the first actual usable feature in the program, which took me about 11 hours, and this project would be having about 20 of such large functions, making this an extremely detailed and big project. In this devlog, I also want to thank each and every follower of mine, for taking interest in my project and supporting me! Thankyou. AI Declaration Close to None AI was used for this devlog. Everything was done by hand for self learning and improvement. The attached images show the Banner of project.
Devlog 9 Progress Done Im working on the final parts of the first function, that is filtering and exporting. Next I would be moving onto purge manager and related functions which are more useful in real life. Input of the ID parameter was giving vague errors when provided with ranges, It took me a lot of debugging to find the source of the issue, and that was a string was being compared to an int (str<int) in a part of code where I didnt typecast. That is fixed now. AI Declaration Close to None AI was used for this devlog. The attached images show the accepted input of the ID field when put with a range.
Devlog 10 Progress Done Im in the 13th hour of the project, and have completely finished the first feature of Searching and Indexing servers. This feature allows you to search from bulk server lists and filter out servers based on all the parameters. It also works with any extension which you may add in future which adds more parameters in the panel, its universally compatible. Next, I would be working on the Purge function, on which we would be using the Search and Info function, to export a csv list and import it into the purgetool to eliminate servers. Features Added/Worked on Refined menus and controls Added more colors Added support for complete universal API [Explained above] Finished with the first function of the software What new I learnt I learnt to work with APIs I learnt to manage big data I learnt to make really complicated nested loops I learnt to convert Json and Lists from 2D to 1D AI Declaration A little bit of AI was used to automate repetitive tasks to save time in the search and info function, where filter rules had to be created for each datatype separately and code was mostly same as I written by hand. AI was used to just change variable names and fit it for other datatypes. AI was also used for debugging and checking if everything works alright. Wherever AI was used, has an AI marker in the source code. The attached video show the first working function which is filtering servers based on user inputs.
Devlog 11 Progress Done Im in the 14th Hour of the project, and I have worked on the readme. I have written installation process, and scopes of this project. Also, I have added credits as required. All content is human written, no AI used. Features Added/Worked on Added Readme AI Declaration No AI Used for this devlog period The attached video show the preview pics of the readme.
Devlog 12 Progress Done I am now making the Server Info function, which provides all the server information in one very well managed panel. Thanks to my fellow developer @stef [U0823APHVK7], I got to know that most of the pterodactyl API docs out there are AI generated and are mostly inaccurate. The accurate one is: https://pterodactyl-api.redbanana.dev I have also experienced issues with Pterodactyl itself, not working right with parameter based data fetching, Il work more on it as most likely its some my side issue. I am also working on adding some kind of live table display right into the terminal to beautifully display the data from the Server Info function. Features Added/Worked on Finished with Server Search Worked on CSV Export Started work on Server Info Function AI Declaration No AI Used for this devlog period The attached video show the preview pics of the new Server Info function.
Devlog 13 Progress Done I did not do much today as the schedule was really busy, I have done a little bit of debugging and bughunting by testing with different kinds of server eggs and parameters on pterodactyl. I have not found any major issue yet, there were some little issues with server search function where some parameters would not show up, that is fixed. Rest, I also am working on the server info function and the readme. Features Added/Worked on Finished with Server Search Worked on CSV Export Started work on Server Info Function AI Declaration No AI Used for this devlog period The attached photos show the new updates to the readme and docs.
Devlog 14 Progress Done I know this is a very delayed devlog, I had my exams mid way. Iām into the 20th hour of the project, most of the stuff is made. API System is ready, most of the code which would be shared across multiple functions is ready. First function, of Bulk Search and server lookup is also complete. Server lookup function has a really cool UI. Alongside with that, I have also added export option to the Bulk Server Search, you can use the exported file on other functions which take actions on server. Features Added/Worked on Completed Bulk Search and Server Lookup Added server list export Added Shipwrights Docs (Readme for shipwrights) Worked on fixing bugs and README What new I learnt I learnt to work with CSV files I learnt to spoof responses to provide hardcoded outputs (For shipwrights testing) I learnt how to read and save data into json and env I learnt to add images into my Readme AI Declaration A little bit AI was used in CSV saving mechanics, so its saved in a way so could be read back easily for processing later. Server Lookupās UI was heavily created with help of AI, as I was not able to achieve that high information density without use of AI. Rest, updates in README and SHIPWRIGHTS.md were all done by hand with 0% AI. The attached image shows the new Server Lookup UI, new readme with banner and terminal header, shipwrights file, csv file output.
Changelog Repo Created on Git, Code Uploaded. V1: Added: Server & Info Fn. Welcome to wingspan folks! <3
Devlog 16 Progress Done The project is still on its reviewing stage, in the meantime, I have worked on releasing the executable release for both windows and linux. The executables are internally dynamic, so it updates to the latest wingspan version on every boot. Alongside, I have also worked on a lot of bugfixes, added more detailed logging, Autoboot after Setup and more. I have also worked on the purge function, specifically on the server purge feature. I have completed the export function and import function for the server lists. So server lists could be imported to action functions. I have also worked on reducing the boot time for linux, and on a fresh install, its as little as 5 seconds for the complete install and setup. Iāll be releasing more things after the ship gets approved! Features Added/Worked on Enhanced Logging System Added Release Executables/Binaries Added Auto Updater Added Importer Function for exported server-lists Fixed bugs and slight performance enhancement for windows Massive performance enhancement for linux What new I learnt I learnt to make a formal logging system I learnt to create binaries of python I learnt how to export and import and edit csv I learnt to optimize code on linux I learnt to make Auto Updaters and Version Checkers What I would be working on Completing server purge function Improving performance for windows systems Adding verification of exports while importing them Warnings before destructive action AI Declaration No AI was used in code in the duration of this devlog. AI was used in helping me with creating the executables from the code. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Release Page of the project, Purge Window Screenshots and Export File Content Screenshots.
Devlog 17 Show and Tell #1 WINNER Project! š Progress Done Ship Approved! Yay! Also, Show and Tell Winner! So, during the span of this devlog, I have worked on creating release files for this project, in a way that they do not have to be updated everr! Also, I have worked on the Purge Function, and have completed the server list import, and have made major changes in server list export function, which now exports minimally required data only for security reasons. Also, I have made quite a lot of confirmations that the person has to fill in order for the servers to actually get deleted, which is a good practice so a person doesnt anciently delete their entire pterodactyl. Also, I have worked on advanced logging in the import system and a very smart directory checker. Also, exporting now adds the panelās URL on top of the export file, so a wingspan session linked to another panel does not perform critical actions on wrong servers. It properly verifies the import file and gives a clear warning if needed. Features Added/Worked on Export Function Major Changes New Import Function Improved logging Purge Function Increased security and confirmations before taking critical actions. What new I learnt I learnt to export files I learnt to import files I learnt security and integrity tactics to prevent unwanted destruction I learnt to do better logging What I would be working on Completing server purge function Starting work on user purge function AI Declaration No AI was used in code in the duration of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached file shows and older video I recorded of me using the project.
Devlog 18 Progress Done Purge feature is now functional. Server purges are working as expected. I have added 4 purge methods. Parameters are Forced/Unforced, and Verified and Unverified.So, FV,FU,UV,UU. When you choose unforced method, it would ensure a clean deletion, and ensure the entire data is wiped. On a forced delete, it would delete it from frontend, and only attempt to clean it entirely. Force method is useful to delete servers whose nodes have been discontinued, or conditions where unforced wouldnt work. Verified feature ensures that the purge process goes as close to the expected outcome as possible, and if anything is detected which shouldnt be so, wingspan would prompt you there, so you can take manual action right there on the spot while it purges. Unverified means that wingspan would try its best to delete all the servers given in the importlist and would not prompt the user in case of discrepancies. Features Added/Worked on Import Verification Server Name Live Verification Completed Beta Purge Function Updated Menu to allow Purge Function Wingspan now needs an Admin API key with Full Perms (Readonly no longer works) What I would be working on Bugchecking all the features I made Attempting to delete some servers in massive quantities. Starting work on User Purge Function Do changes in README.md for the new purge function documentation. Find a good reliable Pterodactyl API Docs Website. AI Declaration No AI was used in code in the duration of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Graphical UI of the Purge Function along with the questions it asks.
Devlog 19 Show and Tell #1 WINNER Project! š Progress Done Purge function has been completely created. I have worked on API Request Error Catching in duration of this devlog. I have integrated all the standard practices and error catching which is required, and now the program displays the error and a solution to fix it. Also, it tracks if there are any errors due to wingspan itself, and provides resolution! Great Stuff! I also started work on User Purge Function, which iāll release in the ship after shipping Server Purge. There was a bug in the release file, which prevented auto update in windows. Fixed that. Features Added/Worked on Better API Requests to Pterodactyl Rate Limit detector and queue Error Catching and Resolution Server Purge Function Completed Started work on User Purge What new I learnt I learnt to work with industry standard error catching I learnt to make better API systems I learnt to work with queues and rate limiters I learnt to use DELETE Protocol What I would be working on Completing Documentation till here Shipping till Server Purge AI Declaration Claude was used to find out bug in release file only. No AI was used in code during the span of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Release Page of the project, project homepage and some lovely previous votes screenshots.
ps: not an official devlog, just an update Show and Tell + Super Star This was another great show and tell, and OMG SUPER STAR! Thanks @Lazyllama ā¤ļø Ty guys, rly grateful!! Image shows me submitting to Show and Tell and 2nd Image showing my Super Star!
Ships:
Welcome to WingSpan, A project to bulk manage your self hosted hardware on pterodactyl. Easily search through servers, get detailed information, export lists based on precise filtering and more! It is made for people like me, who manage hundreds of servers daily, and need to perform bulk actions on them. Its posted on frictionless mission because it would make my life really easy as it automates a lot of my work and would save me a LOT of clicks! cant wait for you to try it out! <3
Hello! If you are new here, welcome! This is my flagship project called Wingspan, Itās used by system administrators and infrastructure managers to manage their virtual servers in bulk rather than one by one. This project works in the terminal with AMAZING Terminal UI! This is my second ship. I have worked on making the Server Purge Function, to easily delete servers in large quantities. In my previous ships, I worked on making the basics of the code and functions to index and search the database. I have received extremely positive comments for this project, and iām really proud of making it! Do star it on github if you like this one!...
|
1793004924.442677
|
1793091324.442677
|
|
35225
|
NostalgiaOS by @elizabeth | Stardance
|
elizabeth
|
2
|
3.0
|
7
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-20T19:29:47Z", "hours": 1.0, "multiplier": 9.26, "payout": 7, "blessing": "neutral", "text": "So i first submitted this to webos1 so for web os 2 i added a light/dark mode toggle a new app and customizable windows", "repo": "https://github.com/Elizadev41/My-Web-0S", "demo": "https://my-web-0-s.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-23T20:29:01Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "NostalgiaOS is a website that works like a computer operating system. It has a desktop, apps, wallpapers, and features inspired by the internet culture of the 2016 era. I wanted to make something that feels nostalgic while still being interactive and fun to use.", "repo": "https://github.com/Elizadev41/My-Web-0S", "demo": "https://my-web-0-s.vercel.app/"}]...
|
[{"post_id": 51232, "ts": "202 [{"post_id": 51232, "ts": "2026-08-20T19:28:31Z", "hours": 0.7117, "text": "i added customizable windows a status feed app and a light/dark mode toggle"}, {"post_id": 33678, "ts": "2026-07-23T19:57:17Z", "hours": 1.8172, "text": "Finished building the main applications for NostalgiaOS!Added:Browser, Files, Photos, Music, Messages, Calendar, Notes, Paint, Settings, Trash, and Nostalgia Snap.Interactive window system with minimize, fullscreen, and app controls.Local storage for saving notes, messages, wallpapers, and drawings.Camera filters and face effects using MediaPipe."}, {"post_id": 28645, "ts": "2026-07-15T00:46:54Z", "hours": 0.6581, "text": "SO i decided to make another webos (i did one for flavortown)so rather than doing sm basic i decided to make a 2016 themed webOS (ik it doesnt look 2016 yet but trust the processššš) so far ive added icons and im still finding wallpapers on pinterest haha but yeah i made this cause like start of the year evb was like 2026 is the new 2016 so i was like yk what im so bored so lemme make a 2016 themed webOS"}]...
|
Title: NostalgiaOS by @elizabeth | Stardance
Devl Title: NostalgiaOS by @elizabeth | Stardance
Devlogs:
SO i decided to make another webos (i did one for flavortown)so rather than doing sm basic i decided to make a 2016 themed webOS (ik it doesnt look 2016 yet but trust the processššš) so far ive added icons and im still finding wallpapers on pinterest haha but yeah i made this cause like start of the year evb was like 2026 is the new 2016 so i was like yk what im so bored so lemme make a 2016 themed webOS
Finished building the main applications for NostalgiaOS!Added:Browser, Files, Photos, Music, Messages, Calendar, Notes, Paint, Settings, Trash, and Nostalgia Snap.Interactive window system with minimize, fullscreen, and app controls.Local storage for saving notes, messages, wallpapers, and drawings.Camera filters and face effects using MediaPipe.
i added customizable windows a status feed app and a light/dark mode toggle
Ships:
NostalgiaOS is a website that works like a computer operating system. It has a desktop, apps, wallpapers, and features inspired by the internet culture of the 2016 era. I wanted to make something that feels nostalgic while still being interactive and fun to use.
So i first submitted this to webos1 so for web os 2 i added a light/dark mode toggle a new app and customizable windows...
|
1792993921.7835565
|
1793080321.7835565
|
|
35239
|
CORES Runtime by @ravi10 | Stardance
|
ravi10
|
2
|
61.0
|
58
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-31T19:08:41Z", "hours": 33.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "CORES Runtime is an open-source cognitive runtime for autonomous robots. Instead of controlling robot hardware directly, it manages the software systems that sit between perception, planning, scheduling, memory, and execution. Its goal is to help robots decide what to run, when to run it, and how to manage limited compute and energy while remaining deterministic and predictable. This ship focuses on a major redesign of the memory subsystem. I replaced the previous learning architecture with a new memory pipeline built around Episodic Memory, Semantic Memory, and a Logger that compresses experiences into long-term knowledge. During development, I discovered and fixed a consolidation bug through the demo itself, added regression tests, benchmarked the full compression pipeline, and documented a known scaling limitation for future optimization.", "repo": "https://github.com/Cores-Runtime/cores", "demo": "https://cores-rust.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-16T09:43:26Z", "hours": 8.0, "multiplier": 7.72, "payout": 58, "blessing": "neutral", "text": "CORES is a research project exploring how autonomous robots can schedule cognition instead of simply executing tasks. This update introduces the first public version of the CORES experience. I built and deployed a homepage that explains the runtime architecture, scheduling, benchmark overview, and cognitive module system. A major focus was making a complex robotics runtime understandable through clean visual design rather than long technical documentation. The next milestone is an interactive runtime simulator where visitors will be able to inject hazards, change mission conditions, and watch the scheduler reprioritize cognitive modules in real time. Exact visualizations and benchmark charts will be added. Iād love feedback on: Is the core idea easy to understand? Does the homepage clearly communicate the purpose of CORES? What sections are confusing or missing?", "repo": "https://github.com/Cores-Runtime/cores", "demo": "https://cores-rust.vercel.app/"}]...
|
[{"post_id": 40760, "ts": "202 [{"post_id": 40760, "ts": "2026-08-04T14:30:40Z", "hours": 10.0, "text": "Devlog #10 Meet the Mission Manager āWhat should the robot work on right now?ā Planning already knows how to achieve a goal, but it doesnāt decide which goal is the most important. The Mission Manager sits one level above Planning, keeps track of every mission, chooses the active goal, and hands only that goal to the planner. Spent most of the day building the Mission Manager. The idea sounds simple: a mission is a list of goals, the manager picks the active one, hands it to Planning, and waits for the result. The details were anything but simple. I started with the mission lifecycle. Every mission begins in NEW , becomes READY , then ACTIVE , and eventually reaches a terminal state: COMPLETED , FAILED , or CANCELLED . A mission can also be PAUSED and resumed later. The transition rules are strict. You canāt jump from CANCELLED back to ACTIVE , and you canāt skip directly from NEW to COMPLETED . Every transition has to make sense. I spent much longer than I expected getting the state diagram and all the transitions right. Preemption was probably the most interesting part. When a higher-priority mission arrives, the current one moves back to READY , not PAUSED . That distinction took a while to figure out. PAUSED means someone intentionally stopped the mission. Preemption means the system decided something more important needs attention first. Different reasons, different states. Goals also execute one at a time. A goal can depend on another goal, so a task like Drop Package wonāt begin until Pick Package has finished. Goal completion works in two independent ways. You can either call complete_goal() directly, or use a constraint evaluator that checks the robotās state automatically. Neither depends on the other, and a goal never completes simply because it has no constraints. That felt like the safest design. A bug the dashboard exposed Near the end, I ran into a strange bug. As soon as a mission finished, the manager immediately wrote \"idle\" into the robot state, clearing the mission ID and progress. If you were watching the dashboard, the mission simply disappeared the moment it completed. The fix was straightforward: keep the final mission state visible until another mission becomes active. Now the homepage trace finishes at 100% Complete instead of dropping back to idle immediately. It was a small issue, but it made the runtime feel much more polished. Integration The cleanest part of this phase was the integration. Nothing else needed to change. The Scheduler still schedules. The Planner still plans. The Mission Manager simply runs earlier in the runtime cycle, selects the active goal, and passes it to Planning. Even the original way of giving a mission directly to the Runtime still works, so existing code remains compatible. Some Cleanups The rest of the session went into polishing the project. Updated documentation and runtime diagrams Refreshed test and strategy counts Replaced the remaining banned terminology Renamed the HTN primitive class across seven files for consistency Fixed benchmark test collection by adding import fallbacks for script execution Nothing particularly exciting, but it leaves the project in a much healthier state. I think this phase is finally complete."}, {"post_id": 39637, "ts": "2026-08-02T19:20:21Z", "hours": 10.0, "text": "Devlog #9 Meet the Planning Module The Planning Module answers one simple question: āWhat should we do next?ā It looks at the goal and the current state, proposes candidate plans, and picks the best one. The module has one interface and five planners. You hand it a mission, which is a collection of goals. Each goal is something the robot wants to be true. Every planner produces candidate plans with a confidence, estimated cost, duration, and utility score. The module returns all candidates and the one it selects as the best. The five planners are: GoalPlanner searches forward using action pre-conditions and effects. HTNPlanner breaks high-level tasks into smaller actions using authored methods. UtilityPlanner scores candidates and picks the highest. ReactivePlanner reacts immediately to simple conditions. BehaviorTreePlanner executes authored behavior trees. All of them implement the same PlannerStrategy interface, so they can be swapped without changing the rest of the runtime. The planner learned to adapt its own plans Before today, whenever something changed during a mission, the planner threw away the entire plan and started again. Now it walks through the existing plan step by step. If the beginning of the plan is still valid, it keeps it. As soon as it reaches a step that can no longer be completed, it rebuilds only the remaining part. This means the robot no longer repeats work it has already finished. Both the Goal Planner and HTN Planner now support this. Every repaired plan also records where the original plan became invalid. The Runtime handles this automatically. If the environment changes, it first tries to update the existing plan. Only if that fails does it generate a completely new one. The planner learned to notice change The next challenge was deciding when to update a plan. The solution was a planning snapshot: a small summary of the robot and world containing only the information planning actually cares about. Objects, flags, payloads, and sensor-health keys are sorted. Battery is grouped into critical , low , medium , or high instead of using the exact percentage. Temperatures and positions are rounded, while noisy values like timestamps and raw pose are ignored. This keeps the snapshot deterministic, so identical worlds always produce identical snapshots and unnecessary replanning is avoided. The planner learned from experience The second big change was teaching the planner to use previous experiences. Before today, it only looked at the current situation. Now it asks Memory for a summary of previous successes and failures before making a decision. A new wrapper called MemoryAwarePlanner works with any existing planner. It lets the original planner create a plan, then adjusts the choices based on previous outcomes. Plans that failed before become less attractive, while successful ones get a small boost. The selected plan is stored back into Memory so future missions can learn from it as well. If there is no previous experience, the planner behaves exactly as it did before. The demo ties everything together. First, Door A becomes blocked, so the planner updates the existing plan and switches to Door B instead of starting over. Then, on the next run, Memory remembers that Door A failed twice while Door B succeeded once, so the planner chooses Door B from the beginning."}, {"post_id": 38154, "ts": "2026-07-31T12:17:53Z", "hours": 11.0, "text": "Devlog #8 The demo found a bug before I did. I had that type of day where, you think every feature is working correctly and when you test, you find out its not. The standalone Learning subsystem was deleted a while back. In its place I added the Logger, which uses a compression algorithm living inside Memory. SPSCA, the Semantic Pointer State Compression Algorithm, moved out of the memory strategies and into the Logger where it belonged. The new module: logger it only had one job and that was to summarize long memories and log it and somehow it still failed in demo. š Then demo_memory.py ended with a summary that read: Episodic records: 7 | Semantic narratives: 0 If you watched that demo as an outsider, you would walk away thinking the Logger was a sticker on the box. It looked broken, because it was idle. The records I stored were all too important to archive, but the default trigger needed 50 new records to even consider firing. So I just re-wrote the pipeline and tested it. The bug was just one line Then the demo did something embarrassing. It caught a real bug. The source IDs in the second narrative overlapped with the first. Records that had already been summarized were showing up to be summarized again. Imagine a robot checking the same doorway every patrol because it never recorded that it had already inspected the doorway. The culprit was mark_consolidated checker. It was asked to flip a batch of records to CONSOLIDATED, and it did the polite thing of fetching one record per id. Except every single fetch returned the same record. The top one. So one record got filed, and the other ten stayed on the desk, waiting to be processed forever. A one-line fix and a regression test later, no record is ever re-compressed. Caught the bug by reading my own demo output, which is the cheapest way to find a bug on earth. (ā§ā½ā¦) The benchmark that revealed the hidden cost Then I measured the whole pipeline. Not the Logger in isolation, the full journey. Store, archive, trigger, compress, file into semantic memory. The numbers looked fine and then slowly stopped being fine:- 100 records: about 0.66 ms each 1000 records: about 0.83 ms each 5000 records: about 1.77 ms each Every cycle, archiving and consolidation scan the whole store to find what changed. That is a classic hidden O(n^2), the kind that is invisible at demo size and painful at robot lifetime size. It is fine for now. It is written down. It will be fixed before anyone deploys a robot that lives for a year. š The interesting part wasnāt fixing the bug. It was realizing that a good demo isnāt just there to impress people. Itās another test. Unlike unit tests, it exercises the system the way a user would, and today it caught a bug that hundreds of automated tests never did. Sometimes the fastest debugger is simply watching your own software run."}, {"post_id": 36393, "ts": "2026-07-28T13:56:17Z", "hours": 10.0, "text": "Devlog #7 Todayās session was dedicated to a very big architectural refactor in the project. The goal was to simplify the memory and reasoning pipeline by redesigning how memory is represented and consolidated while preserving compatibility with the existing runtime. Session Goals Redesigning the memory architecture Removing old unnecessary learning subsystem Introducing Logger Migrating SPSCA Preserving runtime compatibility Keeping full test suite passing Architecture Design I went back to the basics and reviewed the entire architecture. I wanted to make it cleaner by identifying overlapping responsibilities between Memory and Learning. It was very time consuming as there were too many responsibilities and modules to simplify and distinguish here. This resulted in a new architecture: EpisodicStore SemanticStore Logger Since I believe learning will be taken care of in future updates. Implementation Implemented: Memory redesign Logger subsystem Trigger policies SPSCA migration Runtime integration Memory now internally composes Episodic Memory, Semantic Memory, and Logger while exposing a single interface to the runtime. Refactoring Performed a full project-wide migration: replaced string record types with enums updated runtime integration updated imports removed old unnecessary learning components updated public exports Testing & Validation Refactored the testing suite: New module integration tests SPSCA tests Trigger policy tests Updated memory tests Removed old unnecessary tests Final result: 590 / 590 tests passing Lint clean I was happy that the refactor didnāt break anything! (^///^) Documentation Updated: Memory documentation Benchmarks Demo programs Outcome The runtime now has a significantly cleaner architecture: State Estimation ā Memory Episodic Semantic Logger ā Planning ā Scheduler ā Execution This refactor was very important as it redefined the whole runtime(base) on which the whole project was built on. This will help to build future phases, secondly dividing memory types was one of the best decisions."}, {"post_id": 33975, "ts": "2026-07-24T10:58:42Z", "hours": 3.0, "text": "Devlog #6 š I just wanted to add a way for robot to effectively store and fetch its memory. I expected this phase to be fairly straightforward. The runtime already had State Estimation, Planning and Scheduling. Memory sounded like another subsystem to plug into the pipeline, expose a few interfaces and move on. It didnāt quite go that way. I started with what seemed like the obvious design: A common memory interface with multiple interchangeable strategies. Instead of committing to a single implementation, I built: FIFO Time Decay Priority Episodic SPSCA behind the same abstraction. I knew Iād want to compare different approaches later, so making them interchangeable from the beginning felt like the right decision. Most of the implementation went smoothly š„. Then I reached Sparse Principal Component Analysis (SPSCA). Unlike the other strategies, SPSCA wasnāt just storing records. It was trying to represent them. My first implementation followed the algorithm closely. Every piece of content was recursively encoded using semantic pointer operations before being stored. At the time, I was pretty happy with it. Then I ran the benchmarks. The larger scenarios became painfully slow. Some didnāt even finish. I was upset that this whole work and time for nothing and just ruining the project? :-( At this point, I feel like giving up on this and do the next thing or just implement this in the simplest way possible. I actually started making the next phase idea and then while doing that, suddenly out of nowhere, I got an idea about how to find the exact cause of failure š„¹. So, I just went to see that was my hypothesis was correct about the error. I spent a whole evening looking for small optimizations. Once I did, I found the issue with it!. The encoding stage itself had become the bottleneck. That forced me to see the bigger picture of whatās happening during that stage. Instead of trying to optimize the existing implementation, I redesigned the encoding pipeline completely. Memory content is now serialized into a deterministic representation and converted into fixed-length vectors using SHA-256 before participating in similarity operations. The semantic pointer operations are still implemented, but theyāre no longer part of every storage operation. That one decision simplified the whole implementation very much. Watching the benchmarks finally finish without timing out was a huge relief. š With the implementation stable again, I turned my attention to testing. I added benchmarks for insertion, retrieval latency, sustained memory growth and strategy comparisons, along with a much larger test suite covering storage, retrieval, forgetting behaviour, vector operations and runtime integration. By the end of the phase, the runtime could finally retain experiences across execution cycles. But, stopped myself from immediately moving on to the next feature as there were still a few loose ends I wanted to clean up before building anything on top of Memory. Nothing in the runtime actually depends on memory yet. Planning doesnāt query it, scheduling doesnāt use it, and no module learns from previous experience. I considered pushing further, but decided against it. Changing the foundation becomes much harder once other components start depending on it. As a small side quest during this phase, I also redesigned the project homepage. Hopefully it finally looks the way I originally imagined it. For now, memory exists for one reason: to give the runtime a place to store or fetch it in a very efficient way."}, {"post_id": 31622, "ts": "2026-07-20T05:20:32Z", "hours": 4.0, "text": "Devlog #5 I thought it would be an interesting day today, as I was going to add something important that will help a robot perceive and predict the world. Instead, I spent most of my time reading research papers. At first I thought I could just implement a World Model and move on. After reading more robotics papers, I realised everyone seems to solve the problem differently. Some approaches use occupancy grids. Some track objects. Some build semantic maps. Some focus almost entirely on probabilistic state estimation. I couldnāt find a single approach that worked well across every scenario. That changed my view of how I wanted to build this part of CORES. Instead of picking one approach that works only in one scenario, I started implementing multiple approaches instead of one. The plan Implement them. Benchmark them. See where each one performs well. Let the results decide which one should become the default. One thing I realised While doing this, I also realised that calling everything a āWorld Modelā was a bit misleading. The runtime isnāt trying to store the world. Itās trying to estimate what the world currently looks like based on observations. That made āState Estimationā feel like a much better name for the implementation. The architecture didnāt really change. Only the implementation became clearer. It was mostly about changing how I think about this part of the project. I think spending a day reading papers and redesigning things will save me weeks of rewriting later. Iāve mentioned this before, but I think itās important to build the clearest picture possible of a feature before implementing it. About the papers Just to be clear, the papers and images below are existing robotics research. Iām not claiming them as my own. Iām studying different approaches before deciding how to implement this part of CORES. Progress today Surveyed different robotics approaches Planned multiple State Estimation strategies Started implementing competing approaches Added benchmark framework Wrote more tests Refactored the architecture Renamed the implementation to State Estimation"}, {"post_id": 30532, "ts": "2026-07-18T05:46:20Z", "hours": 3.0, "text": "Devlog #4 Today was a difficult day as i was working on too many things but i tried to simulate what i have implemented till now. It was all about making it easier to understand. Until now I had graphs, benchmark results and logs. They were useful for me, but if someone else looked at them, they probably wouldnāt understand why the runtime made a particular decision. That made me think. If a robot suddenly stops or changes its plan, how do I show why that happened instead of just showing numbers? So today I spent most of my time working on the replay system. Building a mission To test everything, I created a simple Mars mission. The rover starts driving normally. Halfway through the mission a rockslide blocks the path. Instead of continuing, the runtime reacts. The rover stops. Safety takes priority. Navigation calculates another path. Then the mission continues. Watching that happen felt much better than looking at benchmark graphs. For the first time it actually felt like I was watching the runtime make decisions. I was happy at this point that all this work actually getting showed in a sim (ā¬ā¬ļ¹ā¬ā¬) Making it easier to understand I also spent time improving the replay itself. The rover now has moving wheels, suspension, antenna, brake lights, warning lights and dust effects. I also added different camera angles to make it easier to follow what is happening. One feature I enjoyed building was the cognition timeline. Instead of showing every module sitting there doing nothing, I can now see when modules become active, when they pause and when another module takes over. That made the scheduler much easier to understand, while replaying a mission. One thing I realised The most difficult part was finding a simple way to show what the runtime was thinking. Trust me it was difficult, putting everything into a presentable demo, Trying to fit weeks of work into a small demo meant deciding what to show and what to hide. I had to remove a lot of unnecessary details while still making it clear how the runtime actually works. I think thatās something Iāll keep improving as the project grows. Whatās next Right now the replay still uses temporary modules. The next step is replacing them with actual runtime components like Perception, Planning, Navigation, State Estimation and Safety Monitor. After that Iāll connect the replay directly to the Python runtime so every event comes from the real scheduler instead of prerecorded data. Progress today Built the first replay system Added a Mars mission Added dynamic hazards Added cinematic camera modes Added rover animations Added cognition timeline Improved replay visualisation The replay is still pretty simple, but it finally feels like the project is becoming something people can interact with instead of just reading about. I finally achieved something what i wanted to when i started the project, a simulation that is demoable. Itās still far from finished, but seeing the runtime make decisions inside a simulation feels like a huge milestone for me."}, {"post_id": 29382, "ts": "2026-07-16T09:35:41Z", "hours": 3.0, "text": "Devlog #3 hmm, So when i started the project i thought i would build an actual simulation where i could show everyone how it works, its still far from that. So i focused on doing that, I took a break from working on the runtime itself and started building the website. Until now, everything was happening inside the codebase. The runtime was working, benchmarks were running, and tests were passing, but if someone visited the repository they still wouldnāt understand what CORES actually does. I just wanted it to explain the project. Building the homepage I started building the first version of the website using Next.js. Most of the time today went into trying different layouts and figuring out how to present the project in a simple way. The homepage now has: Hero section Navigation Runtime statistics Benchmark summary cards Cognitive architecture visualization Responsive layout One sentence stayed with me while building the page: The project should focus on making robots think better in emergency situations and have actual knowlege of their resources and their environment. I think it explains the project much better than a long paragraph. Designing to match my thinking After changing the layout a few times, I removed most of the unnecessary elements and kept the design much simpler. Iād rather have a clean page that explains the project than something flashy that distracts from it. Deployment Getting the website online wasnāt completely straightforward. Since the repository contains both the Python runtime and the Next.js frontend, I had to configure Vercel to build only the frontend. A couple of module import issues also showed up during deployment. After fixing those, the website finally deployed successfully. Thinking about the project differently While working on the homepage, I realised something. The website shouldnāt just tell people what CORES is. It should help them understand it. Instead of reading pages of documentation, I want someone to interact with the runtime and see how scheduling decisions change under different situations. Thatās probably where Iāll spend most of my time next. Testing I also added around 80 more tests while working on the project. The runtime is getting bigger every day, so Iād rather spend extra time writing tests now than spend hours debugging later. End of the day Today wasnāt about adding another algorithm. It was about making the project easier to understand. The runtime is only useful if people can understand what itās trying to do, and I think the homepage is a good first step toward that. Progress today Built the first version of the CORES homepage Added runtime overview and benchmark cards Added cognitive architecture visualization Simplified the website design Deployed the frontend on Vercel Fixed deployment and module import issues Added around 80 new tests Tomorrow Iāll start working on the simulator so visitors can interact with the runtime instead of only reading about it."}, {"post_id": 28872, "ts": "2026-07-15T13:19:25Z", "hours": 3.0, "text": "Devlog #2 Welcome to my another devlog!! Today was all about the scheduler. Yesterday I finished a greedy scheduler, but I wasnāt convinced it was the best option. So today I implemented an exact 0/1 Knapsack scheduler expecting it to perform much better. After running benchmarks, it honestly wasnāt what I expected. Most of the time both schedulers produced almost the same schedule. For a while I thought I had implemented something incorrectly, so I kept checking the code and rerunning the benchmarks. Turns out the implementation wasnāt the problem. The greedy scheduler was already finding the optimal solution in most of the scenarios I generated. The only noticeable differences appeared when resources became really limited. Thatās where I found something that bothered me. During a simulated sensor failure, the Knapsack scheduler decided to stop localization because it increased the optimization score. From a mathematical point of view, that decision was correct. From a robotics point of view, it was terrible. A robot shouldnāt sacrifice safety just because it saves a little more battery. Thatās when I stopped thinking about improving the algorithm itself and started thinking about what I was actually asking it to optimize. Instead of using one objective function, I switched to a lexicographic approach. Now scheduling decisions happen in this order: Safety Mission progress Energy Execution time This means lower priorities can never override higher ones. While changing the scheduler, I also realised I had been treating every module exactly the same. That didnāt make much sense. A battery monitor shouldnāt be treated the same way as an exploration module. So I divided modules into three groups. Mandatory Safety Critical Mission Those groups are now used directly by the scheduler. I also added a module dependency graph so relationships between modules can be represented instead of assuming every module is independent. After finishing the scheduler changes, I spent quite a bit of time expanding the benchmarks. I added more scenarios, an ablation framework, and graphs so I could compare different scheduling policies instead of relying on a few manual examples. The result I cared about the most was the original failure case. The previous scheduler reduced safety coverage during a sensor failure. The new scheduler kept safety at 100%. That was enough to convince me this direction makes more sense. Progress today Compared Greedy and Knapsack scheduling Built benchmark scenarios Implemented Lexicographic Scheduler Added module categories Added module dependency graph Created ablation framework Added benchmark visualizations Wrote research experiment documentation 83 tests passing. Today was a good day, I completed and learned so many things from different algorithms and how each behave differently from other in eveyr situation. And it was fun. Not anything cool yet but it felt like i achieved something here."}, {"post_id": 28595, "ts": "2026-07-14T22:48:05Z", "hours": 1.0, "text": "Devlog #1: Building the Foundation Date: July 15, 2026 Just started the project and it already feels ike theres too much too learn beofre starting. I know it would be hard designing the whole architecture and system and oh god it was! So as I was saying, I started with the most important steps designing the whole system and architecture of the project. The usual stufff!! : Setting up the project The first few commits were just getting the project into a shape where I could actually start building. Initial repository Project structure Cleaning up the directory layout .gitignore Removing unnecessary cache files Till this point I hadnāt really started implementing the actual idea. It was just a setup, that was going to be base of the whole project. Getting modules to communicate The first actual component I worked on was the event system. I didnāt want modules calling each other directly because that would make everything tightly coupled very quickly. Instead, I added an event-based communication layer. At this point it was very simple, but it gave me something to build on. Scheduler and Runtime Once events were working, I moved on to the scheduler. At first I wasnāt sure how much responsibility the scheduler should have. After a few iterations I settled on keeping it responsible only for deciding what runs next. The ExecutionLayer should only execute that plan. I wanted scheduling decisions to exist independently from execution, so I introduced an ExecutionPlan instead of letting the runtime decide everything on the fly. After that I implemented the runtime itself along with the execution layer. The runtime finally had a complete execution cycle. Too late feeling sleepyyy (ā¬ā¬ļ¹ā¬ā¬) however i moved on from my sleep with a coffee but the headache wasnot over yet. First redesign While connecting everything together I realised one part of the architecture wasnāt sitting right. ModuleResult was trying to do too much. Instead of letting it continue to grow, I redesigned it into a cleaner boundary between modules and the runtime. That change also let me decouple the ExecutionLayer from the EventBus . The code became much easier to understand what it does. Here i learned before coding any feature you have to have clearest picture of the feature you want to implement or you will end up debugging and redesigning the architecture whole night like me ಄_಄ Iām pretty sure this wonāt be the last redesign, but it already feels cleaner than the first version. Testing After getting the runtime working, I didnāt want to assume it was correct. I added integration tests for the runtime cycle instead of only testing individual classes. Itās still a very small project, but having tests this early makes me much more comfortable refactoring things later. Documentation Iāve never really documented architectural decisions properly before. Usually I only remember what I changed. A month later I completely forget why I changed it. So this time I documented everything. End of the day By the end of today, System Design and Architecture was complete. There isnāt much to show visually yet. No robot. No simulator. No fancy AI. Just a runtime that can execute modules, schedule work, and pass integration tests. Honestly, Iām happy with that. The interesting features can wait. Iād rather spend time getting the foundation right than spend the next few months constantly rewriting it. Progress today Project structure Event system Scheduler ExecutionPlan Runtime ExecutionLayer Runtime integration tests ModuleResult redesign ExecutionLayer decoupled from EventBus So at last I went to sleep ofcourse it was important to me, I love my sleep. GoodNight ;-)"}]...
|
Title: CORES Runtime by @ravi10 | Stardance
Devlo Title: CORES Runtime by @ravi10 | Stardance
Devlogs:
Devlog #1: Building the Foundation Date: July 15, 2026 Just started the project and it already feels ike theres too much too learn beofre starting. I know it would be hard designing the whole architecture and system and oh god it was! So as I was saying, I started with the most important steps designing the whole system and architecture of the project. The usual stufff!! : Setting up the project The first few commits were just getting the project into a shape where I could actually start building. Initial repository Project structure Cleaning up the directory layout .gitignore Removing unnecessary cache files Till this point I hadnāt really started implementing the actual idea. It was just a setup, that was going to be base of the whole project. Getting modules to communicate The first actual component I worked on was the event system. I didnāt want modules calling each other directly because that would make everything tightly coupled very quickly. Instead, I added an event-based communication layer. At this point it was very simple, but it gave me something to build on. Scheduler and Runtime Once events were working, I moved on to the scheduler. At first I wasnāt sure how much responsibility the scheduler should have. After a few iterations I settled on keeping it responsible only for deciding what runs next. The ExecutionLayer should only execute that plan. I wanted scheduling decisions to exist independently from execution, so I introduced an ExecutionPlan instead of letting the runtime decide everything on the fly. After that I implemented the runtime itself along with the execution layer. The runtime finally had a complete execution cycle. Too late feeling sleepyyy (ā¬ā¬ļ¹ā¬ā¬) however i moved on from my sleep with a coffee but the headache wasnot over yet. First redesign While connecting everything together I realised one part of the architecture wasnāt sitting right. ModuleResult was trying to do too much. Instead of letting it continue to grow, I redesigned it into a cleaner boundary between modules and the runtime. That change also let me decouple the ExecutionLayer from the EventBus . The code became much easier to understand what it does. Here i learned before coding any feature you have to have clearest picture of the feature you want to implement or you will end up debugging and redesigning the architecture whole night like me ಄_಄ Iām pretty sure this wonāt be the last redesign, but it already feels cleaner than the first version. Testing After getting the runtime working, I didnāt want to assume it was correct. I added integration tests for the runtime cycle instead of only testing individual classes. Itās still a very small project, but having tests this early makes me much more comfortable refactoring things later. Documentation Iāve never really documented architectural decisions properly before. Usually I only remember what I changed. A month later I completely forget why I changed it. So this time I documented everything. End of the day By the end of today, System Design and Architecture was complete. There isnāt much to show visually yet. No robot. No simulator. No fancy AI. Just a runtime that can execute modules, schedule work, and pass integration tests. Honestly, Iām happy with that. The interesting features can wait. Iād rather spend time getting the foundation right than spend the next few months constantly rewriting it. Progress today Project structure Event system Scheduler ExecutionPlan Runtime ExecutionLayer Runtime integration tests ModuleResult redesign ExecutionLayer decoupled from EventBus So at last I went to sleep ofcourse it was important to me, I love my sleep. GoodNight ;-)
Devlog #2 Welcome to my another devlog!! Today was all about the scheduler. Yesterday I finished a greedy scheduler, but I wasnāt convinced it was the best option. So today I implemented an exact 0/1 Knapsack scheduler expecting it to perform much better. After running benchmarks, it honestly wasnāt what I expected. Most of the time both schedulers produced almost the same schedule. For a while I thought I had implemented something incorrectly, so I kept checking the code and rerunning the benchmarks. Turns out the implementation wasnāt the problem. The greedy scheduler was already finding the optimal solution in most of the scenarios I generated. The only noticeable differences appeared when resources became really limited. Thatās where I found something that bothered me. During a simulated sensor failure, the Knapsack scheduler decided to stop localization because it increased the optimization score. From a mathematical point of view, that decision was correct. From a robotics point of view, it was terrible. A robot shouldnāt sacrifice safety just because it saves a little more battery. Thatās when I stopped thinking about improving the algorithm itself and started thinking about what I was actually asking it to optimize. Instead of using one objective function, I switched to a lexicographic approach. Now scheduling decisions happen in this order: Safety Mission progress Energy Execution time This means lower priorities can never override higher ones. While changing the scheduler, I also realised I had been treating every module exactly the same. That didnāt make much sense. A battery monitor shouldnāt be treated the same way as an exploration module. So I divided modules into three groups. Mandatory Safety Critical Mission Those groups are now used directly by the scheduler. I also added a module dependency graph so relationships between modules can be represented instead of assuming every module is independent. After finishing the scheduler changes, I spent quite a bit of time expanding the benchmarks. I added more scenarios, an ablation framework, and graphs so I could compare different scheduling policies instead of relying on a few manual examples. The result I cared about the most was the original failure case. The previous scheduler reduced safety coverage during a sensor failure. The new scheduler kept safety at 100%. That was enough to convince me this direction makes more sense. Progress today Compared Greedy and Knapsack scheduling Built benchmark scenarios Implemented Lexicographic Scheduler Added module categories Added module dependency graph Created ablation framework Added benchmark visualizations Wrote research experiment documentation 83 tests passing. Today was a good day, I completed and learned so many things from different algorithms and how each behave differently from other in eveyr situation. And it was fun. Not anything cool yet but it felt like i achieved something here.
Devlog #3 hmm, So when i started the project i thought i would build an actual simulation where i could show everyone how it works, its still far from that. So i focused on doing that, I took a break from working on the runtime itself and started building the website. Until now, everything was happening inside the codebase. The runtime was working, benchmarks were running, and tests were passing, but if someone visited the repository they still wouldnāt understand what CORES actually does. I just wanted it to explain the project. Building the homepage I started building the first version of the website using Next.js. Most of the time today went into trying different layouts and figuring out how to present the project in a simple way. The homepage now has: Hero section Navigation Runtime statistics Benchmark summary cards Cognitive architecture visualization Responsive layout One sentence stayed with me while building the page: The project should focus on making robots think better in emergency situations and have actual knowlege of their resources and their environment. I think it explains the project much better than a long paragraph. Designing to match my thinking After changing the layout a few times, I removed most of the unnecessary elements and kept the design much simpler. Iād rather have a clean page that explains the project than something flashy that distracts from it. Deployment Getting the website online wasnāt completely straightforward. Since the repository contains both the Python runtime and the Next.js frontend, I had to configure Vercel to build only the frontend. A couple of module import issues also showed up during deployment. After fixing those, the website finally deployed successfully. Thinking about the project differently While working on the homepage, I realised something. The website shouldnāt just tell people what CORES is. It should help them understand it. Instead of reading pages of documentation, I want someone to interact with the runtime and see how scheduling decisions change under different situations. Thatās probably where Iāll spend most of my time next. Testing I also added around 80 more tests while working on the project. The runtime is getting bigger every day, so Iād rather spend extra time writing tests now than spend hours debugging later. End of the day Today wasnāt about adding another algorithm. It was about making the project easier to understand. The runtime is only useful if people can understand what itās trying to do, and I think the homepage is a good first step toward that. Progress today Built the first version of the CORES homepage Added runtime overview and benchmark cards Added cognitive architecture visualization Simplified the website design Deployed the frontend on Vercel Fixed deployment and module import issues Added around 80 new tests Tomorrow Iāll start working on the simulator so visitors can interact with the runtime instead of only reading about it.
Devlog #4 Today was a difficult day as i was working on too many things but i tried to simulate what i have implemented till now. It was all about making it easier to understand. Until now I had graphs, benchmark results and logs. They were useful for me, but if someone else looked at them, they probably wouldnāt understand why the runtime made a particular decision. That made me think. If a robot suddenly stops or changes its plan, how do I show why that happened instead of just showing numbers? So today I spent most of my time working on the replay system. Building a mission To test everything, I created a simple Mars mission. The rover starts driving normally. Halfway through the mission a rockslide blocks the path. Instead of continuing, the runtime reacts. The rover stops. Safety takes priority. Navigation calculates another path. Then the mission continues. Watching that happen felt much better than looking at benchmark graphs. For the first time it actually felt like I was watching the runtime make decisions. I was happy at this point that all this work actually getting showed in a sim (ā¬ā¬ļ¹ā¬ā¬) Making it easier to understand I also spent time improving the replay itself. The rover now has moving wheels, suspension, antenna, brake lights, warning lights and dust effects. I also added different camera angles to make it easier to follow what is happening. One feature I enjoyed building was the cognition timeline. Instead of showing every module sitting there doing nothing, I can now see when modules become active, when they pause and when another module takes over. That made the scheduler much easier to understand, while replaying a mission. One thing I realised The most difficult part was finding a simple way to show what the runtime was thinking. Trust me it was difficult, putting everything into a presentable demo, Trying to fit weeks of work into a small demo meant deciding what to show and what to hide. I had to remove a lot of unnecessary details while still making it clear how the runtime actually works. I think thatās something Iāll keep improving as the project grows. Whatās next Right now the replay still uses temporary modules. The next step is replacing them with actual runtime components like Perception, Planning, Navigation, State Estimation and Safety Monitor. After that Iāll connect the replay directly to the Python runtime so every event comes from the real scheduler instead of prerecorded data. Progress today Built the first replay system Added a Mars mission Added dynamic hazards Added cinematic camera modes Added rover animations Added cognition timeline Improved replay visualisation The replay is still pretty simple, but it finally feels like the project is becoming something people can interact with instead of just reading about. I finally achieved something what i wanted to when i started the project, a simulation that is demoable. Itās still far from finished, but seeing the runtime make decisions inside a simulation feels like a huge milestone for me.
Devlog #5 I thought it would be an interesting day today, as I was going to add something important that will help a robot perceive and predict the world. Instead, I spent most of my time reading research papers. At first I thought I could just implement a World Model and move on. After reading more robotics papers, I realised everyone seems to solve the problem differently. Some approaches use occupancy grids. Some track objects. Some build semantic maps. Some focus almost entirely on probabilistic state estimation. I couldnāt find a single approach that worked well across every scenario. That changed my view of how I wanted to build this part of CORES. Instead of picking one approach that works only in one scenario, I started implementing multiple approaches instead of one. The plan Implement them. Benchmark them. See where each one performs well. Let the results decide which one should become the default. One thing I realised While doing this, I also realised that calling everything a āWorld Modelā was a bit misleading. The runtime isnāt trying to store the world. Itās trying to estimate what the world currently looks like based on observations. That made āState Estimationā feel like a much better name for the implementation. The architecture didnāt really change. Only the implementation became clearer. It was mostly about changing how I think about this part of the project. I think spending a day reading papers and redesigning things will save me weeks of rewriting later. Iāve mentioned this before, but I think itās important to build the clearest picture possible of a feature before implementing it. About the papers Just to be clear, the papers and images below are existing robotics research. Iām not claiming them as my own. Iām studying different approaches before deciding how to implement this part of CORES. Progress today Surveyed different robotics approaches Planned multiple State Estimation strategies Started implementing competing approaches Added benchmark framework Wrote more tests Refactored the architecture Renamed the implementation to State Estimation
Devlog #6 š I just wanted to add a way for robot to effectively store and fetch its memory. I expected this phase to be fairly straightforward. The runtime already had State Estimation, Planning and Scheduling. Memory sounded like another subsystem to plug into the pipeline, expose a few interfaces and move on. It didnāt quite go that way. I started with what seemed like the obvious design: A common memory interface with multiple interchangeable strategies. Instead of committing to a single implementation, I built: FIFO Time Decay Priority Episodic SPSCA behind the same abstraction. I knew Iād want to compare different approaches later, so making them interchangeable from the beginning felt like the right decision. Most of the implementation went smoothly š„. Then I reached Sparse Principal Component Analysis (SPSCA). Unlike the other strategies, SPSCA wasnāt just storing records. It was trying to represent them. My first implementation followed the algorithm closely. Every piece of content was recursively encoded using semantic pointer operations before being stored. At the time, I was pretty happy with it. Then I ran the benchmarks. The larger scenarios became painfully slow. Some didnāt even finish. I was upset that this whole work and time for nothing and just ruining the project? :-( At this point, I feel like giving up on this and do the next thing or just implement this in the simplest way possible. I actually started making the next phase idea and then while doing that, suddenly out of nowhere, I got an idea about how to find the exact cause of failure š„¹. So, I just went to see that was my hypothesis was correct about the error. I spent a whole evening looking for small optimizations. Once I did, I found the issue with it!. The encoding stage itself had become the bottleneck. That forced me to see the bigger picture of whatās happening during that stage. Instead of trying to optimize the existing implementation, I redesigned the encoding pipeline completely. Memory content is now serialized into a deterministic representation and converted into fixed-length vectors using SHA-256 before participating in similarity operations. The semantic pointer operations are still implemented, but theyāre no longer part of every storage operation. That one decision simplified the whole implementation very much. Watching the benchmarks finally finish without timing out was a huge relief. š With the implementation stable again, I turned my attention to testing. I added benchmarks for insertion, retrieval latency, sustained memory growth and strategy comparisons, along with a much larger test suite covering storage, retrieval, forgetting behaviour, vector operations and runtime integration. By the end of the phase, the runtime could finally retain experiences across execution cycles. But, stopped myself from immediately moving on to the next feature as there were still a few loose ends I wanted to clean up before building anything on top of Memory. Nothing in the runtime actually depends on memory yet. Planning doesnāt query it, scheduling doesnāt use it, and no module learns from previous experience. I considered pushing further, but decided against it. Changing the foundation becomes much harder once other components start depending on it. As a small side quest during this phase, I also redesigned the project homepage. Hopefully it finally looks the way I originally imagined it. For now, memory exists for one reason: to give the runtime a place to store or fetch it in a very efficient way.
Devlog #7 Todayās session was dedicated to a very big architectural refactor in the project. The goal was to simplify the memory and reasoning pipeline by redesigning how memory is represented and consolidated while preserving compatibility with the existing runtime. Session Goals Redesigning the memory architecture Removing old unnecessary learning subsystem Introducing Logger Migrating SPSCA Preserving runtime compatibility Keeping full test suite passing Architecture Design I went back to the basics and reviewed the entire architecture. I wanted to make it cleaner by identifying overlapping responsibilities between Memory and Learning. It was very time consuming as there were too many responsibilities and modules to simplify and distinguish here. This resulted in a new architecture: EpisodicStore SemanticStore Logger Since I believe learning will be taken care of in future updates. Implementation Implemented: Memory redesign Logger subsystem Trigger policies SPSCA migration Runtime integration Memory now internally composes Episodic Memory, Semantic Memory, and Logger while exposing a single interface to the runtime. Refactoring Performed a full project-wide migration: replaced string record types with enums updated runtime integration updated imports removed old unnecessary learning components updated public exports Testing & Validation Refactored the testing suite: New module integration tests SPSCA tests Trigger policy tests Updated memory tests Removed old unnecessary tests Final result: 590 / 590 tests passing Lint clean I was happy that the refactor didnāt break anything! (^///^) Documentation Updated: Memory documentation Benchmarks Demo programs Outcome The runtime now has a significantly cleaner architecture: State Estimation ā Memory Episodic Semantic Logger ā Planning ā Scheduler ā Execution This refactor was very important as it redefined the whole runtime(base) on which the whole project was built on. This will help to build future phases, secondly dividing memory types was one of the best decisions.
Devlog #8 The demo found a bug before I did. I had that type of day where, you think every feature is working correctly and when you test, you find out its not. The standalone Learning subsystem was deleted a while back. In its place I added the Logger, which uses a compression algorithm living inside Memory. SPSCA, the Semantic Pointer State Compression Algorithm, moved out of the memory strategies and into the Logger where it belonged. The new module: logger it only had one job and that was to summarize long memories and log it and somehow it still failed in demo. š Then demo_memory.py ended with a summary that read: Episodic records: 7 | Semantic narratives: 0 If you watched that demo as an outsider, you would walk away thinking the Logger was a sticker on the box. It looked broken, because it was idle. The records I stored were all too important to archive, but the default trigger needed 50 new records to even consider firing. So I just re-wrote the pipeline and tested it. The bug was just one line Then the demo did something embarrassing. It caught a real bug. The source IDs in the second narrative overlapped with the first. Records that had already been summarized were showing up to be summarized again. Imagine a robot checking the same doorway every patrol because it never recorded that it had already inspected the doorway. The culprit was mark_consolidated checker. It was asked to flip a batch of records to CONSOLIDATED, and it did the polite thing of fetching one record per id. Except every single fetch returned the same record. The top one. So one record got filed, and the other ten stayed on the desk, waiting to be processed forever. A one-line fix and a regression test later, no record is ever re-compressed. Caught the bug by reading my own demo output, which is the cheapest way to find a bug on earth. (ā§ā½ā¦) The benchmark that revealed the hidden cost Then I measured the whole pipeline. Not the Logger in isolation, the full journey. Store, archive, trigger, compress, file into semantic memory. The numbers looked fine and then slowly stopped being fine:- 100 records: about 0.66 ms each 1000 records: about 0.83 ms each 5000 records: about 1.77 ms each Every cycle, archiving and consolidation scan the whole store to find what changed. That is a classic hidden O(n^2), the kind that is invisible at demo size and painful at robot lifetime size. It is fine for now. It is written down. It will be fixed before anyone deploys a robot that lives for a year. š The interesting part wasnāt fixing the bug. It was realizing that a good demo isnāt just there to impress people. Itās another test. Unlike unit tests, it exercises the system the way a user would, and today it caught a bug that hundreds of automated tests never did. Sometimes the fastest debugger is simply watching your own software run.
Devlog #9 Meet the Planning Module The Planning Module answers one simple question: āWhat should we do next?ā It looks at the goal and the current state, proposes candidate plans, and picks the best one. The module has one interface and five planners. You hand it a mission, which is a collection of goals. Each goal is something the robot wants to be true. Every planner produces candidate plans with a confidence, estimated cost, duration, and utility score. The module returns all candidates and the one it selects as the best. The five planners are: GoalPlanner searches forward using action pre-conditions and effects. HTNPlanner breaks high-level tasks into smaller actions using authored methods. UtilityPlanner scores candidates and picks the highest. ReactivePlanner reacts immediately to simple conditions. BehaviorTreePlanner executes authored behavior trees. All of them implement the same PlannerStrategy interface, so they can be swapped without changing the rest of the runtime. The planner learned to adapt its own plans Before today, whenever something changed during a mission, the planner threw away the entire plan and started again. Now it walks through the existing plan step by step. If the beginning of the plan is still valid, it keeps it. As soon as it reaches a step that can no longer be completed, it rebuilds only the remaining part. This means the robot no longer repeats work it has already finished. Both the Goal Planner and HTN Planner now support this. Every repaired plan also records where the original plan became invalid. The Runtime handles this automatically. If the environment changes, it first tries to update the existing plan. Only if that fails does it generate a completely new one. The planner learned to notice change The next challenge was deciding when to update a plan. The solution was a planning snapshot: a small summary of the robot and world containing only the information planning actually cares about. Objects, flags, payloads, and sensor-health keys are sorted. Battery is grouped into critical , low , medium , or high instead of using the exact percentage. Temperatures and positions are rounded, while noisy values like timestamps and raw pose are ignored. This keeps the snapshot deterministic, so identical worlds always produce identical snapshots and unnecessary replanning is avoided. The planner learned from experience The second big change was teaching the planner to use previous experiences. Before today, it only looked at the current situation. Now it asks Memory for a summary of previous successes and failures before making a decision. A new wrapper called MemoryAwarePlanner works with any existing planner. It lets the original planner create a plan, then adjusts the choices based on previous outcomes. Plans that failed before become less attractive, while successful ones get a small boost. The selected plan is stored back into Memory so future missions can learn from it as well. If there is no previous experience, the planner behaves exactly as it did before. The demo ties everything together. First, Door A becomes blocked, so the planner updates the existing plan and switches to Door B instead of starting over. Then, on the next run, Memory remembers that Door A failed twice while Door B succeeded once, so the planner chooses Door B from the beginning.
Devlog #10 Meet the Mission Manager āWhat should the robot work on right now?ā Planning already knows how to achieve a goal, but it doesnāt decide which goal is the most important. The Mission Manager sits one level above Planning, keeps track of every mission, chooses the active goal, and hands only that goal to the planner. Spent most of the day building the Mission Manager. The idea sounds simple: a mission is a list of goals, the manager picks the active one, hands it to Planning, and waits for the result. The details were anything but simple. I started with the mission lifecycle. Every mission begins in NEW , becomes READY , then ACTIVE , and eventually reaches a terminal state: COMPLETED , FAILED , or CANCELLED . A mission can also be PAUSED and resumed later. The transition rules are strict. You canāt jump from CANCELLED back to ACTIVE , and you canāt skip directly from NEW to COMPLETED . Every transition has to make sense. I spent much longer than I expected getting the state diagram and all the transitions right. Preemption was probably the most interesting part. When a higher-priority mission arrives, the current one moves back to READY , not PAUSED . That distinction took a while to figure out. PAUSED means someone intentionally stopped the mission. Preemption means the system decided something more important needs attention first. Different reasons, different states. Goals also execute one at a time. A goal can depend on another goal, so a task like Drop Package wonāt begin until Pick Package has finished. Goal completion works in two independent ways. You can either call complete_goal() directly, or use a constraint evaluator that checks the robotās state automatically. Neither depends on the other, and a goal never completes simply because it has no constraints. That felt like the safest design. A bug the dashboard exposed Near the end, I ran into a strange bug. As soon as a mission finished, the manager immediately wrote "idle" into the robot state, clearing the mission ID and progress. If you were watching the dashboard, the mission simply disappeared the moment it completed. The fix was straightforward: keep the final mission state visible until another mission becomes active. Now the homepage trace finishes at 100% Complete instead of dropping back to idle immediately. It was a small issue, but it made the runtime feel much more polished. Integration The cleanest part of this phase was the integration. Nothing else needed to change. The Scheduler still schedules. The Planner still plans. The Mission Manager simply runs earlier in the runtime cycle, selects the active goal, and passes it to Planning. Even the original way of giving a mission directly to the Runtime still works, so existing code remains compatible. Some Cleanups The rest of the session went into polishing the project. Updated documentation and runtime diagrams Refreshed test and strategy counts Replaced the remaining banned terminology Renamed the HTN primitive class across seven files for consistency Fixed benchmark test collection by adding import fallbacks for script execution Nothing particularly exciting, but it leaves the project in a much healthier state. I think this phase is finally complete.
Ships:
CORES is a research project exploring how autonomous robots can schedule cognition instead of simply executing tasks. This update introduces the first public version of the CORES experience. I built and deployed a homepage that explains the runtime architecture, scheduling, benchmark overview, and cognitive module system. A major focus was making a complex robotics runtime understandable through clean visual design rather than long technical documentation. The next milestone is an interactive runtime simulator where visitors will be able to inject hazards, change mission conditions, and watch the scheduler reprioritize cognitive modules in real time. Exact visualizations and benchmark charts will be added. Iād love feedback on: Is the core idea easy to understand? Does the homepage clearly communicate the purpose of CORES? What sections are confusing or missing?
CORES Runtime is an open-source cognitive runtime for autonomous robots. Instead of controlling robot hardware directly, it manages the software systems that sit between perception, planning, scheduling, memory, and execution. Its goal is to help robots decide what to run, when to run it, and how to manage limited compute and energy while remaining deterministic and predictable. This ship focuses on a major redesign of the memory subsystem. I replaced the previous learning architecture with a new memory pipeline built around Episodic Memory, Semantic Memory, and a Logger that compresses experiences into long-term knowledge. During development, I discovered and fixed a consolidation bug through the demo itself, added regression tests, benchmarked the full compression pipeline, and documented a known scaling limitation for future optimization....
|
1792878797.061941
|
1793742797.061941
|
|
35324
|
Dino Game by @Dupl1c8 | Stardance
|
Dupl1c8
|
2
|
10.0
|
18
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-06T19:43:18Z", "hours": 4.0, "multiplier": 4.91, "payout": 18, "blessing": "neutral", "text": "I added the fourth minigame to my warioware style game! This one was probably the most confusing to code because I didnāt fully understand how I could use Area2D commands to create multiple car objects on screen at the same time, which was quite a headache. I am quite proud that I was able to finish it though! In this new minigame you cannot move your character left or right (only jump) because itās meant to be a geometry dash style minigame. Notes on the other minigames: #1 is a platformer minigame where you collect coins #2 is a clicker minigame where you click on coins #3 is a pong minigame where you survive until the timer runs out Thank you for playing my game!", "repo": "https://github.com/Duplic8/JustAGame", "demo": "https://duplic8.itch.io/dinogame"}, {"ship_num": 2, "ts": "2026-07-28T00:37:36Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a warioware style game on godot that includes two minigames. The part that challenged me the most was incorporating the coins into the system because I used AnimatedSprite2D to display my coins instead of the way that the tutorial did. This made it quite confusing because I couldnāt follow the tutorial. I am proud of how I made the platformer controls feel extremely responsive and hope to use this code in future projects as well! I will admit that this game is quite short, so I hope to make my future projects a lot longer. Thank you for playing my game!", "repo": "https://github.com/Duplic8/JustAGame", "demo": "https://duplic8.itch.io/dinogame"}]...
|
[{"post_id": 42166, "ts": "202 [{"post_id": 42166, "ts": "2026-08-06T19:30:47Z", "hours": 2.3992, "text": "Added minigame 4 to my warioware style game. Itās kind of like a geometry dash style game/ google dinosaur game where you jump to dodge the obstacles! This one was lowkey a headache to code."}, {"post_id": 37339, "ts": "2026-07-30T00:03:23Z", "hours": 1.2136, "text": "Added a new game! Pong! In pong I mainly struggled with the physics for the ball, but was able to figure it out with vectors. Additionally, I added game titles in between levels because reviewers were confused about they had to do in each level."}, {"post_id": 36126, "ts": "2026-07-28T00:26:17Z", "hours": 0.9536, "text": "Polished up the rest of the game. Added a victory and death screen and coded a replay button. Finalized time limits for each level. Exported the game and finished writing a readme."}, {"post_id": 35690, "ts": "2026-07-27T09:01:41Z", "hours": 4.3931, "text": "Finished the first minigame and about to work on the second clicker minigame! I had a lot of trouble trying to get the animated coins to interact with the player but I was able to figure it out in the end. I also had a difficult time getting the game to end when the last coin was collected! Here is a video of it!"}, {"post_id": 34903, "ts": "2026-07-26T00:08:12Z", "hours": 0.8403, "text": "Worked on the UI and code for the title and timer screen!"}]...
|
Title: Dino Game by @Dupl1c8 | Stardance
Devlogs: Title: Dino Game by @Dupl1c8 | Stardance
Devlogs:
Worked on the UI and code for the title and timer screen!
Finished the first minigame and about to work on the second clicker minigame! I had a lot of trouble trying to get the animated coins to interact with the player but I was able to figure it out in the end. I also had a difficult time getting the game to end when the last coin was collected! Here is a video of it!
Polished up the rest of the game. Added a victory and death screen and coded a replay button. Finalized time limits for each level. Exported the game and finished writing a readme.
Added a new game! Pong! In pong I mainly struggled with the physics for the ball, but was able to figure it out with vectors. Additionally, I added game titles in between levels because reviewers were confused about they had to do in each level.
Added minigame 4 to my warioware style game. Itās kind of like a geometry dash style game/ google dinosaur game where you jump to dodge the obstacles! This one was lowkey a headache to code.
Ships:
I made a warioware style game on godot that includes two minigames. The part that challenged me the most was incorporating the coins into the system because I used AnimatedSprite2D to display my coins instead of the way that the tutorial did. This made it quite confusing because I couldnāt follow the tutorial. I am proud of how I made the platformer controls feel extremely responsive and hope to use this code in future projects as well! I will admit that this game is quite short, so I hope to make my future projects a lot longer. Thank you for playing my game!
I added the fourth minigame to my warioware style game! This one was probably the most confusing to code because I didnāt fully understand how I could use Area2D commands to create multiple car objects on screen at the same time, which was quite a headache. I am quite proud that I was able to finish it though! In this new minigame you cannot move your character left or right (only jump) because itās meant to be a geometry dash style minigame. Notes on the other minigames: #1 is a platformer minigame where you collect coins #2 is a clicker minigame where you click on coins #3 is a pong minigame where you survive until the timer runs out Thank you for playing my game!...
|
1792986807.9184456
|
1793073207.9184456
|
|
35472
|
Aerodynamic Slack Bot by @colgation | Stardance
|
colgation
|
2
|
5.0
|
14
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-15T00:22:54Z", "hours": 4.0, "multiplier": 3.02, "payout": 14, "blessing": "neutral", "text": "Iām excited to ship my very FIRST slack bot : Aerodynamic It is full of fun fact about many planes and has a stand-out feature: Comparing two planes against each other in the āversus modeā. Commands: /aerodynamic-ping - Check bot latency /aerodynamic-737 - Get a Boeing 737 fun fact /aerodynamic-cessna172 - Get a Cessna 172p Skyhawk fun fact /aerodynamic-wright - Get a Wright Flyer fun fact /aerodynamic-blackbird - Get an SR-71 Blackbird fun fact /aerodynamic-a380 - Get an Airbus A380 fun fact /aerodynamic-747 - Get a Boeing 747 fun fact /aerodynamic-concorde - Get a Concorde fun fact /aerodynamic-beluga - Get an Airbus Beluga fun fact /aerodynamic-versus [plane1] [plane2] - Compare two planes Go test it out on the bot spam channel in hackclub slack! https://hackclub.enterprise.slack.com/archives/C0P5NE354", "repo": "https://github.com/194500-cpu/Aerodynamic-Slack-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0BJ92W8L12"}, {"ship_num": 2, "ts": "2026-07-16T23:17:04Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A Slack bot that runs 24/7 on Nest and has 5 commands: /aerodynamic-help - shows all available commands /aerodynamic-ping - Check bot latency /aerodynamic-737 - Get an Airbus 737 fun fact /aerodynamic-cessna172 - Get a Cessna 172p Skyhawk fun fact /aerodynamic-wright - Get a Wright Flyer fun fact Test out the commands in the #bot-spam channel on slack!", "repo": "https://github.com/194500-cpu/Aerodynamic-Slack-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0BJ92W8L12"}]...
|
[{"post_id": 47219, "ts": "202 [{"post_id": 47219, "ts": "2026-08-15T00:08:00Z", "hours": 0.2681, "text": "Final Devlog before submit: I managed to upload the new feature to nest, and it was arguably the best one yet. For my final update, I wanted to make a mroe advanced feature. I wrote a dictionary with information, and this command takes two arguments and compares their stats."}, {"post_id": 46573, "ts": "2026-08-13T22:06:06Z", "hours": 0.7044, "text": "Created a versus command-Compare two planes!"}, {"post_id": 44518, "ts": "2026-08-10T10:16:59Z", "hours": 3.0311, "text": "I added much more planes and images to go along with them (took me a while to find them). I also needed a really long time to resolve git issues, but it ended up working after I cleared local saves."}, {"post_id": 29810, "ts": "2026-07-16T23:05:35Z", "hours": 0.3308, "text": "Command line is so CONFUSING, but turns out I didnāt SSH. Its all up now!"}, {"post_id": 28804, "ts": "2026-07-15T09:36:17Z", "hours": 0.2939, "text": "Airplane fun fact bot!"}]...
|
Title: Aerodynamic Slack Bot by @colgation | Stard Title: Aerodynamic Slack Bot by @colgation | Stardance
Devlogs:
Airplane fun fact bot!
Command line is so CONFUSING, but turns out I didnāt SSH. Its all up now!
I added much more planes and images to go along with them (took me a while to find them). I also needed a really long time to resolve git issues, but it ended up working after I cleared local saves.
Created a versus command-Compare two planes!
Final Devlog before submit: I managed to upload the new feature to nest, and it was arguably the best one yet. For my final update, I wanted to make a mroe advanced feature. I wrote a dictionary with information, and this command takes two arguments and compares their stats.
Ships:
A Slack bot that runs 24/7 on Nest and has 5 commands: /aerodynamic-help - shows all available commands /aerodynamic-ping - Check bot latency /aerodynamic-737 - Get an Airbus 737 fun fact /aerodynamic-cessna172 - Get a Cessna 172p Skyhawk fun fact /aerodynamic-wright - Get a Wright Flyer fun fact Test out the commands in the #bot-spam channel on slack!
Iām excited to ship my very FIRST slack bot : Aerodynamic It is full of fun fact about many planes and has a stand-out feature: Comparing two planes against each other in the āversus modeā. Commands: /aerodynamic-ping - Check bot latency /aerodynamic-737 - Get a Boeing 737 fun fact /aerodynamic-cessna172 - Get a Cessna 172p Skyhawk fun fact /aerodynamic-wright - Get a Wright Flyer fun fact /aerodynamic-blackbird - Get an SR-71 Blackbird fun fact /aerodynamic-a380 - Get an Airbus A380 fun fact /aerodynamic-747 - Get a Boeing 747 fun fact /aerodynamic-concorde - Get a Concorde fun fact /aerodynamic-beluga - Get an Airbus Beluga fun fact /aerodynamic-versus [plane1] [plane2] - Compare two planes Go test it out on the bot spam channel in hackclub slack! https://hackclub.enterprise.slack.com/archives/C0P5NE354...
|
1793087280.0691507
|
1793173680.0691507
|
|
35484
|
My own site! by @AshutoshPola | Stardance
|
AshutoshPola
|
2
|
12.0
|
18
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T16:56:21Z", "hours": 7.0, "multiplier": 2.63, "payout": 18, "blessing": "neutral", "text": "final project", "repo": "https://github.com/ashutosh-pola/Mysite", "demo": "https://ashutosh-pola.github.io/Mysite/"}, {"ship_num": 2, "ts": "2026-08-04T11:45:26Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This was my first time making a site so its really simple but it gets the job done. The website used no JS just simple html and CSS", "repo": "https://github.com/ashutosh-pola/Mysite", "demo": "https://ashutosh-pola.github.io/Mysite/"}]...
|
[{"post_id": 45254, "ts": "202 [{"post_id": 45254, "ts": "2026-08-11T16:31:52Z", "hours": 2.1744, "text": "guess what, pickle riiiiiick"}, {"post_id": 44578, "ts": "2026-08-10T13:08:55Z", "hours": 2.8886, "text": "added a scroll animation, looks so tuff. Took a while cuz it took me time to learn java script"}, {"post_id": 42698, "ts": "2026-08-07T15:33:08Z", "hours": 1.8789, "text": "I changed the overall style and added a spinning pearl, gonna add more features tmrw"}, {"post_id": 40686, "ts": "2026-08-04T11:36:16Z", "hours": 1.7067, "text": "Finally finished added css, it took a while to add the box and make it redirect to my repositors but in the end it was all worth it. Its simple but does its job. This is the link for it https://ashutosh-pola.github.io/Mysite/"}, {"post_id": 40299, "ts": "2026-08-03T18:50:54Z", "hours": 3.0428, "text": "spent the time learning basic html, and made the basic barebone part of the website"}]...
|
Title: My own site! by @AshutoshPola | Stardance
Title: My own site! by @AshutoshPola | Stardance
Devlogs:
spent the time learning basic html, and made the basic barebone part of the website
Finally finished added css, it took a while to add the box and make it redirect to my repositors but in the end it was all worth it. Its simple but does its job. This is the link for it https://ashutosh-pola.github.io/Mysite/
I changed the overall style and added a spinning pearl, gonna add more features tmrw
added a scroll animation, looks so tuff. Took a while cuz it took me time to learn java script
guess what, pickle riiiiiick
Ships:
This was my first time making a site so its really simple but it gets the job done. The website used no JS just simple html and CSS
final project...
|
1792878492.8410382
|
1793742492.8410382
|
|
35522
|
My own site! by @Lim | Stardance
|
Lim
|
2
|
2.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-16T13:23:32Z", "hours": 1.0, "multiplier": 1.01, "payout": 1, "blessing": "neutral", "text": "I have improved my personal website, tho i have difficulty in making the smooth scoll , any improvement i can make?", "repo": "https://github.com/limkaixuan123456789-wq/PersonalWebsite", "demo": "https://limkaixuan123456789-wq.github.io/PersonalWebsite/#about"}, {"ship_num": 2, "ts": "2026-07-15T14:07:08Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Here is my personal website, i have problem in coding this website. https://limkaixuan123456789-wq.github.io/PersonalWebsite/#about", "repo": "https://github.com/limkaixuan123456789-wq/PersonalWebsite", "demo": "https://limkaixuan123456789-wq.github.io/PersonalWebsite/#about"}]...
|
[{"post_id": 29471, "ts": "202 [{"post_id": 29471, "ts": "2026-07-16T13:22:33Z", "hours": 1.2725, "text": "I did some improvement, but i have problem for the smooth scroll. Can you tell me what should I Improve?"}, {"post_id": 28884, "ts": "2026-07-15T13:51:20Z", "hours": 0.7369, "text": "I made my first personal site, what do you think?"}]...
|
Title: My own site! by @Lim | Stardance
Devlogs:
Title: My own site! by @Lim | Stardance
Devlogs:
I made my first personal site, what do you think?
I did some improvement, but i have problem for the smooth scroll. Can you tell me what should I Improve?
Ships:
Here is my personal website, i have problem in coding this website. https://limkaixuan123456789-wq.github.io/PersonalWebsite/#about
I have improved my personal website, tho i have difficulty in making the smooth scoll , any improvement i can make?...
|
1792993951.0697436
|
1793080351.0697436
|
|
35549
|
Atom Simulator VSEPR by @mincych | Stardance
|
mincych
|
2
|
20.3
|
310
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-01T21:02:51Z", "hours": 14.0, "multiplier": 16.52, "payout": 237, "blessing": "neutral", "text": "HOW TO USE THE PROJECT ? : Enter the number of particles in the input box (1000 is a recommended number), hit Apply and watch the simulation run. Left click and drag to rotate, scroll to zoom. Hit Explanation for a full breakdown of how it works. I built a 3D molecular geometry simulator inspired by VSEPR theory from chemistry class using physics calculation, basically simulating how atoms arrange themselves through repulsion. V1 existed but had no controls and was written in VPython, so I learned Three.js from scratch, raw-dogging documentation the entire way. The challenging part was understanding how Three.js actually works while simultaneously figuring out the physics, forces, dampening, normalisation, cylinder connections between stable particles. The āmagic numbersā problem was real problem too, tuning variables so the simulation looks correct and visually pleasing at the same time. But tbh, the writing the code turned out to be so confusing, it took me like 15 hours in total, where as I expected it to get finished in 2 hours, since I thought I was ājust gonna translate some code from one language to anotherā Most proud of just finishing it honestly. When it finally worked, legendary doesnāt even cover it. IT WAS MORE THAN AMAZING.", "repo": "https://github.com/cirqatha/AtomSim", "demo": "https://cirqatha.github.io/AtomSim/"}, {"ship_num": 2, "ts": "2026-07-15T15:47:55Z", "hours": 6.0, "multiplier": 11.34, "payout": 73, "blessing": "neutral", "text": "What did you make? An Atom Simulator that visualises VSEPR theory ā a chemistry concept I was studying in 11th grade that explains how atoms arrange themselves when forming compounds. I gave each particle a repulsive force and used some physics where atoms naturally settle into the same structures VSEPR predicts. What was challenging? Two things: The radial force, getting particles to stay on the sphere surface without snapping or drifting took a lot of tuning (damping constants, partial normalisation, force scaling) 2.Dynamic bond drawing, since particles move every frame, the cylinders connecting them have to be recalculated each frame, including figuring out which particles are close enough to be ābondedā and hiding the rest What are you proud of? I started by manually hard-coding forces between every pair of atoms, then refactored everything into loops and 2D lists, cutting the code down massively. I also pre-compute all the frames before the animation starts, so playback is smooth with no lag. To test it Use the GlowScript web version, it works in any browser instantly. If you run it locally, note that it freezes for ~30 seconds while pre-computing frames before the animation starts. Thatās normal, not a crash.", "repo": "https://github.com/cirqatha/AtomSim", "demo": "https://cirqatha.github.io/AtomSim/"}]...
|
[{"post_id": 39529, "ts": "202 [{"post_id": 39529, "ts": "2026-08-02T15:29:17Z", "hours": 0.2969, "text": "Yea, I updated some minor things, nothing big"}, {"post_id": 39083, "ts": "2026-08-01T19:36:51Z", "hours": 9.3483, "text": "Finished V2 of my Atom simulator with A LOT OF IMPROVEMENTS https://cirqatha.github.io/AtomSim/ So for the V1, I made an Atom simulator out of pure curiosity from my 11th grade chemistry concept called VSEPR theory. I was told that the website didnt have any controlls, or any interaction, which made it kinda plain. But I stll managed to get high ratings. So I decided to improve it, but I wrote the previous simulation using VPython, which tbh is the grandfather level compared to three.js which is actively used in websites. So I learnt three.js and wrote the code. And here is the working of the code if anybodyās interested in it. PROBLEMS I FACED = yea I did not use AI to write code, but the problem is I was learning a new language and three.js. AND I RAW DOGGED DOCUMENTATIONS, iāve never in my life coded in a more primitive way. I also had to understand the way three.js works, its actual way of doing things. You can only imagine how legendary I felt when the project was over. The āmagic numbersā = Iāve recieved question from my previous ship about seemingly random values set for variables in the simulation. Remember, this is a very simplified simulation, a simulation with 99.99% accuracy requires a lot of factors, making this complex. The second reason is simply because that the numbers are set to make the motion of particles and visibility of particles visually pleasing while still keeping the structures mostly correct. Hence the āmagic numbersā. Like I cannot set distance between atoms super low to simulate reality, thats why you would see the force constant super bumped up. The UI = Iāve added a box to change the number of particles and simulate them, along with a ārender End Frameā checkbox which as the name suggests, only calculates stuff till the end frame, without simultaneously updating positions, rather updating at last. There is also a guide for how many particles it can handle safely, Iāve also shown a orbit control guide there which tells you how to rotate and zoom into the simulation. Updating objects = When you enter the number of particles, it first clears all the particles rom previous simulation, along with arrays and stuff. Then it adds particles, initialises velocites, and positions. Calculation Forces = In the beginning of each simulation, the arrays is first cleared to clear the forces from previous simulation. Now, For each particle, force from every other particle is calculated, then added together to give a final force vector for that particle. Calculating Velocities = Same clearing up loop with this.Also, This oneās really simple, its just a simple v = u + at formula. Every calculation is followed by a 0.9 factor scaling which dampens the velocity every frame. Calculating Positions = For this one we first store the previous position in a temp variable before clearing it. We then calculate the distance travelled using the formula s = ut + (1/2)at^2. This is followed by a little normalisation, which is basically like if you are spinning a ball with a string, normalisation factor decides how much stretchy the string is. 100% normalisation means the ball travells on the edge of a perfect sphere, a 10% normalisation means it can sometimes go away from that edge, but will not drift away because an additional force is attracting it to the edge. That distance travelled is added to the previous position stored in temp and that gives the position for that frame. Calculating Cylinders = For each particle, if it moves less than 0.1 distance between two frames, its considered stable then and it is connected to its nearest surrounding particles using cylinders. Render End Frame = Theres a feature which lets you to only render final frame of a 20 second simulation, which probably saves your system some resource usage. Though all the major stuff like calculation has to happen to calculate it."}, {"post_id": 36209, "ts": "2026-07-28T04:29:53Z", "hours": 3.5719, "text": "So I took the recommendations from people that rated my previous ship. Now Iāve switched from VPython to Three.js, the code doesnt exactly translate directly, Iām working on structural changes as well. The part that takes the longest is not using AI to code, Iām raw dogging this task through documentations. So far Iāve learnt how to use Three.js, and set up some structural base for the code. I guess itāll take around 3-5 hours more to complete the project."}, {"post_id": 29942, "ts": "2026-07-17T04:01:21Z", "hours": 1.5181, "text": "Added a smart cylinder calculation This is a 10000 particle beast which took 20 minutes to compute one final frame after settling. Added numpy because calculations are reduced from hours to minutes"}, {"post_id": 28869, "ts": "2026-07-15T13:08:08Z", "hours": 6.4008, "text": "* Built an Atom Simulator Iām in 11th so I had the topic of VSEPR in my curriculum, So I built a program that simulates these structures by giving repulsion energies to these atoms. Then after using VPython, vectors, partial normalisation, 2D Lists and stuff I made it a bit not so boring. The structure automatically takes place when they go into lowest energy state. The positions are all first calculated and then the animation begins where you can see them going into lowest energy states. The maximum limit is said to be 12, but you could try with any number of particles you want, seeing how the structure would look like if it were real"}]...
|
Title: Atom Simulator VSEPR by @mincych | Stardanc Title: Atom Simulator VSEPR by @mincych | Stardance
Devlogs:
* Built an Atom Simulator Iām in 11th so I had the topic of VSEPR in my curriculum, So I built a program that simulates these structures by giving repulsion energies to these atoms. Then after using VPython, vectors, partial normalisation, 2D Lists and stuff I made it a bit not so boring. The structure automatically takes place when they go into lowest energy state. The positions are all first calculated and then the animation begins where you can see them going into lowest energy states. The maximum limit is said to be 12, but you could try with any number of particles you want, seeing how the structure would look like if it were real
Added a smart cylinder calculation This is a 10000 particle beast which took 20 minutes to compute one final frame after settling. Added numpy because calculations are reduced from hours to minutes
So I took the recommendations from people that rated my previous ship. Now Iāve switched from VPython to Three.js, the code doesnt exactly translate directly, Iām working on structural changes as well. The part that takes the longest is not using AI to code, Iām raw dogging this task through documentations. So far Iāve learnt how to use Three.js, and set up some structural base for the code. I guess itāll take around 3-5 hours more to complete the project.
Finished V2 of my Atom simulator with A LOT OF IMPROVEMENTS https://cirqatha.github.io/AtomSim/ So for the V1, I made an Atom simulator out of pure curiosity from my 11th grade chemistry concept called VSEPR theory. I was told that the website didnt have any controlls, or any interaction, which made it kinda plain. But I stll managed to get high ratings. So I decided to improve it, but I wrote the previous simulation using VPython, which tbh is the grandfather level compared to three.js which is actively used in websites. So I learnt three.js and wrote the code. And here is the working of the code if anybodyās interested in it. PROBLEMS I FACED = yea I did not use AI to write code, but the problem is I was learning a new language and three.js. AND I RAW DOGGED DOCUMENTATIONS, iāve never in my life coded in a more primitive way. I also had to understand the way three.js works, its actual way of doing things. You can only imagine how legendary I felt when the project was over. The āmagic numbersā = Iāve recieved question from my previous ship about seemingly random values set for variables in the simulation. Remember, this is a very simplified simulation, a simulation with 99.99% accuracy requires a lot of factors, making this complex. The second reason is simply because that the numbers are set to make the motion of particles and visibility of particles visually pleasing while still keeping the structures mostly correct. Hence the āmagic numbersā. Like I cannot set distance between atoms super low to simulate reality, thats why you would see the force constant super bumped up. The UI = Iāve added a box to change the number of particles and simulate them, along with a ārender End Frameā checkbox which as the name suggests, only calculates stuff till the end frame, without simultaneously updating positions, rather updating at last. There is also a guide for how many particles it can handle safely, Iāve also shown a orbit control guide there which tells you how to rotate and zoom into the simulation. Updating objects = When you enter the number of particles, it first clears all the particles rom previous simulation, along with arrays and stuff. Then it adds particles, initialises velocites, and positions. Calculation Forces = In the beginning of each simulation, the arrays is first cleared to clear the forces from previous simulation. Now, For each particle, force from every other particle is calculated, then added together to give a final force vector for that particle. Calculating Velocities = Same clearing up loop with this.Also, This oneās really simple, its just a simple v = u + at formula. Every calculation is followed by a 0.9 factor scaling which dampens the velocity every frame. Calculating Positions = For this one we first store the previous position in a temp variable before clearing it. We then calculate the distance travelled using the formula s = ut + (1/2)at^2. This is followed by a little normalisation, which is basically like if you are spinning a ball with a string, normalisation factor decides how much stretchy the string is. 100% normalisation means the ball travells on the edge of a perfect sphere, a 10% normalisation means it can sometimes go away from that edge, but will not drift away because an additional force is attracting it to the edge. That distance travelled is added to the previous position stored in temp and that gives the position for that frame. Calculating Cylinders = For each particle, if it moves less than 0.1 distance between two frames, its considered stable then and it is connected to its nearest surrounding particles using cylinders. Render End Frame = Theres a feature which lets you to only render final frame of a 20 second simulation, which probably saves your system some resource usage. Though all the major stuff like calculation has to happen to calculate it.
Yea, I updated some minor things, nothing big
Ships:
What did you make? An Atom Simulator that visualises VSEPR theory ā a chemistry concept I was studying in 11th grade that explains how atoms arrange themselves when forming compounds. I gave each particle a repulsive force and used some physics where atoms naturally settle into the same structures VSEPR predicts. What was challenging? Two things: The radial force, getting particles to stay on the sphere surface without snapping or drifting took a lot of tuning (damping constants, partial normalisation, force scaling) 2.Dynamic bond drawing, since particles move every frame, the cylinders connecting them have to be recalculated each frame, including figuring out which particles are close enough to be ābondedā and hiding the rest What are you proud of? I started by manually hard-coding forces between every pair of atoms, then refactored everything into loops and 2D lists, cutting the code down massively. I also pre-compute all the frames before the animation starts, so playback is smooth with no lag. To test it Use the GlowScript web version, it works in any browser instantly. If you run it locally, note that it freezes for ~30 seconds while pre-computing frames before the animation starts. Thatās normal, not a crash.
HOW TO USE THE PROJECT ? : Enter the number of particles in the input box (1000 is a recommended number), hit Apply and watch the simulation run. Left click and drag to rotate, scroll to zoom. Hit Explanation for a full breakdown of how it works. I built a 3D molecular geometry simulator inspired by VSEPR theory from chemistry class using physics calculation, basically simulating how atoms arrange themselves through repulsion. V1 existed but had no controls and was written in VPython, so I learned Three.js from scratch, raw-dogging documentation the entire way. The challenging part was understanding how Three.js actually works while simultaneously figuring out the physics, forces, dampening, normalisation, cylinder connections between stable particles. The āmagic numbersā problem was real problem too, tuning variables so the simulation looks correct and visually pleasing at the same time. But tbh, the writing the code turned out to be so confusing, it took me like 15 hours in total, where as I expected it to get finished in 2 hours, since I thought I was ājust gonna translate some code from one language to anotherā Most proud of just finishing it honestly. When it finally worked, legendary doesnāt even cover it. IT WAS MORE THAN AMAZING....
|
1792994092.3067653
|
1793080492.3067653
|
|
35569
|
Vinland Saga OS by @AriDev24 | Stardance
|
AriDev24
|
2
|
28.0
|
15
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T18:50:08Z", "hours": 3.0, "multiplier": 5.24, "payout": 15, "blessing": "neutral", "text": "(Vinland Saga OS v0.6) is a Web-Based OS inspired by my favourite anime, Vinland Saga. Itās a Japanese animated series. Itās my first-ever Hack Club project and a first-ever fully working website. I Know there are still many bugs but I tried my best and I will improve it more. To be honest, I learned so many new things with this project, especially JavaScript. I have never written JS myself before, but you made me use it on my own. This is my WebOS 2 so in this WebOS 2 version i added and improved many things : The first thing I added is to open the gallery image in full screen when clicked. The second and best feature i added is to save whatever you write in notes so that every time you open it you can see and intract with your saved notes. The third and the fun feature i added is a random quote generator. I converted my single quote card to this quote generator. The fourth feature i added is that when you open the OS, you have to open the gallery manually like an app. I did this only with Gallery because it did not feel good to me as a widget on the screen. Soo Thats It, Byeā¦", "repo": "https://github.com/aridev24/Vinland-Saga-OS", "demo": "https://vinland-saga-os.vercel.app/"}, {"ship_num": 2, "ts": "2026-09-20T20:13:22Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Vinland Saga OS is a Web-Based OS inspired by my favourite anime, Vinland Saga. Itās a Japanese animated series. Itās my first-ever Hack Club project and a first-ever fully working website. I Know there are still many bugs but I tried my best and I will improve it more. To be honest, I learned so many new things with this project, especially JavaScript. I have never written JS myself before, but you made me use it on my own without AI, yea but i will be honest with you: there was a lil hidden bug in some 2 lines of JS, I tried my best to debug but at the end i asked copilot to tell me why this code is not working and it told me, the lines were swapped with each other, so then I debugged it.", "repo": "https://github.com/aridev24/Vinland-Saga-OS", "demo": "https://vinland-saga-os.vercel.app/"}]...
|
[{"post_id": 71889, "ts": "202 [{"post_id": 71889, "ts": "2026-09-21T18:19:14Z", "hours": 2.8381, "text": "(Vinland Saga OS v0.7) Added 4 new features. Today, in this, i added many new features to enhance the user experience, The first thing I added is to open the gallery image in full screen when clicked. The second and best feature i added is to save whatever you write in notes so that every time you open it you can see and intract with your saved notes. The third and the fun feature i added is a random quote generator. I converted my single quote card to this quote generator. The fourth feature i added is that when you open the OS, you have to open the gallery manually like an app. I did this only with Gallery because it did not feel good to me as a widget on the screen. Soo Thats It, Byeā¦"}, {"post_id": 71191, "ts": "2026-09-20T12:42:32Z", "hours": 1.2247, "text": "(Vinland Saga OS v0.6) Final polish has been completed and now i am finally shipping it. In the final polish i added Vikings Norse symbols to the OS and added more images to the gallery. Finding and editing the Norse symbols to match the theme took me too much time. Soo tell if something can be improved. BTW Iām going to ship itā¦š"}, {"post_id": 70534, "ts": "2026-09-19T10:19:21Z", "hours": 8.4975, "text": "Finally Its Time To ship (Vinland Saga OS v0.5) Completed This Time i added many new features like opening and closing the windows/Apps, Actually my app are like widgets on screen, i also a pre loading screen, added more images to gallery and made a new beautiful clock widget. Now Its time for Just a final polish and Doneeeā¦"}, {"post_id": 69306, "ts": "2026-09-16T19:31:34Z", "hours": 3.6294, "text": "Late Night New Features Update to Vinland Saga OS Today before adding new feature i thought to modify theme colors because they were looking boring so first i change the color, and then i started to add more features to my OS but i dont have any new feature idea after searching and thinking here and there i thought to add a song and a gallery, so first i downloaded a Vinland Saga opening song and some images stolen from Pinterest š
, and start building the features and here the results are in front of youā¦(Please let me know I you like itš„) Now tomorrow i will add more features"}, {"post_id": 68762, "ts": "2026-09-15T18:14:07Z", "hours": 5.0728, "text": "Sooo⦠Finally New Features Added To Vinland Saga OS the most dangerous part was literally JavaScript š Added a Side bar for apps icon and add a image at the top of it to make it look badass. Add a Quick Notes App that took me two Daaays because to make it draggable, open and close using java script ( Its my fist time of using Java script š) Still Adding new Apps and features š (oh and also added a custom knife cursor but you cant see it in the screenshot)"}, {"post_id": 67937, "ts": "2026-09-14T07:59:02Z", "hours": 2.8878, "text": "Oh Finally now its far better than before after searching hours i found a perfect background for my OS, and i also changed the background color and text color of the pannels to make it look much better and match the theme. The most difficult part was choosing the theme color that will look perfect with the background and ancient theme, currently its not haiving much features but soon it will look greate with useful features (Maybeš
) oh and i fogot to tell that i also make some windows movable anywhere on screen"}, {"post_id": 67291, "ts": "2026-09-13T11:20:26Z", "hours": 3.7989, "text": "A Gift For Anime Fans, Building a Vinland Saga Web-Based OS"}]...
|
Title: Vinland Saga OS by @AriDev24 | Stardance
D Title: Vinland Saga OS by @AriDev24 | Stardance
Devlogs:
A Gift For Anime Fans, Building a Vinland Saga Web-Based OS
Oh Finally now its far better than before after searching hours i found a perfect background for my OS, and i also changed the background color and text color of the pannels to make it look much better and match the theme. The most difficult part was choosing the theme color that will look perfect with the background and ancient theme, currently its not haiving much features but soon it will look greate with useful features (Maybeš
) oh and i fogot to tell that i also make some windows movable anywhere on screen
Sooo⦠Finally New Features Added To Vinland Saga OS the most dangerous part was literally JavaScript š Added a Side bar for apps icon and add a image at the top of it to make it look badass. Add a Quick Notes App that took me two Daaays because to make it draggable, open and close using java script ( Its my fist time of using Java script š) Still Adding new Apps and features š (oh and also added a custom knife cursor but you cant see it in the screenshot)
Late Night New Features Update to Vinland Saga OS Today before adding new feature i thought to modify theme colors because they were looking boring so first i change the color, and then i started to add more features to my OS but i dont have any new feature idea after searching and thinking here and there i thought to add a song and a gallery, so first i downloaded a Vinland Saga opening song and some images stolen from Pinterest š
, and start building the features and here the results are in front of youā¦(Please let me know I you like itš„) Now tomorrow i will add more features
Finally Its Time To ship (Vinland Saga OS v0.5) Completed This Time i added many new features like opening and closing the windows/Apps, Actually my app are like widgets on screen, i also a pre loading screen, added more images to gallery and made a new beautiful clock widget. Now Its time for Just a final polish and Doneeeā¦
(Vinland Saga OS v0.6) Final polish has been completed and now i am finally shipping it. In the final polish i added Vikings Norse symbols to the OS and added more images to the gallery. Finding and editing the Norse symbols to match the theme took me too much time. Soo tell if something can be improved. BTW Iām going to ship itā¦š
(Vinland Saga OS v0.7) Added 4 new features. Today, in this, i added many new features to enhance the user experience, The first thing I added is to open the gallery image in full screen when clicked. The second and best feature i added is to save whatever you write in notes so that every time you open it you can see and intract with your saved notes. The third and the fun feature i added is a random quote generator. I converted my single quote card to this quote generator. The fourth feature i added is that when you open the OS, you have to open the gallery manually like an app. I did this only with Gallery because it did not feel good to me as a widget on the screen. Soo Thats It, Byeā¦
Ships:
Vinland Saga OS is a Web-Based OS inspired by my favourite anime, Vinland Saga. Itās a Japanese animated series. Itās my first-ever Hack Club project and a first-ever fully working website. I Know there are still many bugs but I tried my best and I will improve it more. To be honest, I learned so many new things with this project, especially JavaScript. I have never written JS myself before, but you made me use it on my own without AI, yea but i will be honest with you: there was a lil hidden bug in some 2 lines of JS, I tried my best to debug but at the end i asked copilot to tell me why this code is not working and it told me, the lines were swapped with each other, so then I debugged it.
(Vinland Saga OS v0.6) is a Web-Based OS inspired by my favourite anime, Vinland Saga. Itās a Japanese animated series. Itās my first-ever Hack Club project and a first-ever fully working website. I Know there are still many bugs but I tried my best and I will improve it more. To be honest, I learned so many new things with this project, especially JavaScript. I have never written JS myself before, but you made me use it on my own. This is my WebOS 2 so in this WebOS 2 version i added and improved many things : The first thing I added is to open the gallery image in full screen when clicked. The second and best feature i added is to save whatever you write in notes so that every time you open it you can see and intract with your saved notes. The third and the fun feature i added is a random quote generator. I converted my single quote card to this quote generator. The fourth feature i added is that when you open the OS, you have to open the gallery manually like an app. I did this only with Gallery because it did not feel good to me as a widget on the screen. Soo Thats It, Byeā¦...
|
1793004742.4805794
|
1793091142.4805794
|
|
35670
|
My own site! by @numycode | Stardance
|
numycode
|
2
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-17T19:47:43Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I added 2 more pages to my HTML/CSS page for the personal site mission!", "repo": "https://github.com/numycode/personal-site-for-camp", "demo": "https://camp-site.numycode.dev/"}, {"ship_num": 2, "ts": "2026-07-15T18:18:12Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a HTML/CSS personal site! It was for Stardance Workshop #1.", "repo": "https://github.com/numycode/personal-site-for-camp", "demo": "https://camp-site.numycode.dev/"}]...
|
[{"post_id": 49156, "ts": "202 [{"post_id": 49156, "ts": "2026-08-17T19:46:26Z", "hours": 0.9844, "text": "Hi! I have added 2 more pages, each with text and and image! Here are they: About me My fav things I had inactive links going to ā#ā before with these names, but now I added actual pages. I utilized my CSS class ācenterā, āimg-smallā (500x700), and āimg-small2ā (700x500). These additions make the site much more interesting!"}, {"post_id": 29047, "ts": "2026-07-15T18:15:29Z", "hours": 0.9367, "text": "Changelog add readme ( c80125c ) worked on the site! day 1 ( bad552a ) init ( be73ccf ) init ( a6cbdf0 ) Initial commit ( a197941 ) Hi! This is my first day working on this site! I have added many things to this site already! I have added: A title Many links Jimmy in the box (lol) A cool image A navbar CSS gradient background I had some issues with CSS as I forgot to link the CSS file!"}]...
|
Title: My own site! by @numycode | Stardance
Devl Title: My own site! by @numycode | Stardance
Devlogs:
Changelog add readme ( c80125c ) worked on the site! day 1 ( bad552a ) init ( be73ccf ) init ( a6cbdf0 ) Initial commit ( a197941 ) Hi! This is my first day working on this site! I have added many things to this site already! I have added: A title Many links Jimmy in the box (lol) A cool image A navbar CSS gradient background I had some issues with CSS as I forgot to link the CSS file!
Hi! I have added 2 more pages, each with text and and image! Here are they: About me My fav things I had inactive links going to ā#ā before with these names, but now I added actual pages. I utilized my CSS class ācenterā, āimg-smallā (500x700), and āimg-small2ā (700x500). These additions make the site much more interesting!
Ships:
I made a HTML/CSS personal site! It was for Stardance Workshop #1.
I added 2 more pages to my HTML/CSS page for the personal site mission!...
|
1793098535.3091497
|
1793184935.3091497
|
|
35821
|
Decode Your Career Pathway by @TejalK | Stardance
|
TejalK
|
2
|
29.0
|
250
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T20:10:44Z", "hours": 24.0, "multiplier": 17.5, "payout": 209, "blessing": "neutral", "text": "The original version was a single big JavaScript file that handled everything - data, scoring, drawing, and clicks - on a fixed-size canvas. The upgrade splits that into clean, focused files: one for data, one for scoring, one for layout and responsive sizing, others for the quiz flow, results, sharing, comparing with friends, live job listings, and university rankings. It also adds polish like smooth transitions, progress saving, keyboard support, and a proper test harness, turning a working prototype into a much more flexible and feature-rich app.", "repo": "https://github.com/TejalK10-hash/Decode-your-Career-Pathway", "demo": "https://tubular-puppy-efbca7.netlify.app/"}, {"ship_num": 2, "ts": "2026-07-26T19:05:41Z", "hours": 5.0, "multiplier": 15.64, "payout": 41, "blessing": "neutral", "text": "I made Decode Your Career Pathway, a five-question quiz that matches users to one of 24 careers based on their subjects, interests, motivations, and personality, then shows them the degree path, specializations, and top universities for that field. The trickiest part was building the scoring system - balancing the weights so that answers across five different questions (one of them multi-select) combined fairly without any single career always floating to the top. Getting the scroll and screen-transition logic clean (quiz ā results ā detail view) took some trial and error too. Iām proudest of the detail screen, where each result breaks down into subjects to focus on, a degree to aim for, minors, and real universities - it feels like actual advice rather than just a random result. To test it: go through all five questions (you can go back and change answers), hit Finish to see your top 5 matches ranked by score, then click āView Detailsā on any card to see the full breakdown, and try scrolling the results list since itās capped to stop right at the last card.", "repo": "https://github.com/TejalK10-hash/Decode-your-Career-Pathway", "demo": "https://tubular-puppy-efbca7.netlify.app/"}]...
|
[{"post_id": 49858, "ts": "202 [{"post_id": 49858, "ts": "2026-08-18T20:09:16Z", "hours": 1.9683, "text": "Added a step where the quiz asks which country youāre from and whether you want live job listings for your country or the existing Canadian data. If you opt in, it pulls live results for your country; if not (or if thereās nothing available), it falls back to the built-in Canadian dataset. Makes the quiz useful beyond a Canada-only audience without losing the reliable baseline for users who skip it. Also cleaned up a handful of small bugs along the way."}, {"post_id": 49356, "ts": "2026-08-18T04:13:48Z", "hours": 5.7775, "text": "TODAYāS WORK : API Integration - Indeedās job API turned out to be sales-gated with no self-serve access, so pivoted to Adzuna (free, self-serve). Wired up live job postings per career on the detail screen, with caching and graceful loading/error states. Also added a country-selection step before the quiz so postings can be localized, plus fixed a couple of rendering bugs that came with it. Share Result - Added a āShare Resultā button that generates a downloadable PNG summary card and copies a shareable link. Answers are encoded straight into the URL, so results travel with zero backend. Compare with a Friend - New stretch feature built on the share-link encoding. Paste a friendās link, we decode and recompute their results, then show a side-by-side comparison with overlapping matches highlighted."}, {"post_id": 48567, "ts": "2026-08-17T00:36:55Z", "hours": 5.3172, "text": "Big polish day. Replaced hardcoded pixel positions with a percentage-based layout and made the canvas actually resize instead of being stuck at 1520Ć730. Added keyboard navigation (arrows + Enter) and in-memory progress persistence with a āresume quiz?ā prompt so closing the tab doesnāt wipe everything."}, {"post_id": 47767, "ts": "2026-08-15T22:24:16Z", "hours": 5.3658, "text": "Wired yesterdayās scoring work into the detail screen - you now see a confidence badge and a line like āYou matched because you value Impact + chose Scienceā instead of just a bare result. Also wrote day-in-the-life blurbs for all 24 careers and added a related-careers section (Software Engineer -> Data Scientist, etc.) so the quiz doesnāt dead-end at your top match."}, {"post_id": 47228, "ts": "2026-08-15T00:31:47Z", "hours": 5.4089, "text": "Split the quiz out of one giant file into data.js, quiz.js, scoring.js, render.js, with a basic test harness for calculateResults(). Then fixed the actual scoring bug: careers used to win on being consistently āmehā across every question instead of nailing a couple of perfect matches. Added a bonus for 3/3 scores on 2+ questions, confidence labels (āStrong Matchā / āWorth Exploringā), and tracking for which questions drove each careerās score."}, {"post_id": 35382, "ts": "2026-07-26T19:01:56Z", "hours": 2.01, "text": "Built out the results screen (ranked cards with match score, salary, outlook) and a detail view for digging into one career fully - subjects, degree, specializations, and top universities."}, {"post_id": 34773, "ts": "2026-07-25T19:18:23Z", "hours": 1.0375, "text": "Wired up the actual quiz - question progression, single vs. multi-select handling, and a scoring function that totals weighted points per career and sorts for the top 5 matches. Also added a university lookup table mapped by field, so the results screen can suggest real schools per career."}, {"post_id": 34731, "ts": "2026-07-25T18:03:33Z", "hours": 1.1372, "text": "Before touching any UI, put together the career list - 24 careers across Medicine, Technology, Business, Engineering, Law, Education, and a few others. Each one has salary range, outlook, recommended subjects, degree, and specializations. Then built a scoring table: every career gets weighted values across all 5 quiz questions, so answers arenāt just matched to one ātypeā - they add up across multiple signals (subjects, interests, motivation, study length, work style)."}, {"post_id": 29275, "ts": "2026-07-16T02:50:26Z", "hours": 0.9867, "text": "Started this because I kept noticing how scattered career research actually is ā subject requirements in one place, degree info in another, salary data somewhere else, university rankings somewhere else entirely. Wanted something that pulls all of that into one quick interactive tool instead of 10 open tabs. Plan: a short quiz (5 questions) that scores your answers against a list of careers, then shows your top matches with everything youād need to know ā subjects to focus on now, degree to aim for, and where to study it."}]...
|
Title: Decode Your Career Pathway by @TejalK | Sta Title: Decode Your Career Pathway by @TejalK | Stardance
Devlogs:
Started this because I kept noticing how scattered career research actually is ā subject requirements in one place, degree info in another, salary data somewhere else, university rankings somewhere else entirely. Wanted something that pulls all of that into one quick interactive tool instead of 10 open tabs. Plan: a short quiz (5 questions) that scores your answers against a list of careers, then shows your top matches with everything youād need to know ā subjects to focus on now, degree to aim for, and where to study it.
Before touching any UI, put together the career list - 24 careers across Medicine, Technology, Business, Engineering, Law, Education, and a few others. Each one has salary range, outlook, recommended subjects, degree, and specializations. Then built a scoring table: every career gets weighted values across all 5 quiz questions, so answers arenāt just matched to one ātypeā - they add up across multiple signals (subjects, interests, motivation, study length, work style).
Wired up the actual quiz - question progression, single vs. multi-select handling, and a scoring function that totals weighted points per career and sorts for the top 5 matches. Also added a university lookup table mapped by field, so the results screen can suggest real schools per career.
Built out the results screen (ranked cards with match score, salary, outlook) and a detail view for digging into one career fully - subjects, degree, specializations, and top universities.
Split the quiz out of one giant file into data.js, quiz.js, scoring.js, render.js, with a basic test harness for calculateResults(). Then fixed the actual scoring bug: careers used to win on being consistently āmehā across every question instead of nailing a couple of perfect matches. Added a bonus for 3/3 scores on 2+ questions, confidence labels (āStrong Matchā / āWorth Exploringā), and tracking for which questions drove each careerās score.
Wired yesterdayās scoring work into the detail screen - you now see a confidence badge and a line like āYou matched because you value Impact + chose Scienceā instead of just a bare result. Also wrote day-in-the-life blurbs for all 24 careers and added a related-careers section (Software Engineer -> Data Scientist, etc.) so the quiz doesnāt dead-end at your top match.
Big polish day. Replaced hardcoded pixel positions with a percentage-based layout and made the canvas actually resize instead of being stuck at 1520Ć730. Added keyboard navigation (arrows + Enter) and in-memory progress persistence with a āresume quiz?ā prompt so closing the tab doesnāt wipe everything.
TODAYāS WORK : API Integration - Indeedās job API turned out to be sales-gated with no self-serve access, so pivoted to Adzuna (free, self-serve). Wired up live job postings per career on the detail screen, with caching and graceful loading/error states. Also added a country-selection step before the quiz so postings can be localized, plus fixed a couple of rendering bugs that came with it. Share Result - Added a āShare Resultā button that generates a downloadable PNG summary card and copies a shareable link. Answers are encoded straight into the URL, so results travel with zero backend. Compare with a Friend - New stretch feature built on the share-link encoding. Paste a friendās link, we decode and recompute their results, then show a side-by-side comparison with overlapping matches highlighted.
Added a step where the quiz asks which country youāre from and whether you want live job listings for your country or the existing Canadian data. If you opt in, it pulls live results for your country; if not (or if thereās nothing available), it falls back to the built-in Canadian dataset. Makes the quiz useful beyond a Canada-only audience without losing the reliable baseline for users who skip it. Also cleaned up a handful of small bugs along the way.
Ships:
I made Decode Your Career Pathway, a five-question quiz that matches users to one of 24 careers based on their subjects, interests, motivations, and personality, then shows them the degree path, specializations, and top universities for that field. The trickiest part was building the scoring system - balancing the weights so that answers across five different questions (one of them multi-select) combined fairly without any single career always floating to the top. Getting the scroll and screen-transition logic clean (quiz ā results ā detail view) took some trial and error too. Iām proudest of the detail screen, where each result breaks down into subjects to focus on, a degree to aim for, minors, and real universities - it feels like actual advice rather than just a random result. To test it: go through all five questions (you can go back and change answers), hit Finish to see your top 5 matches ranked by score, then click āView Detailsā on any card to see the full breakdown, and try scrolling the results list since itās capped to stop right at the last card.
The original version was a single big JavaScript file that handled everything - data, scoring, drawing, and clicks - on a fixed-size canvas. The upgrade splits that into clean, focused files: one for data, one for scoring, one for layout and responsive sizing, others for the quiz flow, results, sharing, comparing with friends, live job listings, and university rankings. It also adds polish like smooth transitions, progress saving, keyboard support, and a proper test harness, turning a working prototype into a much more flexible and feature-rich app....
|
1792878668.6985564
|
1793742668.6985564
|
|
35875
|
tundra by @pinetree182 | Stardance
|
pinetree182
|
2
|
21.0
|
205
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T01:39:49Z", "hours": 18.0, "multiplier": 11.42, "payout": 205, "blessing": "neutral", "text": "tundra OS i made a web OS called tundra. visually, itās really similar to Serenity OS and it was a whole lot of fun to make. features lots of apps, like a browser, text editor, and file browser a working(ish) filesystem a whole dialog system 3d graphics elite references", "repo": "https://github.com/annaxiomm/tundra", "demo": "https://annaxiomm.github.io/tundra"}, {"ship_num": 2, "ts": "2026-07-17T08:46:49Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "tundra v0.1.0 (alpha) tundra is finally ready to release! itās currently very much in its infancy and doesnāt have very many features but it meets the requirements of the ship and iām proud of it! so far we have: multiple draggable windows that are instanceable and defined as classes in javascript (so you can open more than one of the same app!) a welcome message, notes app (which is really an editable changelog), and a nice assortment of images for you to look at a status bar with the date and a handy app drawer so you can access all (3 of) the cool apps on display! a beautiful font (cozette by the-moonwitch) i hope you all like it so far, and plenty more features will follow in the coming weeks", "repo": "https://github.com/annaxiomm/tundra", "demo": "https://annaxiomm.github.io/tundra"}]...
|
[{"post_id": 63300, "ts": "202 [{"post_id": 63300, "ts": "2026-09-07T01:36:33Z", "hours": 3.1278, "text": "devlog #12 - the end? (for now) this is going to be my last devlog before I ship tundra, iām really proud of how far itās come and the fact that iāve actually managed to finish a project for once! I didnāt quite get to add everything I wanted but most of it is there text editor time! i added a real simple text editor that can save and load files from the ādiskā. i donāt really have anything else to say about it rated D for dialogs in order for the text editor to work properly, I had to make save and open dialog boxes. these are basically an unholy frankenstein of the normal dialog box and the file browser app, and they work well enough object permanence using JSON and the worldās jankiest serialization/deserialization system I was able to save the userās filesystem state to localStorage so that even of you reload or close the page, your precious writing will be preserved youāre getting the boot real operating systems donāt open straight to the desktop - theres a whole boot sequence that leads to this (and if youāre cool and use linux itās all on display for you). inspired by @cooki ās FPS-OS (go check it out itās really cool) i added a boot screen that looks pretty alright I guess. visual imagery finally, I got around to adding icons for each app. theyāre 16x16, made in aseprite over the course of about 10 minutes, and work just enough that I donāt need to redesign them constantly. next steps ship it!"}, {"post_id": 61451, "ts": "2026-09-04T11:45:40Z", "hours": 0.8858, "text": "devlog #11 - ctrl+alt+delete this is a bit of a shorter devlog since I basically only added one thing - a functioning shutdown sequence! first a little dialog pops up asking if youāre sure, and then the whole screen goes black and says āshutting downā¦ā, finally followed by an elite reference (Progressbar95 players rise up!)"}, {"post_id": 57784, "ts": "2026-08-30T02:28:02Z", "hours": 3.5117, "text": "devlog #10 - new apps after like a month-long hiatus i thought that i ought to add a few more apps - this is meant to be somewhat useful after all! calculator this is a really basic calculator app, basically when you press a button it adds its value (like 2 or + or . ) to an expression, and when you hit the = button it evaluates the expression with eval() . yes, i know its not the safest but it works. colo(u)r picker this one is also really simple: every time you press a key on your keyboard, a new random colour is generated and the rgb and hex values are shown in the bottom. need i say more? file explorer once again, this is really basic. all it does is gets the contents of the current directory (i had to make a new fs function to return each pathās type as well) and then makes a new element for each path with an icon corresponding to what it is. thereās also a back button if you need to⦠well.. go back next steps file opening from the file explorer text editor more functions in the calculator / better calculator"}, {"post_id": 41048, "ts": "2026-08-05T00:17:34Z", "hours": 3.0744, "text": "devlog #9 - files! whatās an operating system if you canāt have files? so, i decided to write a basic filesystem for tundra. paired with a simple terminal and now tundra is actually kind of cool! the filesystem tundra uses a really simple filesystem model: thereās a File and a Directory class that both inherit from FSNode, Files have names and contents and Directories have names and children. tundra uses a traditional unix file layout (/home, /bin, /etc and so on) because its cool. the terminal i really wanted some way to navigate the filesystem but didnāt feel like implementing an entire file browser so I added a simple terminal. it has a few methods like writeln and readline which you can use. all the commands (including the shell!) are defined in their own classes, just like apps, which makes it really easy to add new ones. so far, iāve added cd, ls, mkdir, touch, cat, and my own version of neofetch. next steps an actual file browser some more commands ANSI escape codes for colours a text editor to make files for the filesystem"}, {"post_id": 39219, "ts": "2026-08-02T01:30:03Z", "hours": 3.3094, "text": "devlog #8 - too many changes! my devlogs from here on are going to be getting a lot longer now because iām really settling into the grind, so iām going to try out a more structured format. dialogs! i implemented a whole dialog box system into caribou (the window manager). so far it only has confirm (cancel/ok) style dialogs but itās modular so iāll be sure to add plenty more in the future. dialogs return promises that resolve with a value when an action happens (like when the dialog is closed), and this can then be used to execute code. this all came about because i wanted to add fullscreen mode but apparently browsers donāt like it when you request fullscreen without user interaction so here we are! changelog changes (?) the changelog, as promised, pulls directly from github to ensure you always get the most up-to-date changes with minimal effort on my end ! it uses marked and DOMPurify to parse the CHANGELOG.md from the repo and to make sure you are personally secure from anyone whoās dumb enough to waste their time trying to attack tundra. preparing for themes soon, iāll work on adding themes to tundra so i decided iād make it a bit easier for myself by making every single value that might want to be changed in css a variable. this was excruciatingly painful but we got through it in the end (it took like 10 minutes max). also, the background is now loaded dynamically through js which will lead to custom backgrounds at some point (much to the dismay of my browserās performance) next steps improve the dialog system and add more dialog types add a filesystem (very scary) add more apps add theming and changeable backgrounds"}, {"post_id": 36136, "ts": "2026-07-28T00:56:50Z", "hours": 1.6256, "text": "devlog #7 - now weāre getting somewhere! tundra is starting to take off! iāve changed the look of the taskbar very slightly (thereās now more padding), and iāve also revamped the appdrawer so that it looks cleaner (and more like SerenityOS). also, submenus! now the appdrawer can be more organised as I continue to add apps instead of turning into a wastebin of buttons. i deleted all of the original apps and have replaced them with (so far) an updated welcome/about (with wally, the derpy walrus whoās tundraās new mascot), a proper changelog (eventually iāll make it pull from github but for now itās hardcoded), and a cube to test out threejs."}, {"post_id": 32283, "ts": "2026-07-21T11:04:31Z", "hours": 1.3792, "text": "devlog #6 - more taskbar stuff i decided that itās probably a good idea to be able to see what apps you have open, so i implemented a little window list in the status bar. itās pretty rudimentary - it just makes an element for each open window and updates any time a window is added or removed. eventually iāll get around to adding window logos and context menus that let you close and minimise windows from the taskbar but thatās a bit advanced for the minute."}, {"post_id": 30070, "ts": "2026-07-17T11:10:55Z", "hours": 1.0528, "text": "devlog #5 - visual updates i decided i wanted to make tundra look a bit like serenityOS, so i modified the window header to include the distinctive red gradient. i also added a proper focusing system which required a decent rewrite of a portion of caribou (the wm). also, i worked on centralising the wm. previously, windows handled their own focusing and closing but since iāve discovered customevents windows now request this behaviour from the wm. finally, windows now auto-focus when you open them!"}, {"post_id": 30022, "ts": "2026-07-17T08:30:14Z", "hours": 1.1878, "text": "devlog #4 - almost time to ship ! after much tedious work i added 2 other apps: a notes app that currently has a small TODO list and a changelog; and an image viewer that shows off a random image iāve taken. iāve also prettied the whole thing up a little bit by changing the font from [default] to Cozette, a nice cozy bitmap-ish font. finally, i added an app drawer so you can open all the (3) apps available in v0.1.0! iām really looking forward to adding tons of new features and making it look super awesome!"}, {"post_id": 29369, "ts": "2026-07-16T08:39:15Z", "hours": 0.5478, "text": "devlog #3 - windows (again!) windows and apps are now instanced and defined purely in their own classes in javascript instead of being predefined in HTML and shown / hidden. i know itās not strictly part of the mission for WebOS 1 but it makes me feel a bit better about myself AND itāll make things a whole lot easier for me down the line. since apps are instanced, i can have as many welcomes as i want !"}, {"post_id": 29355, "ts": "2026-07-16T07:46:35Z", "hours": 0.9558, "text": "devlog #2 - windows i started working on the first iteration of caribou - tundraās window manager (aka a window class and a list of open windows). so far, windows can be dragged around using some very janky freestyled code, and can also be closed (one of the can even be opened again !). itās currently looking quite⦠webby , so next iāll probably work on making it look a bit more personal (maybe a bit like my personal homepage??)"}, {"post_id": 29335, "ts": "2026-07-16T06:41:18Z", "hours": 0.5217, "text": "devlog #1 - letās make an OS (sort of) ! building my own OS has been a dream of mine for a long, long time but iāve never actually been able to make one before (because i know next to nothing about low-level programming). so imagine my reaction when i saw that i could get 50 stardust for making one? well, one small catch. it had to be a web-based OS. wait, is that really a catch though? its like a thousand times easier, and has just enough instant gratification for my short-form content-fried dopamine-addicted brain. so here we are. so far, tundra has a window and a status bar, and thats about it (also, the wallpaper is a photo i took down at the beach today !). iām really looking forward to adding a ton more features to tundra in the future."}]...
|
Title: tundra by @pinetree182 | Stardance
Devlogs Title: tundra by @pinetree182 | Stardance
Devlogs:
devlog #1 - letās make an OS (sort of) ! building my own OS has been a dream of mine for a long, long time but iāve never actually been able to make one before (because i know next to nothing about low-level programming). so imagine my reaction when i saw that i could get 50 stardust for making one? well, one small catch. it had to be a web-based OS. wait, is that really a catch though? its like a thousand times easier, and has just enough instant gratification for my short-form content-fried dopamine-addicted brain. so here we are. so far, tundra has a window and a status bar, and thats about it (also, the wallpaper is a photo i took down at the beach today !). iām really looking forward to adding a ton more features to tundra in the future.
devlog #2 - windows i started working on the first iteration of caribou - tundraās window manager (aka a window class and a list of open windows). so far, windows can be dragged around using some very janky freestyled code, and can also be closed (one of the can even be opened again !). itās currently looking quite⦠webby , so next iāll probably work on making it look a bit more personal (maybe a bit like my personal homepage??)
devlog #3 - windows (again!) windows and apps are now instanced and defined purely in their own classes in javascript instead of being predefined in HTML and shown / hidden. i know itās not strictly part of the mission for WebOS 1 but it makes me feel a bit better about myself AND itāll make things a whole lot easier for me down the line. since apps are instanced, i can have as many welcomes as i want !
devlog #4 - almost time to ship ! after much tedious work i added 2 other apps: a notes app that currently has a small TODO list and a changelog; and an image viewer that shows off a random image iāve taken. iāve also prettied the whole thing up a little bit by changing the font from [default] to Cozette, a nice cozy bitmap-ish font. finally, i added an app drawer so you can open all the (3) apps available in v0.1.0! iām really looking forward to adding tons of new features and making it look super awesome!
devlog #5 - visual updates i decided i wanted to make tundra look a bit like serenityOS, so i modified the window header to include the distinctive red gradient. i also added a proper focusing system which required a decent rewrite of a portion of caribou (the wm). also, i worked on centralising the wm. previously, windows handled their own focusing and closing but since iāve discovered customevents windows now request this behaviour from the wm. finally, windows now auto-focus when you open them!
devlog #6 - more taskbar stuff i decided that itās probably a good idea to be able to see what apps you have open, so i implemented a little window list in the status bar. itās pretty rudimentary - it just makes an element for each open window and updates any time a window is added or removed. eventually iāll get around to adding window logos and context menus that let you close and minimise windows from the taskbar but thatās a bit advanced for the minute.
devlog #7 - now weāre getting somewhere! tundra is starting to take off! iāve changed the look of the taskbar very slightly (thereās now more padding), and iāve also revamped the appdrawer so that it looks cleaner (and more like SerenityOS). also, submenus! now the appdrawer can be more organised as I continue to add apps instead of turning into a wastebin of buttons. i deleted all of the original apps and have replaced them with (so far) an updated welcome/about (with wally, the derpy walrus whoās tundraās new mascot), a proper changelog (eventually iāll make it pull from github but for now itās hardcoded), and a cube to test out threejs.
devlog #8 - too many changes! my devlogs from here on are going to be getting a lot longer now because iām really settling into the grind, so iām going to try out a more structured format. dialogs! i implemented a whole dialog box system into caribou (the window manager). so far it only has confirm (cancel/ok) style dialogs but itās modular so iāll be sure to add plenty more in the future. dialogs return promises that resolve with a value when an action happens (like when the dialog is closed), and this can then be used to execute code. this all came about because i wanted to add fullscreen mode but apparently browsers donāt like it when you request fullscreen without user interaction so here we are! changelog changes (?) the changelog, as promised, pulls directly from github to ensure you always get the most up-to-date changes with minimal effort on my end ! it uses marked and DOMPurify to parse the CHANGELOG.md from the repo and to make sure you are personally secure from anyone whoās dumb enough to waste their time trying to attack tundra. preparing for themes soon, iāll work on adding themes to tundra so i decided iād make it a bit easier for myself by making every single value that might want to be changed in css a variable. this was excruciatingly painful but we got through it in the end (it took like 10 minutes max). also, the background is now loaded dynamically through js which will lead to custom backgrounds at some point (much to the dismay of my browserās performance) next steps improve the dialog system and add more dialog types add a filesystem (very scary) add more apps add theming and changeable backgrounds
devlog #9 - files! whatās an operating system if you canāt have files? so, i decided to write a basic filesystem for tundra. paired with a simple terminal and now tundra is actually kind of cool! the filesystem tundra uses a really simple filesystem model: thereās a File and a Directory class that both inherit from FSNode, Files have names and contents and Directories have names and children. tundra uses a traditional unix file layout (/home, /bin, /etc and so on) because its cool. the terminal i really wanted some way to navigate the filesystem but didnāt feel like implementing an entire file browser so I added a simple terminal. it has a few methods like writeln and readline which you can use. all the commands (including the shell!) are defined in their own classes, just like apps, which makes it really easy to add new ones. so far, iāve added cd, ls, mkdir, touch, cat, and my own version of neofetch. next steps an actual file browser some more commands ANSI escape codes for colours a text editor to make files for the filesystem
devlog #10 - new apps after like a month-long hiatus i thought that i ought to add a few more apps - this is meant to be somewhat useful after all! calculator this is a really basic calculator app, basically when you press a button it adds its value (like 2 or + or . ) to an expression, and when you hit the = button it evaluates the expression with eval() . yes, i know its not the safest but it works. colo(u)r picker this one is also really simple: every time you press a key on your keyboard, a new random colour is generated and the rgb and hex values are shown in the bottom. need i say more? file explorer once again, this is really basic. all it does is gets the contents of the current directory (i had to make a new fs function to return each pathās type as well) and then makes a new element for each path with an icon corresponding to what it is. thereās also a back button if you need to⦠well.. go back next steps file opening from the file explorer text editor more functions in the calculator / better calculator
devlog #11 - ctrl+alt+delete this is a bit of a shorter devlog since I basically only added one thing - a functioning shutdown sequence! first a little dialog pops up asking if youāre sure, and then the whole screen goes black and says āshutting downā¦ā, finally followed by an elite reference (Progressbar95 players rise up!)
devlog #12 - the end? (for now) this is going to be my last devlog before I ship tundra, iām really proud of how far itās come and the fact that iāve actually managed to finish a project for once! I didnāt quite get to add everything I wanted but most of it is there text editor time! i added a real simple text editor that can save and load files from the ādiskā. i donāt really have anything else to say about it rated D for dialogs in order for the text editor to work properly, I had to make save and open dialog boxes. these are basically an unholy frankenstein of the normal dialog box and the file browser app, and they work well enough object permanence using JSON and the worldās jankiest serialization/deserialization system I was able to save the userās filesystem state to localStorage so that even of you reload or close the page, your precious writing will be preserved youāre getting the boot real operating systems donāt open straight to the desktop - theres a whole boot sequence that leads to this (and if youāre cool and use linux itās all on display for you). inspired by @cooki ās FPS-OS (go check it out itās really cool) i added a boot screen that looks pretty alright I guess. visual imagery finally, I got around to adding icons for each app. theyāre 16x16, made in aseprite over the course of about 10 minutes, and work just enough that I donāt need to redesign them constantly. next steps ship it!
Ships:
tundra v0.1.0 (alpha) tundra is finally ready to release! itās currently very much in its infancy and doesnāt have very many features but it meets the requirements of the ship and iām proud of it! so far we have: multiple draggable windows that are instanceable and defined as classes in javascript (so you can open more than one of the same app!) a welcome message, notes app (which is really an editable changelog), and a nice assortment of images for you to look at a status bar with the date and a handy app drawer so you can access all (3 of) the cool apps on display! a beautiful font (cozette by the-moonwitch) i hope you all like it so far, and plenty more features will follow in the coming weeks
tundra OS i made a web OS called tundra. visually, itās really similar to Serenity OS and it was a whole lot of fun to make. features lots of apps, like a browser, text editor, and file browser a working(ish) filesystem a whole dialog system 3d graphics elite references...
|
1793087801.67265
|
1793174201.67265
|
|
35978
|
Quick, Timer's UP! by @ishanmeher09 | Stardanc Quick, Timer's UP! by @ishanmeher09 | Stardance...
|
ishanmeher09
|
2
|
31.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-10T22:25:11Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a collection of fast paced minigames. And this is my second version. The first version had two minigames, a platformer game and a clicker game, but for my second version, I added two more, and theyāre a bit more interesting. I added a seesaw game, and it has blocks that randomly spawn at different locations on the plank, and the player has to select a weight and click at different spots to balance it out. Before there was a way to exploit how it works, and click below the plank so the plank would never hit the ground, but you canāt do that anymore. Basically the plank canāt touch the ground until the timer ends. I then added a launcher game, and it has a target that moves back and forth, and the player needs to click and hold or hold spacebar to settle on a power for the shot, and use the mouse to aim the barrel. They need to hit the target before the timer ends. Also, now the timer doesnāt start until the one word instructions on each game fade. Those are the main differences, along with the pause menu, and yeah!", "repo": "https://github.com/whatisupyo12/WarioWareGame/", "demo": "https://2002-2.itch.io/quick-timers-up"}, {"ship_num": 2, "ts": "2026-09-29T23:41:25Z", "hours": 20.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a collection of fast paced minigames, but added my own personal design choices and sprites I made too. It took me a while, because I had a lot of bugs that needed fixing, but it works now. I added a player sprite that has animations, and also worked on my finished screen so it has confetti (yay). My death screenās pretty basic though. In general for now, it works, and Iāll probably be adding more soon.", "repo": "https://github.com/whatisupyo12/WarioWareGame/", "demo": "https://2002-2.itch.io/quick-timers-up"}]...
|
[{"post_id": 78475, "ts": "202 [{"post_id": 78475, "ts": "2026-10-10T21:59:29Z", "hours": 7.7939, "text": "I finished my fourth minigame and final, a launcher minigame, where the player has to hold down click or space while aiming the cannon, in order to hit the target and win. I also completed third minigame too, the balancing one (I forgot to devlog it, oops). Itās a seesaw minigame, and basically weights fall and how have to balance the seesaw by selecting different weights and dropping them. It now has weight labels which it didnt have earlier, and weights automatically spawn now, when initially it just had two blocks that would cause a tilt."}, {"post_id": 77117, "ts": "2026-10-05T17:43:48Z", "hours": 2.83, "text": "Worked on a functional pause screen that goes back to menu or can resume game, took a while since I wasnt able to figure out why I couldnāt do some of the functions to hide the pause panel within one function, but if it works, it works."}, {"post_id": 75403, "ts": "2026-09-29T23:37:30Z", "hours": 1.675, "text": "I finished tweaking all the bugs, and my game is ready to ship with my two current minigames."}, {"post_id": 75222, "ts": "2026-09-29T14:43:25Z", "hours": 7.9036, "text": "Finished an ending/lose scene, and finished all minigames, Iām probably just going to start working on more minigames now."}, {"post_id": 74906, "ts": "2026-09-28T15:57:57Z", "hours": 7.665, "text": "Finished both minigames and now Iāll be working on the final ending scene as in a custom win/loss"}, {"post_id": 73432, "ts": "2026-09-25T02:33:21Z", "hours": 2.5306, "text": "Working on Game UI, and its functional and works now, also made sprites"}]...
|
Title: Quick, Timer's UP! by @ishanmeher09 | S Title: Quick, Timer's UP! by @ishanmeher09 | Stardance
Devlogs:
Working on Game UI, and its functional and works now, also made sprites
Finished both minigames and now Iāll be working on the final ending scene as in a custom win/loss
Finished an ending/lose scene, and finished all minigames, Iām probably just going to start working on more minigames now.
I finished tweaking all the bugs, and my game is ready to ship with my two current minigames.
Worked on a functional pause screen that goes back to menu or can resume game, took a while since I wasnt able to figure out why I couldnāt do some of the functions to hide the pause panel within one function, but if it works, it works.
I finished my fourth minigame and final, a launcher minigame, where the player has to hold down click or space while aiming the cannon, in order to hit the target and win. I also completed third minigame too, the balancing one (I forgot to devlog it, oops). Itās a seesaw minigame, and basically weights fall and how have to balance the seesaw by selecting different weights and dropping them. It now has weight labels which it didnt have earlier, and weights automatically spawn now, when initially it just had two blocks that would cause a tilt.
Ships:
I made a collection of fast paced minigames, but added my own personal design choices and sprites I made too. It took me a while, because I had a lot of bugs that needed fixing, but it works now. I added a player sprite that has animations, and also worked on my finished screen so it has confetti (yay). My death screenās pretty basic though. In general for now, it works, and Iāll probably be adding more soon.
I made a collection of fast paced minigames. And this is my second version. The first version had two minigames, a platformer game and a clicker game, but for my second version, I added two more, and theyāre a bit more interesting. I added a seesaw game, and it has blocks that randomly spawn at different locations on the plank, and the player has to select a weight and click at different spots to balance it out. Before there was a way to exploit how it works, and click below the plank so the plank would never hit the ground, but you canāt do that anymore. Basically the plank canāt touch the ground until the timer ends. I then added a launcher game, and it has a target that moves back and forth, and the player needs to click and hold or hold spacebar to settle on a power for the shot, and use the mouse to aim the barrel. They need to hit the target before the timer ends. Also, now the timer doesnāt start until the one word instructions on each game fade. Those are the main differences, along with the pause menu, and yeah!...
|
1793004770.6986685
|
1793091170.6986685
|
|
36016
|
My very own WebOS by @RajanKC | Stardance
|
RajanKC
|
2
|
17.0
|
72
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-07T17:15:25Z", "hours": 14.0, "multiplier": 5.0, "payout": 72, "blessing": "neutral", "text": "OS-Web is a lightweight, open-source web operating system built with HTML, CSS, and JavaScript. It brings a desktop-style experience to your browser with apps, a taskbar, and a simple interface that you can explore, customize, and improve.", "repo": "https://github.com/RajanKCKC/OSWeb", "demo": "https://rajankckc.github.io/OSWeb/"}, {"ship_num": 2, "ts": "2026-07-20T16:04:47Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Shipped WebOS. Built a basic browser desktop clone with HTML, CSS, and JS. It has a taskbar, a welcome window, windows you can drag around with working close buttons, and a simple notes app that opens when clicked.", "repo": "https://github.com/RajanKCKC/OSWeb", "demo": "https://rajankckc.github.io/OSWeb/"}]...
|
[{"post_id": 42760, "ts": "202 [{"post_id": 42760, "ts": "2026-08-07T17:14:29Z", "hours": 1.3003, "text": "Add Password Strength Meter app with UI, functionality, and integrate into main interface"}, {"post_id": 42077, "ts": "2026-08-06T17:12:25Z", "hours": 1.4725, "text": "Add Github User Finder app with UI, functionality, and integrate into main interface"}, {"post_id": 41382, "ts": "2026-08-05T15:43:36Z", "hours": 0.6836, "text": "Add QR Code Generator app with UI, functionality, and integrate into main interface"}, {"post_id": 40757, "ts": "2026-08-04T14:28:26Z", "hours": 1.1311, "text": "Add Tic Tac Toe app with UI, functionality, and integrate into main interface"}, {"post_id": 40211, "ts": "2026-08-03T16:49:51Z", "hours": 1.1114, "text": "Add ToDo app with UI, functionality, and integrate into main interface"}, {"post_id": 39521, "ts": "2026-08-02T15:07:58Z", "hours": 0.6947, "text": "Add Quiz app with UI, functionality, and integrate into main interface"}, {"post_id": 38986, "ts": "2026-08-01T16:44:01Z", "hours": 0.6003, "text": "Add Map app with UI, functionality, and integrate into main interface"}, {"post_id": 38296, "ts": "2026-07-31T16:45:57Z", "hours": 0.5333, "text": "Add Notes app with UI and integrate into main interface"}, {"post_id": 37658, "ts": "2026-07-30T15:28:48Z", "hours": 1.0669, "text": "Add Calendar app with UI, functionality, and integrate into main interface"}, {"post_id": 37116, "ts": "2026-07-29T16:30:18Z", "hours": 1.4522, "text": "Add Calculator, Paint app, and Welcome page with associated styles and functionality"}, {"post_id": 36450, "ts": "2026-07-28T16:05:34Z", "hours": 0.7019, "text": "Add Paint app with UI elements and window controls"}, {"post_id": 35564, "ts": "2026-07-27T02:56:29Z", "hours": 0.4669, "text": "Add welcome page and style adjustments for improved layout"}, {"post_id": 35318, "ts": "2026-07-26T17:14:11Z", "hours": 0.4792, "text": "Add Google app functionality with UI elements and window controls"}, {"post_id": 34668, "ts": "2026-07-25T16:03:57Z", "hours": 0.5169, "text": "Fix minimize button IDs for Notes and Solitaire, and implement taskbar item management"}, {"post_id": 34124, "ts": "2026-07-24T16:48:43Z", "hours": 0.3206, "text": "Add minimize functionality to Notes, Minecraft, and Solitaire windows"}, {"post_id": 33446, "ts": "2026-07-23T12:27:23Z", "hours": 0.9111, "text": "Implement maximize functionality for app windows and update styles"}, {"post_id": 33062, "ts": "2026-07-22T17:11:41Z", "hours": 0.3669, "text": "Add Solitaire app functionality with UI elements and window controls"}, {"post_id": 32436, "ts": "2026-07-21T16:45:42Z", "hours": 0.5339, "text": "Add Minecraft app icon and window functionality with styles"}, {"post_id": 31856, "ts": "2026-07-20T15:59:49Z", "hours": 0.7336, "text": "Update README, enhance UI, and improve functionality"}, {"post_id": 31326, "ts": "2026-07-19T16:58:18Z", "hours": 1.2972, "text": "Add Notes app functionality with UI elements and styles"}, {"post_id": 30614, "ts": "2026-07-18T10:26:52Z", "hours": 0.7039, "text": "Added Draggable windows and Window Control buttons"}, {"post_id": 30144, "ts": "2026-07-17T14:14:23Z", "hours": 0.3836, "text": "Added Task bar and window"}, {"post_id": 29931, "ts": "2026-07-17T03:17:13Z", "hours": 0.3103, "text": "Added Welcome screen"}]...
|
Title: My very own WebOS by @RajanKC | Stardance
Title: My very own WebOS by @RajanKC | Stardance
Devlogs:
Added Welcome screen
Added Task bar and window
Added Draggable windows and Window Control buttons
Add Notes app functionality with UI elements and styles
Update README, enhance UI, and improve functionality
Add Minecraft app icon and window functionality with styles
Add Solitaire app functionality with UI elements and window controls
Implement maximize functionality for app windows and update styles
Add minimize functionality to Notes, Minecraft, and Solitaire windows
Fix minimize button IDs for Notes and Solitaire, and implement taskbar item management
Add Google app functionality with UI elements and window controls
Add welcome page and style adjustments for improved layout
Add Paint app with UI elements and window controls
Add Calculator, Paint app, and Welcome page with associated styles and functionality
Add Calendar app with UI, functionality, and integrate into main interface
Add Notes app with UI and integrate into main interface
Add Map app with UI, functionality, and integrate into main interface
Add Quiz app with UI, functionality, and integrate into main interface
Add ToDo app with UI, functionality, and integrate into main interface
Add Tic Tac Toe app with UI, functionality, and integrate into main interface
Add QR Code Generator app with UI, functionality, and integrate into main interface
Add Github User Finder app with UI, functionality, and integrate into main interface
Add Password Strength Meter app with UI, functionality, and integrate into main interface
Ships:
Shipped WebOS. Built a basic browser desktop clone with HTML, CSS, and JS. It has a taskbar, a welcome window, windows you can drag around with working close buttons, and a simple notes app that opens when clicked.
OS-Web is a lightweight, open-source web operating system built with HTML, CSS, and JavaScript. It brings a desktop-style experience to your browser with apps, a taskbar, and a simple interface that you can explore, customize, and improve....
|
1793105700.798776
|
1793192100.798776
|
|
36050
|
Snake Game by @vatsamalakar | Stardance
|
vatsamalakar
|
2
|
5.0
|
20
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-21T01:43:29Z", "hours": 0.0, "multiplier": 2.89, "payout": 1, "blessing": "neutral", "text": "I added WASD support and updated the UI so players can use W/A/S/D as an alternative to the arrow keys. To make the change clear and intuitive, the in-game control hint and the instructions dialog now mention WASD, and each on-screen arrow button displays the matching WASD letter so both control schemes are visible. This improves usability for desktop players who prefer WASD and reduces confusion about available inputs. I verified the change by starting the game and doing a short playthrough: movement works with arrows and WASD (uppercase or lowercase), swipe and on-screen buttons still work, scoring and level-up behavior remain unchanged, and collisions behave the same. The changes are intentionally minimal and non-disruptive. Next steps I can take: add simple styling for the WASD labels to match the UI, run cross-browser checks, or add a small accessibility note about keyboard controlsāwhich would you prefer?", "repo": "https://github.com/vatsamalakar/SnakeGame", "demo": "https://snake-game-peach-phi.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-16T21:22:56Z", "hours": 5.0, "multiplier": 3.52, "payout": 19, "blessing": "neutral", "text": "I am really happy with how my Snake game turned out. Throughout the process, I learned a lot about game development and improved my programming skills. I learned how to create a level system, add random obstacles, improve the gameās appearance, and make the gameplay more fun and challenging. One of the biggest things I learned was how important testing is. Every time I added a new feature, I had to make sure it worked correctly and did not create new bugs. I also realized that even small changes, like choosing better colors or randomizing obstacle locations, can make a big difference to the playerās experience. Overall, I enjoyed working on this project because it allowed me to be creative while improving my coding skills. If I continue developing this game in the future, I would like to add features such as a high score leaderboard, sound effects, and even power-ups. I hope you enjoyed playing it as much as I enjoyed creating it!", "repo": "https://github.com/vatsamalakar/SnakeGame", "demo": "https://snake-game-peach-phi.vercel.app/"}]...
|
[{"post_id": 32114, "ts": "202 [{"post_id": 32114, "ts": "2026-07-21T01:43:04Z", "hours": 0.2803, "text": "I added WASD support and updated the UI so players can use W/A/S/D as an alternative to the arrow keys. To make the change clear and intuitive, the in-game control hint and the instructions dialog now mention WASD, and each on-screen arrow button displays the matching WASD letter so both control schemes are visible. This improves usability for desktop players who prefer WASD and reduces confusion about available inputs. I verified the change by starting the game and doing a short playthrough: movement works with arrows and WASD (uppercase or lowercase), swipe and on-screen buttons still work, scoring and level-up behavior remain unchanged, and collisions behave the same. The changes are intentionally minimal and non-disruptive. Next steps I can take: add simple styling for the WASD labels to match the UI, run cross-browser checks, or add a small accessibility note about keyboard controlsāwhich would you prefer?"}, {"post_id": 29767, "ts": "2026-07-16T21:20:32Z", "hours": 0.2925, "text": "My Snake Game is officially live! š I hope you all enjoy playing my version of this classic game. I added my own features, including levels that get harder as you play and obstacles that make each stage more challenging. I also made the obstacle locations random so that every game feels different and keeps you on your toes.this project. I had a lot of fun building it and I learned many new programming skills along the way. Give it a try, see how far you can get, and let me know your highest score. I hope you have as much fun playing it as I had making it!"}, {"post_id": 29635, "ts": "2026-07-16T18:13:44Z", "hours": 0.2686, "text": "My newest change was writing the rules for the obstacles and level system in my game. I wanted the game to become more exciting as the player keeps playing instead of staying the same the whole time. Now, every time the snake eats 3 red fruits, the level increases by 1. As the level goes up, the game becomes harder because more obstacles are added that the snake has to dodge. This makes the player pay more attention and react faster as they move through each level. I also made sure that the obstacles appear in random places each time the game is played. This is important because if the obstacles always appeared in the same spots, players would quickly memorize where they were and the game would become too easy and repetitive. By randomizing the obstacle locations, every game feels different, which keeps the game challenging and interesting."}, {"post_id": 29596, "ts": "2026-07-16T17:11:16Z", "hours": 0.3008, "text": "I have now worked on the frontend of my snake game. Initially the snake body was blending in with the background which made it hard to see how long and where the snake is. To fix this I changed the background color to a darker shade of blue that is darker than the green snake body. Another change I made was making the color of obstacle different from the red fruit so that users are not confused."}, {"post_id": 29573, "ts": "2026-07-16T16:37:57Z", "hours": 4.5828, "text": "Being inspired by Googleās Snake game, I decided to create my own version of the game. I have always enjoyed playing Snake because it is fun and easy to understand, so I wanted to make a version with some extra features. My goal is to make the game more interesting by adding levels and obstacles. As the player progresses through the game, it will become more challenging, giving them something new to overcome instead of playing the same level over and over again. I think this will make the game more entertaining and a great way for people to pass the time. Before adding the main features, I started by creating an instructions button. I thought this was important because it helps new players understand how to play the game before they begin. The instructions explain the controls, the goal of the game, and what players need to avoid. By adding clear instructions at the start, users can quickly learn how to play and enjoy the game without feeling confused."}]...
|
Title: Snake Game by @vatsamalakar | Stardance
De Title: Snake Game by @vatsamalakar | Stardance
Devlogs:
Being inspired by Googleās Snake game, I decided to create my own version of the game. I have always enjoyed playing Snake because it is fun and easy to understand, so I wanted to make a version with some extra features. My goal is to make the game more interesting by adding levels and obstacles. As the player progresses through the game, it will become more challenging, giving them something new to overcome instead of playing the same level over and over again. I think this will make the game more entertaining and a great way for people to pass the time. Before adding the main features, I started by creating an instructions button. I thought this was important because it helps new players understand how to play the game before they begin. The instructions explain the controls, the goal of the game, and what players need to avoid. By adding clear instructions at the start, users can quickly learn how to play and enjoy the game without feeling confused.
I have now worked on the frontend of my snake game. Initially the snake body was blending in with the background which made it hard to see how long and where the snake is. To fix this I changed the background color to a darker shade of blue that is darker than the green snake body. Another change I made was making the color of obstacle different from the red fruit so that users are not confused.
My newest change was writing the rules for the obstacles and level system in my game. I wanted the game to become more exciting as the player keeps playing instead of staying the same the whole time. Now, every time the snake eats 3 red fruits, the level increases by 1. As the level goes up, the game becomes harder because more obstacles are added that the snake has to dodge. This makes the player pay more attention and react faster as they move through each level. I also made sure that the obstacles appear in random places each time the game is played. This is important because if the obstacles always appeared in the same spots, players would quickly memorize where they were and the game would become too easy and repetitive. By randomizing the obstacle locations, every game feels different, which keeps the game challenging and interesting.
My Snake Game is officially live! š I hope you all enjoy playing my version of this classic game. I added my own features, including levels that get harder as you play and obstacles that make each stage more challenging. I also made the obstacle locations random so that every game feels different and keeps you on your toes.this project. I had a lot of fun building it and I learned many new programming skills along the way. Give it a try, see how far you can get, and let me know your highest score. I hope you have as much fun playing it as I had making it!
I added WASD support and updated the UI so players can use W/A/S/D as an alternative to the arrow keys. To make the change clear and intuitive, the in-game control hint and the instructions dialog now mention WASD, and each on-screen arrow button displays the matching WASD letter so both control schemes are visible. This improves usability for desktop players who prefer WASD and reduces confusion about available inputs. I verified the change by starting the game and doing a short playthrough: movement works with arrows and WASD (uppercase or lowercase), swipe and on-screen buttons still work, scoring and level-up behavior remain unchanged, and collisions behave the same. The changes are intentionally minimal and non-disruptive. Next steps I can take: add simple styling for the WASD labels to match the UI, run cross-browser checks, or add a small accessibility note about keyboard controlsāwhich would you prefer?
Ships:
I am really happy with how my Snake game turned out. Throughout the process, I learned a lot about game development and improved my programming skills. I learned how to create a level system, add random obstacles, improve the gameās appearance, and make the gameplay more fun and challenging. One of the biggest things I learned was how important testing is. Every time I added a new feature, I had to make sure it worked correctly and did not create new bugs. I also realized that even small changes, like choosing better colors or randomizing obstacle locations, can make a big difference to the playerās experience. Overall, I enjoyed working on this project because it allowed me to be creative while improving my coding skills. If I continue developing this game in the future, I would like to add features such as a high score leaderboard, sound effects, and even power-ups. I hope you enjoyed playing it as much as I enjoyed creating it!
I added WASD support and updated the UI so players can use W/A/S/D as an alternative to the arrow keys. To make the change clear and intuitive, the in-game control hint and the instructions dialog now mention WASD, and each on-screen arrow button displays the matching WASD letter so both control schemes are visible. This improves usability for desktop players who prefer WASD and reduces confusion about available inputs. I verified the change by starting the game and doing a short playthrough: movement works with arrows and WASD (uppercase or lowercase), swipe and on-screen buttons still work, scoring and level-up behavior remain unchanged, and collisions behave the same. The changes are intentionally minimal and non-disruptive. Next steps I can take: add simple styling for the WASD labels to match the UI, run cross-browser checks, or add a small accessibility note about keyboard controlsāwhich would you prefer?...
|
1792882106.7229445
|
1793746106.7229445
|
|
36079
|
My first web page! :D by @LeonVP29 | Stardance
|
LeonVP29
|
2
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-27T17:45:12Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i think than there was an error with the shipping so here is the full one, all the information will be avaible in devlogs and the past ship", "repo": "https://github.com/Leon7723/my_first_webpage", "demo": "https://leon7723.github.io/my_first_webpage/"}, {"ship_num": 2, "ts": "2026-08-24T01:07:15Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "finally i finished my website, thanks to all the people who liked the idea and supported in the proyect, now than the web is done go to check it out and pleaaase rate it so it is oficialy shipped! :D", "repo": "https://github.com/Leon7723/my_first_webpage", "demo": "https://leon7723.github.io/my_first_webpage/"}]...
|
[{"post_id": 54814, "ts": "202 [{"post_id": 54814, "ts": "2026-08-25T23:19:48Z", "hours": 0.9411, "text": "sooooo. the page got rejected twice because it needed more things so i fixed it and added two new things 1: in the top of page you will have a navigation bar to move faster to any section in the page if you dont want to scroll 2: for those who speak english⦠I MADE AN ENGLISH BUTTON (well i didnt i saked ai to help me because im a begginer after all but i maked the simple visual) so many more people can read all than is in the page and thats all so thanks to everyone for supporting this proyect and to all the people who started following the proyect see all on a future proyect (if i find something to make)"}, {"post_id": 53435, "ts": "2026-08-23T23:47:56Z", "hours": 1.3639, "text": "in just a few minutes i will release the full website. thanks for all the support and i hope than i can make another awesome project in stardance :D"}, {"post_id": 51825, "ts": "2026-08-21T17:55:32Z", "hours": 3.1878, "text": "hi everyone leon here in devlog #2 in this oportuniti y added more stuffs to the page like the progress bar in the bottom and made them look good but i ran out of ideas so if someone has an idea than i can add to the page, leave it in the comments, thanks all for the support and see all in devlog #3 (also if some of you know how can i make a demo of the page could you help me?) see all next time and have a nice day :D"}, {"post_id": 29633, "ts": "2026-07-16T18:12:21Z", "hours": 4.5447, "text": "Hi everyone, this is my first devlog so im gona tell you about what im working, the firts thing than im creating is a web page where you can see who i am and what see things like what i like to do or mi skills and a seccion of who i am like person, if you like mi first project can you follow me so you can see my other devlogs or projects, see you the next devlog :D"}]...
|
Title: My first web page! :D by @LeonVP29 | Starda Title: My first web page! :D by @LeonVP29 | Stardance
Devlogs:
Hi everyone, this is my first devlog so im gona tell you about what im working, the firts thing than im creating is a web page where you can see who i am and what see things like what i like to do or mi skills and a seccion of who i am like person, if you like mi first project can you follow me so you can see my other devlogs or projects, see you the next devlog :D
hi everyone leon here in devlog #2 in this oportuniti y added more stuffs to the page like the progress bar in the bottom and made them look good but i ran out of ideas so if someone has an idea than i can add to the page, leave it in the comments, thanks all for the support and see all in devlog #3 (also if some of you know how can i make a demo of the page could you help me?) see all next time and have a nice day :D
in just a few minutes i will release the full website. thanks for all the support and i hope than i can make another awesome project in stardance :D
sooooo. the page got rejected twice because it needed more things so i fixed it and added two new things 1: in the top of page you will have a navigation bar to move faster to any section in the page if you dont want to scroll 2: for those who speak english⦠I MADE AN ENGLISH BUTTON (well i didnt i saked ai to help me because im a begginer after all but i maked the simple visual) so many more people can read all than is in the page and thats all so thanks to everyone for supporting this proyect and to all the people who started following the proyect see all on a future proyect (if i find something to make)
Ships:
finally i finished my website, thanks to all the people who liked the idea and supported in the proyect, now than the web is done go to check it out and pleaaase rate it so it is oficialy shipped! :D
i think than there was an error with the shipping so here is the full one, all the information will be avaible in devlogs and the past ship...
|
1792990343.7740276
|
1793076743.7740276
|
|
36100
|
Mathemactor by @UmarFarooq | Stardance
|
UmarFarooq
|
2
|
4.0
|
8
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-23T17:35:09Z", "hours": 3.0, "multiplier": 2.36, "payout": 4, "blessing": "neutral", "text": "I updated my project. Added graphs using function-plot library with highlighted roots for linear, quadratic and simultaneous linear equations. Imaginary roots are also supported now.", "repo": "https://github.com/Umar-Farooq-5757/mathemactor", "demo": "https://mathemactor.netlify.app/"}, {"ship_num": 2, "ts": "2026-07-16T19:02:30Z", "hours": 1.0, "multiplier": 2.85, "payout": 4, "blessing": "neutral", "text": "I created a mathematics equation solver webapp. The equation solution handling part was a bit tricky, but I managed to do it. This app is for users who know even basic maths.", "repo": "https://github.com/Umar-Farooq-5757/mathemactor", "demo": "https://mathemactor.netlify.app/"}]...
|
[{"post_id": 33595, "ts": "202 [{"post_id": 33595, "ts": "2026-07-23T17:21:37Z", "hours": 0.4375, "text": "Now, mathemactor also supports imaginary roots for quadratic equations. But, graph is not available for equations with complex/imaginary roots."}, {"post_id": 33434, "ts": "2026-07-23T11:41:46Z", "hours": 1.3472, "text": "Integrated function-plot library for showing graphs of equations with highlighted roots. You can zoom in or out and see the roots."}, {"post_id": 33317, "ts": "2026-07-23T03:51:12Z", "hours": 1.6347, "text": "Implemented step by step solution for quadratic equations. Now, you can see each step of quadratic equation getting solved. Separate solutions are available for both roots."}, {"post_id": 29661, "ts": "2026-07-16T18:43:05Z", "hours": 1.3489, "text": "I started working on a mathematics equation solver webapp last year. And after creating its most basic version, I moved forward. But now, I thought I need to add some more features i it. Here is a feature that I have added: Showing step-by-step solution of Linear equation. See the equation going towards solution at each step. Whatās next? Looking forward to add the same feature for quadratic equations"}]...
|
Title: Mathemactor by @UmarFarooq | Stardance
Dev Title: Mathemactor by @UmarFarooq | Stardance
Devlogs:
I started working on a mathematics equation solver webapp last year. And after creating its most basic version, I moved forward. But now, I thought I need to add some more features i it. Here is a feature that I have added: Showing step-by-step solution of Linear equation. See the equation going towards solution at each step. Whatās next? Looking forward to add the same feature for quadratic equations
Implemented step by step solution for quadratic equations. Now, you can see each step of quadratic equation getting solved. Separate solutions are available for both roots.
Integrated function-plot library for showing graphs of equations with highlighted roots. You can zoom in or out and see the roots.
Now, mathemactor also supports imaginary roots for quadratic equations. But, graph is not available for equations with complex/imaginary roots.
Ships:
I created a mathematics equation solver webapp. The equation solution handling part was a bit tricky, but I managed to do it. This app is for users who know even basic maths.
I updated my project. Added graphs using function-plot library with highlighted roots for linear, quadratic and simultaneous linear equations. Imaginary roots are also supported now....
|
1793000950.2413168
|
1793087350.2413168
|
|
36153
|
BohrBot by @angelmh2012 | Stardance
|
angelmh2012
|
2
|
2.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-06T19:16:51Z", "hours": 1.0, "multiplier": 1.7, "payout": 2, "blessing": "neutral", "text": "I just I exchange some functions, and use not-Auth apis for all the function(except weather) and i think the most difficult is to add blocks to API request for the randomspacefact command", "repo": "https://github.com/angelmh2012-cloud/bohrbot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354?skip_today=1"}, {"ship_num": 2, "ts": "2026-07-21T22:21:14Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a SlackBot that works 24/7, the more challenging situation was setting up the Nest server on my command line, in the terminal of Linux Mint, something iām proud is my ability to blend my programation skills with AI", "repo": "https://github.com/angelmh2012-cloud/bohrbot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354?skip_today=1"}]...
|
[{"post_id": 39094, "ts": "202 [{"post_id": 39094, "ts": "2026-08-01T19:53:05Z", "hours": 1.3781, "text": "I replace two function like quotes and random emojis to Chuck Norris jokes and space facts I did a lot of commits because i wanted to add a third function that returns you pizza images depending of a HTML protocol but it was messy so I finish deleting it"}, {"post_id": 32627, "ts": "2026-07-21T22:18:42Z", "hours": 1.0456, "text": "Iāve finished my slack bot, Iāll probably add more fetures in the future but # Slack Bot it is a bot that runs 24/7 on a Nest server, this is my second project in hack club Functions Well, this robot has many functions as Weather Random emoji quotation and bot ping"}]...
|
Title: BohrBot by @angelmh2012 | Stardance
Devlog Title: BohrBot by @angelmh2012 | Stardance
Devlogs:
Iāve finished my slack bot, Iāll probably add more fetures in the future but # Slack Bot it is a bot that runs 24/7 on a Nest server, this is my second project in hack club Functions Well, this robot has many functions as Weather Random emoji quotation and bot ping
I replace two function like quotes and random emojis to Chuck Norris jokes and space facts I did a lot of commits because i wanted to add a third function that returns you pizza images depending of a HTML protocol but it was messy so I finish deleting it
Ships:
I made a SlackBot that works 24/7, the more challenging situation was setting up the Nest server on my command line, in the terminal of Linux Mint, something iām proud is my ability to blend my programation skills with AI
I just I exchange some functions, and use not-Auth apis for all the function(except weather) and i think the most difficult is to add blocks to API request for the randomspacefact command...
|
1792997640.72548
|
1793084040.72548
|
|
36279
|
My own site! by @tr_Blu | Stardance
|
tr_Blu
|
2
|
7.0
|
5
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-07T02:30:44Z", "hours": 4.0, "multiplier": 1.26, "payout": 5, "blessing": "neutral", "text": "I added the devlog page that transports people to the hackclub pages for devlogs(if they work) and I made the navbar seperate from the pages by injecting them into the pages. That was extremly difficult when it was in the folder format and easier when it was in the flat file format but in the end, I choose the file format as it made it easier for me and I usually keep my folders open either way. I also added some formating and info to the pages", "repo": "https://github.com/daveandbustrer/my-personal-website", "demo": "https://daveandbustrer.github.io/my-personal-website/"}, {"ship_num": 2, "ts": "2026-07-25T01:20:21Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my personal page that looks good and the hardest part was definingly the changing the color when scrolling down since I got help and some code from AI", "repo": "https://github.com/daveandbustrer/my-personal-website", "demo": "https://daveandbustrer.github.io/my-personal-website/"}]...
|
[{"post_id": 42381, "ts": "202 [{"post_id": 42381, "ts": "2026-08-07T02:16:09Z", "hours": 0.7914, "text": "i got rid of the folder structure since I canāt figure out why the links wasnāt working so I got back to the original files on one level, but it works and I got navbar working in one file with strings instead of html. I might change that back to html. I wasnāt able to post since I had to go to school, and I have 2 APs so that took most of my time."}, {"post_id": 36620, "ts": "2026-07-28T20:56:43Z", "hours": 0.5942, "text": "i finnaly fixed the navbar issue but now have multiple other issues with the navigations"}, {"post_id": 36586, "ts": "2026-07-28T20:04:23Z", "hours": 0.5083, "text": "I redid the nav bar so that itās the same in all the pages without me having to change it for every page I just put it into the page through js"}, {"post_id": 36013, "ts": "2026-07-27T20:37:58Z", "hours": 2.1167, "text": "first ship done YIPEE! now I made the links in the uhh⦠project page. the links are also rainbow"}, {"post_id": 34359, "ts": "2026-07-25T00:08:40Z", "hours": 1.3333, "text": "so⦠itās been week since I lasted posted. I want on a vacation and wasnāt able to code so I didnāt have time and the place was fun. back to main point of this I was able to finish the home page and made a cool color change transition with AI help so thatās great. If it doesnāt say anything about AI that means I forgot to add the AI disclaimer. edit: link for page -> https://daveandbustrer.github.io/my-personal-website/"}, {"post_id": 29959, "ts": "2026-07-17T05:18:22Z", "hours": 1.4014, "text": "i added a frame for my page but I have an idea for it"}]...
|
Title: My own site! by @tr_Blu | Stardance
Devlog Title: My own site! by @tr_Blu | Stardance
Devlogs:
i added a frame for my page but I have an idea for it
so⦠itās been week since I lasted posted. I want on a vacation and wasnāt able to code so I didnāt have time and the place was fun. back to main point of this I was able to finish the home page and made a cool color change transition with AI help so thatās great. If it doesnāt say anything about AI that means I forgot to add the AI disclaimer. edit: link for page -> https://daveandbustrer.github.io/my-personal-website/
first ship done YIPEE! now I made the links in the uhh⦠project page. the links are also rainbow
I redid the nav bar so that itās the same in all the pages without me having to change it for every page I just put it into the page through js
i finnaly fixed the navbar issue but now have multiple other issues with the navigations
i got rid of the folder structure since I canāt figure out why the links wasnāt working so I got back to the original files on one level, but it works and I got navbar working in one file with strings instead of html. I might change that back to html. I wasnāt able to post since I had to go to school, and I have 2 APs so that took most of my time.
Ships:
I made my personal page that looks good and the hardest part was definingly the changing the color when scrolling down since I got help and some code from AI
I added the devlog page that transports people to the hackclub pages for devlogs(if they work) and I made the navbar seperate from the pages by injecting them into the pages. That was extremly difficult when it was in the folder format and easier when it was in the flat file format but in the end, I choose the file format as it made it easier for me and I usually keep my folders open either way. I also added some formating and info to the pages...
|
1792994139.9451177
|
1793080539.9451177
|