|
5727
|
Album Rater Website by @Vishwa | Stardance
|
Vishwa
|
1
|
39.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T05:07:44Z", "hours": 39.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made SimpleRater, a way to quickly write in your own ratings and comments on songs you love! You can search for an album using one of 2 music databases, and rate the album song-by-song on its own, colorful theme. I kept it Simple: just rate, comment, and save; no extra unnecessary features.", "repo": "https://github.com/VaishuBeta/album-rater", "demo": "https://rater-deployment.netlify.app/"}]...
|
[{"post_id": 75790, "ts": "202 [{"post_id": 75790, "ts": "2026-10-01T04:46:05Z", "hours": 1.7628, "text": "Final devlog Everything is ready for publishing. Submission will be finished shortly."}, {"post_id": 74277, "ts": "2026-09-27T03:35:16Z", "hours": 3.5108, "text": "Final update before publishing This is the final, ready-for-release version of the project. I will be working on packaging and publishing it for the next few days. Album pages can be exported with album and rating data (new button!) Home page has a new (but familiar) layout. Added a background for the search section, creates the sections step-by-step and autoscrolls for a smooth and clear experience. Looks a lot better than the old UI, honestly. **Added iTunes Search, using iTunes API. It gives generally different results than MusicBrainz, so you’ll usually find the album you’re looking for in one of them. Importing is somewhat functional but causes a lot of issues. This will likely be removed before release. Rating comments look better (gray when blank, scrolling for long comments) Rating numbers are much easier to type. Previously, the auto-formatting made it annoying to type in your rating. The format has since been fixed, and is much easier to use. Rating cells change opacity depending on how well rated the song is. Lowest opacity is 30% for a 0/10 rating, so even 0s are still visible. This makes it much easier to see what songs are rated well/poorly at a glance, and makes the page look much better. Misc. bugs were fixed, and more comments were added to the code"}, {"post_id": 60618, "ts": "2026-09-03T02:20:32Z", "hours": 7.0539, "text": "Returning to the Album Rater Album Rater is now fully saved using LocalStorage. I plan to add exports page exports very soon. Color palettes also save to LocalStorage and work with a pop-up button next to the edit button. To Do: Add imports/exports Tracklist editing before and after page creation Manual page creation with user-inputted album data Try another music search API (Spotify API needs premium) UI updates to polish the look Finish up and submit the project"}, {"post_id": 13535, "ts": "2026-06-22T04:44:10Z", "hours": 8.9711, "text": "I added so much this time I forgot everything I did, so this is just what I remember. Made the HTML files generate with a parallel JSON file, which I’ll use for data importing/exporting Added custom colors. Color Thief generates a clean palette up to 10 colors, and the user can select two to be the primary and secondary colors. This influences the entire page’s theme, since every color is derived from those two colors. The program also saves your chosen two colors in local storage, so that each page has its own selected theme. (I might move this to a JSON file, since I plan to use that for saving the tracklist info, but i’m not sure yet). On the home page, I made a pop-up box for the user to validate/customize album information before the page is made. This way, they can make the page name whatever they want instead of the automatic one. I still have to link this to the backend to sync the page names with the page generation. I finally added custom comments for the songs, which I’ve stalled for super long now. I’m debating between saving them with local storage or a seperate JSON file, so I’ve held off on the saving for now. Right now they just save in an object in the JS file. I made a top bar where the pages will go. I want the UI to look like Google tabs, with a (+) button that has a dropdown with all the pages. I fixed the entire backend and solved a bunch of problems. Before, making two pages for the same album would overwrite the old one, but now I made it make a duplicate, titled” {Album Name} 2.html” instead. I have to link this with the popup to let the user name it whatever they want, since this is going to be the page name used everywhere. I also had issues with albums with special names. For example, I knew an album titled “</3”, and the “<” and “/” would cause issues with finding the file as well as HTML formatting when generating the page. So I seperated the file name from the album name by making a separate sanitized name, which is going to be the page name. I also remember doing a ton of smaller fixes but I forgot what I did. I cleaned up the CSS in a bunch of places and made sure elements didn’t break with different-sized windows. Next, I need to Link the popup on the Search page to the backend, so the user can customize page names before making them. Make the tabs system on the top, where the user can open/close whichever pages are relevant. Let the user update the number rating, and put some album data (median rating, user rating, album comments) Let the user change the album cover in the popup and on the album page Export album pages as JSON files I’m almost done with the app and I think I can probably finish it up in a few more devlogs. I’m expecting two weeks until I’m ready to ship."}, {"post_id": 8440, "ts": "2026-06-14T01:18:21Z", "hours": 4.2897, "text": "For the past few sessions, I’ve just been working on a dynamic theme for the album page. It automatically samples a dominant and secondary color from the album cover, and then: Creates a gradient for the banner, with both colors darkened (or lightened if needed) until it’s within a certain luminosity threshhold Darkens the primary color to create the background color Raises luminosity of the secondary color to color the tracklist numbers and “Tracklist” title. I just need to make the ratings and comments for this page, and I should be done with the album pages. After that, I’ll probably work on customizing the album page themes, since sometimes they don’t pick the best colors automatically. Then, I’ll have to do rating and comment functionality. The project is going well so far, and I think I’m close to done. I only have a few more big tasks left, and then I just have to do some finishing touches and I should be done."}, {"post_id": 6643, "ts": "2026-06-11T04:05:07Z", "hours": 4.5094, "text": "Made the UI for the album pages (this is temporary, I plan to work on this a lot more later). I also added the ability to edit the album data. User input for the songs is not implemented yet, so this is all hardcoded. I spent a while trying to use ColorThief to automatically sample a background color for the album cover, but there were some issues with the package and I couldn’t get it to work, so I just hardcoded this color for now. I plan to get ColorThief (or a similar package) working soon, since the accent color is pretty important to the look of the app. My next steps are to implement song input (rating & comments) and improve the UI for this page, as well as the home page."}, {"post_id": 5296, "ts": "2026-06-09T00:50:52Z", "hours": 1.9944, "text": "I’ve made the process to generate album pages. It’s not hooked up to a script yet, so there’s no functionality, but the Search->Page Generation pipeline works perfectly. You can search for an album with MusicBrainz API (or just give a release ID) and find an album, then get a preview to make sure it’s the right album, and finally generate an album page for it. All that’s left is making the script to edit the album pages as needed. I’m guessing this will be in 3 parts: being able to edit album “hard” data, being able to input ratings and comments, and being able to export/import album pages as a file. For the last part, I would like it to be a text file or CSV file, but an HTML file could honestly be easier if all the data is written in there anyways. I’ll cross that bridge when I get to it. For now, I need to work on the former 2 parts."}, {"post_id": 4712, "ts": "2026-06-08T04:13:41Z", "hours": 3.0178, "text": "UI for the homepage is coming together well, but I might update it at the end of the project. For now, there’s a theme and it looks good, so that’s good enough. I also added a Search by Release ID feature, since the MusicBrainz API search isn’t that great and oftentimes doesn’t suggest the album that I want, so now I can just paste a release ID to get the album immediately. Next steps are building the functionality for the rating pages and figuring out how to store the user-inputted page data."}, {"post_id": 3882, "ts": "2026-06-06T23:43:20Z", "hours": 3.32, "text": "The program can now search for albums, preview information, and load it in a new file for further use. The UI looks like a mess for now, so the next step is to fix the layout and interface. This is a great experience, learning to use the MusicBrainz API and learn how Electron works, and I’m glad to be working on this project."}, {"post_id": 1147, "ts": "2026-06-03T00:10:20Z", "hours": 0.4867, "text": "Basic Electron setup for the app, learning how it works. This is my first time using Electron for any project, so this will be fun."}]...
|
Title: Album Rater Website by @Vishwa | Stardance
Title: Album Rater Website by @Vishwa | Stardance
Devlogs:
Basic Electron setup for the app, learning how it works. This is my first time using Electron for any project, so this will be fun.
The program can now search for albums, preview information, and load it in a new file for further use. The UI looks like a mess for now, so the next step is to fix the layout and interface. This is a great experience, learning to use the MusicBrainz API and learn how Electron works, and I’m glad to be working on this project.
UI for the homepage is coming together well, but I might update it at the end of the project. For now, there’s a theme and it looks good, so that’s good enough. I also added a Search by Release ID feature, since the MusicBrainz API search isn’t that great and oftentimes doesn’t suggest the album that I want, so now I can just paste a release ID to get the album immediately. Next steps are building the functionality for the rating pages and figuring out how to store the user-inputted page data.
I’ve made the process to generate album pages. It’s not hooked up to a script yet, so there’s no functionality, but the Search->Page Generation pipeline works perfectly. You can search for an album with MusicBrainz API (or just give a release ID) and find an album, then get a preview to make sure it’s the right album, and finally generate an album page for it. All that’s left is making the script to edit the album pages as needed. I’m guessing this will be in 3 parts: being able to edit album “hard” data, being able to input ratings and comments, and being able to export/import album pages as a file. For the last part, I would like it to be a text file or CSV file, but an HTML file could honestly be easier if all the data is written in there anyways. I’ll cross that bridge when I get to it. For now, I need to work on the former 2 parts.
Made the UI for the album pages (this is temporary, I plan to work on this a lot more later). I also added the ability to edit the album data. User input for the songs is not implemented yet, so this is all hardcoded. I spent a while trying to use ColorThief to automatically sample a background color for the album cover, but there were some issues with the package and I couldn’t get it to work, so I just hardcoded this color for now. I plan to get ColorThief (or a similar package) working soon, since the accent color is pretty important to the look of the app. My next steps are to implement song input (rating & comments) and improve the UI for this page, as well as the home page.
For the past few sessions, I’ve just been working on a dynamic theme for the album page. It automatically samples a dominant and secondary color from the album cover, and then: Creates a gradient for the banner, with both colors darkened (or lightened if needed) until it’s within a certain luminosity threshhold Darkens the primary color to create the background color Raises luminosity of the secondary color to color the tracklist numbers and “Tracklist” title. I just need to make the ratings and comments for this page, and I should be done with the album pages. After that, I’ll probably work on customizing the album page themes, since sometimes they don’t pick the best colors automatically. Then, I’ll have to do rating and comment functionality. The project is going well so far, and I think I’m close to done. I only have a few more big tasks left, and then I just have to do some finishing touches and I should be done.
I added so much this time I forgot everything I did, so this is just what I remember. Made the HTML files generate with a parallel JSON file, which I’ll use for data importing/exporting Added custom colors. Color Thief generates a clean palette up to 10 colors, and the user can select two to be the primary and secondary colors. This influences the entire page’s theme, since every color is derived from those two colors. The program also saves your chosen two colors in local storage, so that each page has its own selected theme. (I might move this to a JSON file, since I plan to use that for saving the tracklist info, but i’m not sure yet). On the home page, I made a pop-up box for the user to validate/customize album information before the page is made. This way, they can make the page name whatever they want instead of the automatic one. I still have to link this to the backend to sync the page names with the page generation. I finally added custom comments for the songs, which I’ve stalled for super long now. I’m debating between saving them with local storage or a seperate JSON file, so I’ve held off on the saving for now. Right now they just save in an object in the JS file. I made a top bar where the pages will go. I want the UI to look like Google tabs, with a (+) button that has a dropdown with all the pages. I fixed the entire backend and solved a bunch of problems. Before, making two pages for the same album would overwrite the old one, but now I made it make a duplicate, titled” {Album Name} 2.html” instead. I have to link this with the popup to let the user name it whatever they want, since this is going to be the page name used everywhere. I also had issues with albums with special names. For example, I knew an album titled “</3”, and the “<” and “/” would cause issues with finding the file as well as HTML formatting when generating the page. So I seperated the file name from the album name by making a separate sanitized name, which is going to be the page name. I also remember doing a ton of smaller fixes but I forgot what I did. I cleaned up the CSS in a bunch of places and made sure elements didn’t break with different-sized windows. Next, I need to Link the popup on the Search page to the backend, so the user can customize page names before making them. Make the tabs system on the top, where the user can open/close whichever pages are relevant. Let the user update the number rating, and put some album data (median rating, user rating, album comments) Let the user change the album cover in the popup and on the album page Export album pages as JSON files I’m almost done with the app and I think I can probably finish it up in a few more devlogs. I’m expecting two weeks until I’m ready to ship.
Returning to the Album Rater Album Rater is now fully saved using LocalStorage. I plan to add exports page exports very soon. Color palettes also save to LocalStorage and work with a pop-up button next to the edit button. To Do: Add imports/exports Tracklist editing before and after page creation Manual page creation with user-inputted album data Try another music search API (Spotify API needs premium) UI updates to polish the look Finish up and submit the project
Final update before publishing This is the final, ready-for-release version of the project. I will be working on packaging and publishing it for the next few days. Album pages can be exported with album and rating data (new button!) Home page has a new (but familiar) layout. Added a background for the search section, creates the sections step-by-step and autoscrolls for a smooth and clear experience. Looks a lot better than the old UI, honestly. **Added iTunes Search, using iTunes API. It gives generally different results than MusicBrainz, so you’ll usually find the album you’re looking for in one of them. Importing is somewhat functional but causes a lot of issues. This will likely be removed before release. Rating comments look better (gray when blank, scrolling for long comments) Rating numbers are much easier to type. Previously, the auto-formatting made it annoying to type in your rating. The format has since been fixed, and is much easier to use. Rating cells change opacity depending on how well rated the song is. Lowest opacity is 30% for a 0/10 rating, so even 0s are still visible. This makes it much easier to see what songs are rated well/poorly at a glance, and makes the page look much better. Misc. bugs were fixed, and more comments were added to the code
Final devlog Everything is ready for publishing. Submission will be finished shortly.
Ships:
I made SimpleRater, a way to quickly write in your own ratings and comments on songs you love! You can search for an album using one of 2 music databases, and rate the album song-by-song on its own, colorful theme. I kept it Simple: just rate, comment, and save; no extra unnecessary features....
|
1793145246.4387844
|
1793231646.4387844
|
|
67195
|
minesweeper by @flyingpig525 | Stardance
|
flyingpig525
|
0
|
42.22
|
0
|
[]
|
[{"post_id": 75792, "ts": "202 [{"post_id": 75792, "ts": "2026-10-01T04:53:23Z", "hours": 42.2156, "text": "I’ve already got a good bit of time logged on this project (that seems to be a habit of mine). This is a zig minesweeper clone with a couple features tacked onto it. If you’ve ever played creamsweeper on the DiamondFire minecraft server, this is basically that but a native application. Features infinite board different biomes that modify the rules of the game biomes are generated based on cellular noise a cool ui library that i spent too much time on mouse AND keyboard controls flag only mode"}]...
|
Title: minesweeper by @flyingpig525 | Stardance
D Title: minesweeper by @flyingpig525 | Stardance
Devlogs:
I’ve already got a good bit of time logged on this project (that seems to be a habit of mine). This is a zig minesweeper clone with a couple features tacked onto it. If you’ve ever played creamsweeper on the DiamondFire minecraft server, this is basically that but a native application. Features infinite board different biomes that modify the rules of the game biomes are generated based on cellular noise a cool ui library that i spent too much time on mouse AND keyboard controls flag only mode...
|
1793108888.377438
|
1793713688.377438
|
|
66163
|
Perfect Day Website by @Imobes | Stardance
|
Imobes
|
1
|
0.34
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-27T04:52:53Z", "hours": 0.0, "multiplier": 1.0, "payout": 0, "blessing": "neutral", "text": "I made a website showing my perfect indoors day by creating a mug brownie recipe! It was challenging customizing my website by adding cool Google fonts because it was my first time coding.", "repo": "https://github.com/aroushkhan13/Perfect-Day", "demo": "https://aroushkhan13.github.io/Perfect-Day/"}]...
|
[{"post_id": 75798, "ts": "202 [{"post_id": 75798, "ts": "2026-10-01T05:27:46Z", "hours": 0.3433, "text": "I worked on adding more images to my site and a few more links and tried to get a good background color but that is all."}, {"post_id": 74301, "ts": "2026-09-27T04:44:11Z", "hours": 0.3444, "text": "A website depicting my perfect day! I built this at my local Sunbeam in around 6 hours. It was my first time coding! The website shows a quick mug brownie recipe as well as some tips."}]...
|
Title: Perfect Day Website by @Imobes | Stardance
Title: Perfect Day Website by @Imobes | Stardance
Devlogs:
A website depicting my perfect day! I built this at my local Sunbeam in around 6 hours. It was my first time coding! The website shows a quick mug brownie recipe as well as some tips.
I worked on adding more images to my site and a few more links and tried to get a good background color but that is all.
Ships:
I made a website showing my perfect indoors day by creating a mug brownie recipe! It was challenging customizing my website by adding cool Google fonts because it was my first time coding....
|
1793216909.353482
|
1793303309.353482
|
|
67105
|
My awesome macropad! by @sukhdeepsomal33 | Stardan My awesome macropad! by @sukhdeepsomal33 | Stardance...
|
sukhdeepsomal33
|
0
|
3.5
|
0
|
[]
|
[{"post_id": 75799, "ts": "202 [{"post_id": 75799, "ts": "2026-10-01T05:31:04Z", "hours": 2.8558, "text": "I have finally finished making my pcb for my macropad. Now I just need to figure out if there are any errors in the tracing. Once that is done, the case will be left to make as well as the code."}, {"post_id": 75719, "ts": "2026-09-30T21:02:24Z", "hours": 0.6489, "text": "I have just started making my macropad schematic. I have finished adding all the components I need in the schematic and I have started wiring most of the components. I will finish wiring after having a short break and will review my schematic to make sure I can move on to routing everything in my pcb design. I plan on making a unique and clean macropad that would look nice next to my setup."}]...
|
Title: My awesome macropad! by @sukhdeepsomal33 | Title: My awesome macropad! by @sukhdeepsomal33 | Stardance
Devlogs:
I have just started making my macropad schematic. I have finished adding all the components I need in the schematic and I have started wiring most of the components. I will finish wiring after having a short break and will review my schematic to make sure I can move on to routing everything in my pcb design. I plan on making a unique and clean macropad that would look nice next to my setup.
I have finally finished making my pcb for my macropad. Now I just need to figure out if there are any errors in the tracing. Once that is done, the case will be left to make as well as the code....
|
1793105681.3086123
|
1793710481.3086123
|
|
64874
|
Mp3 player by @SCAMMARAS | Stardance
|
SCAMMARAS
|
0
|
4.0
|
0
|
[]
|
[{"post_id": 75801, "ts": "202 [{"post_id": 75801, "ts": "2026-10-01T05:49:53Z", "hours": 2.2, "text": "Devlog 3 | In this past week i got my package with the modules that i will need to make the mp3 player on a breadboard , but i had forgot to get the microSd module , so i couldn’t complete the prototype. I also updated my pcb by addind a boot button and a type-c usb port so i can upload the firmware. The firmware is not yet finished and i do not know how to code it so i want my breadboard project to be done so i can write it easialy."}, {"post_id": 73157, "ts": "2026-09-24T14:34:05Z", "hours": 0.7167, "text": "Devlog 2| Hello once again since today i am in team bukus and i want my team to win so i will post as often as i can in order to do so . Anyway today i finished with the pcb of my mp3 player , it includes 3 push buttons on the left to stop/start and select the next or the previous song and also a potentiometer to regulate the volume . I placed the microSd socket and the 3.5mm jack hole near the corner of the pcb in order for them to be easialy accesable . I will connect the oled display with jumper wires in order to be able to fit it in my feature 3d printed case( hope i will get my 3d printer working by then). That’s all for now see you tommorow or later on today (most likely tommorow)"}, {"post_id": 72322, "ts": "2026-09-22T17:45:32Z", "hours": 1.0833, "text": "Devlog 1 | Hello stardancers , i didn’t upload anything for quite a while that’s because school started and i was too tired to do anything , but this weekend i had some time so i started with my mp3 player which was a project planned to be done a lot earlier but got delayed for no clear reason . Regardless i have ordered the parts that i will need for the breadboard project , but i will need funding to make the breadboard project to a pcb one , so i came to stardance to ask for that funding , while also making the pcb , case and firmware for my player. Anyway today i finished with the schematic it was pretty easy ,because i had already found the parts that i will use (from the breadboard project) and i had the wiring diagram on hand so i just need to connect some resistors and capasitors as i broke down some of the modules so the mp3 player will be more compact in the future. I am happy to be back in business here on stardance!!!!!"}]...
|
Title: Mp3 player by @SCAMMARAS | Stardance
Devlo Title: Mp3 player by @SCAMMARAS | Stardance
Devlogs:
Devlog 1 | Hello stardancers , i didn’t upload anything for quite a while that’s because school started and i was too tired to do anything , but this weekend i had some time so i started with my mp3 player which was a project planned to be done a lot earlier but got delayed for no clear reason . Regardless i have ordered the parts that i will need for the breadboard project , but i will need funding to make the breadboard project to a pcb one , so i came to stardance to ask for that funding , while also making the pcb , case and firmware for my player. Anyway today i finished with the schematic it was pretty easy ,because i had already found the parts that i will use (from the breadboard project) and i had the wiring diagram on hand so i just need to connect some resistors and capasitors as i broke down some of the modules so the mp3 player will be more compact in the future. I am happy to be back in business here on stardance!!!!!
Devlog 2| Hello once again since today i am in team bukus and i want my team to win so i will post as often as i can in order to do so . Anyway today i finished with the pcb of my mp3 player , it includes 3 push buttons on the left to stop/start and select the next or the previous song and also a potentiometer to regulate the volume . I placed the microSd socket and the 3.5mm jack hole near the corner of the pcb in order for them to be easialy accesable . I will connect the oled display with jumper wires in order to be able to fit it in my feature 3d printed case( hope i will get my 3d printer working by then). That’s all for now see you tommorow or later on today (most likely tommorow)
Devlog 3 | In this past week i got my package with the modules that i will need to make the mp3 player on a breadboard , but i had forgot to get the microSd module , so i couldn’t complete the prototype. I also updated my pcb by addind a boot button and a type-c usb port so i can upload the firmware. The firmware is not yet finished and i do not know how to code it so i want my breadboard project to be done so i can write it easialy....
|
1793069317.3848436
|
1793674117.3848436
|
|
67000
|
neo-note by @tejasv | Stardance
|
tejasv
|
0
|
1.85
|
0
|
[]
|
[{"post_id": 75805, "ts": "202 [{"post_id": 75805, "ts": "2026-10-01T06:22:20Z", "hours": 0.5647, "text": "completed the mongo DB and supabase authorization"}, {"post_id": 75584, "ts": "2026-09-30T14:14:06Z", "hours": 0.5636, "text": "completed the data base work and the api routing ,without ai"}, {"post_id": 75525, "ts": "2026-09-30T11:30:21Z", "hours": 0.7222, "text": "completed the core model backend and working faster to get it done today"}]...
|
Title: neo-note by @tejasv | Stardance
Devlogs:
c Title: neo-note by @tejasv | Stardance
Devlogs:
completed the core model backend and working faster to get it done today
completed the data base work and the api routing ,without ai
completed the mongo DB and supabase authorization...
|
1792464547.6548502
|
1793328547.6548502
|
|
37114
|
Slack Bot with a Humor by @Sai_Shreyansh | Stardan Slack Bot with a Humor by @Sai_Shreyansh | Stardance...
|
Sai_Shreyansh
|
1
|
1.0
|
1
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T06:42:09Z", "hours": 1.0, "multiplier": 1.37, "payout": 1, "blessing": "neutral", "text": "I made a Slack Bot, the difficult part was waiting for Nest to get approved for me and I’m happy that this came out good, as this is the first real project I’ve done. You can test this in the Slack bot-spam channel", "repo": "https://github.com/saishreyansh28-ux/Slack-Bot-Stardance", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354?_gl=1*1d6g81a*_gcl_au*MjA4NTgwODU1Mi4xNzkwNjA3OTcw"}]...
|
[{"post_id": 75806, "ts": "202 [{"post_id": 75806, "ts": "2026-10-01T06:33:15Z", "hours": 0.3797, "text": "Completed the thing fully!"}, {"post_id": 74944, "ts": "2026-09-28T17:26:58Z", "hours": 0.5036, "text": "got the code part done"}]...
|
Title: Slack Bot with a Humor by @Sai_Shreyansh | Title: Slack Bot with a Humor by @Sai_Shreyansh | Stardance
Devlogs:
got the code part done
Completed the thing fully!
Ships:
I made a Slack Bot, the difficult part was waiting for Nest to get approved for me and I’m happy that this came out good, as this is the first real project I’ve done. You can test this in the Slack bot-spam channel...
|
1793152429.549205
|
1793238829.549205
|
|
61240
|
My first slack bot! by @CosmicCraft | Stardance
|
CosmicCraft
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T07:21:16Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did you build? I created a custom Slack bot using Node.js and @slack /bolt framework on a Hack Club Nest Linux server that constantly works as a systemd background process and reacts to slash commands all day long. What was tricky? Working in the Linux command line was difficult at first. I had to find out how to SSH using IPv6 address, fix the npm installation failure due to the lack of a package.json file and securely create .env variables directly in the server using nano editor. What are you proud of? The thing I am proud of is the ability to run my bot constantly in the background. Creating a systemd file for the first time and seeing the status “active (running)” on the server means I have managed to deploy an application that works constantly. What should people know to test your project? In order to test the project, one has to join the workspace with the bot on Slack and use the slash command. As it works constantly on Nest, it will instantly respond without any need of my laptop being turned on.", "repo": "https://github.com/AIDigitalDreamer/SlackBOT", "demo": "https://hackclub.enterprise.slack.com/archives/C0C6KGD262V"}]...
|
[{"post_id": 75811, "ts": "202 [{"post_id": 75811, "ts": "2026-10-01T07:12:10Z", "hours": 0.3217, "text": "Dev Log: Setting up a Slack Bot that Runs 24/7 What I’ve Built: Slack bot in Node.js using @slack /bolt module, deployed and kept running on my Hack Club Nest Linux server. How I Did It: Setting Up: Set up my bot in the Slack API using Socket Mode and generated my tokens. Connecting to Server: SSH’ed into my Nest server. Initially ran into timeout issue with IPv4 IP, but was able to connect through my public IPv6 IP. The Blocker: Installed Git and Node.js on my server, then cloned my repo. My npm install command was unsuccessful since I hadn’t pushed my package.json file. Quickly fixed this by adding the package.json file through GitHub UI and running git pull on the server. Going 24/7: Manually created my .env file in the server. To keep my bot running even when I close my computer, I created my own systemd background service (slackbot.service) for the node process. Result: Success!"}]...
|
Title: My first slack bot! by @CosmicCraft | Stard Title: My first slack bot! by @CosmicCraft | Stardance
Devlogs:
Dev Log: Setting up a Slack Bot that Runs 24/7 What I’ve Built: Slack bot in Node.js using @slack /bolt module, deployed and kept running on my Hack Club Nest Linux server. How I Did It: Setting Up: Set up my bot in the Slack API using Socket Mode and generated my tokens. Connecting to Server: SSH’ed into my Nest server. Initially ran into timeout issue with IPv4 IP, but was able to connect through my public IPv6 IP. The Blocker: Installed Git and Node.js on my server, then cloned my repo. My npm install command was unsuccessful since I hadn’t pushed my package.json file. Quickly fixed this by adding the package.json file through GitHub UI and running git pull on the server. Going 24/7: Manually created my .env file in the server. To keep my bot running even when I close my computer, I created my own systemd background service (slackbot.service) for the node process. Result: Success!
Ships:
What did you build? I created a custom Slack bot using Node.js and @slack /bolt framework on a Hack Club Nest Linux server that constantly works as a systemd background process and reacts to slash commands all day long. What was tricky? Working in the Linux command line was difficult at first. I had to find out how to SSH using IPv6 address, fix the npm installation failure due to the lack of a package.json file and securely create .env variables directly in the server using nano editor. What are you proud of? The thing I am proud of is the ability to run my bot constantly in the background. Creating a systemd file for the first time and seeing the status “active (running)” on the server means I have managed to deploy an application that works constantly. What should people know to test your project? In order to test the project, one has to join the workspace with the bot on Slack and use the slash command. As it works constantly on Nest, it will instantly respond without any need of my laptop being turned on....
|
1793209692.1887045
|
1793296092.1887045
|
|
67211
|
Stardance by @Lazyllama | Stardance
|
Lazyllama
|
1
|
11.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T07:20:19Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "#teambukubuku", "repo": "https://github.com/lazylllama/stardance", "demo": "https://stardance.hackclub.com"}]...
|
[{"post_id": 75812, "ts": "202 [{"post_id": 75812, "ts": "2026-10-01T07:16:21Z", "hours": 11.1264, "text": "My pull requests to stardance! Over 20 in total I’m sorry for not writing a very long and explanatory text but theres just too much to include <3 https://github.com/hackclub/stardance/pull/1252 https://github.com/hackclub/stardance/pull/938 https://github.com/hackclub/stardance/pull/1004 https://github.com/hackclub/stardance/pull/940 https://github.com/hackclub/stardance/pull/935 https://github.com/hackclub/stardance/pull/903 https://github.com/hackclub/stardance/pull/388 https://github.com/hackclub/stardance/pull/835 https://github.com/hackclub/stardance/pull/837 https://github.com/hackclub/stardance/pull/376 https://github.com/hackclub/stardance/pull/766 https://github.com/hackclub/stardance/pull/761 https://github.com/hackclub/stardance/pull/759 https://github.com/hackclub/stardance/pull/750 https://github.com/hackclub/stardance/pull/341 https://github.com/hackclub/stardance/pull/426 https://github.com/hackclub/stardance/pull/420 https://github.com/hackclub/stardance/pull/343 https://github.com/hackclub/stardance/pull/308"}]...
|
Title: Stardance by @Lazyllama | Stardance
Devlog Title: Stardance by @Lazyllama | Stardance
Devlogs:
My pull requests to stardance! Over 20 in total I’m sorry for not writing a very long and explanatory text but theres just too much to include <3 https://github.com/hackclub/stardance/pull/1252 https://github.com/hackclub/stardance/pull/938 https://github.com/hackclub/stardance/pull/1004 https://github.com/hackclub/stardance/pull/940 https://github.com/hackclub/stardance/pull/935 https://github.com/hackclub/stardance/pull/903 https://github.com/hackclub/stardance/pull/388 https://github.com/hackclub/stardance/pull/835 https://github.com/hackclub/stardance/pull/837 https://github.com/hackclub/stardance/pull/376 https://github.com/hackclub/stardance/pull/766 https://github.com/hackclub/stardance/pull/761 https://github.com/hackclub/stardance/pull/759 https://github.com/hackclub/stardance/pull/750 https://github.com/hackclub/stardance/pull/341 https://github.com/hackclub/stardance/pull/426 https://github.com/hackclub/stardance/pull/420 https://github.com/hackclub/stardance/pull/343 https://github.com/hackclub/stardance/pull/308
Ships:
#teambukubuku...
|
1793217062.3842158
|
1793303462.3842158
|
|
7626
|
Project Lodestone by @dexrn | Stardance
|
dexrn
|
0
|
6.21
|
0
|
[]
|
[{"post_id": 75820, "ts": "202 [{"post_id": 75820, "ts": "2026-10-01T08:00:50Z", "hours": 6.2139, "text": "Mine V3 WIP soon! Working on a nicer api for JOS, now fields can be directly deserialized into a native class. JOS is a project made primarily for reading and writing MineV3, which is serialized via ObjectOutputStream in the vanilla game. However, this will work for ANY object outputted by ObjectOutputStream once finished, and will output in the same format as well. https://github.com/team-lodestone/JavaObjectStreams"}]...
|
Title: Project Lodestone by @dexrn | Stardance
De Title: Project Lodestone by @dexrn | Stardance
Devlogs:
Mine V3 WIP soon! Working on a nicer api for JOS, now fields can be directly deserialized into a native class. JOS is a project made primarily for reading and writing MineV3, which is serialized via ObjectOutputStream in the vanilla game. However, this will work for ANY object outputted by ObjectOutputStream once finished, and will output in the same format as well. https://github.com/team-lodestone/JavaObjectStreams...
|
1793199338.2916398
|
1793804138.2916398
|
|
66613
|
Portfolio Website by @HackPlayAar | Stardance
|
HackPlayAar
|
1
|
9.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T08:04:36Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have created my personal portfolio website which I can use to add to my resume and get internship", "repo": "https://github.com/Aaravshah2806/Portfolio", "demo": "https://www.hackplayaar.me/"}]...
|
[{"post_id": 75821, "ts": "202 [{"post_id": 75821, "ts": "2026-10-01T08:02:04Z", "hours": 8.9672, "text": "I have created my personal portfolio website so i can add to my resume"}]...
|
Title: Portfolio Website by @HackPlayAar | Stardan Title: Portfolio Website by @HackPlayAar | Stardance
Devlogs:
I have created my personal portfolio website so i can add to my resume
Ships:
I have created my personal portfolio website which I can use to add to my resume and get internship...
|
1793216981.6245244
|
1793303381.6245244
|
|
43792
|
Teach Terminal by @Arsen | Stardance
|
Arsen
|
1
|
42.0
|
351
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T15:29:32Z", "hours": 42.0, "multiplier": 18.43, "payout": 351, "blessing": "neutral", "text": "Teach Terminal I made Teach Terminal - a browser-based Linux terminal simulator for learning basic Linux commands. The main problem I wanted to solve is that learning Linux from documentation can be very passive. You read what cd or chmod does, but you don’t really remember it until you use it yourself. Also, using a real Linux system can be a little scary for beginners because one wrong command can cause problems. Teach Terminal gives you a fake Linux filesystem where you can practice without breaking a real computer. You can log in, choose a mode, and start learning. There are 25 lessons in 5 sections: Introduction, Navigation, Files, Text & Redirection, and Permissions. Every lesson has a small lecture and then practice. In the practice you need to type commands yourself, for example pwd , ls -la , chmod 755 , or sudo chown root file.txt . The terminal gives output and errors similar to what you can get in a real Ubuntu terminal. Note: This is a simulation. It does not enforce all Linux permissions and security rules, so some commands may behave differently than on a real system. What was challenging The fake filesystem was one of the harder parts. I made two classes for it. FileSystem handles the filesystem tree and navigation, and file represents the individual files and folders. It also stores things like permissions, owner, size and modification date. Getting absolute paths working was also a little difficult. I needed to go from the current file or folder to its parents until I reach the root. It is kind of like following a linked list backwards. Another problem was checking commands in multi-step practices. For example, when a user runs sudo chown root file.txt , the practice checker needs to check the whole command and not only chown root file.txt . I also had problems with resetting the practice state. If I make a folder with mkdir projects and then start the same practice again, it will fail because the folder already exists. So I needed to reset the practice filesystem when starting it again. Things I am happy with The lesson engine is probably the part I worked most on. It handles the lecture, practice, success state, and the progress for each step. I also made the lesson window draggable and minimizable. Pressing Escape can toggle the window. The terminal currently supports 16 commands and some extra features like flags, redirection ( > , >> , < , 2> ), tab autocomplete, arrow-key command history, and sudo with password checking. I also added 3 themes: Ubuntu, Hacker and Kali. The themes are used across the different pages. How to test Open the demo link. Go to Settings and choose a theme: Ubuntu, Hacker, or Kali. Log in with a valid username, machine name and password. Choose Guided Path if you want to try the lessons, or Free Exploration if you just want to use the terminal. In a lesson, read the lecture and click Start Practice . Type the commands in the terminal and follow the steps. Some commands you can try: pwd ls -la mkdir test cd test touch file.txt chmod 755 file.txt sudo chown root file.txt The project is made with plain HTML, CSS and JavaScript. I didn’t use frameworks or external dependencies.", "repo": "https://github.com/Arsen-Gevorgyan/teach-terminal", "demo": "https://arsen-gevorgyan.github.io/teach-terminal/"}]...
|
[{"post_id": 75823, "ts": "202 [{"post_id": 75823, "ts": "2026-10-01T08:23:43Z", "hours": 4.2042, "text": "Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I finished writing all 25 lessons and fixed several issues with the lesson system. The lessons are organized into 5 sections - Introduction, Navigation, Files, Text & Redirection, and Permissions - plus a final congratulations lesson. Each practice lesson has multiple steps, so instead of a single command to type, the user might create a file, change its permissions, and verify with ls -l . The window tracks progress with markers like [x] , [>] , and [ ] so it is clear where the user is. I also fixed bugs I found while testing the flow: The lesson window didn’t reset the filesystem between practices. If you completed mkdir projects once, replaying the lesson would fail because the folder already existed. Now the filesystem resets to a clean state at the start of every practice lesson. Sudo commands weren’t detected by the practice check. The checker only saw the inner command ( chown root file.txt ), not the full sudo chown root file.txt . Fixed by passing the full command through. Lesson 25 no longer has a practice - it just says “Congratulations! You finished Teach Terminal.” with a short message about what the user learned. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation mode.html - Mode selection: Free Exploration or Guided Path lessons.html - Course overview with sections and lesson cards main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to mode page filesystem.js - Fake Linux filesystem with files, folders, permissions, owners, groups, sizes, and modification times terminal.js - Terminal input handling, prompt display, line management, colored output, sudo flow command.js - Command recognition and execution lessons-data.js - All 25 lessons organized into 5 sections lesson.js - Renders the lessons page timeline lesson-window.js - Runs the lesson window inside the terminal Current Commands pwd , ls , cd , mkdir , touch , echo , cat , rm , cp , mv , chmod , chown , sudo , clear , help , history With flags for most commands, redirection ( > , >> , < , 2> ), Tab autocomplete, arrow-key history, !! and !n expansion, and per-command help. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Add grep , head , tail Add pipes ( | ) and shell operators ( && , || , ; ) Wildcards and brace expansion Try It Live Demo"}, {"post_id": 74998, "ts": "2026-09-28T20:14:08Z", "hours": 2.3608, "text": "Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I built the lesson window - the floating panel that runs inside the terminal during lessons. This is the piece that connects the lessons page to the terminal itself. When a user picks a lesson from the overview, the terminal opens with ?lesson=N in the URL. The lesson window reads that number, finds the lesson in the data file, and appears in the top-right corner of the screen. The window has three states: Lecture - shows the lesson text explaining the concept. The user reads and clicks “Start Practice” (or “Complete” for intro lessons). Practice - the window changes visually. Its border and title switch to an amber color, and a “PRACTICE:” prefix appears in the title. This makes it obvious that it’s time to do something, not just read. The user types the command in the terminal below. Success - when the expected command is typed, the window shows the success message and a “Next Lesson” button appears. Clicking it swaps the window content to the next lesson without reloading the page. The window is also draggable by its title bar. The user can move it anywhere, minimize it with - , or close it with × (which returns to the lessons page). Pressing Escape hides and shows the window. I also added replay support. If a lesson is already complete, the user can open it again, read the lecture, and try the practice a second time. The window still shows the success message, but the lesson status stays DONE - it does not re-mark anything. Some issues I hit: The intro lessons blocked the “Next Lesson” button because they were being re-completed in a loop. I fixed this by tracking a showingSuccess variable that tells the code whether we’re on the success screen or the lecture. The practice mode class wasn’t being added because the flow checked lessonComplete before checking whether we were in the practice phase. I reordered the checks so practice renders correctly even for replayed lessons. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation mode.html - Mode selection: Free Exploration or Guided Path lessons.html - Course overview with sections and lesson cards main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to mode page filesystem.js - Fake Linux filesystem with files, folders, permissions, owners, groups, sizes, and modification times terminal.js - Terminal input handling, prompt display, line management, colored output command.js - Command recognition and execution lessons-data.js - All 25 lessons organized into 6 sections lesson.js - Renders the lessons page timeline lesson-window.js - Runs the lesson window inside the terminal Current Commands pwd , ls , cd , mkdir , touch , echo , cat , rm , cp , mv , clear , help , history With flags for most commands, redirection ( > , >> , < , 2> ), Tab autocomplete, arrow-key history, !! and !n expansion, and per-command help. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build chmod , chown , sudo for the Permissions section Write lesson content for lessons 21-24 Build the Final Mission with a timer and game-style objectives Try It Live Demo"}, {"post_id": 73734, "ts": "2026-09-25T20:12:13Z", "hours": 6.7292, "text": "Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I built the lessons system. This is the biggest step so far - the part that turns the terminal into a real teaching tool. The lessons system has three parts: The lessons overview page ( lessons.html ) shows all lessons organized into sections: Introduction Navigation Files Text & Redirection Permissions Final Mission Each lesson appears as a card with a status: START (unlocked), DONE (completed), or LOCK (not yet unlocked). Intro lessons are always open so users can read them or skip. Navigation lessons unlock one at a time. Later sections unlock when the previous section is finished. The lessons data file ( lessons-data.js ) stores all lesson content in one place. Each lesson has a lecture that explains the concept and a practice task with an expected command. The lesson engine ( lesson-window.js ) will run inside main.html . It opens a floating window with the current lesson, shows the lecture, then the practice. When the user types the correct command, the lesson completes and unlocks the next one. I also built the mode selection page ( mode.html ). After login, the user picks between two paths: Free Exploration : opens the terminal with no lessons Guided Path : opens the lessons overview Progress saves to localStorage so completed lessons stay completed. Some issues I hit: The unlock logic had a bug where Intro lessons blocked Navigation. I fixed it by skipping intro sections in the unlock check. CSS conflicts between .lesson-subtitle (used inside lesson cards) and .lessons-subtitle (used on the page). I renamed them to avoid mixing styles. The lessons page inherited overflow: hidden from the body, so it could not scroll. I added a body.lessons-page override. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation mode.html - Mode selection: Free Exploration or Guided Path lessons.html - Course overview with sections and lesson cards main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to mode page filesystem.js - Fake Linux filesystem with files, folders, permissions, owners, groups, sizes, and modification times terminal.js - Terminal input handling, prompt display, line management, colored output commands.js - Command recognition and execution lessons-data.js - All 25 lessons organized into 6 sections lesson.js - Renders the lessons page timeline Current Commands pwd , ls , cd , mkdir , touch , echo , cat , rm , cp , mv , clear , help , history With flags for most commands, redirection ( > , >> , < , 2> ), Tab autocomplete, arrow-key history, !! and !n expansion, and per-command help. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build the lesson window inside main.html (lecture, practice, success phases) Make the window draggable and minimizable with an Escape key toggle Build the Final Mission with game-style objectives Add remaining commands ( grep , head , tail , chmod , chown ) Try It Live Demo"}, {"post_id": 72453, "ts": "2026-09-23T00:38:08Z", "hours": 8.2353, "text": "Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I added redirection to the terminal. Commands can now read from files and write to them instead of only printing to the screen. The terminal now supports: > - write output to a file (overwrites) >> - append output to a file < - read input from a file 2> - redirect error output to a file I also connected < to cat so it can read from a file through stdin. To make this work, I had to refactor how commands run. The old processCommand returned output directly. I renamed it to executeCommand and wrote a new processCommand wrapper above it that parses redirection operators before the command runs, then decides where the output goes. The refactor was harder than expected. I hit several bugs - a typo in stderrMatch , a missing $ anchor in a regex, and a duplicate if block that used the wrong variable. I also had to fix catResults and lineNumber which I deleted during the refactor without realizing. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, and theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to terminal filesystem.js - Fake Linux filesystem with files, folders, permissions, owners, groups, sizes, and modification times terminal.js - Terminal input handling, prompt display, line management, colored output commands.js - Command recognition and execution Current Commands pwd , ls , cd , mkdir , touch , echo , cat , rm , cp , mv , clear , help With flags for most commands, redirection ( > , >> , < , 2> ), and per-command help. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Command history (up/down arrow keys) Tab autocomplete history command, !! , !n Add grep , head , tail Add chmod , chown Wildcards, brace expansion, && , || Build the lesson system (lectures + practice missions) Try It Live Demo"}, {"post_id": 51663, "ts": "2026-08-21T13:49:47Z", "hours": 2.9792, "text": "Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I built the fake filesystem and connected it to the terminal. The terminal now feels like a real Linux system. The filesystem supports: pwd - shows current directory ls - lists files and folders with colors (blue for directories, green for executables, white for files) ls -l - shows permissions, owner, group, and name cd - navigate with ~ , . , .. , and absolute paths mkdir - create folders touch - create files The prompt updates when navigating directories. It shows ~ for the home directory and the full path everywhere else. I also added realistic bash error messages. Invalid flags, missing arguments, and wrong paths all show proper errors like a real terminal would. The terminal now has 7 working commands with real filesystem behavior. Next step is building the lesson system that teaches these commands one by one. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, and theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to terminal filesystem.js - Fake Linux filesystem with files, folders, permissions, and navigation terminal.js - Terminal input handling, prompt display, line management, colored output commands.js - Command recognition ( help , pwd , clear , ls , cd , mkdir , touch ) Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build the lesson system (lectures + practice missions) Add more commands ( cat , rm , cp , mv , chmod , chown ) Add command history (up/down arrow keys) Add redirection ( > , >> , < ) Improve mobile experience Try It Live Demo"}, {"post_id": 45917, "ts": "2026-08-12T18:06:17Z", "hours": 3.5864, "text": "Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I built the login page. It’s a page where the user enters their username, machine name, and password before entering the terminal. The form validates each field: Username must be 4–9 characters, start with a letter, and contain only letters and numbers Machine name follows the same rules Password must be 8–19 characters If something is wrong, an error message appears below the form showing what needs to be fixed. After all fields are entered correctly, the data is saved and the user is redirected to the terminal. The terminal itself is not fully finished yet — commands work, but there’s no filesystem and no lessons. That’s the next step. Completed index.html — Start menu with Start and Settings buttons settings.html — Settings page with three themes (Ubuntu, Hacker, Kali) login.html — Login page with username, machine name, and password validation main.html — Interactive terminal interface style.css — Main styling, animated gradients, glassmorphism UI, and theme colors login.css — Login page styling with themed backgrounds settings.js — Saves the selected theme using localStorage theme.js — Loads the saved theme and applies it automatically login.js — Form validation and redirect to terminal terminal.js — Terminal input handling, prompt display, line management commands.js — Command recognition ( help , pwd , clear , whoami , date , echo ) Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build a fake filesystem ( cd , ls , mkdir , touch ) Add file permissions ( chmod , chown , sudo ) Create lessons and practice missions Add command history (up/down arrow keys) Try It Live Demo"}, {"post_id": 40664, "ts": "2026-08-04T11:00:02Z", "hours": 13.4225, "text": "Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. What I Built I started the project by creating the basic structure of the website and the main navigation. Completed index.html — Start menu with Start and Settings buttons. settings.html — Settings page. main.html — Initial game page. style.css — Main styling, animated gradients, glassmorphism UI, and theme colors. settings.js — Saves the selected theme using localStorage . theme.js — Loads the saved theme and applies it automatically. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build the interactive terminal. Add Linux commands and command processing. Create lessons and practice missions. Improve the mobile experience."}]...
|
Title: Teach Terminal by @Arsen | Stardance
Devlo Title: Teach Terminal by @Arsen | Stardance
Devlogs:
Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. What I Built I started the project by creating the basic structure of the website and the main navigation. Completed index.html — Start menu with Start and Settings buttons. settings.html — Settings page. main.html — Initial game page. style.css — Main styling, animated gradients, glassmorphism UI, and theme colors. settings.js — Saves the selected theme using localStorage . theme.js — Loads the saved theme and applies it automatically. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build the interactive terminal. Add Linux commands and command processing. Create lessons and practice missions. Improve the mobile experience.
Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I built the login page. It’s a page where the user enters their username, machine name, and password before entering the terminal. The form validates each field: Username must be 4–9 characters, start with a letter, and contain only letters and numbers Machine name follows the same rules Password must be 8–19 characters If something is wrong, an error message appears below the form showing what needs to be fixed. After all fields are entered correctly, the data is saved and the user is redirected to the terminal. The terminal itself is not fully finished yet — commands work, but there’s no filesystem and no lessons. That’s the next step. Completed index.html — Start menu with Start and Settings buttons settings.html — Settings page with three themes (Ubuntu, Hacker, Kali) login.html — Login page with username, machine name, and password validation main.html — Interactive terminal interface style.css — Main styling, animated gradients, glassmorphism UI, and theme colors login.css — Login page styling with themed backgrounds settings.js — Saves the selected theme using localStorage theme.js — Loads the saved theme and applies it automatically login.js — Form validation and redirect to terminal terminal.js — Terminal input handling, prompt display, line management commands.js — Command recognition ( help , pwd , clear , whoami , date , echo ) Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build a fake filesystem ( cd , ls , mkdir , touch ) Add file permissions ( chmod , chown , sudo ) Create lessons and practice missions Add command history (up/down arrow keys) Try It Live Demo
Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I built the fake filesystem and connected it to the terminal. The terminal now feels like a real Linux system. The filesystem supports: pwd - shows current directory ls - lists files and folders with colors (blue for directories, green for executables, white for files) ls -l - shows permissions, owner, group, and name cd - navigate with ~ , . , .. , and absolute paths mkdir - create folders touch - create files The prompt updates when navigating directories. It shows ~ for the home directory and the full path everywhere else. I also added realistic bash error messages. Invalid flags, missing arguments, and wrong paths all show proper errors like a real terminal would. The terminal now has 7 working commands with real filesystem behavior. Next step is building the lesson system that teaches these commands one by one. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, and theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to terminal filesystem.js - Fake Linux filesystem with files, folders, permissions, and navigation terminal.js - Terminal input handling, prompt display, line management, colored output commands.js - Command recognition ( help , pwd , clear , ls , cd , mkdir , touch ) Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build the lesson system (lectures + practice missions) Add more commands ( cat , rm , cp , mv , chmod , chown ) Add command history (up/down arrow keys) Add redirection ( > , >> , < ) Improve mobile experience Try It Live Demo
Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I added redirection to the terminal. Commands can now read from files and write to them instead of only printing to the screen. The terminal now supports: > - write output to a file (overwrites) >> - append output to a file < - read input from a file 2> - redirect error output to a file I also connected < to cat so it can read from a file through stdin. To make this work, I had to refactor how commands run. The old processCommand returned output directly. I renamed it to executeCommand and wrote a new processCommand wrapper above it that parses redirection operators before the command runs, then decides where the output goes. The refactor was harder than expected. I hit several bugs - a typo in stderrMatch , a missing $ anchor in a regex, and a duplicate if block that used the wrong variable. I also had to fix catResults and lineNumber which I deleted during the refactor without realizing. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, and theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to terminal filesystem.js - Fake Linux filesystem with files, folders, permissions, owners, groups, sizes, and modification times terminal.js - Terminal input handling, prompt display, line management, colored output commands.js - Command recognition and execution Current Commands pwd , ls , cd , mkdir , touch , echo , cat , rm , cp , mv , clear , help With flags for most commands, redirection ( > , >> , < , 2> ), and per-command help. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Command history (up/down arrow keys) Tab autocomplete history command, !! , !n Add grep , head , tail Add chmod , chown Wildcards, brace expansion, && , || Build the lesson system (lectures + practice missions) Try It Live Demo
Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I built the lessons system. This is the biggest step so far - the part that turns the terminal into a real teaching tool. The lessons system has three parts: The lessons overview page ( lessons.html ) shows all lessons organized into sections: Introduction Navigation Files Text & Redirection Permissions Final Mission Each lesson appears as a card with a status: START (unlocked), DONE (completed), or LOCK (not yet unlocked). Intro lessons are always open so users can read them or skip. Navigation lessons unlock one at a time. Later sections unlock when the previous section is finished. The lessons data file ( lessons-data.js ) stores all lesson content in one place. Each lesson has a lecture that explains the concept and a practice task with an expected command. The lesson engine ( lesson-window.js ) will run inside main.html . It opens a floating window with the current lesson, shows the lecture, then the practice. When the user types the correct command, the lesson completes and unlocks the next one. I also built the mode selection page ( mode.html ). After login, the user picks between two paths: Free Exploration : opens the terminal with no lessons Guided Path : opens the lessons overview Progress saves to localStorage so completed lessons stay completed. Some issues I hit: The unlock logic had a bug where Intro lessons blocked Navigation. I fixed it by skipping intro sections in the unlock check. CSS conflicts between .lesson-subtitle (used inside lesson cards) and .lessons-subtitle (used on the page). I renamed them to avoid mixing styles. The lessons page inherited overflow: hidden from the body, so it could not scroll. I added a body.lessons-page override. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation mode.html - Mode selection: Free Exploration or Guided Path lessons.html - Course overview with sections and lesson cards main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to mode page filesystem.js - Fake Linux filesystem with files, folders, permissions, owners, groups, sizes, and modification times terminal.js - Terminal input handling, prompt display, line management, colored output commands.js - Command recognition and execution lessons-data.js - All 25 lessons organized into 6 sections lesson.js - Renders the lessons page timeline Current Commands pwd , ls , cd , mkdir , touch , echo , cat , rm , cp , mv , clear , help , history With flags for most commands, redirection ( > , >> , < , 2> ), Tab autocomplete, arrow-key history, !! and !n expansion, and per-command help. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build the lesson window inside main.html (lecture, practice, success phases) Make the window draggable and minimizable with an Escape key toggle Build the Final Mission with game-style objectives Add remaining commands ( grep , head , tail , chmod , chown ) Try It Live Demo
Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I built the lesson window - the floating panel that runs inside the terminal during lessons. This is the piece that connects the lessons page to the terminal itself. When a user picks a lesson from the overview, the terminal opens with ?lesson=N in the URL. The lesson window reads that number, finds the lesson in the data file, and appears in the top-right corner of the screen. The window has three states: Lecture - shows the lesson text explaining the concept. The user reads and clicks “Start Practice” (or “Complete” for intro lessons). Practice - the window changes visually. Its border and title switch to an amber color, and a “PRACTICE:” prefix appears in the title. This makes it obvious that it’s time to do something, not just read. The user types the command in the terminal below. Success - when the expected command is typed, the window shows the success message and a “Next Lesson” button appears. Clicking it swaps the window content to the next lesson without reloading the page. The window is also draggable by its title bar. The user can move it anywhere, minimize it with - , or close it with × (which returns to the lessons page). Pressing Escape hides and shows the window. I also added replay support. If a lesson is already complete, the user can open it again, read the lecture, and try the practice a second time. The window still shows the success message, but the lesson status stays DONE - it does not re-mark anything. Some issues I hit: The intro lessons blocked the “Next Lesson” button because they were being re-completed in a loop. I fixed this by tracking a showingSuccess variable that tells the code whether we’re on the success screen or the lecture. The practice mode class wasn’t being added because the flow checked lessonComplete before checking whether we were in the practice phase. I reordered the checks so practice renders correctly even for replayed lessons. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation mode.html - Mode selection: Free Exploration or Guided Path lessons.html - Course overview with sections and lesson cards main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to mode page filesystem.js - Fake Linux filesystem with files, folders, permissions, owners, groups, sizes, and modification times terminal.js - Terminal input handling, prompt display, line management, colored output command.js - Command recognition and execution lessons-data.js - All 25 lessons organized into 6 sections lesson.js - Renders the lessons page timeline lesson-window.js - Runs the lesson window inside the terminal Current Commands pwd , ls , cd , mkdir , touch , echo , cat , rm , cp , mv , clear , help , history With flags for most commands, redirection ( > , >> , < , 2> ), Tab autocomplete, arrow-key history, !! and !n expansion, and per-command help. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build chmod , chown , sudo for the Permissions section Write lesson content for lessons 21-24 Build the Final Mission with a timer and game-style objectives Try It Live Demo
Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I finished writing all 25 lessons and fixed several issues with the lesson system. The lessons are organized into 5 sections - Introduction, Navigation, Files, Text & Redirection, and Permissions - plus a final congratulations lesson. Each practice lesson has multiple steps, so instead of a single command to type, the user might create a file, change its permissions, and verify with ls -l . The window tracks progress with markers like [x] , [>] , and [ ] so it is clear where the user is. I also fixed bugs I found while testing the flow: The lesson window didn’t reset the filesystem between practices. If you completed mkdir projects once, replaying the lesson would fail because the folder already existed. Now the filesystem resets to a clean state at the start of every practice lesson. Sudo commands weren’t detected by the practice check. The checker only saw the inner command ( chown root file.txt ), not the full sudo chown root file.txt . Fixed by passing the full command through. Lesson 25 no longer has a practice - it just says “Congratulations! You finished Teach Terminal.” with a short message about what the user learned. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation mode.html - Mode selection: Free Exploration or Guided Path lessons.html - Course overview with sections and lesson cards main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to mode page filesystem.js - Fake Linux filesystem with files, folders, permissions, owners, groups, sizes, and modification times terminal.js - Terminal input handling, prompt display, line management, colored output, sudo flow command.js - Command recognition and execution lessons-data.js - All 25 lessons organized into 5 sections lesson.js - Renders the lessons page timeline lesson-window.js - Runs the lesson window inside the terminal Current Commands pwd , ls , cd , mkdir , touch , echo , cat , rm , cp , mv , chmod , chown , sudo , clear , help , history With flags for most commands, redirection ( > , >> , < , 2> ), Tab autocomplete, arrow-key history, !! and !n expansion, and per-command help. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Add grep , head , tail Add pipes ( | ) and shell operators ( && , || , ; ) Wildcards and brace expansion Try It Live Demo
Ships:
Teach Terminal I made Teach Terminal - a browser-based Linux terminal simulator for learning basic Linux commands. The main problem I wanted to solve is that learning Linux from documentation can be very passive. You read what cd or chmod does, but you don’t really remember it until you use it yourself. Also, using a real Linux system can be a little scary for beginners because one wrong command can cause problems. Teach Terminal gives you a fake Linux filesystem where you can practice without breaking a real computer. You can log in, choose a mode, and start learning. There are 25 lessons in 5 sections: Introduction, Navigation, Files, Text & Redirection, and Permissions. Every lesson has a small lecture and then practice. In the practice you need to type commands yourself, for example pwd , ls -la , chmod 755 , or sudo chown root file.txt . The terminal gives output and errors similar to what you can get in a real Ubuntu terminal. Note: This is a simulation. It does not enforce all Linux permissions and security rules, so some commands may behave differently than on a real system. What was challenging The fake filesystem was one of the harder parts. I made two classes for it. FileSystem handles the filesystem tree and navigation, and file represents the individual files and folders. It also stores things like permissions, owner, size and modification date. Getting absolute paths working was also a little difficult. I needed to go from the current file or folder to its parents until I reach the root. It is kind of like following a linked list backwards. Another problem was checking commands in multi-step practices. For example, when a user runs sudo chown root file.txt , the practice checker needs to check the whole command and not only chown root file.txt . I also had problems with resetting the practice state. If I make a folder with mkdir projects and then start the same practice again, it will fail because the folder already exists. So I needed to reset the practice filesystem when starting it again. Things I am happy with The lesson engine is probably the part I worked most on. It handles the lecture, practice, success state, and the progress for each step. I also made the lesson window draggable and minimizable. Pressing Escape can toggle the window. The terminal currently supports 16 commands and some extra features like flags, redirection ( > , >> , < , 2> ), tab autocomplete, arrow-key command history, and sudo with password checking. I also added 3 themes: Ubuntu, Hacker and Kali. The themes are used across the different pages. How to test Open the demo link. Go to Settings and choose a theme: Ubuntu, Hacker, or Kali. Log in with a valid username, machine name and password. Choose Guided Path if you want to try the lessons, or Free Exploration if you just want to use the terminal. In a lesson, read the lecture and click Start Practice . Type the commands in the terminal and follow the steps. Some commands you can try: pwd ls -la mkdir test cd test touch file.txt chmod 755 file.txt sudo chown root file.txt The project is made with plain HTML, CSS and JavaScript. I didn’t use frameworks or external dependencies....
|
1793148558.84946
|
1793234958.84946
|
|
58906
|
Fatty Cat Resort by @PockyCqt | Stardance
|
PockyCqt
|
0
|
27.67
|
0
|
[]
|
[{"post_id": 75825, "ts": "202 [{"post_id": 75825, "ts": "2026-10-01T08:24:53Z", "hours": 9.0811, "text": "Made animated water and surrounded the island in water to make the place like an island. Slowly shaping up into what the final product will look like. Switching to a more data driven design. Also made it so you can place cardboard boxes down which is where cats will sleep."}, {"post_id": 71088, "ts": "2026-09-20T08:57:02Z", "hours": 8.5889, "text": "Made basic GUI that allow you to change the editor you are currently using and when in the editor you can also change the brush of the editor. Fixed many bugs that came with the last update."}, {"post_id": 66445, "ts": "2026-09-12T08:53:41Z", "hours": 3.8553, "text": "Made simple tile map editing with dirt trails. The edges and corners automatically adjust according to where dirt is placed"}, {"post_id": 64757, "ts": "2026-09-09T12:16:26Z", "hours": 6.1486, "text": "Made tile map with a customer cursor and tile selector. Also made made the camera move by taking in keyboard input."}]...
|
Title: Fatty Cat Resort by @PockyCqt | Stardance
Title: Fatty Cat Resort by @PockyCqt | Stardance
Devlogs:
Made tile map with a customer cursor and tile selector. Also made made the camera move by taking in keyboard input.
Made simple tile map editing with dirt trails. The edges and corners automatically adjust according to where dirt is placed
Made basic GUI that allow you to change the editor you are currently using and when in the editor you can also change the brush of the editor. Fixed many bugs that came with the last update.
Made animated water and surrounded the island in water to make the place like an island. Slowly shaping up into what the final product will look like. Switching to a more data driven design. Also made it so you can place cardboard boxes down which is where cats will sleep....
|
1792774314.2704947
|
1793379114.2704947
|
|
55300
|
Sleep deprivation by @ravioli | Stardance
|
ravioli
|
0
|
5.92
|
0
|
[]
|
[{"post_id": 75828, "ts": "202 [{"post_id": 75828, "ts": "2026-10-01T08:40:09Z", "hours": 2.535, "text": "Made the case and i’m working on standoffs for the board"}, {"post_id": 65741, "ts": "2026-09-11T02:46:30Z", "hours": 1.165, "text": "started working in FreeCAD, i have no idea how to use this though"}, {"post_id": 62026, "ts": "2026-09-05T07:37:14Z", "hours": 1.0642, "text": "So I realized that I completely messed my my pcb design and had to start all over"}, {"post_id": 61606, "ts": "2026-09-04T16:20:17Z", "hours": 1.1525, "text": "Finally finished my pcb design"}]...
|
Title: Sleep deprivation by @ravioli | Stardance
Title: Sleep deprivation by @ravioli | Stardance
Devlogs:
Finally finished my pcb design
So I realized that I completely messed my my pcb design and had to start all over
started working in FreeCAD, i have no idea how to use this though
Made the case and i’m working on standoffs for the board...
|
1793159272.3134146
|
1793764072.3134146
|
|
17437
|
Website! by @Rishi | Stardance
|
Rishi
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T21:00:12Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a simple website (very simple) experimenting simple features such as headers, gifs, and text coloration and size only having a frontend to allow me to grasp the basics to further utilize HTML, CSS, and Javascript on a future, unrelated project.", "repo": "https://github.com/lakkireddyrr-max/hackatime-project-website", "demo": "https://lakkireddyrr-max.github.io/hackatime-project-website/"}]...
|
[{"post_id": 7583, "ts": "2026 [{"post_id": 7583, "ts": "2026-06-12T17:53:58Z", "hours": 0.6031, "text": "I’ve been working on building a functional website using HTML and alter specific elements of the frontend to creatline a baseline page for a website. My initial focuses were getting this text and altering whether it was header text or body text and using for smaller body text. Using this text, I altered aspects of it such as color or alignment through using style=”” to alter the elements of text throughout this webpage, even altering the background color to a beige to further experiment. Along with text, I also implemented a gif into my webpage using a website link rather than file and altered its alignment. To continue this project, I will continue to develop this frontend and further learn HTML coding language to pair along with a backend using JavaScript, with VS code."}]...
|
Title: Website! by @Rishi | Stardance
Devlogs:
I’ Title: Website! by @Rishi | Stardance
Devlogs:
I’ve been working on building a functional website using HTML and alter specific elements of the frontend to creatline a baseline page for a website. My initial focuses were getting this text and altering whether it was header text or body text and using for smaller body text. Using this text, I altered aspects of it such as color or alignment through using style=”” to alter the elements of text throughout this webpage, even altering the background color to a beige to further experiment. Along with text, I also implemented a gif into my webpage using a website link rather than file and altered its alignment. To continue this project, I will continue to develop this frontend and further learn HTML coding language to pair along with a backend using JavaScript, with VS code.
Ships:
I made a simple website (very simple) experimenting simple features such as headers, gifs, and text coloration and size only having a frontend to allow me to grasp the basics to further utilize HTML, CSS, and Javascript on a future, unrelated project....
|
1793285559.7762673
|
1793371959.7762673
|
|
66502
|
Lunar-Web-OS by @DEEPML18 | Stardance
|
DEEPML18
|
0
|
0.48
|
0
|
[]
|
[{"post_id": 75832, "ts": "202 [{"post_id": 75832, "ts": "2026-10-01T09:00:47Z", "hours": 0.4836, "text": "the First version of Lunar Web OS , Its running pure html 💪💪"}]...
|
Title: Lunar-Web-OS by @DEEPML18 | Stardance
Devl Title: Lunar-Web-OS by @DEEPML18 | Stardance
Devlogs:
the First version of Lunar Web OS , Its running pure html 💪💪...
|
1793098470.3119962
|
1793703270.3119962
|
|
58698
|
Kluba by @poski | Stardance
|
poski
|
0
|
9.57
|
0
|
[]
|
[{"post_id": 75835, "ts": "202 [{"post_id": 75835, "ts": "2026-10-01T09:10:09Z", "hours": 9.5661, "text": "Kluba2 - biggest redesign for adults, seniors and kids at all time.."}]...
|
Title: Kluba by @poski | Stardance
Devlogs:
Kluba Title: Kluba by @poski | Stardance
Devlogs:
Kluba2 - biggest redesign for adults, seniors and kids at all time.....
|
1792760066.3366332
|
1793364866.3366332
|
|
44849
|
ImtPad by @Imtiaz | Stardance
|
Imtiaz
|
0
|
4.87
|
0
|
[]
|
[{"post_id": 75841, "ts": "202 [{"post_id": 75841, "ts": "2026-10-01T10:00:40Z", "hours": 1.9003, "text": "Hell yeah, build done."}, {"post_id": 75819, "ts": "2026-10-01T07:53:37Z", "hours": 0.7367, "text": "received haclkpad kit, yayyyyyyyyy"}, {"post_id": 67257, "ts": "2026-09-13T10:08:47Z", "hours": 0.3333, "text": "Soldered 6 buttons to the pcb."}, {"post_id": 67240, "ts": "2026-09-13T09:24:32Z", "hours": 0.3094, "text": "i received the pcb’s for imtpad, yayy!"}, {"post_id": 63271, "ts": "2026-09-07T00:38:05Z", "hours": 0.7928, "text": "It’s coming!"}, {"post_id": 42389, "ts": "2026-08-07T02:34:39Z", "hours": 0.8, "text": "I actually did it all earlier and I was waiting for my passport so that I can verify. After verifying, I am posting. I actually reverse engineered this project from a guy named Nico. You can go and check out what I made on github."}]...
|
Title: ImtPad by @Imtiaz | Stardance
Devlogs:
I a Title: ImtPad by @Imtiaz | Stardance
Devlogs:
I actually did it all earlier and I was waiting for my passport so that I can verify. After verifying, I am posting. I actually reverse engineered this project from a guy named Nico. You can go and check out what I made on github.
It’s coming!
i received the pcb’s for imtpad, yayy!
Soldered 6 buttons to the pcb.
received haclkpad kit, yayyyyyyyyy
Hell yeah, build done....
|
1793299677.8476744
|
1793904477.8476744
|
|
36393
|
internet archive DS by @mikhailnotfish | Stardance
|
mikhailnotfish
|
1
|
33.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-08T23:53:42Z", "hours": 33.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "internetarchiveDS has been completed! i have changed the UI, made a 754 page long essay of a readME, and made a very detailed instruction manual of how to download and setup the program (it isnt plug and play) a suppose there isnt very much else to do now, i hope you have a nintendo DS! or you’ll have to download a video, as proof that it works. (sorry its big i tried to compress it)", "repo": "https://github.com/mikhailnotfish/InternetArchiveDS", "demo": "https://github.com/mikhailnotfish/proof-it-works/releases/tag/v1.0"}]...
|
[{"post_id": 75853, "ts": "202 [{"post_id": 75853, "ts": "2026-10-01T10:49:13Z", "hours": 5.4669, "text": "LADIES AND GENTLEMEN i am very happy to announce that, INTERNETARCHIVEDS IS ALMOST FINISHED!!!! in the previous devlog, i was facing a guru meditation error. i figured out that it was because i misspelt “ITCM” as “ITC” and therefore the whole video parser didnt load. one letter. i know. now, i have had about a thousand different issues with macroblock alignment, and finally figured out the issue- the AUDIO. i know, the audion has nothing to do with the video, but it ACTUALLY DOES! you see, the audio is loaded in before every frame… and the way gericom did it worked for itag7, but doesnt work for any other mpeg4 version. that audio placement, sets the macroblock back by one frame every time, corrupting the video. but now, i put a filter into the php server to only search for videos 20MiB and under, so that they play fast fast. now that the whole pull echo flush system works, all i need to do is remove the debug code, (it takes forever) change the ui, and picture for the top screen, and internetarchiveDS will be ready for you to use!!! if you have a ds of course. also i encoded a video to test on it, here it is for you guys to see!"}, {"post_id": 67193, "ts": "2026-09-13T07:56:08Z", "hours": 5.2714, "text": "as stardance begins to come to an end, the time crunch begins to get more serious. in these past 5 hours, i have gotten search to work perfectly, and ran into a guru meditation error, with some very strange hexadecimal values. for example the first 3 rows are all 00000000 and address and pc are both 00000030. things like r8 are ffffffff, and the stackdump is very unusual. there is a photo for you to see the stackdump for yourself. so far im still trying to get the vidfeo to play, i havent even started on the json parser yet! im using a pre- encoded video! anyway stay tuned to see if my 10 day holiday lock in will let me finish this project, and obtain the ultimate prize from the shop."}, {"post_id": 52184, "ts": "2026-08-22T08:41:22Z", "hours": 6.9197, "text": "ladies and gentlemen DO I HAVE A STORY TO TELL! i know, its been 20 days scince my last devlog… but ive made some uncomprehendable progress on the project. in these 7 hours, i have managed to get the proxy server to work with the archive, ive managed to get the dsi to not guru meditate, and actually connect to the wifi using the old wpa wifi protocol! that was the problem with the library im using, DSWIFI. the ersion of dswifi im using, is an old one, from 10 years ago. back befre the 2.0 update when they added calcio. back then dswifi didnt hav support for anything other that wpa, no wap, 1,2,3 nothing. after that, i actally managed to get working search results! i hosted the php proxy using msys bash, whatever works i guess, and the dsi is now recieving and transmitting requests and data through the proxy to the internetarchive. but my next bottleneck! back ten years ago, you tube was really weak, primitive, low quality. and even then, the dsi had do you every last rescource on te lowest data type, ITAG 7, to be able to run. but the project extracts RAW JSON METADATA, which as you know can be really bulky. so my next move will be to make a filter for my php server, to only show results under a certain size, so the json metadata will be processable."}, {"post_id": 39326, "ts": "2026-08-02T07:25:10Z", "hours": 1.6669, "text": "today I spent a lot of time investigating the original YouTubeDS ROM to figure out what is missing and why my rebuilt version does not perfectly match the original.The good news: I was able to confirm that the ROM filesystem is not the issue. Using Tinke and ndstool, I extracted both the original ROM and my rebuilt ROM, then compared all of the files inside them. The fonts, keyboard assets, menus, logos, and other resources are identical.This means the problem is somewhere deeper: inside the compiled ARM9 binary.The original YouTubeDS ARM9 is around 447KB, while my rebuilt version is around 335KB. That missing size is not from assets or files — it is from the compiled code itself. Right now I do not know exactly what is different between the two builds, and without more information it is difficult to recreate the original binary.I have also been looking through the source code, build files, and compiler output to find possible causes, but the remaining possibilities are things like different compiler settings, missing build steps, or code that was present in Gericom’s original environment but is not available anymore.At this point, the biggest step forward is waiting for a response from Gericom. Since he created YouTubeDS originally, he may be able to provide information about the original build environment, missing files, or how the original ROM was produced.Until then, there is not much more I can safely change without risking moving further away from the original. The current goal is still to preserve YouTubeDS and make it usable again for InternetArchiveDS, since the original YouTube API it depended on shut down years ago.For now, the investigation continues — but we have narrowed the problem down from “the whole ROM is different” to “the compiled ARM9 does not match the original.”"}, {"post_id": 36940, "ts": "2026-07-29T10:55:05Z", "hours": 6.9997, "text": "Today I did something I genuinely did not think I would be able to do.I revived an old Nintendo DS homebrew project.The goal was not to remake YouTubeDS, but to bring the original project back to life so it could be preserved and used as inspiration for future projects like InternetArchiveDS. The journey was much harder than I expected.At the start, I had a folder full of old source code, but the world it was built for was mostly gone. Libraries were missing, build files were outdated, and the project depended on old versions of tools that were no longer set up correctly. I spent hours digging through Makefiles, finding missing dependencies, rebuilding libraries manually, and trying to understand how everything connected.There were so many moments where it felt like I was one error away from giving up. I had to rebuild parts of the devkit environment, compile libraries like libfat again, fix linker issues, repair paths, and figure out why the final ROM packaging step kept failing.The most frustrating part was that the code itself was fine. The challenge was rebuilding the entire devkitpro system around it.After around 14 hours of debugging, something incredible happened.The build finally completed.I copied the ROM onto my DSi, launched it, and saw it load exactly like the original compiled version. No extra steps, no broken menus, no weird crashes. It was the exact moment where every tiny fix, every error message, and every hour of searching suddenly became worth it.Seeing old code from years ago come alive again on real hardware was an amazing feeling. This project reminded me why I love programming: sometimes the biggest victories come from solving problems nobody else sees."}, {"post_id": 34435, "ts": "2026-07-25T04:39:23Z", "hours": 4.2336, "text": "Today I spent my time trying to bring YouTubeDS, an open-source Nintendo DS homebrew application created by Gericom, back to life. While I expected to spend most of the session coding, nearly all of my progress came from reverse engineering and troubleshooting an outdated development environment. I tracked down missing source files, resolved linker errors caused by an absent API key, and compared my rebuilt binaries against the original ROM to understand why they behaved differently.After digging through Makefiles, compiler output, map files, and the generated ROM headers, I discovered that the project was originally built using an older version of devkitPro and libnds. Modern releases automatically link against the newer Calico runtime, producing binaries that differ significantly from the original build and refuse to run correctly. I experimented with build flags, linker specifications, and library configurations before confirming that the real solution is recreating the original toolchain rather than patching the project itself.Although I haven’t produced a working ROM just yet, I now understand exactly why the project fails on modern tools. The next step is installing an older version of the Nintendo DS development environment so the application can be rebuilt as it was originally intended. Even though this was a debugging-heavy session, I made meaningful progress toward preserving and reviving an abandoned piece of Nintendo DS homebrew."}, {"post_id": 30608, "ts": "2026-07-18T10:06:51Z", "hours": 2.7964, "text": "TODAY: i tried to compile my 10 year old software, debug some binary, download gh repositories, TRY FOR ONE BLOODY HOUR TO FIGURE OUT WHY IT WOULDNT COMPILE figured out why it wouldnt compile, realize that linux is too hard, and fell asleep. then i decideed i would try again, debugged some code, and found that it wouldnt compile because it thought somthing didnt exist. im going to try to fix it, if anyone knows linux mesage me pleease"}]...
|
Title: internet archive DS by @mikhailnotfish | St Title: internet archive DS by @mikhailnotfish | Stardance
Devlogs:
TODAY: i tried to compile my 10 year old software, debug some binary, download gh repositories, TRY FOR ONE BLOODY HOUR TO FIGURE OUT WHY IT WOULDNT COMPILE figured out why it wouldnt compile, realize that linux is too hard, and fell asleep. then i decideed i would try again, debugged some code, and found that it wouldnt compile because it thought somthing didnt exist. im going to try to fix it, if anyone knows linux mesage me pleease
Today I spent my time trying to bring YouTubeDS, an open-source Nintendo DS homebrew application created by Gericom, back to life. While I expected to spend most of the session coding, nearly all of my progress came from reverse engineering and troubleshooting an outdated development environment. I tracked down missing source files, resolved linker errors caused by an absent API key, and compared my rebuilt binaries against the original ROM to understand why they behaved differently.After digging through Makefiles, compiler output, map files, and the generated ROM headers, I discovered that the project was originally built using an older version of devkitPro and libnds. Modern releases automatically link against the newer Calico runtime, producing binaries that differ significantly from the original build and refuse to run correctly. I experimented with build flags, linker specifications, and library configurations before confirming that the real solution is recreating the original toolchain rather than patching the project itself.Although I haven’t produced a working ROM just yet, I now understand exactly why the project fails on modern tools. The next step is installing an older version of the Nintendo DS development environment so the application can be rebuilt as it was originally intended. Even though this was a debugging-heavy session, I made meaningful progress toward preserving and reviving an abandoned piece of Nintendo DS homebrew.
Today I did something I genuinely did not think I would be able to do.I revived an old Nintendo DS homebrew project.The goal was not to remake YouTubeDS, but to bring the original project back to life so it could be preserved and used as inspiration for future projects like InternetArchiveDS. The journey was much harder than I expected.At the start, I had a folder full of old source code, but the world it was built for was mostly gone. Libraries were missing, build files were outdated, and the project depended on old versions of tools that were no longer set up correctly. I spent hours digging through Makefiles, finding missing dependencies, rebuilding libraries manually, and trying to understand how everything connected.There were so many moments where it felt like I was one error away from giving up. I had to rebuild parts of the devkit environment, compile libraries like libfat again, fix linker issues, repair paths, and figure out why the final ROM packaging step kept failing.The most frustrating part was that the code itself was fine. The challenge was rebuilding the entire devkitpro system around it.After around 14 hours of debugging, something incredible happened.The build finally completed.I copied the ROM onto my DSi, launched it, and saw it load exactly like the original compiled version. No extra steps, no broken menus, no weird crashes. It was the exact moment where every tiny fix, every error message, and every hour of searching suddenly became worth it.Seeing old code from years ago come alive again on real hardware was an amazing feeling. This project reminded me why I love programming: sometimes the biggest victories come from solving problems nobody else sees.
today I spent a lot of time investigating the original YouTubeDS ROM to figure out what is missing and why my rebuilt version does not perfectly match the original.The good news: I was able to confirm that the ROM filesystem is not the issue. Using Tinke and ndstool, I extracted both the original ROM and my rebuilt ROM, then compared all of the files inside them. The fonts, keyboard assets, menus, logos, and other resources are identical.This means the problem is somewhere deeper: inside the compiled ARM9 binary.The original YouTubeDS ARM9 is around 447KB, while my rebuilt version is around 335KB. That missing size is not from assets or files — it is from the compiled code itself. Right now I do not know exactly what is different between the two builds, and without more information it is difficult to recreate the original binary.I have also been looking through the source code, build files, and compiler output to find possible causes, but the remaining possibilities are things like different compiler settings, missing build steps, or code that was present in Gericom’s original environment but is not available anymore.At this point, the biggest step forward is waiting for a response from Gericom. Since he created YouTubeDS originally, he may be able to provide information about the original build environment, missing files, or how the original ROM was produced.Until then, there is not much more I can safely change without risking moving further away from the original. The current goal is still to preserve YouTubeDS and make it usable again for InternetArchiveDS, since the original YouTube API it depended on shut down years ago.For now, the investigation continues — but we have narrowed the problem down from “the whole ROM is different” to “the compiled ARM9 does not match the original.”
ladies and gentlemen DO I HAVE A STORY TO TELL! i know, its been 20 days scince my last devlog… but ive made some uncomprehendable progress on the project. in these 7 hours, i have managed to get the proxy server to work with the archive, ive managed to get the dsi to not guru meditate, and actually connect to the wifi using the old wpa wifi protocol! that was the problem with the library im using, DSWIFI. the ersion of dswifi im using, is an old one, from 10 years ago. back befre the 2.0 update when they added calcio. back then dswifi didnt hav support for anything other that wpa, no wap, 1,2,3 nothing. after that, i actally managed to get working search results! i hosted the php proxy using msys bash, whatever works i guess, and the dsi is now recieving and transmitting requests and data through the proxy to the internetarchive. but my next bottleneck! back ten years ago, you tube was really weak, primitive, low quality. and even then, the dsi had do you every last rescource on te lowest data type, ITAG 7, to be able to run. but the project extracts RAW JSON METADATA, which as you know can be really bulky. so my next move will be to make a filter for my php server, to only show results under a certain size, so the json metadata will be processable.
as stardance begins to come to an end, the time crunch begins to get more serious. in these past 5 hours, i have gotten search to work perfectly, and ran into a guru meditation error, with some very strange hexadecimal values. for example the first 3 rows are all 00000000 and address and pc are both 00000030. things like r8 are ffffffff, and the stackdump is very unusual. there is a photo for you to see the stackdump for yourself. so far im still trying to get the vidfeo to play, i havent even started on the json parser yet! im using a pre- encoded video! anyway stay tuned to see if my 10 day holiday lock in will let me finish this project, and obtain the ultimate prize from the shop.
LADIES AND GENTLEMEN i am very happy to announce that, INTERNETARCHIVEDS IS ALMOST FINISHED!!!! in the previous devlog, i was facing a guru meditation error. i figured out that it was because i misspelt “ITCM” as “ITC” and therefore the whole video parser didnt load. one letter. i know. now, i have had about a thousand different issues with macroblock alignment, and finally figured out the issue- the AUDIO. i know, the audion has nothing to do with the video, but it ACTUALLY DOES! you see, the audio is loaded in before every frame… and the way gericom did it worked for itag7, but doesnt work for any other mpeg4 version. that audio placement, sets the macroblock back by one frame every time, corrupting the video. but now, i put a filter into the php server to only search for videos 20MiB and under, so that they play fast fast. now that the whole pull echo flush system works, all i need to do is remove the debug code, (it takes forever) change the ui, and picture for the top screen, and internetarchiveDS will be ready for you to use!!! if you have a ds of course. also i encoded a video to test on it, here it is for you guys to see!
Ships:
internetarchiveDS has been completed! i have changed the UI, made a 754 page long essay of a readME, and made a very detailed instruction manual of how to download and setup the program (it isnt plug and play) a suppose there isnt very much else to do now, i hope you have a nintendo DS! or you’ll have to download a video, as proof that it works. (sorry its big i tried to compress it)...
|
1793148496.7354887
|
1793234896.7354887
|
|
66723
|
Wifi Death v1 by @izaanhussain | Stardance
|
izaanhussain
|
0
|
7.7
|
0
|
[]
|
[{"post_id": 75855, "ts": "202 [{"post_id": 75855, "ts": "2026-10-01T11:08:39Z", "hours": 0.9294, "text": "Wifi Death V1 fully complted with pcb enhanced new pcb files , gerber files are out on github with firmware. one thing for the reviewers due to the same folder name of the firmware files hackatime hours were added to my another project vibedeck . and i accidently added a diffrent unrelated project to this project (i dont know what to do ) yup thats all see you after the approvall!! EXCITED!!!!!!!!"}, {"post_id": 75466, "ts": "2026-09-30T05:28:53Z", "hours": 1.4053, "text": "Wifi Death V1 completeddt!! (almost a bit firmware is remaining ) . PCB , gerber files evrything needed for prod is complted do ckeckouttt!!"}, {"post_id": 75256, "ts": "2026-09-29T16:10:45Z", "hours": 5.3647, "text": "Today i completed the shematics of Wifi Death v1 and i assigned the footprints ,ran erc after fixing everything atlast i git 0 warning and 0 errors . Wifi death v1 is a simple wifi hacking/testing device with oled display and esp32 c3 super mini as brain. Next devlog ill complete the pcb and after that ill complete the firmware (untested) then will submit for funding."}]...
|
Title: Wifi Death v1 by @izaanhussain | Stardance
Title: Wifi Death v1 by @izaanhussain | Stardance
Devlogs:
Today i completed the shematics of Wifi Death v1 and i assigned the footprints ,ran erc after fixing everything atlast i git 0 warning and 0 errors . Wifi death v1 is a simple wifi hacking/testing device with oled display and esp32 c3 super mini as brain. Next devlog ill complete the pcb and after that ill complete the firmware (untested) then will submit for funding.
Wifi Death V1 completeddt!! (almost a bit firmware is remaining ) . PCB , gerber files evrything needed for prod is complted do ckeckouttt!!
Wifi Death V1 fully complted with pcb enhanced new pcb files , gerber files are out on github with firmware. one thing for the reviewers due to the same folder name of the firmware files hackatime hours were added to my another project vibedeck . and i accidently added a diffrent unrelated project to this project (i dont know what to do ) yup thats all see you after the approvall!! EXCITED!!!!!!!!...
|
1793101899.9049444
|
1793706699.9049444
|
|
63946
|
VibeDeck by @izaanhussain | Stardance
|
izaanhussain
|
0
|
7.06
|
0
|
[]
|
[{"post_id": 75858, "ts": "202 [{"post_id": 75858, "ts": "2026-10-01T11:18:08Z", "hours": 0.9244, "text": "VibeDeck github has been imroved firmware has been added . the fin al rendeer image with the components has been added yeah do checkout. my excitement has been dying its 10 days since i started thiss"}, {"post_id": 73971, "ts": "2026-09-26T13:03:50Z", "hours": 0.6822, "text": "VibeDeck finally completed ig wrote the firmware uploaded the production and all other files . firmware didnt get recoreded in hackatine it got into a different project 😭😭. do check it out guyss"}, {"post_id": 71798, "ts": "2026-09-21T16:00:02Z", "hours": 0.5167, "text": "VibeDeck update i have removed the oled and the rotatory encoder feature i didnt wanna make it complex. added SK6812 MINI RGB. i have updated the CAD and PCB. This projects CAD is used and redesigned from the benGreenberg07s repository."}, {"post_id": 71157, "ts": "2026-09-20T11:20:58Z", "hours": 1.0172, "text": "Today I finished the main PCB design and routing for VibeDeck. I also started designing the enclosure in FreeCAD and made the top and bottom parts. The 9 key openings are already cut. Still need to add the OLED, encoder and USB-C openings, then firmware, Gerbers and final documentation."}, {"post_id": 71115, "ts": "2026-09-20T10:02:01Z", "hours": 2.0706, "text": "VibeDeck PCB routing completed The board has a 3×3 mechanical-key matrix, 9× 1N4148 diodes, XIAO RP2040, EC11 rotary encoder and a 0.91” OLED header.I also ran kicad’s drc and got 0 errors and 0 unconnected items. this is my first proper PCB design, so getting to this point feels pretty damn good lol. Next is the case design ,manufacturing files and firmware."}, {"post_id": 71004, "ts": "2026-09-20T06:07:57Z", "hours": 1.8489, "text": "VibeDeck - Completed the Shematics and assiging footprints. Today i started building VibeDeck , my first custom programmable macropad.I designed the schematics in kicad and finished the electrical connections. i also assigned the pcb footprints for the switch, diodes,OLED header and the XIAO. Next ill do the pcb and other things its my first time doing these"}]...
|
Title: VibeDeck by @izaanhussain | Stardance
Devl Title: VibeDeck by @izaanhussain | Stardance
Devlogs:
VibeDeck - Completed the Shematics and assiging footprints. Today i started building VibeDeck , my first custom programmable macropad.I designed the schematics in kicad and finished the electrical connections. i also assigned the pcb footprints for the switch, diodes,OLED header and the XIAO. Next ill do the pcb and other things its my first time doing these
VibeDeck PCB routing completed The board has a 3×3 mechanical-key matrix, 9× 1N4148 diodes, XIAO RP2040, EC11 rotary encoder and a 0.91” OLED header.I also ran kicad’s drc and got 0 errors and 0 unconnected items. this is my first proper PCB design, so getting to this point feels pretty damn good lol. Next is the case design ,manufacturing files and firmware.
Today I finished the main PCB design and routing for VibeDeck. I also started designing the enclosure in FreeCAD and made the top and bottom parts. The 9 key openings are already cut. Still need to add the OLED, encoder and USB-C openings, then firmware, Gerbers and final documentation.
VibeDeck update i have removed the oled and the rotatory encoder feature i didnt wanna make it complex. added SK6812 MINI RGB. i have updated the CAD and PCB. This projects CAD is used and redesigned from the benGreenberg07s repository.
VibeDeck finally completed ig wrote the firmware uploaded the production and all other files . firmware didnt get recoreded in hackatine it got into a different project 😭😭. do check it out guyss
VibeDeck github has been imroved firmware has been added . the fin al rendeer image with the components has been added yeah do checkout. my excitement has been dying its 10 days since i started thiss...
|
1793055229.5084772
|
1793660029.5084772
|
|
23039
|
ArasakaNet by @RishuKamboj | Stardance
|
RishuKamboj
|
2
|
21.0
|
53
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T15:02:06Z", "hours": 8.0, "multiplier": 6.29, "payout": 53, "blessing": "neutral", "text": "IM SO HAPPY THAT I MADE THIS. Ive made a linux like mini experience but on web by adding desktop styles and a few apps! it features :- a startup screen 2)timer app, starnic(dino game) ,Nasa Redirect’s and a notes app(that saves the notes in localStorage too!) 3)a bottom bar and a sidebar(or menu whatever you wanna call it) 4)and a refined desktop like feel with the draggable,closable and glassy windows. the timer and the notes app made me rethink my decision to make this but it was def worth it. You can head over to https://arasaka-net-sepia.vercel.app/ to try it out for yourself!", "repo": "https://github.com/rydei/ArasakaNet", "demo": "https://arasaka-net-sepia.vercel.app/"}, {"ship_num": 2, "ts": "2026-09-17T15:19:57Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finished with WebOS 1 !! Gotta say it was really fun and kind of frustrating(im living incarnation of psyduck) anyways my website features:- draggable and closable windows -side bar and a bottombar a start menu 3 apps! (technically 2) my soul head over to https://arasaka-net-sepia.vercel.app/ to try it out! hope you like ittt", "repo": "https://github.com/rydei/ArasakaNet", "demo": "https://arasaka-net-sepia.vercel.app/"}]...
|
[{"post_id": 75866, "ts": "202 [{"post_id": 75866, "ts": "2026-10-01T12:03:51Z", "hours": 1.2072, "text": "added a loading screen and some final touches LETS GO SHIPPIN PIRATES !!!"}, {"post_id": 75851, "ts": "2026-10-01T10:45:27Z", "hours": 3.2997, "text": "DEVELOF PART IDK! added a notes app which can be used to: 1)make notes which are locally saved in localStorage 2)Edit those saved notes 3)Or delete them! other than that i made changes to the side bar and bottom bar to make it look more refined."}, {"post_id": 74854, "ts": "2026-09-28T13:26:08Z", "hours": 3.9031, "text": "NEW ADDITION!! Welcome starnic your own lil dino like game BUT ITS STARSS. also fixed window sizes so now they fit the contents instead of the extra space on the sides"}, {"post_id": 69663, "ts": "2026-09-17T15:03:35Z", "hours": 5.4592, "text": "DEVLOG THREEE!! AND IM BACK AFTER EXAMS!! ok anyways heres what i did:- (1) the icons and sidebar now work (2)there’s two apps and a welcome screen which is basically just system info for now lol. (3) the windows are draggable and hover above the other when selected. well i guess that’s all , i hope yall like it :D"}, {"post_id": 51526, "ts": "2026-08-21T09:05:52Z", "hours": 1.9872, "text": "Devlog Two: Added Draggable and Close-able windows!!! hardest part faced: aligning the header :’)"}, {"post_id": 51091, "ts": "2026-08-20T16:15:36Z", "hours": 5.6867, "text": "Hey There, First Devlog’s here! So far i’ve made the rough design of how the end website will look. Arranged the sidebar and bottom bar using flexbox(i spent way too much time on this wth) 2)Added Background and Favicon Next up im going to make the clock work and add draggable windows and working side buttons!!"}]...
|
Title: ArasakaNet by @RishuKamboj | Stardance
Dev Title: ArasakaNet by @RishuKamboj | Stardance
Devlogs:
Hey There, First Devlog’s here! So far i’ve made the rough design of how the end website will look. Arranged the sidebar and bottom bar using flexbox(i spent way too much time on this wth) 2)Added Background and Favicon Next up im going to make the clock work and add draggable windows and working side buttons!!
Devlog Two: Added Draggable and Close-able windows!!! hardest part faced: aligning the header :’)
DEVLOG THREEE!! AND IM BACK AFTER EXAMS!! ok anyways heres what i did:- (1) the icons and sidebar now work (2)there’s two apps and a welcome screen which is basically just system info for now lol. (3) the windows are draggable and hover above the other when selected. well i guess that’s all , i hope yall like it :D
NEW ADDITION!! Welcome starnic your own lil dino like game BUT ITS STARSS. also fixed window sizes so now they fit the contents instead of the extra space on the sides
DEVELOF PART IDK! added a notes app which can be used to: 1)make notes which are locally saved in localStorage 2)Edit those saved notes 3)Or delete them! other than that i made changes to the side bar and bottom bar to make it look more refined.
added a loading screen and some final touches LETS GO SHIPPIN PIRATES !!!
Ships:
Finished with WebOS 1 !! Gotta say it was really fun and kind of frustrating(im living incarnation of psyduck) anyways my website features:- draggable and closable windows -side bar and a bottombar a start menu 3 apps! (technically 2) my soul head over to https://arasaka-net-sepia.vercel.app/ to try it out! hope you like ittt
IM SO HAPPY THAT I MADE THIS. Ive made a linux like mini experience but on web by adding desktop styles and a few apps! it features :- a startup screen 2)timer app, starnic(dino game) ,Nasa Redirect’s and a notes app(that saves the notes in localStorage too!) 3)a bottom bar and a sidebar(or menu whatever you wanna call it) 4)and a refined desktop like feel with the draggable,closable and glassy windows. the timer and the notes app made me rethink my decision to make this but it was def worth it. You can head over to https://arasaka-net-sepia.vercel.app/ to try it out for yourself!...
|
1793152244.7379324
|
1793238644.7379324
|
|
66631
|
What do I make for dinner? by @PahalDesai | Starda What do I make for dinner? by @PahalDesai | Stardance...
|
PahalDesai
|
1
|
4.31
|
4
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-30T11:27:53Z", "hours": 3.0, "multiplier": 2.82, "payout": 4, "blessing": "neutral", "text": "this tool solves a major problem in every household in the world - “what do I make for dinner?” to fix this I have made a tool that asks you a few questions and according to your answers, it generates recommendations. you can also see the recipes of the items it suggests at a single place. You can also ask the ai to suggest you recipes based on the ingredients you have at home. You can also ask the ai to suggest you recipes based on the type of cuisine you want to try. What I am proud of:- I used API for the first time in JavaScript (as I usually use it in my python projects). I have also made a dedicated tutorial page for dummies too :)", "repo": "https://github.com/pahal-desai/what-do-i-make-for-dinner", "demo": "https://pahal-desai.github.io/what-do-i-make-for-dinner/"}]...
|
[{"post_id": 75877, "ts": "202 [{"post_id": 75877, "ts": "2026-10-01T13:33:25Z", "hours": 0.7256, "text": "Hi. Today, i added 2 more features - a daily dinner planner and a reminder. This adds 2 more QoL for the Frictionless misson. It was not that hard to make this time as i knew the documentation and how to implement it. Previously, i didn’t know what to do and spent hours figuring out how to use api and all in js. 3 QoL Improvements automatic dinner sugestion - when you don’t know what yo make, you can get quick suggestions with recipes. Daily Dinner planner - you can now plan dinner for a whole week! Notifications - notifies what you have to make today so that you don’t forget!"}, {"post_id": 75715, "ts": "2026-09-30T20:43:16Z", "hours": 0.5847, "text": "added a hackclub api key option. I had to use very little ai for that as i couldnt figure out how to use it. and i had to set up a backend cloudflare worker for it too."}, {"post_id": 75522, "ts": "2026-09-30T11:06:44Z", "hours": 1.9217, "text": "sorry for not posting devlogs as i forgot to do so (it’s been a habbit ig). I locked tf in and completed this site. It’s ready to be shipped!!!"}, {"post_id": 75369, "ts": "2026-09-29T21:12:43Z", "hours": 0.8656, "text": "This is an ai based dinner suggestion website. It suggest you what to make for dinner. you only have to answer some question about the type of dinner you want. It requires an api key tho. Today, I have made the basic layout of the page, the tutorial (where they show you how to get an api key) and the page where they ask you your api key to continue to use the project."}]...
|
Title: What do I make for dinner? by @PahalDesai | Title: What do I make for dinner? by @PahalDesai | Stardance
Devlogs:
This is an ai based dinner suggestion website. It suggest you what to make for dinner. you only have to answer some question about the type of dinner you want. It requires an api key tho. Today, I have made the basic layout of the page, the tutorial (where they show you how to get an api key) and the page where they ask you your api key to continue to use the project.
sorry for not posting devlogs as i forgot to do so (it’s been a habbit ig). I locked tf in and completed this site. It’s ready to be shipped!!!
added a hackclub api key option. I had to use very little ai for that as i couldnt figure out how to use it. and i had to set up a backend cloudflare worker for it too.
Hi. Today, i added 2 more features - a daily dinner planner and a reminder. This adds 2 more QoL for the Frictionless misson. It was not that hard to make this time as i knew the documentation and how to implement it. Previously, i didn’t know what to do and spent hours figuring out how to use api and all in js. 3 QoL Improvements automatic dinner sugestion - when you don’t know what yo make, you can get quick suggestions with recipes. Daily Dinner planner - you can now plan dinner for a whole week! Notifications - notifies what you have to make today so that you don’t forget!
Ships:
this tool solves a major problem in every household in the world - “what do I make for dinner?” to fix this I have made a tool that asks you a few questions and according to your answers, it generates recommendations. you can also see the recipes of the items it suggests at a single place. You can also ask the ai to suggest you recipes based on the ingredients you have at home. You can also ask the ai to suggest you recipes based on the type of cuisine you want to try. What I am proud of:- I used API for the first time in JavaScript (as I usually use it in my python projects). I have also made a dedicated tutorial page for dummies too :)...
|
1793216983.6631699
|
1793303383.6631699
|
|
28301
|
Irish DECA by @ngarnsworthy | Stardance
|
ngarnsworthy
|
1
|
9.71
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-01T15:26:17Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created the frontend for a LMS made for a DECA chapter. The backend still needs to be implemented. The frontend targets server side rendering whenever possible to allow for better caching!", "repo": "https://gitlab.com/ngarnsworthy/irish-deca-experiance", "demo": "https://deca.ngarnsworthy.dev"}]...
|
[{"post_id": 75884, "ts": "202 [{"post_id": 75884, "ts": "2026-10-01T14:09:35Z", "hours": 0.7106, "text": "Added a mockup register page and removed dead links"}, {"post_id": 59623, "ts": "2026-09-01T15:20:59Z", "hours": 0.3333, "text": "Added README.md and worked on a event view."}, {"post_id": 55131, "ts": "2026-08-26T16:23:18Z", "hours": 8.5639, "text": "Done Created some promotional content for the team Test taking and viewing frontend Test dashboard frontend TODO Event management More promo content User login Backend data store"}]...
|
Title: Irish DECA by @ngarnsworthy | Stardance
De Title: Irish DECA by @ngarnsworthy | Stardance
Devlogs:
Done Created some promotional content for the team Test taking and viewing frontend Test dashboard frontend TODO Event management More promo content User login Backend data store
Added README.md and worked on a event view.
Added a mockup register page and removed dead links
Ships:
I created the frontend for a LMS made for a DECA chapter. The backend still needs to be implemented. The frontend targets server side rendering whenever possible to allow for better caching!...
|
1793303832.4494326
|
1793390232.4494326
|
|
65001
|
My very own WebOS by @Ishandhar | Stardance
|
Ishandhar
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-02T08:35:47Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "First of all i’m PROUD of myself that i could ship this Project cause i made my first OS in the web, although my toughest part of this project was to even make a MUSIC PLAYER i wasted my 2 hours trying to understand why my player was not working but i got it fixed i have to use a bit of AI but everything is working now and i had DEPLOYED my first PROJECT", "repo": "https://github.com/dracarys40/550A", "demo": "https://550a.antideploy.app/"}]...
|
[{"post_id": 75887, "ts": "202 [{"post_id": 75887, "ts": "2026-10-01T14:24:39Z", "hours": 0.3044, "text": "My Last Devlog for This PROJECT (finised the project with 24 bugs and js and 3 in css idk why and my animation is not smooth so im asking ai for solutions"}, {"post_id": 75156, "ts": "2026-09-29T09:53:55Z", "hours": 0.7269, "text": "Made My Own MUSIC PLAYER (i dont know why is it not playing in the browser) tried everything but still not working"}, {"post_id": 74941, "ts": "2026-09-28T17:25:23Z", "hours": 0.2783, "text": "AHHHH There Are So Many Problems !!!!!! (got confused how to make the calculator app i had to type out every thing one by one)"}, {"post_id": 74523, "ts": "2026-09-27T15:40:04Z", "hours": 4.5469, "text": "Making My First WebOS (i actually logged on for 7h but it is showing 4h)"}]...
|
Title: My very own WebOS by @Ishandhar | Stardance Title: My very own WebOS by @Ishandhar | Stardance
Devlogs:
Making My First WebOS (i actually logged on for 7h but it is showing 4h)
AHHHH There Are So Many Problems !!!!!! (got confused how to make the calculator app i had to type out every thing one by one)
Made My Own MUSIC PLAYER (i dont know why is it not playing in the browser) tried everything but still not working
My Last Devlog for This PROJECT (finised the project with 24 bugs and js and 3 in css idk why and my animation is not smooth so im asking ai for solutions
Ships:
First of all i’m PROUD of myself that i could ship this Project cause i made my first OS in the web, although my toughest part of this project was to even make a MUSIC PLAYER i wasted my 2 hours trying to understand why my player was not working but i got it fixed i have to use a bit of AI but everything is working now and i had DEPLOYED my first PROJECT...
|
1793213669.6511405
|
1793300069.6511405
|
|
28817
|
PicoOS by @ZiDi | Stardance
|
ZiDi
|
1
|
51.46
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-16T14:56:59Z", "hours": 20.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created an operating system for the Raspberry Pi Pico family. It is a shell-based OS written in MicroPython, designed to feel similar to Linux. While it does not include every Linux command, it introduces many familiar concepts, including a built-in text editor called Nano . PicoOS allows users to create their own apps and install them directly into the system. It supports SD cards, error logging, and one of its main features is the ability to write your own Python programs that can interact with the Raspberry Pi Pico hardware, including its GPIO pins. This project was challenging, but I managed to make it a reality, and the process was also a lot of fun. The original idea came from wanting to run Linux on a Raspberry Pi Pico. However, because of its limited RAM and flash storage, running a full Linux system was not possible. Instead, I decided to create my own lightweight, Linux-inspired operating system designed specifically for the Raspberry Pi Pico. I also created an installer that makes it easy to install and configure PicoOS on your device, allowing anyone to quickly set up their own Pico-based operating system. This is only the first release of PicoOS, with simple and basic features, but there is much more planned for the future. I recently got a Raspberry Pi Pico W, which will allow me to start working on WiFi support. With WiFi, PicoOS will be able to connect to the internet, download updates and install apps online, browse web content, and introduce new network features. I also want to create a lightweight version of something similar to SSH, allowing users to remotely connect to and control their Raspberry Pi Pico running PicoOS.", "repo": "https://github.com/patriq128/PicoOS", "demo": "https://picoos.dev/"}]...
|
[{"post_id": 75889, "ts": "202 [{"post_id": 75889, "ts": "2026-10-01T14:43:19Z", "hours": 3.9789, "text": "Devlog #10 Added users and remade website What I’m working on I wasn’t working on this project for a longer time (2 months), but I decided to continue working on it :). These are some of the things that I made: Users So, because in the old version the user was working in the system files, and that wasn’t very safe, I decided that I need to have something like this, also because I want this OS to feel like Linux. I added a new command called userman , and with this, you can create users, delete users, and also log in. I also added passwords, so I made an easy (for now) hashing system and saving system for them. Some safety features I found out that when you type \"rm /\" , it would, without any questions, delete all of the system files. I repaired it, and now when you type just \"rm /\" , it’s going to tell you that it can’t do it, but if you type \"rm / --no-preserve-root\" , it will firstly ask you, and when you type “y”, it will remove everything. Remade Website So, my ship request got denied because my website felt like it was vibecoded, and yeah, it was. Sooo, I decided that I want to get my Stardust XD and also make this project good, so I tried to remake it with my own hands. Yeah, I know it doesn’t look like before, but because I’m not good at graphics and website making, it looks as good as I can make it. Other things Small things like editing the README, repairing some bugs in the system, and also adding new things to the installer. What I want to do next Try to ship the project. This is my only mission for now because I am still trying, and I really want my Stardust to buy the T-shirt. So yeah, I think this is everything that I have on my mind. I know it’s not a really long devlog, but I think I said everything that I have on my mind. I’m gonna try to ship it, so wish me luck. Love u :3"}, {"post_id": 45675, "ts": "2026-08-12T10:01:51Z", "hours": 6.965, "text": "Devlog #9 This devlog is going to be shorter because I was on vacation and didn’t have much time. But I repaired the installer on Windows and added some things to the README and website. Installer on Windows I use Linux for my daily work, so the installer was originally tested only on Linux. I wanted it to work on every OS, but unfortunately, it didn’t.Someone tried to use PicoOS and sent me an issue saying that the installer wasn’t working on Windows. What was the problem? The problem was that the installer can flash the newest version of MicroPython onto the device and detect if the device is in boot mode.However, Linux shows the Pico’s mass storage device differently than Windows does, so the installer couldn’t find it on Windows. How I fixed it I knew where the bug was, so I managed to fix it.First, the installer detects which OS it is running on. If it is running on Windows, it uses subprocess and PowerShell to ask Windows if a Pico is connected in boot mode. If it finds one, it gets the directory of the device.I don’t have a Windows PC, so I asked the person who reported the issue to test it for me.And it worked! :3 Documentation The website and README were outdated, so I rewrote some of the sections to make sure they are up to date.And yeah… I don’t really like documenting my projects. Other things I tried to fix the problem where pressing Ctrl + C in PicoOS would crash the whole system. I managed to fix it, but then I noticed that it prevented mpremote from resetting the device. After that, I removed the fix for now. Fixed an app-running problem where apps wouldn’t start if you weren’t in the / directory. I managed to fix that too. Repaired error saving to the SD card again because one small change broke it. Added installed apps to the installer, so you can see which apps you already have installed. What I want to do next Documentation — Right now, the README only contains some basic information and nothing close to the actual system documentation for developers. I want to create full documentation for PicoOS and explain how the system actually works. Fix the crash problem in PicoOS — I know I already tried to fix it and failed, but I want to try again with a different approach. I don’t know exactly how yet, but I’ll figure it out. Contact me — Now that I know someone is actually trying to use this project, I want to add a section to the PicoOS website where people can send me questions, feedback, bug reports, and more Make the app system public — Right now, the apps are only mine. If someone wants to add their own app, they don’t really have a way to do it yet. I want to create a system where people can submit their apps, write the necessary documentation, and eventually make them publicly available. Below is the issue I received and the system I use to check whether an app is installed."}, {"post_id": 37519, "ts": "2026-07-30T10:23:36Z", "hours": 9.8975, "text": "Devlog #8 This is again a really huge update, and there are many things that I made, and they are crazy, so let’s go. What have I actually done? My own package system : So you know how Debian has .apt packages? I made something like this for this OS. It’s just a minimalistic version, but it’s working, and I like how I made it work. First I tried Zip, but MicroPython doesn’t really have a zip library, so I am not using this. I am packing my own file format that’s basically bytes with headers and other stuff, ending with \".pcs\" , yeah. New installation system : Made in two parts: Installer : The internet and local installer are now one file. If the Pico has internet and the user types \"app install app\" (no .pcs), it first searches the internet, and if it finds nothing, tries local files. If the user types \"app install app.pcs\" , it just searches local files. After this, the system extracts the \".pcs\" file into a folder using the Extractor , then reads the manifest and writes the app info and hash into \"conf/apps.conf\" . Extractor : Reads a “.pcs” file, checks the headers to see if it’s legitimate, then reads the manifest and extracts everything into \"/apps/\" . Image rendering app : I tried to run Bad Apple in PicoOS, and for this I needed something like image rendering, so I made this. It reads its own file format \".pxi\" , which has every line and the RGB color of every pixel in the line. It works line by line because the Pico doesn’t have a lot of RAM, and if I tried to load everything at once it wouldn’t handle it. The output is basically “██” — that ASCII block — colored using TrueColor. External tools : A new folder with every tool you need to: build an app : python build_app.py folder_path — takes the folder, reads every file, checks for main.py and manifest.json, and makes it into \"foldername.pcs\" and \"foldername.pcs.256\" extract an app : python extract_app.py app_name.pcs — makes a folder with the app name containing everything that was in the app pxi converter : python pxi_converter.py image — takes the image, scales it, reads every pixel and calculates its RGB value, and outputs \"image_name.pxi\" Installing apps in installer.py : You can now install apps externally using the PC installer, so you can install apps from the internet. It gives you a menu where you select the apps you want, then it downloads them onto the Pico and runs the installer there. Download apps from the website : I have the website https://picoos.dev , and I added an apps section where you can find all the apps and their descriptions, and if you click download you get the app. Small changes : You can now select whether you have an SD card, and if not it won’t try to mount it. I repaired the error-saving so it can now save errors to the SD card. I changed the app manifest so now it must have the hash and description. What I want to do next: README : outdated, need to add and change the info about PicoOS. Website : also outdated, must rewrite it. 2nd ship : because I’ve been waiting for feedback from the 1st ship for 11 days, I want to try shipping it a second time. So this is maybe all from this devlog. It’s a huge update, and I want to make it even better. Thanks for the support. Love u guys :3 Below you can see the image app in action, apps installing using the internet, and the website’s app section preview."}, {"post_id": 33167, "ts": "2026-07-22T20:34:58Z", "hours": 8.1675, "text": "Devlog #7 While I am waiting for my ship to be reviewed, I have made huge progress. This is mainly because I finally managed to get a Raspberry Pi Pico W, and with that, I was finally able to connect PicoOS to the internet. What have I actually done? WiFi driver I built this driver on top of the built-in network library. These are the functions it currently supports: - Auto connect - Network configuration - Network scanning - Status checking - Disconnecting Ping Yes, you guessed it right — PicoOS can now ping websites and IP addresses. Download system Because I have my own domain, “ https://picoos.dev” , and now an internet connection, I created a system where system files and apps are stored online at: “ https://picoos.dev/download/” System updates I created a system updater because it is much easier to download only the updated files using the internet. You can access it by typing the command: “update” After that, it downloads manifest.json, which contains every system file with its SHA-256 hash. PicoOS compares the local files with the online version and downloads only the files that are different. The manifest is stored here: “ https://picoos.dev/download/system/manifest.json” App installation and updates This works almost the same way as the system updater, but it uses: “ https://picoos.dev/download/apps/” When you install an app, PicoOS downloads it and installs it directly into the system. Update installer PicoOS already has its own installer that can install and update the system. However, now that I added support for both the classic Raspberry Pi Pico and Pico W, I need to improve the installer so it can detect the device and install only compatible packages. What I want to do next: I want to improve the code structure and make the interface look better because the current version was mainly just a test to see if everything works — and it does! :) I also want to add image-to-ASCII rendering, so maybe I can try running some interesting things on it. But that will be a surprise. I want to create something like an SSH / remote access system. This will probably be another project and will work as a downloadable app. However, before that, I need to create a system that can properly handle input and collect terminal output, so it doesn’t rely only on serial communication. I think that is everything for this devlog. Below you can see a preview of the system with some of the new commands. I also want to ask: does anyone know how long I usually have to wait for a project review? I reshiped this project about 5 days ago and still haven’t received any feedback. If anyone knows, please comment on this devlog. Thank you! Love you guys :3"}, {"post_id": 30230, "ts": "2026-07-17T17:22:36Z", "hours": 2.4494, "text": "Hopefully the Last Devlog Before Shipping XD After my first unsuccessful ship, I changed my project’s banner and completely rewrote the README. And yes, I used AI. I even used it this time to fix my grammar because I’m not the best at English. Everything else, however, was written by me. But hey, I hope it’s finally ready to be shipped. :3"}, {"post_id": 29525, "ts": "2026-07-16T14:42:41Z", "hours": 2.4317, "text": "PicoOS Devlog First Public Release After many hours of development, bug fixes, and improvements, I finally reached a milestone I’m really happy with. Over the past few weeks, I fixed numerous issues, created a dedicated installer, improved the GitHub repository, and built an official website for the project. Because of these improvements, I decided it was finally time to make the first public release of PicoOS. What’s New? Fixed numerous bugs and improved overall stability. Created a dedicated installer for easier setup. Improved the structure and design of the GitHub repository. Launched the official PicoOS website. Purchased the official domain: https://picoos.dev Preview Below you can see a preview of the website and the GitHub repository. Love u :3"}, {"post_id": 27887, "ts": "2026-07-13T20:00:45Z", "hours": 8.7733, "text": "PicoOS Devlog After many hours of coding, I finally decided to post my first devlog. What’s New? There are so many new things that I don’t even know where to start… Cleaner Code Structure I wanted to make the code much cleaner, so I split the project into smaller modules. This makes PicoOS easier to maintain, easier to read, and much more organized. Improvements Fixed the app installation system Nano is now working properly Improved the overall project structure New System Information Tool I added a new utility that displays useful information about your device, including: CPU information RAM usage Flash memory usage New Installer I’m getting PicoOS ready for everyone to try, so I created Installator.py . The installer can: Automatically download the latest version of MicroPython for your device Flash the firmware Connect using mpremote Upload all required PicoOS modules Let you configure your system before the first boot This makes installing PicoOS much easier. Plans for Tomorrow Here are a few things I want to work on next: Improve the GitHub repository Create a better README Build a website with installation tutorials and documentation Hopefully publish the first official release of PicoOS Preview Below you can see a preview of the new code structure and the installer. Love u :3"}, {"post_id": 23719, "ts": "2026-07-06T20:36:55Z", "hours": 2.3631, "text": "So today I finally added support for the SD card, and it’s one of the best features I’ve added to the OS. When you boot the OS, it automatically tries to mount the SD card, and then you can open it, add files, read files, and even unmount it whenever you want. I also added what I call the Light Debugger. It basically initializes the built-in LED or a NeoPixel, allowing you to debug things like boot status, errors, and other events even when you don’t have the serial monitor open. I also improved the app installation and app running system. You can now install apps directly from the SD card or run them without installing them first. I also tried writing a simple Snake game for testing, and it’s working pretty well. I also tried a little funny experiment: I sent the kernel code to Claude AI and asked it to rewrite it in Rust. And it actually did it! It wasn’t perfect—many things didn’t work—but hey, maybe one day I’ll rewrite the whole OS from MicroPython to Rust. Who knows? So that’s everything for today, and I hope you like the new updates! :) What do I want to do tomorrow? I want to make the OS look prettier, clean up the code to make it much easier to read and maintain, update the GitHub page, and maybe even create a simple website with a tutorial explaining how to run it on your own Raspberry Pi Pico. Love u :3"}, {"post_id": 23098, "ts": "2026-07-05T20:48:14Z", "hours": 4.9244, "text": "I’ve made significant progress on my project recently. One of the major features I implemented is support for installing and running external applications. You can install apps and execute them, and I’ve tested it with my “nano” app — everything is working quite well. I also took inspiration from Linux commands and added support for familiar ones such as touch, cd, ls, mv, cat, and mkdir, along with a few others. This makes the system feel more like a real command-line environment. In addition, I introduced .conf configuration files to manage system and app settings. I also created a module called trun.run, which allows programs to execute automatically on boot. Because of this, I implemented a system for enabling and disabling features, with all settings stored in /conf/configuration.conf. Next, I plan to add support for SD cards and some other improvements, but that’s a task for tomorrow. :) Love u"}, {"post_id": 19488, "ts": "2026-06-30T20:19:59Z", "hours": 1.9381, "text": "I’ve been making good progress on PicoOS today. I added a basic terminal with its own command system, started working on an application installation system, and built a simple terminal-based text editor that can create, edit, and save files.I also implemented a basic boot sequence, automatic startup support, and made a few improvements to the overall terminal experience. There’s still a lot to do, but it’s starting to feel like a real operating system instead of just a collection of scripts.The attached image is the actual output from PicoOS running on the hardware. At the moment I’m interacting with the system over the serial terminal while I continue developing new features."}]...
|
Title: PicoOS by @ZiDi | Stardance
Devlogs:
I’ve Title: PicoOS by @ZiDi | Stardance
Devlogs:
I’ve been making good progress on PicoOS today. I added a basic terminal with its own command system, started working on an application installation system, and built a simple terminal-based text editor that can create, edit, and save files.I also implemented a basic boot sequence, automatic startup support, and made a few improvements to the overall terminal experience. There’s still a lot to do, but it’s starting to feel like a real operating system instead of just a collection of scripts.The attached image is the actual output from PicoOS running on the hardware. At the moment I’m interacting with the system over the serial terminal while I continue developing new features.
I’ve made significant progress on my project recently. One of the major features I implemented is support for installing and running external applications. You can install apps and execute them, and I’ve tested it with my “nano” app — everything is working quite well. I also took inspiration from Linux commands and added support for familiar ones such as touch, cd, ls, mv, cat, and mkdir, along with a few others. This makes the system feel more like a real command-line environment. In addition, I introduced .conf configuration files to manage system and app settings. I also created a module called trun.run, which allows programs to execute automatically on boot. Because of this, I implemented a system for enabling and disabling features, with all settings stored in /conf/configuration.conf. Next, I plan to add support for SD cards and some other improvements, but that’s a task for tomorrow. :) Love u
So today I finally added support for the SD card, and it’s one of the best features I’ve added to the OS. When you boot the OS, it automatically tries to mount the SD card, and then you can open it, add files, read files, and even unmount it whenever you want. I also added what I call the Light Debugger. It basically initializes the built-in LED or a NeoPixel, allowing you to debug things like boot status, errors, and other events even when you don’t have the serial monitor open. I also improved the app installation and app running system. You can now install apps directly from the SD card or run them without installing them first. I also tried writing a simple Snake game for testing, and it’s working pretty well. I also tried a little funny experiment: I sent the kernel code to Claude AI and asked it to rewrite it in Rust. And it actually did it! It wasn’t perfect—many things didn’t work—but hey, maybe one day I’ll rewrite the whole OS from MicroPython to Rust. Who knows? So that’s everything for today, and I hope you like the new updates! :) What do I want to do tomorrow? I want to make the OS look prettier, clean up the code to make it much easier to read and maintain, update the GitHub page, and maybe even create a simple website with a tutorial explaining how to run it on your own Raspberry Pi Pico. Love u :3
PicoOS Devlog After many hours of coding, I finally decided to post my first devlog. What’s New? There are so many new things that I don’t even know where to start… Cleaner Code Structure I wanted to make the code much cleaner, so I split the project into smaller modules. This makes PicoOS easier to maintain, easier to read, and much more organized. Improvements Fixed the app installation system Nano is now working properly Improved the overall project structure New System Information Tool I added a new utility that displays useful information about your device, including: CPU information RAM usage Flash memory usage New Installer I’m getting PicoOS ready for everyone to try, so I created Installator.py . The installer can: Automatically download the latest version of MicroPython for your device Flash the firmware Connect using mpremote Upload all required PicoOS modules Let you configure your system before the first boot This makes installing PicoOS much easier. Plans for Tomorrow Here are a few things I want to work on next: Improve the GitHub repository Create a better README Build a website with installation tutorials and documentation Hopefully publish the first official release of PicoOS Preview Below you can see a preview of the new code structure and the installer. Love u :3
PicoOS Devlog First Public Release After many hours of development, bug fixes, and improvements, I finally reached a milestone I’m really happy with. Over the past few weeks, I fixed numerous issues, created a dedicated installer, improved the GitHub repository, and built an official website for the project. Because of these improvements, I decided it was finally time to make the first public release of PicoOS. What’s New? Fixed numerous bugs and improved overall stability. Created a dedicated installer for easier setup. Improved the structure and design of the GitHub repository. Launched the official PicoOS website. Purchased the official domain: https://picoos.dev Preview Below you can see a preview of the website and the GitHub repository. Love u :3
Hopefully the Last Devlog Before Shipping XD After my first unsuccessful ship, I changed my project’s banner and completely rewrote the README. And yes, I used AI. I even used it this time to fix my grammar because I’m not the best at English. Everything else, however, was written by me. But hey, I hope it’s finally ready to be shipped. :3
Devlog #7 While I am waiting for my ship to be reviewed, I have made huge progress. This is mainly because I finally managed to get a Raspberry Pi Pico W, and with that, I was finally able to connect PicoOS to the internet. What have I actually done? WiFi driver I built this driver on top of the built-in network library. These are the functions it currently supports: - Auto connect - Network configuration - Network scanning - Status checking - Disconnecting Ping Yes, you guessed it right — PicoOS can now ping websites and IP addresses. Download system Because I have my own domain, “ https://picoos.dev” , and now an internet connection, I created a system where system files and apps are stored online at: “ https://picoos.dev/download/” System updates I created a system updater because it is much easier to download only the updated files using the internet. You can access it by typing the command: “update” After that, it downloads manifest.json, which contains every system file with its SHA-256 hash. PicoOS compares the local files with the online version and downloads only the files that are different. The manifest is stored here: “ https://picoos.dev/download/system/manifest.json” App installation and updates This works almost the same way as the system updater, but it uses: “ https://picoos.dev/download/apps/” When you install an app, PicoOS downloads it and installs it directly into the system. Update installer PicoOS already has its own installer that can install and update the system. However, now that I added support for both the classic Raspberry Pi Pico and Pico W, I need to improve the installer so it can detect the device and install only compatible packages. What I want to do next: I want to improve the code structure and make the interface look better because the current version was mainly just a test to see if everything works — and it does! :) I also want to add image-to-ASCII rendering, so maybe I can try running some interesting things on it. But that will be a surprise. I want to create something like an SSH / remote access system. This will probably be another project and will work as a downloadable app. However, before that, I need to create a system that can properly handle input and collect terminal output, so it doesn’t rely only on serial communication. I think that is everything for this devlog. Below you can see a preview of the system with some of the new commands. I also want to ask: does anyone know how long I usually have to wait for a project review? I reshiped this project about 5 days ago and still haven’t received any feedback. If anyone knows, please comment on this devlog. Thank you! Love you guys :3
Devlog #8 This is again a really huge update, and there are many things that I made, and they are crazy, so let’s go. What have I actually done? My own package system : So you know how Debian has .apt packages? I made something like this for this OS. It’s just a minimalistic version, but it’s working, and I like how I made it work. First I tried Zip, but MicroPython doesn’t really have a zip library, so I am not using this. I am packing my own file format that’s basically bytes with headers and other stuff, ending with ".pcs" , yeah. New installation system : Made in two parts: Installer : The internet and local installer are now one file. If the Pico has internet and the user types "app install app" (no .pcs), it first searches the internet, and if it finds nothing, tries local files. If the user types "app install app.pcs" , it just searches local files. After this, the system extracts the ".pcs" file into a folder using the Extractor , then reads the manifest and writes the app info and hash into "conf/apps.conf" . Extractor : Reads a “.pcs” file, checks the headers to see if it’s legitimate, then reads the manifest and extracts everything into "/apps/" . Image rendering app : I tried to run Bad Apple in PicoOS, and for this I needed something like image rendering, so I made this. It reads its own file format ".pxi" , which has every line and the RGB color of every pixel in the line. It works line by line because the Pico doesn’t have a lot of RAM, and if I tried to load everything at once it wouldn’t handle it. The output is basically “██” — that ASCII block — colored using TrueColor. External tools : A new folder with every tool you need to: build an app : python build_app.py folder_path — takes the folder, reads every file, checks for main.py and manifest.json, and makes it into "foldername.pcs" and "foldername.pcs.256" extract an app : python extract_app.py app_name.pcs — makes a folder with the app name containing everything that was in the app pxi converter : python pxi_converter.py image — takes the image, scales it, reads every pixel and calculates its RGB value, and outputs "image_name.pxi" Installing apps in installer.py : You can now install apps externally using the PC installer, so you can install apps from the internet. It gives you a menu where you select the apps you want, then it downloads them onto the Pico and runs the installer there. Download apps from the website : I have the website https://picoos.dev , and I added an apps section where you can find all the apps and their descriptions, and if you click download you get the app. Small changes : You can now select whether you have an SD card, and if not it won’t try to mount it. I repaired the error-saving so it can now save errors to the SD card. I changed the app manifest so now it must have the hash and description. What I want to do next: README : outdated, need to add and change the info about PicoOS. Website : also outdated, must rewrite it. 2nd ship : because I’ve been waiting for feedback from the 1st ship for 11 days, I want to try shipping it a second time. So this is maybe all from this devlog. It’s a huge update, and I want to make it even better. Thanks for the support. Love u guys :3 Below you can see the image app in action, apps installing using the internet, and the website’s app section preview.
Devlog #9 This devlog is going to be shorter because I was on vacation and didn’t have much time. But I repaired the installer on Windows and added some things to the README and website. Installer on Windows I use Linux for my daily work, so the installer was originally tested only on Linux. I wanted it to work on every OS, but unfortunately, it didn’t.Someone tried to use PicoOS and sent me an issue saying that the installer wasn’t working on Windows. What was the problem? The problem was that the installer can flash the newest version of MicroPython onto the device and detect if the device is in boot mode.However, Linux shows the Pico’s mass storage device differently than Windows does, so the installer couldn’t find it on Windows. How I fixed it I knew where the bug was, so I managed to fix it.First, the installer detects which OS it is running on. If it is running on Windows, it uses subprocess and PowerShell to ask Windows if a Pico is connected in boot mode. If it finds one, it gets the directory of the device.I don’t have a Windows PC, so I asked the person who reported the issue to test it for me.And it worked! :3 Documentation The website and README were outdated, so I rewrote some of the sections to make sure they are up to date.And yeah… I don’t really like documenting my projects. Other things I tried to fix the problem where pressing Ctrl + C in PicoOS would crash the whole system. I managed to fix it, but then I noticed that it prevented mpremote from resetting the device. After that, I removed the fix for now. Fixed an app-running problem where apps wouldn’t start if you weren’t in the / directory. I managed to fix that too. Repaired error saving to the SD card again because one small change broke it. Added installed apps to the installer, so you can see which apps you already have installed. What I want to do next Documentation — Right now, the README only contains some basic information and nothing close to the actual system documentation for developers. I want to create full documentation for PicoOS and explain how the system actually works. Fix the crash problem in PicoOS — I know I already tried to fix it and failed, but I want to try again with a different approach. I don’t know exactly how yet, but I’ll figure it out. Contact me — Now that I know someone is actually trying to use this project, I want to add a section to the PicoOS website where people can send me questions, feedback, bug reports, and more Make the app system public — Right now, the apps are only mine. If someone wants to add their own app, they don’t really have a way to do it yet. I want to create a system where people can submit their apps, write the necessary documentation, and eventually make them publicly available. Below is the issue I received and the system I use to check whether an app is installed.
Devlog #10 Added users and remade website What I’m working on I wasn’t working on this project for a longer time (2 months), but I decided to continue working on it :). These are some of the things that I made: Users So, because in the old version the user was working in the system files, and that wasn’t very safe, I decided that I need to have something like this, also because I want this OS to feel like Linux. I added a new command called userman , and with this, you can create users, delete users, and also log in. I also added passwords, so I made an easy (for now) hashing system and saving system for them. Some safety features I found out that when you type "rm /" , it would, without any questions, delete all of the system files. I repaired it, and now when you type just "rm /" , it’s going to tell you that it can’t do it, but if you type "rm / --no-preserve-root" , it will firstly ask you, and when you type “y”, it will remove everything. Remade Website So, my ship request got denied because my website felt like it was vibecoded, and yeah, it was. Sooo, I decided that I want to get my Stardust XD and also make this project good, so I tried to remake it with my own hands. Yeah, I know it doesn’t look like before, but because I’m not good at graphics and website making, it looks as good as I can make it. Other things Small things like editing the README, repairing some bugs in the system, and also adding new things to the installer. What I want to do next Try to ship the project. This is my only mission for now because I am still trying, and I really want my Stardust to buy the T-shirt. So yeah, I think this is everything that I have on my mind. I know it’s not a really long devlog, but I think I said everything that I have on my mind. I’m gonna try to ship it, so wish me luck. Love u :3
Ships:
I created an operating system for the Raspberry Pi Pico family. It is a shell-based OS written in MicroPython, designed to feel similar to Linux. While it does not include every Linux command, it introduces many familiar concepts, including a built-in text editor called Nano . PicoOS allows users to create their own apps and install them directly into the system. It supports SD cards, error logging, and one of its main features is the ability to write your own Python programs that can interact with the Raspberry Pi Pico hardware, including its GPIO pins. This project was challenging, but I managed to make it a reality, and the process was also a lot of fun. The original idea came from wanting to run Linux on a Raspberry Pi Pico. However, because of its limited RAM and flash storage, running a full Linux system was not possible. Instead, I decided to create my own lightweight, Linux-inspired operating system designed specifically for the Raspberry Pi Pico. I also created an installer that makes it easy to install and configure PicoOS on your device, allowing anyone to quickly set up their own Pico-based operating system. This is only the first release of PicoOS, with simple and basic features, but there is much more planned for the future. I recently got a Raspberry Pi Pico W, which will allow me to start working on WiFi support. With WiFi, PicoOS will be able to connect to the internet, download updates and install apps online, browse web content, and introduce new network features. I also want to create a lightweight version of something similar to SSH, allowing users to remotely connect to and control their Raspberry Pi Pico running PicoOS....
|
1793253353.5303237
|
1793339753.5303237
|
|
66837
|
SuperMarket BillingSystem by @Aayansh | Stardance
|
Aayansh
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T15:24:59Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a super market billing system that wili help you organise your stocks and pull up bills out of it and the amount will be reduced from the database ….i got many errors and now i have finally done it so i am very proud of myself……", "repo": "https://github.com/Aayansh07-07-12/SuperMarketBillingSystem", "demo": "https://github.com/Aayansh07-07-12/SuperMarketBillingSystem/blob/main/SMBM/(1)supermarketbillingsystem.exe"}]...
|
[{"post_id": 75898, "ts": "202 [{"post_id": 75898, "ts": "2026-10-01T15:20:32Z", "hours": 0.4267, "text": "So, I have finally completed coding and now i am finally cleaning and giving it some finishing"}, {"post_id": 75850, "ts": "2026-10-01T10:38:55Z", "hours": 1.0761, "text": "Almost done with it……"}, {"post_id": 75833, "ts": "2026-10-01T09:01:56Z", "hours": 2.2486, "text": "I am working on a Super Market Management System that help ppl manage the price and amount of their stock."}]...
|
Title: SuperMarket BillingSystem by @Aayansh | Sta Title: SuperMarket BillingSystem by @Aayansh | Stardance
Devlogs:
I am working on a Super Market Management System that help ppl manage the price and amount of their stock.
Almost done with it……
So, I have finally completed coding and now i am finally cleaning and giving it some finishing
Ships:
i made a super market billing system that wili help you organise your stocks and pull up bills out of it and the amount will be reduced from the database ….i got many errors and now i have finally done it so i am very proud of myself……...
|
1793217017.1093934
|
1793303417.1093934
|
|
17464
|
LocalSpot by @reyansh | Stardance
|
reyansh
|
0
|
0.83
|
0
|
[]
|
[{"post_id": 7590, "ts": "2026 [{"post_id": 7590, "ts": "2026-06-12T18:09:21Z", "hours": 0.8322, "text": "Im working on getting a domain grant"}]...
|
Title: LocalSpot by @reyansh | Stardance
Devlogs: Title: LocalSpot by @reyansh | Stardance
Devlogs:
Im working on getting a domain grant...
|
1792687789.2493255
|
1793292589.2493255
|
|
49767
|
Raspberry Pi Laptop by @suklaasukkulayt | Stardanc Raspberry Pi Laptop by @suklaasukkulayt | Stardance...
|
suklaasukkulayt
|
0
|
6.81
|
0
|
[]
|
[{"post_id": 75907, "ts": "202 [{"post_id": 75907, "ts": "2026-10-01T15:54:51Z", "hours": 2.7492, "text": "Devlog 2 Next devlog I’m gonna start making the body for this. I took apart the PS4 controller and now it only has the touchpad, speaker, charging port and the headphone jack . I added the Raspberry Pi camera module 3 so I can use the camera. I also had to make a switch to disable the power to the monitor , because it was glitching when booting. I added a power button , because the Pi wouldn’t turn on when just turning the power on from the switch. The final laptop will also have a power bank functionality (when the Pi is not in use), because I will leave the usb port from the power bank exposed. That’s probably all for now!"}, {"post_id": 66574, "ts": "2026-09-12T12:32:59Z", "hours": 4.0656, "text": "Devlog 1 I wanted to make a small and portable laptop using parts I had at home . The laptop’s brain is a Raspberry Pi 5 powered with a power bank I found for just 1€ at a flea market. The capacity is 10 000mah . I connected a bluetooth keyboard I had like never used and a PS4 controller with stick drift. I’m gonna use the controller’s touch pad as a mouse and the headphone jack (and maybe the speaker if possible) for audio . (I’m gonna take the controller apart) It has a Dfrobot 7” touchscreen . It will also have HDMI output for an external display. It doesn’t have the body yet but I will start working on it soon !"}]...
|
Title: Raspberry Pi Laptop by @suklaasukkulayt | S Title: Raspberry Pi Laptop by @suklaasukkulayt | Stardance
Devlogs:
Devlog 1 I wanted to make a small and portable laptop using parts I had at home . The laptop’s brain is a Raspberry Pi 5 powered with a power bank I found for just 1€ at a flea market. The capacity is 10 000mah . I connected a bluetooth keyboard I had like never used and a PS4 controller with stick drift. I’m gonna use the controller’s touch pad as a mouse and the headphone jack (and maybe the speaker if possible) for audio . (I’m gonna take the controller apart) It has a Dfrobot 7” touchscreen . It will also have HDMI output for an external display. It doesn’t have the body yet but I will start working on it soon !
Devlog 2 Next devlog I’m gonna start making the body for this. I took apart the PS4 controller and now it only has the touchpad, speaker, charging port and the headphone jack . I added the Raspberry Pi camera module 3 so I can use the camera. I also had to make a switch to disable the power to the monitor , because it was glitching when booting. I added a power button , because the Pi wouldn’t turn on when just turning the power on from the switch. The final laptop will also have a power bank functionality (when the Pi is not in use), because I will leave the usb port from the power bank exposed. That’s probably all for now!...
|
1793303548.4891405
|
1793908348.4891405
|
|
64244
|
GeethamSeniorSite by @geethamrevu | Stardance
|
geethamrevu
|
0
|
3.99
|
0
|
[]
|
[{"post_id": 75908, "ts": "202 [{"post_id": 75908, "ts": "2026-10-01T15:58:00Z", "hours": 0.4881, "text": "Uhh I aint done much lowk"}, {"post_id": 73431, "ts": "2026-09-25T02:30:51Z", "hours": 0.5306, "text": "WE MAKIN SOME DISTANCE YES SIRRRRR ALR first Ima explain I make the last a troll obby makin the game unwinnable"}, {"post_id": 73394, "ts": "2026-09-25T01:56:42Z", "hours": 1.0078, "text": "HEY An extension Now So made like a Big like Array Contianing all the platforms cus I aint remebrtiing them finally amde an endpoint but im changing it out for rn so"}, {"post_id": 72321, "ts": "2026-09-22T17:38:35Z", "hours": 1.3392, "text": "ALr I got lava and gravity now and i need to work on a platform so it stays on top"}, {"post_id": 71915, "ts": "2026-09-21T19:20:24Z", "hours": 0.6194, "text": "I Built a recctangle with red oclor a platform and currently making gravity"}]...
|
Title: GeethamSeniorSite by @geethamrevu | Stardan Title: GeethamSeniorSite by @geethamrevu | Stardance
Devlogs:
I Built a recctangle with red oclor a platform and currently making gravity
ALr I got lava and gravity now and i need to work on a platform so it stays on top
HEY An extension Now So made like a Big like Array Contianing all the platforms cus I aint remebrtiing them finally amde an endpoint but im changing it out for rn so
WE MAKIN SOME DISTANCE YES SIRRRRR ALR first Ima explain I make the last a troll obby makin the game unwinnable
Uhh I aint done much lowk...
|
1793058832.1749957
|
1793663632.1749957
|
|
38042
|
VoidSeed by @otzpt | Stardance
|
otzpt
|
1
|
12.53
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-15T13:29:08Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "My aim was never been to create a useful replacement for ChatGPT; instead, I decided to understand what goes on inside a language model and so I created the transformer, the training loop, the tokenizer/data pipeline, and the retrieval layer myself. It went through two phases: 24M parameters trained on TinyStories as the starter experiment 155M parameters trained on ~2B tokens of security documentation Full-text retrieval using SQLite FTS5 A custom training pipeline that includes the use of mixed precision, checkpointing, and cosine LR scheduling, etc. The model is awful at actually answering questions ; that’s basically the whole point. While they are able to generate coherent text and the more extensive model can make use of the security documentation that has been retrieved, don’t expect anything like frontier-model level reasoning; it’s a small model designed to learn from existing models rather than to replace those which cost millions to train. From this project I learned more regarding transformers, training, data, retrieval, and the actual situation with small models than I would have if I had just used an existing framework.", "repo": "https://github.com/otzpt/VOIDSEED", "demo": "https://llmwebsite-pink.vercel.app/"}]...
|
[{"post_id": 75917, "ts": "202 [{"post_id": 75917, "ts": "2026-10-01T16:34:14Z", "hours": 1.5283, "text": "Fix for ship The Ship was rejected for AI readme (wrong banner and AI written AI usage declaration, but this is not smt that counts time towards devlog so it’s not going to be mentioned) which I had already re-written, so I thought what could maybe fix the ship issue, and an idea came to mind: if the readme sounds AI written then I will fully re-write the readme from scratch and only use AI to fix typos (ex: LMM to LLM or then to than), so that is what I did, I re-wrote the entire readme. The problem There was a big problem: it had been so long I didn’t remember the code well, so I had to study the entire code base because of the readme. In the process, I found a bug in chat.py , which luckily was a quick fix, just a if there. Extra If you are wondering why the devlog is 1h and 30m, I also don’t know. If I had to guess, it is that I re-wrote the readme a first time and didn’t make the devlog, so there is that extra that could also be why it got rejected for the same reason as before (AI readme)."}, {"post_id": 45247, "ts": "2026-08-11T16:19:57Z", "hours": 1.7969, "text": "tiny-llm: KV-cache, a public API, and shipping the whole thing Last devlog left off with the 100M model trained and RAG wired into chat.py , generating in ~50s per reply. This one covers making that fast, and getting the whole pipeline live on the internet. Understanding KV-cache Without a cache, every new token recalculates K/V for all tokens already processed, even though those values haven’t changed. The KV cache keeps them around and only computes K/V for the new token. Three real changes to model.py : CausalSelfAttention.forward now takes an optional kv_cache , concatenates new K/V onto it along the sequence dimension, and returns the updated cache. The causal mask only applies when there’s no cache. With a cache, the new token’s query attends over the entire K/V (past + new), and since generation only ever feeds one new token at a time once a cache exists, there’s no future position to accidentally see. “No mask” is the correct causal mask in that case, not an approximation. Position embeddings need to be absolute, not relative to the current call. With a cache, x is only the new tokens, so position 0 here is really past_length in the full sequence, pulled from the cached K’s sequence-length dimension. Before relying on the cache, I added a correctness check: run the whole sequence normally, then one token at a time through the cache, compare logits with torch.allclose . They matched. Wanted to confirm correctness before worrying about performance. Wiring it into generation chat.py and backend.py now do a prefill (whole prompt through the model once, building the initial cache) followed by decode steps that only pass the newest token plus the accumulated cache, instead of re-encoding a sliding window every step. Deploying: Nest, Vercel, and bugs that only show up live Backend/model : FastAPI on Hack Club Nest (Stardance’s rules don’t allow Hugging Face for hosting), running as a systemd service, bound to 127.0.0.1 behind Caddy for TLS. Frontend : static HTML/CSS/JS on Vercel, auto-deployed via GitHub Actions. Real bugs surfaced by going live: addMessage() never returned the div it created, so every successful reply crashed setting .textContent on undefined , landing in the catch block and showing an error even when the backend answered correctly. Live on the public demo before it got caught. The rate limiter keyed on a spoofable query parameter instead of the real client IP. Fixed by reading X-Forwarded-For ’s last hop, which only Caddy can set here. No protection against concurrent requests on a 2-vCPU, 1.5GB box with a documented prior OOM kill. Queuing behind a lock still pushed memory to the ceiling, so it became a 503 (fail fast) instead. A missing message field crashed inside search() . Now returns 400 first. The model’s sanity-check block ran on every import, not just direct execution. Gated behind if __name__ == \"__main__\": . The result /generate went from ~50s to ~4.0s, a ~12.5x speedup, same model, same box, real public HTTPS endpoint. Verified live, not assumed. What’s running now A GPT trained from scratch, retrieval-augmented over real security docs, served with KV-cache inference behind a rate-limited public API. Every piece went through a review pass that caught real, live bugs before calling it done. The model’s output quality at 100M params is the physical ceiling of this scale, not a bug to fix, that was always the outcome of training something this size from nothing. Getting the whole stack this far, correctly, is the milestone."}, {"post_id": 45049, "ts": "2026-08-11T09:30:36Z", "hours": 1.1694, "text": "tiny-llm: the 100M model is trained, and RAG is wired in The 100M parameter run is done. 976,562 steps on a 2B-token corpus, and chat.py now pulls retrieved passages before generating instead of relying on memorized weights. The problem, and the fix Started out wanting this model trained purely on security content (HackTricks, PayloadsAllTheThings, SecLists, GTFOBins, CheatSheetSeries, wstg). All of that combined comes to about 6.73M tokens. Compute-optimal for a 100M model is around 2B tokens, real security wikis just don’t reach that scale, and no amount of repo-hunting was going to fix that 300x gap. The solution i found was blend the 6.73M security tokens into a 2B-token corpus, topped up with FineWeb-Edu for general English coverage. The model gets real security-domain exposure plus enough general text to actually hold together grammatically, not by inventing security content that doesn’t exist, but by being upfront about what’s actually available. The training run d_model=768, n_heads=12, n_layer=12 4x the previous 24M config. Config changes were straightforward, getting a resumable 50-hour run right was the actual work: Checkpoint pruning — early on, checkpoints/ silently grew to 561GB before a torch.save call failed with a disk-full error mid-write. Fixed by keeping only the 5 most recent checkpoints on every save, removing older ones automatically. torch.compile ordering — resuming from a checkpoint failed with a state_dict key mismatch the first time, because model = torch.compile(model) was running before the resume logic loaded the weights. Compiled models get every parameter name prefixed with _orig_mod. , so loading a plain checkpoint into a compiled model (or vice versa) breaks. Fixed by moving the resume block to before the torch.compile call — load into the “bare” model first, compile after. Verified resume actually works — killed the process mid-run, restarted, confirmed it picked up exactly where it left off (same step, same loss) before trusting it for the full 50 hours unattended. Final loss landed around 3.5–3.8 (train and val tracking closely) — expected for a corpus this heterogeneous (security docs + general web text) compared to the tighter 1.4–1.8 range on TinyStories. Wiring in retrieval A 100M model isn’t going to reliably “know” security facts from 6.73M tokens seen once inside a 2B-token corpus — so instead of hoping the weights memorized it, chat.py now retrieves first: User’s prompt goes to a local SQLite FTS5 search index built over the same repos/ content used in training Top-k matching passages come back with source, heading, and BM25 relevance score Those passages get prepended to the prompt as context before the model generates Straightforward in concept, but ran into block_size=256 limits fast, retrieved passages plus the question can easily blow past what the model was trained to handle positionally. Fixed by truncating the encoded prompt to the last 256 tokens before generation, keeping the question and “Answer:” cue intact even if some of the retrieved context gets cut from the front. What actually happens now Asked “What is SQL injection?” — with retrieval wired in, the model opens with something closer to on-topic (“one of the most powerful tools available to attackers”) instead of pure noise, but drifts into plausible-sounding but fabricated details a few sentences in. That’s the honest result at this scale: retrieval gives it real information to start from, but staying faithful to that context for 100 generated tokens is past what 100M parameters can reliably do. Better than without retrieval, not a fix for the underlying scale limit."}, {"post_id": 42260, "ts": "2026-08-06T21:44:21Z", "hours": 1.7903, "text": "tiny-llm: 24M model trained, and it actually generates coherent stories Picked up from the last devlog — train.py was working (fp16, grad clipping, val loss, checkpointing), but only tested on 2000 steps. This one covers finishing the training setup, the real 4-hour run, and getting the model talking through a CLI. Cosine LR with warmup Added a proper learning rate schedule before committing to a long run: Warmup — LR ramps up linearly from 0 to the target (3e-4) over the first 2000 steps, instead of hitting the model with full LR while the weights are still random. Cosine decay — after warmup, LR follows a cosine curve down toward 0 over the rest of training, so the model settles into finer adjustments by the end instead of taking large steps the whole way through. Nothing exotic here — PyTorch doesn’t need a library for this, just a function that computes the right LR for the current step and gets applied to the optimizer’s param groups each iteration. The real run 474M tokens (the full TinyStories corpus), which comes out to ~231,445 steps at batch_size=8, block_size=256 . Ran for about 4 hours on the RTX 2080 Super: step 0: train loss 11.01 val loss 10.62 step 231000: train loss 1.48 val loss 1.49 step 231400: train loss 1.82 val loss 1.69 Train and val loss tracked closely the entire run — no overfitting. Loss in the 1.4–1.8 range by the end, a solid result for a from-scratch 24M model on this corpus. sample.py: watching it actually generate Wrote a script to load a checkpoint and generate text autoregressively — feed in a prompt, predict the next token, append it, repeat. Had to fix two small but important bugs along the way: torch.arange and torch.triu inside the model default to creating tensors on CPU even when everything else is on GPU — same device-mismatch class of bug as during training, fixed the same way ( device=x.device ). Loading the checkpoint failed at first because torch.compile prefixes every parameter name with _orig_mod. — stripped it with a quick dict comprehension before calling load_state_dict . First real generation, prompted with “once upon a time”: once upon a time, there was a fish named Fin. Fin was very brave and always had a big challenge to do. One day, Fin asked his friend, Sally, “Will you marry me?” Sally said, “Yes, Fin! Let’s go!” Fin and Sally had a big adventure in the ocean… Not perfect logic (fish swimming through an ocean “full of fish to eat” is a little off), but grammatically solid, consistent character names throughout, and a real narrative arc. Exactly what you’d expect from a well-trained 24M model on TinyStories. chat.py: a quick interactive loop Wrapped the generation code in a while True loop so the model loads once and takes prompts repeatedly instead of restarting for every single generation. Worth noting for anyone trying this themselves: this is a base model , not an instruction-tuned chat model — it doesn’t “answer” prompts, it just continues them as text. Say “hello” and it treats that as the opening of a story, not a greeting to respond to. That’s expected behavior at this stage, not a bug — instruction-following is a separate fine-tuning step for later. What’s next The full pipeline — prepare.py → train.py → sample.py/chat.py — is confirmed working end-to-end, from raw dataset to a model you can actually talk to (in the “continues your text” sense). Next up: scaling to the 100M-param run on a 2B-token corpus, this time blending real security-focused text (HackTricks, PayloadsAllTheThings, and others) with general web text, plus a retrieval index so the model can pull in relevant passages instead of relying purely on memorized weights."}, {"post_id": 40820, "ts": "2026-08-04T16:14:21Z", "hours": 1.0447, "text": "tiny-llm: train.py works, and the model is actually learning model.py and prepare.py were done, but nothing had actually been trained yet. This devlog covers train.py and the first real smoke test on the 24M-parameters config. Writing train.py Wrote the training loop the same way as the model piece by piece, understanding each part before moving on: get_batch — pulls random windows from the memmapped .bin files. x is a block of tokens, y is the same block shifted by one position (next-token prediction). Understanding why y is just x shifted by 1 was one of those small moments where next-token prediction actually clicked. Mixed precision (fp16 + GradScaler) — my GPU (RTX 2080 Super, Turing) doesn’t have real bf16 tensor cores, so fp16 with a GradScaler is the right call. The scaler exists because fp16 has a much narrower range than fp32 — small gradients can underflow to zero and silently vanish. The scaler multiplies the loss up before backward() and unscales before step() , so nothing gets lost in the process. Gradient clipping — caps the gradient norm at 1.0 before the optimizer step, to stop occasional exploding gradients from wrecking a good run. Validation loss — evaluates on a held-out batch from val.bin every 100 steps, wrapped in model.eval() + @torch.no_grad() , so I can actually tell if the model is generalizing instead of just memorizing. Checkpointing — saves model + optimizer state every 1000 steps. Training a real run for tens of hours without this would be a great way to lose everything to one crash. Debugging session Hit two device-mismatch errors early on — torch.arange and torch.triu both default to creating tensors on CPU, even when the rest of the model is on the GPU. Fixed by explicitly passing device=x.device wherever a new tensor gets created inside the model. Small bug, but a good reminder that PyTorch doesn’t infer device placement for you. First real run Ran the 24M-param smoke test ( n_layer=6, n_head=6, n_embd=384, block_size=256 ) on TinyStories, ~470M tokens, for 2000 steps on my RTX 2080 Super: step 0: train loss 11.01 val loss 10.62 step 1000: train loss 3.34 val loss 3.47 step 1900: train loss 2.89 val loss 3.10 Loss starts right around ln(50257) ≈ 10.8 , which is exactly what you’d expect from a model guessing uniformly over the vocabulary before it’s learned anything. Train and val loss track each other closely the whole way down — no sign of overfitting, which is what I wanted to confirm before committing to a much longer run. What’s next The full pipeline is confirmed working end-to-end: prepare.py → get_batch → model.py → train.py , all on my own hardware. Next step is adding a cosine learning rate schedule with warmup, then moving on to the actual 100M-param run. PS: train.py had some AI usage"}, {"post_id": 36434, "ts": "2026-07-28T15:39:08Z", "hours": 5.0886, "text": "tiny-llm: getting the data pipeline and model architecture in place Before writing any model code, I needed a way to actually get training data into a usable format. prepare.py handles that: it streams a dataset from HuggingFace (starting with TinyStories, ~470M tokens), tokenizes it with the GPT-2 BPE tokenizer via tiktoken , and writes it out as flat uint16 arrays split into train.bin and val.bin . A few details mattered here even though I didn’t write this part myself: Tokens are stored as uint16 instead of the more obvious int32 / int64 — GPT-2’s vocab is 50,257 tokens, which fits comfortably under 65,536, so uint16 cuts file size in half for free. The split between train/val happens per document , not per token. Each story gets an end-of-text token appended, and documents are randomly assigned to train or val as a whole — so a story never gets cut in half across the train/val boundary and leaks information. Files are written so they can be read later with np.memmap , meaning the corpus never has to fit in RAM — training just maps the file and reads slices from disk on demand. With the data pipeline sorted, I moved on to the part I actually wanted to understand deeply: the model itself. That’s model.py , CausalSelfAttention , MLP , Block , and GPT , all written and shape-tested from scratch. Having both pieces done means the two “boring but necessary” and “the actual point of the project” halves are finally connected: real tokenized text on one end, a transformer architecture ready to consume it on the other. Next: train.py — wiring prepare.py ’s output into model.py via memmap batching, cross-entropy loss, AdamW, and a training loop."}]...
|
Title: VoidSeed by @otzpt | Stardance
Devlogs:
ti Title: VoidSeed by @otzpt | Stardance
Devlogs:
tiny-llm: getting the data pipeline and model architecture in place Before writing any model code, I needed a way to actually get training data into a usable format. prepare.py handles that: it streams a dataset from HuggingFace (starting with TinyStories, ~470M tokens), tokenizes it with the GPT-2 BPE tokenizer via tiktoken , and writes it out as flat uint16 arrays split into train.bin and val.bin . A few details mattered here even though I didn’t write this part myself: Tokens are stored as uint16 instead of the more obvious int32 / int64 — GPT-2’s vocab is 50,257 tokens, which fits comfortably under 65,536, so uint16 cuts file size in half for free. The split between train/val happens per document , not per token. Each story gets an end-of-text token appended, and documents are randomly assigned to train or val as a whole — so a story never gets cut in half across the train/val boundary and leaks information. Files are written so they can be read later with np.memmap , meaning the corpus never has to fit in RAM — training just maps the file and reads slices from disk on demand. With the data pipeline sorted, I moved on to the part I actually wanted to understand deeply: the model itself. That’s model.py , CausalSelfAttention , MLP , Block , and GPT , all written and shape-tested from scratch. Having both pieces done means the two “boring but necessary” and “the actual point of the project” halves are finally connected: real tokenized text on one end, a transformer architecture ready to consume it on the other. Next: train.py — wiring prepare.py ’s output into model.py via memmap batching, cross-entropy loss, AdamW, and a training loop.
tiny-llm: train.py works, and the model is actually learning model.py and prepare.py were done, but nothing had actually been trained yet. This devlog covers train.py and the first real smoke test on the 24M-parameters config. Writing train.py Wrote the training loop the same way as the model piece by piece, understanding each part before moving on: get_batch — pulls random windows from the memmapped .bin files. x is a block of tokens, y is the same block shifted by one position (next-token prediction). Understanding why y is just x shifted by 1 was one of those small moments where next-token prediction actually clicked. Mixed precision (fp16 + GradScaler) — my GPU (RTX 2080 Super, Turing) doesn’t have real bf16 tensor cores, so fp16 with a GradScaler is the right call. The scaler exists because fp16 has a much narrower range than fp32 — small gradients can underflow to zero and silently vanish. The scaler multiplies the loss up before backward() and unscales before step() , so nothing gets lost in the process. Gradient clipping — caps the gradient norm at 1.0 before the optimizer step, to stop occasional exploding gradients from wrecking a good run. Validation loss — evaluates on a held-out batch from val.bin every 100 steps, wrapped in model.eval() + @torch.no_grad() , so I can actually tell if the model is generalizing instead of just memorizing. Checkpointing — saves model + optimizer state every 1000 steps. Training a real run for tens of hours without this would be a great way to lose everything to one crash. Debugging session Hit two device-mismatch errors early on — torch.arange and torch.triu both default to creating tensors on CPU, even when the rest of the model is on the GPU. Fixed by explicitly passing device=x.device wherever a new tensor gets created inside the model. Small bug, but a good reminder that PyTorch doesn’t infer device placement for you. First real run Ran the 24M-param smoke test ( n_layer=6, n_head=6, n_embd=384, block_size=256 ) on TinyStories, ~470M tokens, for 2000 steps on my RTX 2080 Super: step 0: train loss 11.01 val loss 10.62 step 1000: train loss 3.34 val loss 3.47 step 1900: train loss 2.89 val loss 3.10 Loss starts right around ln(50257) ≈ 10.8 , which is exactly what you’d expect from a model guessing uniformly over the vocabulary before it’s learned anything. Train and val loss track each other closely the whole way down — no sign of overfitting, which is what I wanted to confirm before committing to a much longer run. What’s next The full pipeline is confirmed working end-to-end: prepare.py → get_batch → model.py → train.py , all on my own hardware. Next step is adding a cosine learning rate schedule with warmup, then moving on to the actual 100M-param run. PS: train.py had some AI usage
tiny-llm: 24M model trained, and it actually generates coherent stories Picked up from the last devlog — train.py was working (fp16, grad clipping, val loss, checkpointing), but only tested on 2000 steps. This one covers finishing the training setup, the real 4-hour run, and getting the model talking through a CLI. Cosine LR with warmup Added a proper learning rate schedule before committing to a long run: Warmup — LR ramps up linearly from 0 to the target (3e-4) over the first 2000 steps, instead of hitting the model with full LR while the weights are still random. Cosine decay — after warmup, LR follows a cosine curve down toward 0 over the rest of training, so the model settles into finer adjustments by the end instead of taking large steps the whole way through. Nothing exotic here — PyTorch doesn’t need a library for this, just a function that computes the right LR for the current step and gets applied to the optimizer’s param groups each iteration. The real run 474M tokens (the full TinyStories corpus), which comes out to ~231,445 steps at batch_size=8, block_size=256 . Ran for about 4 hours on the RTX 2080 Super: step 0: train loss 11.01 val loss 10.62 step 231000: train loss 1.48 val loss 1.49 step 231400: train loss 1.82 val loss 1.69 Train and val loss tracked closely the entire run — no overfitting. Loss in the 1.4–1.8 range by the end, a solid result for a from-scratch 24M model on this corpus. sample.py: watching it actually generate Wrote a script to load a checkpoint and generate text autoregressively — feed in a prompt, predict the next token, append it, repeat. Had to fix two small but important bugs along the way: torch.arange and torch.triu inside the model default to creating tensors on CPU even when everything else is on GPU — same device-mismatch class of bug as during training, fixed the same way ( device=x.device ). Loading the checkpoint failed at first because torch.compile prefixes every parameter name with _orig_mod. — stripped it with a quick dict comprehension before calling load_state_dict . First real generation, prompted with “once upon a time”: once upon a time, there was a fish named Fin. Fin was very brave and always had a big challenge to do. One day, Fin asked his friend, Sally, “Will you marry me?” Sally said, “Yes, Fin! Let’s go!” Fin and Sally had a big adventure in the ocean… Not perfect logic (fish swimming through an ocean “full of fish to eat” is a little off), but grammatically solid, consistent character names throughout, and a real narrative arc. Exactly what you’d expect from a well-trained 24M model on TinyStories. chat.py: a quick interactive loop Wrapped the generation code in a while True loop so the model loads once and takes prompts repeatedly instead of restarting for every single generation. Worth noting for anyone trying this themselves: this is a base model , not an instruction-tuned chat model — it doesn’t “answer” prompts, it just continues them as text. Say “hello” and it treats that as the opening of a story, not a greeting to respond to. That’s expected behavior at this stage, not a bug — instruction-following is a separate fine-tuning step for later. What’s next The full pipeline — prepare.py → train.py → sample.py/chat.py — is confirmed working end-to-end, from raw dataset to a model you can actually talk to (in the “continues your text” sense). Next up: scaling to the 100M-param run on a 2B-token corpus, this time blending real security-focused text (HackTricks, PayloadsAllTheThings, and others) with general web text, plus a retrieval index so the model can pull in relevant passages instead of relying purely on memorized weights.
tiny-llm: the 100M model is trained, and RAG is wired in The 100M parameter run is done. 976,562 steps on a 2B-token corpus, and chat.py now pulls retrieved passages before generating instead of relying on memorized weights. The problem, and the fix Started out wanting this model trained purely on security content (HackTricks, PayloadsAllTheThings, SecLists, GTFOBins, CheatSheetSeries, wstg). All of that combined comes to about 6.73M tokens. Compute-optimal for a 100M model is around 2B tokens, real security wikis just don’t reach that scale, and no amount of repo-hunting was going to fix that 300x gap. The solution i found was blend the 6.73M security tokens into a 2B-token corpus, topped up with FineWeb-Edu for general English coverage. The model gets real security-domain exposure plus enough general text to actually hold together grammatically, not by inventing security content that doesn’t exist, but by being upfront about what’s actually available. The training run d_model=768, n_heads=12, n_layer=12 4x the previous 24M config. Config changes were straightforward, getting a resumable 50-hour run right was the actual work: Checkpoint pruning — early on, checkpoints/ silently grew to 561GB before a torch.save call failed with a disk-full error mid-write. Fixed by keeping only the 5 most recent checkpoints on every save, removing older ones automatically. torch.compile ordering — resuming from a checkpoint failed with a state_dict key mismatch the first time, because model = torch.compile(model) was running before the resume logic loaded the weights. Compiled models get every parameter name prefixed with _orig_mod. , so loading a plain checkpoint into a compiled model (or vice versa) breaks. Fixed by moving the resume block to before the torch.compile call — load into the “bare” model first, compile after. Verified resume actually works — killed the process mid-run, restarted, confirmed it picked up exactly where it left off (same step, same loss) before trusting it for the full 50 hours unattended. Final loss landed around 3.5–3.8 (train and val tracking closely) — expected for a corpus this heterogeneous (security docs + general web text) compared to the tighter 1.4–1.8 range on TinyStories. Wiring in retrieval A 100M model isn’t going to reliably “know” security facts from 6.73M tokens seen once inside a 2B-token corpus — so instead of hoping the weights memorized it, chat.py now retrieves first: User’s prompt goes to a local SQLite FTS5 search index built over the same repos/ content used in training Top-k matching passages come back with source, heading, and BM25 relevance score Those passages get prepended to the prompt as context before the model generates Straightforward in concept, but ran into block_size=256 limits fast, retrieved passages plus the question can easily blow past what the model was trained to handle positionally. Fixed by truncating the encoded prompt to the last 256 tokens before generation, keeping the question and “Answer:” cue intact even if some of the retrieved context gets cut from the front. What actually happens now Asked “What is SQL injection?” — with retrieval wired in, the model opens with something closer to on-topic (“one of the most powerful tools available to attackers”) instead of pure noise, but drifts into plausible-sounding but fabricated details a few sentences in. That’s the honest result at this scale: retrieval gives it real information to start from, but staying faithful to that context for 100 generated tokens is past what 100M parameters can reliably do. Better than without retrieval, not a fix for the underlying scale limit.
tiny-llm: KV-cache, a public API, and shipping the whole thing Last devlog left off with the 100M model trained and RAG wired into chat.py , generating in ~50s per reply. This one covers making that fast, and getting the whole pipeline live on the internet. Understanding KV-cache Without a cache, every new token recalculates K/V for all tokens already processed, even though those values haven’t changed. The KV cache keeps them around and only computes K/V for the new token. Three real changes to model.py : CausalSelfAttention.forward now takes an optional kv_cache , concatenates new K/V onto it along the sequence dimension, and returns the updated cache. The causal mask only applies when there’s no cache. With a cache, the new token’s query attends over the entire K/V (past + new), and since generation only ever feeds one new token at a time once a cache exists, there’s no future position to accidentally see. “No mask” is the correct causal mask in that case, not an approximation. Position embeddings need to be absolute, not relative to the current call. With a cache, x is only the new tokens, so position 0 here is really past_length in the full sequence, pulled from the cached K’s sequence-length dimension. Before relying on the cache, I added a correctness check: run the whole sequence normally, then one token at a time through the cache, compare logits with torch.allclose . They matched. Wanted to confirm correctness before worrying about performance. Wiring it into generation chat.py and backend.py now do a prefill (whole prompt through the model once, building the initial cache) followed by decode steps that only pass the newest token plus the accumulated cache, instead of re-encoding a sliding window every step. Deploying: Nest, Vercel, and bugs that only show up live Backend/model : FastAPI on Hack Club Nest (Stardance’s rules don’t allow Hugging Face for hosting), running as a systemd service, bound to 127.0.0.1 behind Caddy for TLS. Frontend : static HTML/CSS/JS on Vercel, auto-deployed via GitHub Actions. Real bugs surfaced by going live: addMessage() never returned the div it created, so every successful reply crashed setting .textContent on undefined , landing in the catch block and showing an error even when the backend answered correctly. Live on the public demo before it got caught. The rate limiter keyed on a spoofable query parameter instead of the real client IP. Fixed by reading X-Forwarded-For ’s last hop, which only Caddy can set here. No protection against concurrent requests on a 2-vCPU, 1.5GB box with a documented prior OOM kill. Queuing behind a lock still pushed memory to the ceiling, so it became a 503 (fail fast) instead. A missing message field crashed inside search() . Now returns 400 first. The model’s sanity-check block ran on every import, not just direct execution. Gated behind if __name__ == "__main__": . The result /generate went from ~50s to ~4.0s, a ~12.5x speedup, same model, same box, real public HTTPS endpoint. Verified live, not assumed. What’s running now A GPT trained from scratch, retrieval-augmented over real security docs, served with KV-cache inference behind a rate-limited public API. Every piece went through a review pass that caught real, live bugs before calling it done. The model’s output quality at 100M params is the physical ceiling of this scale, not a bug to fix, that was always the outcome of training something this size from nothing. Getting the whole stack this far, correctly, is the milestone.
Fix for ship The Ship was rejected for AI readme (wrong banner and AI written AI usage declaration, but this is not smt that counts time towards devlog so it’s not going to be mentioned) which I had already re-written, so I thought what could maybe fix the ship issue, and an idea came to mind: if the readme sounds AI written then I will fully re-write the readme from scratch and only use AI to fix typos (ex: LMM to LLM or then to than), so that is what I did, I re-wrote the entire readme. The problem There was a big problem: it had been so long I didn’t remember the code well, so I had to study the entire code base because of the readme. In the process, I found a bug in chat.py , which luckily was a quick fix, just a if there. Extra If you are wondering why the devlog is 1h and 30m, I also don’t know. If I had to guess, it is that I re-wrote the readme a first time and didn’t make the devlog, so there is that extra that could also be why it got rejected for the same reason as before (AI readme).
Ships:
My aim was never been to create a useful replacement for ChatGPT; instead, I decided to understand what goes on inside a language model and so I created the transformer, the training loop, the tokenizer/data pipeline, and the retrieval layer myself. It went through two phases: 24M parameters trained on TinyStories as the starter experiment 155M parameters trained on ~2B tokens of security documentation Full-text retrieval using SQLite FTS5 A custom training pipeline that includes the use of mixed precision, checkpointing, and cosine LR scheduling, etc. The model is awful at actually answering questions ; that’s basically the whole point. While they are able to generate coherent text and the more extensive model can make use of the security documentation that has been retrieved, don’t expect anything like frontier-model level reasoning; it’s a small model designed to learn from existing models rather than to replace those which cost millions to train. From this project I learned more regarding transformers, training, data, retrieval, and the actual situation with small models than I would have if I had just used an existing framework....
|
1793307054.1067615
|
1793393454.1067615
|
|
67057
|
Tejas.in by @tejasv | Stardance
|
tejasv
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T17:51:10Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I SOLVED REIMANN HYPOTHESIS .LOL . ITS A PERSONAL SITE , OBV . SO THE CHALLENGING PART IS THAT , FIGURE I MADE IT THE CORNER AND DOING THE REALIZIATION THAT I DIDINT POSTED A DEVLOG , ITS RELLY MESSY ,ATP . BUT THE SITE IS A CLEAN POLISHED HUAMN MADE , MF ITS HUMAN AND A BIT QUIRK OF AI , IT HAVE 4 SECTIONS , GO AND SEE THE LINK IS BELOW.HAHAHA , I FELT THE MOST FUCKIN’ ASS PART IS nothing its ezzzz , a notmal website ,yk that strip i made is a bit tough and all good , plz dont fuck me approve it in one time ,ahm ,csorry take ur time", "repo": "https://github.com/tejasvswipe/tejas", "demo": "https://tejas-pink.vercel.app"}]...
|
[{"post_id": 75926, "ts": "202 [{"post_id": 75926, "ts": "2026-10-01T16:54:04Z", "hours": 3.5447, "text": "its partially comppleted . yepiee , hardest to set the config , mann… it takes hours sadly doesnt counts in coding time"}]...
|
Title: Tejas.in by @tejasv | Stardance
Devlogs:
i Title: Tejas.in by @tejasv | Stardance
Devlogs:
its partially comppleted . yepiee , hardest to set the config , mann… it takes hours sadly doesnt counts in coding time
Ships:
I SOLVED REIMANN HYPOTHESIS .LOL . ITS A PERSONAL SITE , OBV . SO THE CHALLENGING PART IS THAT , FIGURE I MADE IT THE CORNER AND DOING THE REALIZIATION THAT I DIDINT POSTED A DEVLOG , ITS RELLY MESSY ,ATP . BUT THE SITE IS A CLEAN POLISHED HUAMN MADE , MF ITS HUMAN AND A BIT QUIRK OF AI , IT HAVE 4 SECTIONS , GO AND SEE THE LINK IS BELOW.HAHAHA , I FELT THE MOST FUCKIN’ ASS PART IS nothing its ezzzz , a notmal website ,yk that strip i made is a bit tough and all good , plz dont fuck me approve it in one time ,ahm ,csorry take ur time...
|
1793051344.3503225
|
1793915344.3503225
|
|
60756
|
Vision by @Paachu | Stardance
|
Paachu
|
0
|
5.1
|
0
|
[]
|
[{"post_id": 75928, "ts": "202 [{"post_id": 75928, "ts": "2026-10-01T16:58:38Z", "hours": 0.5761, "text": "Vision The work is done that means Ready to SHIP but, I feel empty cuz its just feels like a Vibe coded one even though i did myself Should i try to reprogram frontend ?"}, {"post_id": 72159, "ts": "2026-09-22T10:33:31Z", "hours": 1.3106, "text": "Making Vision to be Complete Powerfull (the secret behind it will be exposed at next DevLog)"}, {"post_id": 71114, "ts": "2026-09-20T09:58:56Z", "hours": 2.6567, "text": "Still evolving"}, {"post_id": 65488, "ts": "2026-09-10T17:33:20Z", "hours": 0.5553, "text": "Vision If you are a MCU Fan , You dont need any explanation. I have made a Jarvis , (Varvis actually) , Making its 2.0 , Evolving with my new knowledge Who said Youtube shorts is useless !!! My Ui Tricks are from yt shorts , if needed i will add them to refs,…"}]...
|
Title: Vision by @Paachu | Stardance
Devlogs:
Vis Title: Vision by @Paachu | Stardance
Devlogs:
Vision If you are a MCU Fan , You dont need any explanation. I have made a Jarvis , (Varvis actually) , Making its 2.0 , Evolving with my new knowledge Who said Youtube shorts is useless !!! My Ui Tricks are from yt shorts , if needed i will add them to refs,…
Still evolving
Making Vision to be Complete Powerfull (the secret behind it will be exposed at next DevLog)
Vision The work is done that means Ready to SHIP but, I feel empty cuz its just feels like a Vibe coded one even though i did myself Should i try to reprogram frontend ?...
|
1793037007.535152
|
1793641807.535152
|
|
19054
|
Frictionless by @tejasv | Stardance
|
tejasv
|
1
|
5.14
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T19:25:15Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did you make? I made TidyUp, a simple productivity tool for people who feel overwhelmed or stuck. It helps users clear their head, choose one small task, and start a short focus timer without needing an account. What was challenging? The hardest part was making productivity feel less stressful. I wanted TidyUp to guide users without overwhelming them with another complicated task system. What are you proud of? I’m proud that TidyUp is actually usable. Users can capture tasks, choose one next action, run a timer, save distractions for later, and track their progress. I’m also proud of the friendly, playful design and the idea that starting counts as progress How can people test it? Choose a mood, start a reset, add a few loose ends, select one task, and run the 5-minute timer. You can also test the history keyboard shortcuts, local storage, and curated video library. TidyUp works locally and does not require an account. To test it: 1.Open the app. Choose SCATTERED or AVOIDING. Click START A 3-MINUTE RESET. 4.Continue through the breathing step, or choose the 5-4-3-2-1 grounding alternative. Paste several loose ends into the capture box. 6.Select one item and turn it into a small visible action. 7.Choose a 5-minute timer. 8.Pause the timer and park a distraction. Resume the timer or move to the completion screen. 10Select I STARTED, PARTLY, or NOT YET. 11 Open HISTORY to see the result.", "repo": "https://github.com/tejasvswipe/tidy-up", "demo": "https://tidy-up-one.vercel.app"}]...
|
[{"post_id": 75931, "ts": "202 [{"post_id": 75931, "ts": "2026-10-01T17:02:11Z", "hours": 1.8519, "text": "COMPLETED THE PORBLEM RESOLVED THE QUERY , AND MOST INTERSETINGLY I GOT A GIRLFRIENDDDD!!!"}, {"post_id": 75494, "ts": "2026-09-30T08:53:04Z", "hours": 0.2833, "text": "i was working to prove the less use of ai . plz forgive me , i want stardust ,i just used 10% ai"}, {"post_id": 75314, "ts": "2026-09-29T18:49:31Z", "hours": 0.4189, "text": "The CSS refactor and special quirk is completed"}, {"post_id": 75305, "ts": "2026-09-29T18:08:36Z", "hours": 0.6333, "text": "Yeppiee , it’s working and the things are working , checkout : tidy-up-one.vercel.app"}, {"post_id": 75214, "ts": "2026-09-29T14:33:56Z", "hours": 0.5667, "text": "completed the ui changed and made it genz worthy"}, {"post_id": 73632, "ts": "2026-09-25T15:23:20Z", "hours": 0.5244, "text": "new features – with new look"}, {"post_id": 70573, "ts": "2026-09-19T11:51:29Z", "hours": 0.3569, "text": "TidyUp calms anxiety, captures loose ends, and guides one small focus action so you can start."}]...
|
Title: Frictionless by @tejasv | Stardance
Devlog Title: Frictionless by @tejasv | Stardance
Devlogs:
TidyUp calms anxiety, captures loose ends, and guides one small focus action so you can start.
new features – with new look
completed the ui changed and made it genz worthy
Yeppiee , it’s working and the things are working , checkout : tidy-up-one.vercel.app
The CSS refactor and special quirk is completed
i was working to prove the less use of ai . plz forgive me , i want stardust ,i just used 10% ai
COMPLETED THE PORBLEM RESOLVED THE QUERY , AND MOST INTERSETINGLY I GOT A GIRLFRIENDDDD!!!
Ships:
What did you make? I made TidyUp, a simple productivity tool for people who feel overwhelmed or stuck. It helps users clear their head, choose one small task, and start a short focus timer without needing an account. What was challenging? The hardest part was making productivity feel less stressful. I wanted TidyUp to guide users without overwhelming them with another complicated task system. What are you proud of? I’m proud that TidyUp is actually usable. Users can capture tasks, choose one next action, run a timer, save distractions for later, and track their progress. I’m also proud of the friendly, playful design and the idea that starting counts as progress How can people test it? Choose a mood, start a reset, add a few loose ends, select one task, and run the 5-minute timer. You can also test the history keyboard shortcuts, local storage, and curated video library. TidyUp works locally and does not require an account. To test it: 1.Open the app. Choose SCATTERED or AVOIDING. Click START A 3-MINUTE RESET. 4.Continue through the breathing step, or choose the 5-4-3-2-1 grounding alternative. Paste several loose ends into the capture box. 6.Select one item and turn it into a small visible action. 7.Choose a 5-minute timer. 8.Pause the timer and park a distraction. Resume the timer or move to the completion screen. 10Select I STARTED, PARTLY, or NOT YET. 11 Open HISTORY to see the result....
|
1793008447.91982
|
1793872447.91982
|
|
67208
|
hospital_dashboard by @aaditya064 | Stardance
|
aaditya064
|
0
|
1.32
|
0
|
[]
|
[{"post_id": 75934, "ts": "202 [{"post_id": 75934, "ts": "2026-10-01T17:17:41Z", "hours": 1.3217, "text": "Working on hospital management system with data visualization of the patients and prediction of disease on the basis of data trained (PS. this is just a model, not an actual software to be used in Hospital atp). I’m using MERN stack for the website and Python for the data analysis and ML part. What I did: I just made required models for this project. As I didn’t have proper knowledge about the requirements, I took help from LLM and implemented that in my node.js model. After the model is planned, I will go to working with dataset and training it."}]...
|
Title: hospital_dashboard by @aaditya064 | Stardan Title: hospital_dashboard by @aaditya064 | Stardance
Devlogs:
Working on hospital management system with data visualization of the patients and prediction of disease on the basis of data trained (PS. this is just a model, not an actual software to be used in Hospital atp). I’m using MERN stack for the website and Python for the data analysis and ML part. What I did: I just made required models for this project. As I didn’t have proper knowledge about the requirements, I took help from LLM and implemented that in my node.js model. After the model is planned, I will go to working with dataset and training it....
|
1793108907.749683
|
1793713707.749683
|
|
64095
|
Openblock C++ by @Rohit_Biswas | Stardance
|
Rohit_Biswas
|
0
|
39.34
|
0
|
[]
|
[{"post_id": 75940, "ts": "202 [{"post_id": 75940, "ts": "2026-10-01T17:42:23Z", "hours": 9.2058, "text": "This time i almost 3x optimized block generation system"}, {"post_id": 73926, "ts": "2026-09-26T10:47:12Z", "hours": 0.7142, "text": "Day 7 My project had become messy,buggy and poorly optimized but i did learned a lot. I had new ideas for improving performance and adding some really cool features. so i decided to start from scratch again. for the next 7 days, iam going to try building minecraft clone again better,cleaner and more optimized this time.if i can’t finish it, i’ll delete the project completely."}, {"post_id": 73634, "ts": "2026-09-25T15:30:37Z", "hours": 4.4053, "text": "Day 6 I made chunk loading system with simple multithreading."}, {"post_id": 73029, "ts": "2026-09-24T07:36:49Z", "hours": 3.3083, "text": "Day 5 today,i added textures and optimized block face generating system."}, {"post_id": 72638, "ts": "2026-09-23T12:32:06Z", "hours": 3.1672, "text": "Day 4 today, i work on world cpp/h and creating multiple chunk in heap"}, {"post_id": 72275, "ts": "2026-09-22T15:48:33Z", "hours": 5.7428, "text": "Day 3 finally i made a chunk of blocks! oh my gosh i faced so many memory allocation problem when i was making it"}, {"post_id": 71687, "ts": "2026-09-21T09:51:06Z", "hours": 2.1708, "text": "Day 2 I made a block! today, i made quad rendering system and vertex color system (lighting)"}, {"post_id": 71207, "ts": "2026-09-20T13:24:07Z", "hours": 10.625, "text": "Day 1 I learned basics of C++ and i made a triangle!"}]...
|
Title: Openblock C++ by @Rohit_Biswas | Stardance
Title: Openblock C++ by @Rohit_Biswas | Stardance
Devlogs:
Day 1 I learned basics of C++ and i made a triangle!
Day 2 I made a block! today, i made quad rendering system and vertex color system (lighting)
Day 3 finally i made a chunk of blocks! oh my gosh i faced so many memory allocation problem when i was making it
Day 4 today, i work on world cpp/h and creating multiple chunk in heap
Day 5 today,i added textures and optimized block face generating system.
Day 6 I made chunk loading system with simple multithreading.
Day 7 My project had become messy,buggy and poorly optimized but i did learned a lot. I had new ideas for improving performance and adding some really cool features. so i decided to start from scratch again. for the next 7 days, iam going to try building minecraft clone again better,cleaner and more optimized this time.if i can’t finish it, i’ll delete the project completely.
This time i almost 3x optimized block generation system...
|
1793058624.1457005
|
1793663424.1457005
|
|
45623
|
App Launcher by @Samyak | Stardance
|
Samyak
|
1
|
11.0
|
117
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T18:37:56Z", "hours": 11.0, "multiplier": 10.96, "payout": 117, "blessing": "neutral", "text": "App Launcher helps in finding and launching apps with ease. Many PC’s which are budget, running experimental versions of windows or general may find that Start Menu would lag sometimes. App Launcher is Instant, very minimal resource consumption, Modern Light/Dark Mode, fuzzy search which Start doesn’t support and clear icon view and navigation with arrow keys in the launcher. Its made in Python and compiled using pyinstaller and Setup made using Inno Setup. It essentially replaces the start menu in some way. Its hotkey to launch is Alt+X which is easily accessible. It has a priority system as well as soon as you open the Launcher, the list you see is the recently launched apps by it. Comparitively its much lighter to 99% of other launchers too. I had a lot of difficulty and lot pf googling for this latest update in which i include better quality icons(had do dive into ctypes and stuff) uwp icons(more advanced logics and stuff) and small but good to have UI Changes, theme switcher based on windows modes and much more", "repo": "https://github.com/SpaceCoderPro/App-Launcher", "demo": "https://github.com/SpaceCoderPro/App-Launcher/releases"}]...
|
[{"post_id": 75941, "ts": "202 [{"post_id": 75941, "ts": "2026-10-01T17:43:26Z", "hours": 0.6683, "text": "Just did some minor UI Changes like now 7 rows instead of 6, improved window size, removed scroll bar while maintaining scroll functionality and globalized some variables…"}, {"post_id": 75869, "ts": "2026-10-01T13:00:40Z", "hours": 10.0175, "text": "I worked on improving it. Its now much better.: Stability Improvements, Better Quality Icons, UWP Icons, Finally- An App Icon, Better Performance, Better Alt + X Capturing, Arrow Key Functionality. It wasn’t easy but not that hard. I definitely had to do a lot of googling. And i finally got Git working properly for the Repo with assistance from Gemini. I worked like 2hr and 30min(From i think 28 Sep), the 10h is just my past Macondo data btw…"}]...
|
Title: App Launcher by @Samyak | Stardance
Devlog Title: App Launcher by @Samyak | Stardance
Devlogs:
I worked on improving it. Its now much better.: Stability Improvements, Better Quality Icons, UWP Icons, Finally- An App Icon, Better Performance, Better Alt + X Capturing, Arrow Key Functionality. It wasn’t easy but not that hard. I definitely had to do a lot of googling. And i finally got Git working properly for the Repo with assistance from Gemini. I worked like 2hr and 30min(From i think 28 Sep), the 10h is just my past Macondo data btw…
Just did some minor UI Changes like now 7 rows instead of 6, improved window size, removed scroll bar while maintaining scroll functionality and globalized some variables…
Ships:
App Launcher helps in finding and launching apps with ease. Many PC’s which are budget, running experimental versions of windows or general may find that Start Menu would lag sometimes. App Launcher is Instant, very minimal resource consumption, Modern Light/Dark Mode, fuzzy search which Start doesn’t support and clear icon view and navigation with arrow keys in the launcher. Its made in Python and compiled using pyinstaller and Setup made using Inno Setup. It essentially replaces the start menu in some way. Its hotkey to launch is Alt+X which is easily accessible. It has a priority system as well as soon as you open the Launcher, the list you see is the recently launched apps by it. Comparitively its much lighter to 99% of other launchers too. I had a lot of difficulty and lot pf googling for this latest update in which i include better quality icons(had do dive into ctypes and stuff) uwp icons(more advanced logics and stuff) and small but good to have UI Changes, theme switcher based on windows modes and much more...
|
1793148869.4784992
|
1793235269.4784992
|
|
61454
|
linuxanywhere by @codeeleven | Stardance
|
codeeleven
|
1
|
6.0
|
49
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T18:17:06Z", "hours": 6.0, "multiplier": 8.52, "payout": 49, "blessing": "neutral", "text": "this is linuxanywhere (or a bochs version optimized for browser environments with x64 linux booting capabilities). it can run VMs on the browser (but really slowly). check it out! will improve it more and will add the features i wrote on my github page! i hope you enjoy this :)", "repo": "https://github.com/codeeleven0/linuxanywhere", "demo": "https://codeeleven0.github.io/linuxanywhere/dist/"}]...
|
[{"post_id": 75948, "ts": "202 [{"post_id": 75948, "ts": "2026-10-01T18:14:11Z", "hours": 0.2947, "text": "last devlog before shipping. i have added the project to github and i will take a break from it to focus on more projects and school (obviously!)"}, {"post_id": 75668, "ts": "2026-09-30T18:09:46Z", "hours": 0.3644, "text": "linux is really anywhere! i added link time optimizations with -O3 and -flto, the boot takes 2 minutes on a generic x86_64 kernel in firefox. will minify the kernel and the os to have an actually usable system"}, {"post_id": 73227, "ts": "2026-09-24T17:00:12Z", "hours": 0.3047, "text": "switched to tinycore (or just ‘core’ x64 port), fixed stack sizes (both emscripten and asyncify), and pings to non-restricted and websocket enabled domains work now. the only thing left is implementing an interconnect daemon with a web proxy"}, {"post_id": 72732, "ts": "2026-09-23T16:41:50Z", "hours": 0.4706, "text": "dynamic heap resize works, finally got the network adapter to compile and we can finally see OpenRC booting!"}, {"post_id": 70182, "ts": "2026-09-18T17:07:19Z", "hours": 0.3158, "text": "fixed compiling flags, replaced the BIOS implementation and now we can boot alpine linux 64-bit on a tab!"}, {"post_id": 67336, "ts": "2026-09-13T12:30:32Z", "hours": 1.3339, "text": "working?"}, {"post_id": 67270, "ts": "2026-09-13T10:39:35Z", "hours": 1.2314, "text": "bugs and bugs, got bochs to compile and load files properly but stack size and recursion is a problem right now"}, {"post_id": 66901, "ts": "2026-09-12T21:04:43Z", "hours": 1.4203, "text": "closing the day, added a building system and fixes will publish repo tmrw"}]...
|
Title: linuxanywhere by @codeeleven | Stardance
D Title: linuxanywhere by @codeeleven | Stardance
Devlogs:
closing the day, added a building system and fixes will publish repo tmrw
bugs and bugs, got bochs to compile and load files properly but stack size and recursion is a problem right now
working?
fixed compiling flags, replaced the BIOS implementation and now we can boot alpine linux 64-bit on a tab!
dynamic heap resize works, finally got the network adapter to compile and we can finally see OpenRC booting!
switched to tinycore (or just ‘core’ x64 port), fixed stack sizes (both emscripten and asyncify), and pings to non-restricted and websocket enabled domains work now. the only thing left is implementing an interconnect daemon with a web proxy
linux is really anywhere! i added link time optimizations with -O3 and -flto, the boot takes 2 minutes on a generic x86_64 kernel in firefox. will minify the kernel and the os to have an actually usable system
last devlog before shipping. i have added the project to github and i will take a break from it to focus on more projects and school (obviously!)
Ships:
this is linuxanywhere (or a bochs version optimized for browser environments with x64 linux booting capabilities). it can run VMs on the browser (but really slowly). check it out! will improve it more and will add the features i wrote on my github page! i hope you enjoy this :)...
|
1793209726.137175
|
1793296126.137175
|
|
8917
|
ha-mediawiki by @jpeisach | Stardance
|
jpeisach
|
0
|
5.45
|
0
|
[]
|
[{"post_id": 7595, "ts": "2026 [{"post_id": 7595, "ts": "2026-06-12T18:17:45Z", "hours": 2.2728, "text": "Phew, another dev log! For me, I had to figure out, what code should be part of the API, and what is the purpose of the coordinator? I compared to ha-wiiu ( https://github.com/wiiu-smarthome/ha-wiiu/blob/main/custom_components/nintendo_wiiu_ristretto/coordinator.py ) as an example, and decided that: The “API” is the equivalent of “ha-wiiu” coordinator’s “Wii” object - it contains the methods for actually doing the requests. (For this project, Pywikibot does not use asyncio, so the “API” is our “wrapper” so the API calls do not interrupt the main loop) The “coordinator” is.. well, now it makes more sense to say it is a coordinator. It will poll the API when needed, but store data that is actually relevant. So once I figured that out, it was off to me playing around with pywikibot to see how I could get site-specific user contributions. It seems that I will just have to count items in the contribution list, but for global site info (so, like all Wikimedia projects), it has its own accessible field. So now I have a “0” in the sensor reading “Contributions”, which is correct because I have not made any edits to Test Wikipedia. I should soon be able to hook things up to other MediaWiki instances and see actual values!"}, {"post_id": 5011, "ts": "2026-06-08T17:35:08Z", "hours": 1.1578, "text": "Another small victory, but worth logging - turned out sign in is easier than I expected! (It only took me an hour to see if I wanted OAuth options, which I was going to use but I think basic client login will work)"}, {"post_id": 4917, "ts": "2026-06-08T14:43:57Z", "hours": 2.015, "text": "Started taking the integration blueprint and did, something with it. The MediaWiki API can take requests, which may be easier to code, but then the results have to be parsed. So I’ve decided to use the pywikibot library results, which sends things in a nicer way. However, Home Assistant expects integrations to not make blocking calls.. and I think that actual network requests are made when you call for the operation. So if you make a page object, I don’t think it actually gets anything until you call page.extracts(). So the entity can’t call that, otherwise you get a blocking call. The coordinator needs to manage things specifically. So this will eventually tie into making appropriate entities and representations of data - which, may be difficult, because HA does not expect entities to store the entire text of a Wikipedia article. But things like feeds are in RSS, so they may need separate handling - so basically, a bit of work to do of how this can be put into practice. I imagine a “Today’s featured article” kind of thing, but maybe that can be done simply with RSS feeds.. but I don’t think pywikibot handles that (it expects JSON responses). So, much more to dive into!"}]...
|
Title: ha-mediawiki by @jpeisach | Stardance
Devl Title: ha-mediawiki by @jpeisach | Stardance
Devlogs:
Started taking the integration blueprint and did, something with it. The MediaWiki API can take requests, which may be easier to code, but then the results have to be parsed. So I’ve decided to use the pywikibot library results, which sends things in a nicer way. However, Home Assistant expects integrations to not make blocking calls.. and I think that actual network requests are made when you call for the operation. So if you make a page object, I don’t think it actually gets anything until you call page.extracts(). So the entity can’t call that, otherwise you get a blocking call. The coordinator needs to manage things specifically. So this will eventually tie into making appropriate entities and representations of data - which, may be difficult, because HA does not expect entities to store the entire text of a Wikipedia article. But things like feeds are in RSS, so they may need separate handling - so basically, a bit of work to do of how this can be put into practice. I imagine a “Today’s featured article” kind of thing, but maybe that can be done simply with RSS feeds.. but I don’t think pywikibot handles that (it expects JSON responses). So, much more to dive into!
Another small victory, but worth logging - turned out sign in is easier than I expected! (It only took me an hour to see if I wanted OAuth options, which I was going to use but I think basic client login will work)
Phew, another dev log! For me, I had to figure out, what code should be part of the API, and what is the purpose of the coordinator? I compared to ha-wiiu ( https://github.com/wiiu-smarthome/ha-wiiu/blob/main/custom_components/nintendo_wiiu_ristretto/coordinator.py ) as an example, and decided that: The “API” is the equivalent of “ha-wiiu” coordinator’s “Wii” object - it contains the methods for actually doing the requests. (For this project, Pywikibot does not use asyncio, so the “API” is our “wrapper” so the API calls do not interrupt the main loop) The “coordinator” is.. well, now it makes more sense to say it is a coordinator. It will poll the API when needed, but store data that is actually relevant. So once I figured that out, it was off to me playing around with pywikibot to see how I could get site-specific user contributions. It seems that I will just have to count items in the contribution list, but for global site info (so, like all Wikimedia projects), it has its own accessible field. So now I have a “0” in the sensor reading “Contributions”, which is correct because I have not made any edits to Test Wikipedia. I should soon be able to hook things up to other MediaWiki instances and see actual values!...
|
1792659228.206686
|
1793264028.206686
|
|
67322
|
YadavPad by @yadavtejas1947 | Stardance
|
yadavtejas1947
|
0
|
1.04
|
0
|
[]
|
[{"post_id": 75956, "ts": "202 [{"post_id": 75956, "ts": "2026-10-01T18:44:09Z", "hours": 1.0436, "text": "Day:02-10-2026 Things I did today:- 1.Created the GitHub Repo and setup KiCad 2.Designed the Schematics and PCB in KiCad 3.Tried to design the enclosure , but hell Fusion . I am done with 3d design ."}]...
|
Title: YadavPad by @yadavtejas1947 | Stardance
De Title: YadavPad by @yadavtejas1947 | Stardance
Devlogs:
Day:02-10-2026 Things I did today:- 1.Created the GitHub Repo and setup KiCad 2.Designed the Schematics and PCB in KiCad 3.Tried to design the enclosure , but hell Fusion . I am done with 3d design ....
|
1793109074.5725102
|
1793713874.5725102
|
|
65322
|
Super Rocket Man by @brandon | Stardance
|
brandon
|
0
|
0.45
|
0
|
[]
|
[{"post_id": 75957, "ts": "202 [{"post_id": 75957, "ts": "2026-10-01T18:47:32Z", "hours": 0.4489, "text": "New project! I am currently testing out the lookout app to track my hours designing the levels and other stuff outside of coding, since I just found out I was able to track my hours working on designing the games as well. In my new project, I am barely starting my first level!"}]...
|
Title: Super Rocket Man by @brandon | Stardance
D Title: Super Rocket Man by @brandon | Stardance
Devlogs:
New project! I am currently testing out the lookout app to track my hours designing the levels and other stuff outside of coding, since I just found out I was able to track my hours working on designing the games as well. In my new project, I am barely starting my first level!...
|
1793087248.6498735
|
1793692048.6498735
|
|
55633
|
EL Futuro by @Evangel | Stardance
|
Evangel
|
0
|
16.03
|
0
|
[]
|
[{"post_id": 75961, "ts": "202 [{"post_id": 75961, "ts": "2026-10-01T18:57:49Z", "hours": 1.5819, "text": "Finished the code a long time ago; I forgot to devlog it. I DO NOT know what I did. I got a lot of help from people, Google, and courses, so do not ask me. As long as I didn’t use AI, it’s fine ig. That time lapse only worked twice a week, so I didn’t bother to record because I wanted to get it done already, since I had been procrastinating due to schoolwork. I did run into a bunch of problems and did use AI twice to fix it (NOT CODING PROBLEMS) i tried to uplaod it once but it turns out I had to install this one thing, etc etc."}, {"post_id": 67699, "ts": "2026-09-13T21:48:00Z", "hours": 2.0869, "text": "Just finished working on the case, although I believe I ran into a problem that I’m supposed to fix, but I really don’t want to redo the PCB for the 6th time. The pin headers stick out of the case. I thought I could just ignore it, but it wouldn’t make sense. Im not sure what to do. I think my only option is to redo the pcb"}, {"post_id": 66225, "ts": "2026-09-11T22:25:33Z", "hours": 1.7211, "text": "Almost done with the case. I am not 100% sure if the dimensions are correct, infact I think I’m doing this all wrong, but I guess it’s all part of the learning process. Like I said in my last devlog, I’m trying to make the case TV-inspired. I’m not sure how the antennas will print, but let’s just trust the process. I might change the color palette later on too, but for now it’s set like this."}, {"post_id": 66162, "ts": "2026-09-11T20:09:36Z", "hours": 3.3686, "text": "I just realized it has been a very long time since I last wrote a devlog. I have been working on my other projects and redesigned the CAD twice. My initial plan was to create a simple digital clock, but I realized it’d be way too boring, so I decided to go with an antique TV model as inspiration. I am having some trouble with the CAD dimensions and symmetry, so I’m holding off for now. If it ever becomes a problem, then honestly I don’t even care anymore."}, {"post_id": 61058, "ts": "2026-09-03T19:26:10Z", "hours": 3.0189, "text": "Redesigned the PCB for the 1000th time (I’m not even joking; I redesigned it 6 times and it still looks bad) because I messed up the layout. Found the keycaps and the XIAO ESP32 C3 (I haven’t added it yet). And started with the case (not shown). I can now rest"}, {"post_id": 60570, "ts": "2026-09-03T00:22:57Z", "hours": 2.0858, "text": "Spent forever trying to find the .step model for the keycaps and failed miserably. Went on a break, so I paused the lapse came back, and I forgot to unpause it. How much worse can this day really get."}, {"post_id": 60394, "ts": "2026-09-02T18:12:33Z", "hours": 2.1697, "text": "Just finished the PCB for my digital clock. I redesigned it completely. It took me forever to make the wires look neat. Now i need to export my files and start with the CAD."}]...
|
Title: EL Futuro by @Evangel | Stardance
Devlogs: Title: EL Futuro by @Evangel | Stardance
Devlogs:
Just finished the PCB for my digital clock. I redesigned it completely. It took me forever to make the wires look neat. Now i need to export my files and start with the CAD.
Spent forever trying to find the .step model for the keycaps and failed miserably. Went on a break, so I paused the lapse came back, and I forgot to unpause it. How much worse can this day really get.
Redesigned the PCB for the 1000th time (I’m not even joking; I redesigned it 6 times and it still looks bad) because I messed up the layout. Found the keycaps and the XIAO ESP32 C3 (I haven’t added it yet). And started with the case (not shown). I can now rest
I just realized it has been a very long time since I last wrote a devlog. I have been working on my other projects and redesigned the CAD twice. My initial plan was to create a simple digital clock, but I realized it’d be way too boring, so I decided to go with an antique TV model as inspiration. I am having some trouble with the CAD dimensions and symmetry, so I’m holding off for now. If it ever becomes a problem, then honestly I don’t even care anymore.
Almost done with the case. I am not 100% sure if the dimensions are correct, infact I think I’m doing this all wrong, but I guess it’s all part of the learning process. Like I said in my last devlog, I’m trying to make the case TV-inspired. I’m not sure how the antennas will print, but let’s just trust the process. I might change the color palette later on too, but for now it’s set like this.
Just finished working on the case, although I believe I ran into a problem that I’m supposed to fix, but I really don’t want to redo the PCB for the 6th time. The pin headers stick out of the case. I thought I could just ignore it, but it wouldn’t make sense. Im not sure what to do. I think my only option is to redo the pcb
Finished the code a long time ago; I forgot to devlog it. I DO NOT know what I did. I got a lot of help from people, Google, and courses, so do not ask me. As long as I didn’t use AI, it’s fine ig. That time lapse only worked twice a week, so I didn’t bother to record because I wanted to get it done already, since I had been procrastinating due to schoolwork. I did run into a bunch of problems and did use AI twice to fix it (NOT CODING PROBLEMS) i tried to uplaod it once but it turns out I had to install this one thing, etc etc....
|
1792626761.0042605
|
1793231561.0042605
|
|
65976
|
Digital Storage Oscilloscope by @HexFud | Stardanc Digital Storage Oscilloscope by @HexFud | Stardance...
|
HexFud
|
0
|
11.9
|
0
|
[]
|
[{"post_id": 75963, "ts": "202 [{"post_id": 75963, "ts": "2026-10-01T18:58:38Z", "hours": 4.6667, "text": "Devlog #03 Finally the PCB is completely routed and i also mad the 3d model for my project. Now i need to upload everything on github and write a BOM"}, {"post_id": 75294, "ts": "2026-09-29T17:32:09Z", "hours": 2.0, "text": "Devlog #02 I have done the final checks of the shematic and now it is all set to become a pcb! I did some changes in the meanwhile. In the first place I have added a 40 pin flat display connector and a 4 pin one for the touch I added loop stabilizing I fixed the anti-aliasing filter to bring the cut at 33MHz I did some important changes regarding the power supply. Before I used 10V for some components but that tension have vould burned them! So i added a new label that brings 5V into the cricuit"}, {"post_id": 74640, "ts": "2026-09-27T20:40:53Z", "hours": 5.2336, "text": "Devlog #01 This is my brand new (and by far most complex) hardware project. This is a Digital Storage Oscilloscope on a single PCB and powered entirely by USB-C. I have almost finished designing the schematic but it surely needs improvments! Key Specifications Analog Bandwidth: 20 MHz (-3dB). Real-Time Sampling: 100 MS/s at 8 Bit Full Analog Front-End (AFE): Standard 1 MΩ // 30 pF BNC input with ESD diode clamps, high-Z FET input buffer (ADA4817), programmable gain amplifier for Volts/Div scaling (OPA820 + Mux), DC offset injection, and a 30 MHz Sallen-Key anti-aliasing filter. Hardware Capture Engine: A dedicated 100 MSPS pipeline that wirtes samples as fast as 10ns async SRAM. MCU & UI: An STM32H7 (480 MHz Cortex-M7) reads the captured data via an FMC bus, handling waveform math, rotary encoders, and rendering to a 7-inch touchscreen display. Clean Power Delivery: All dual low-noise analog rails (+10V / -10V) and digital rails (3.3V and 1.2V core) are generated on-board from a single 5V USB-C input. Now I need to do some final checks on the shcematic and then straight to the PCB"}]...
|
Title: Digital Storage Oscilloscope by @HexFud | S Title: Digital Storage Oscilloscope by @HexFud | Stardance
Devlogs:
Devlog #01 This is my brand new (and by far most complex) hardware project. This is a Digital Storage Oscilloscope on a single PCB and powered entirely by USB-C. I have almost finished designing the schematic but it surely needs improvments! Key Specifications Analog Bandwidth: 20 MHz (-3dB). Real-Time Sampling: 100 MS/s at 8 Bit Full Analog Front-End (AFE): Standard 1 MΩ // 30 pF BNC input with ESD diode clamps, high-Z FET input buffer (ADA4817), programmable gain amplifier for Volts/Div scaling (OPA820 + Mux), DC offset injection, and a 30 MHz Sallen-Key anti-aliasing filter. Hardware Capture Engine: A dedicated 100 MSPS pipeline that wirtes samples as fast as 10ns async SRAM. MCU & UI: An STM32H7 (480 MHz Cortex-M7) reads the captured data via an FMC bus, handling waveform math, rotary encoders, and rendering to a 7-inch touchscreen display. Clean Power Delivery: All dual low-noise analog rails (+10V / -10V) and digital rails (3.3V and 1.2V core) are generated on-board from a single 5V USB-C input. Now I need to do some final checks on the shcematic and then straight to the PCB
Devlog #02 I have done the final checks of the shematic and now it is all set to become a pcb! I did some changes in the meanwhile. In the first place I have added a 40 pin flat display connector and a 4 pin one for the touch I added loop stabilizing I fixed the anti-aliasing filter to bring the cut at 33MHz I did some important changes regarding the power supply. Before I used 10V for some components but that tension have vould burned them! So i added a new label that brings 5V into the cricuit
Devlog #03 Finally the PCB is completely routed and i also mad the 3d model for my project. Now i need to upload everything on github and write a BOM...
|
1793094514.9632356
|
1793699314.9632356
|
|
51570
|
Lantern-o-Nine by @DhyaanK11 | Stardance
|
DhyaanK11
|
0
|
0.79
|
0
|
[]
|
[{"post_id": 75965, "ts": "202 [{"post_id": 75965, "ts": "2026-10-01T19:11:05Z", "hours": 0.7864, "text": "Finished Lantern-O-Nine Macropad Project Finished the full hardware and CAD design for my 9 key macropad, Lantern-o-Nine! Used Seed XIAO RP2040 with 9 Cherry MX Switches , an EC11 volume Knob , a 0.91” OLED Display , and RGB underglow Designed the 2-layer PCB in Kicad (96x99.5 mm) with a 3 x 3 diode matrix Modeled a 3D printable case with honeycomb vent and name in it Wrote CircuitPython + KMK firmware for featuring 3 switchable modes: Spotify,Git macros, and Code shortcuts All files on github for hackpad review !!"}]...
|
Title: Lantern-o-Nine by @DhyaanK11 | Stardance
D Title: Lantern-o-Nine by @DhyaanK11 | Stardance
Devlogs:
Finished Lantern-O-Nine Macropad Project Finished the full hardware and CAD design for my 9 key macropad, Lantern-o-Nine! Used Seed XIAO RP2040 with 9 Cherry MX Switches , an EC11 volume Knob , a 0.91” OLED Display , and RGB underglow Designed the 2-layer PCB in Kicad (96x99.5 mm) with a 3 x 3 diode matrix Modeled a 3D printable case with honeycomb vent and name in it Wrote CircuitPython + KMK firmware for featuring 3 switchable modes: Spotify,Git macros, and Code shortcuts All files on github for hackpad review !!...
|
1792677019.3776746
|
1793281819.3776746
|
|
51943
|
Conlang Classifier by @ElffawIThink | Stardance
|
ElffawIThink
|
0
|
21.02
|
0
|
[]
|
[{"post_id": 75966, "ts": "202 [{"post_id": 75966, "ts": "2026-10-01T19:14:12Z", "hours": 12.0031, "text": "There’s a storage system now! almost… Anyway. I’ve been working pretty hard on building a pretty cool storage system for storing your language. I wanted it to be: platform agnostic, easily human modifiable, efficient, and future-proof. I achieved platform agnostic by using the lovely directories crate. For human-modifiable, I used toml, also making each word into a separate file for ease of use. For efficiency, I implemented a system for only writing to modified words when the program closes, rather than re-adding every single word. Finally, for future-proof, I made sure to leave space for more fields in the future."}, {"post_id": 57812, "ts": "2026-08-30T03:27:08Z", "hours": 9.02, "text": "This is my first devlog. I’ve been working on a program called conlang classifier for a while, which is a tool to help create and classify your constructed languages (or non-constructed languages). The current set of features isn’t particularly comprehensive, but I aim to expand it. The topic of this devlog is the search bar. I’ve written code for a search feature before, but I wanted this one to be a lot faster. I would say I got closer, but there are still improvements to be made. Some re-computations are uneeded. I feel like I’ve done enough for now though. Thanks for reading, Waffle"}]...
|
Title: Conlang Classifier by @ElffawIThink | Stard Title: Conlang Classifier by @ElffawIThink | Stardance
Devlogs:
This is my first devlog. I’ve been working on a program called conlang classifier for a while, which is a tool to help create and classify your constructed languages (or non-constructed languages). The current set of features isn’t particularly comprehensive, but I aim to expand it. The topic of this devlog is the search bar. I’ve written code for a search feature before, but I wanted this one to be a lot faster. I would say I got closer, but there are still improvements to be made. Some re-computations are uneeded. I feel like I’ve done enough for now though. Thanks for reading, Waffle
There’s a storage system now! almost… Anyway. I’ve been working pretty hard on building a pretty cool storage system for storing your language. I wanted it to be: platform agnostic, easily human modifiable, efficient, and future-proof. I achieved platform agnostic by using the lovely directories crate. For human-modifiable, I used toml, also making each word into a separate file for ease of use. For efficiency, I implemented a system for only writing to modified words when the program closes, rather than re-adding every single word. Finally, for future-proof, I made sure to leave space for more fields in the future....
|
1792688129.3461933
|
1793292929.3461933
|
|
67150
|
NINJA BATTLES by @Guilherme | Stardance
|
Guilherme
|
0
|
14.8
|
0
|
[]
|
[{"post_id": 75969, "ts": "202 [{"post_id": 75969, "ts": "2026-10-01T19:41:24Z", "hours": 14.8, "text": "Hi! (: Compared to the last version, we now have a “fire-breathing” ability and “trail” effects when moving. The game is online and hosted via PUN 2; hitboxes aren’t working yet, but getting the game running online was a HUGE undertaking."}]...
|
Title: NINJA BATTLES by @Guilherme | Stardance
De Title: NINJA BATTLES by @Guilherme | Stardance
Devlogs:
Hi! (: Compared to the last version, we now have a “fire-breathing” ability and “trail” effects when moving. The game is online and hosted via PUN 2; hitboxes aren’t working yet, but getting the game running online was a HUGE undertaking....
|
1793105749.9803202
|
1793710549.9803202
|
|
36627
|
Crystal OS by @kuba_ch101 | Stardance
|
kuba_ch101
|
0
|
23.2
|
0
|
[]
|
[{"post_id": 75975, "ts": "202 [{"post_id": 75975, "ts": "2026-10-01T19:55:50Z", "hours": 1.2864, "text": "I added this cool animation when you open a window, I came up with it by myself. It is pretty straight forward, you just multiply the position vectors; I also added a real time clock so it looks more like an OS."}, {"post_id": 74032, "ts": "2026-09-26T15:48:49Z", "hours": 3.6783, "text": "I switched to instanced rendering which made everything faster and reduced memory use so I hope the will work on smartphones. I also added this exploding animation which triggers when you open an app, I got inspired by that one tony stark meme where he makes a big sphere out of holograms."}, {"post_id": 39779, "ts": "2026-08-02T23:35:58Z", "hours": 3.5822, "text": "I made the calculator and timer logic, the notepad needs a little bit of work but is mostly done. Then I tried to style everything to fit the theme."}, {"post_id": 33215, "ts": "2026-07-22T22:22:29Z", "hours": 1.8053, "text": "Started making the notepad and calculator"}, {"post_id": 32628, "ts": "2026-07-21T22:18:57Z", "hours": 4.6233, "text": "I finnished the windows! Needed to rework the logic and this time I followed the tutorial. It really helped me especially with organizing the functions."}, {"post_id": 31678, "ts": "2026-07-20T09:00:59Z", "hours": 1.4744, "text": "I started on some OS things, for now I’ve done some style and logic for the windows but I still need to make the icons open them. icon source: https://www.svgrepo.com"}, {"post_id": 31134, "ts": "2026-07-19T09:14:11Z", "hours": 1.5031, "text": "I fixed the rendering artifacts and started making the desktop."}, {"post_id": 30897, "ts": "2026-07-18T21:24:40Z", "hours": 3.6961, "text": "I almost finnished the background. The only things left are those random giant triangles and I cant figure out what is the cause."}, {"post_id": 30616, "ts": "2026-07-18T10:33:54Z", "hours": 1.5528, "text": "Hello, I just started making my web OS. Today I made the back groud rendering pipeline. The render will be quite basic and I took some code from my other projects so it took me less time than ussual. The background will be made randomly positioned, low-polly shapes(like this in the screen). I want them to look like crystals. I want to finnish the render and then make the actual site, but I still need to make random shape generation and add some movement"}]...
|
Title: Crystal OS by @kuba_ch101 | Stardance
Devl Title: Crystal OS by @kuba_ch101 | Stardance
Devlogs:
Hello, I just started making my web OS. Today I made the back groud rendering pipeline. The render will be quite basic and I took some code from my other projects so it took me less time than ussual. The background will be made randomly positioned, low-polly shapes(like this in the screen). I want them to look like crystals. I want to finnish the render and then make the actual site, but I still need to make random shape generation and add some movement
I almost finnished the background. The only things left are those random giant triangles and I cant figure out what is the cause.
I fixed the rendering artifacts and started making the desktop.
I started on some OS things, for now I’ve done some style and logic for the windows but I still need to make the icons open them. icon source: https://www.svgrepo.com
I finnished the windows! Needed to rework the logic and this time I followed the tutorial. It really helped me especially with organizing the functions.
Started making the notepad and calculator
I made the calculator and timer logic, the notepad needs a little bit of work but is mostly done. Then I tried to style everything to fit the theme.
I switched to instanced rendering which made everything faster and reduced memory use so I hope the will work on smartphones. I also added this exploding animation which triggers when you open an app, I got inspired by that one tony stark meme where he makes a big sphere out of holograms.
I added this cool animation when you open a window, I came up with it by myself. It is pretty straight forward, you just multiply the position vectors; I also added a real time clock so it looks more like an OS....
|
1792788630.0846155
|
1793393430.0846155
|
|
52895
|
Bench Power Supply by @julianh | Stardance
|
julianh
|
0
|
1.7
|
0
|
[]
|
[{"post_id": 75983, "ts": "202 [{"post_id": 75983, "ts": "2026-10-01T20:41:45Z", "hours": 0.2833, "text": "Tried to make a circuit diagram, still learning electronics and how to diagram. It was difficult because most of the components aren’t standard."}, {"post_id": 55718, "ts": "2026-08-27T18:09:27Z", "hours": 0.8358, "text": "Measurements & CAD: Created the initial design for the housing with ports for an AC plug and switch (back) + 2 bannana jacks, 2 potentiometers, and a digital multimeter (front)."}, {"post_id": 55641, "ts": "2026-08-27T16:31:08Z", "hours": 0.5839, "text": "Disassembly: Opened up the CR-10 control box and had a look at the insides. Removed the power supply and all relevant wiring including some fans. Then set up a simple test circuit with an Arduino and stepper motor to make sure everything still worked. Spent around 2 hrs working, still don’t really understand how the time tracking works."}]...
|
Title: Bench Power Supply by @julianh | Stardance
Title: Bench Power Supply by @julianh | Stardance
Devlogs:
Disassembly: Opened up the CR-10 control box and had a look at the insides. Removed the power supply and all relevant wiring including some fans. Then set up a simple test circuit with an Arduino and stepper motor to make sure everything still worked. Spent around 2 hrs working, still don’t really understand how the time tracking works.
Measurements & CAD: Created the initial design for the housing with ports for an AC plug and switch (back) + 2 bannana jacks, 2 potentiometers, and a digital multimeter (front).
Tried to make a circuit diagram, still learning electronics and how to diagram. It was difficult because most of the components aren’t standard....
|
1792727542.3183703
|
1793332342.3183703
|
|
66386
|
My personal mp3-player by @Tor_ahlqvist | Stardanc My personal mp3-player by @Tor_ahlqvist | Stardance...
|
Tor_ahlqvist
|
0
|
5.83
|
0
|
[]
|
[{"post_id": 75985, "ts": "202 [{"post_id": 75985, "ts": "2026-10-01T20:44:46Z", "hours": 1.1167, "text": "Silly me i forgot to add buttons, potentiometer and headphone jack so i decided on a minimalist design using only one button and a potentiometer. I added the parts to my kicad schematic and decided what potentiometer I will use."}, {"post_id": 75709, "ts": "2026-09-30T20:10:06Z", "hours": 1.2833, "text": "I finished wiring and troubleshooting in the schematic and dealt with ERC My goal is btw to work 1h+ every day til stardance ends"}, {"post_id": 75324, "ts": "2026-09-29T19:09:40Z", "hours": 1.15, "text": "Wiring the scematic components in kicad. It’s a bit messy since im a beginner. Not done yet there is a bit more wiring to do."}, {"post_id": 75004, "ts": "2026-09-28T20:33:03Z", "hours": 1.0, "text": "I have assigned all of the footprint and values for all the parts that i have right now I’m a beginner so the progress is a bit slow :)"}, {"post_id": 74965, "ts": "2026-09-28T18:33:09Z", "hours": 1.2833, "text": "I am currently developing my idea and exploring what parts i need i also started adding parts in kicad"}]...
|
Title: My personal mp3-player by @Tor_ahlqvist | S Title: My personal mp3-player by @Tor_ahlqvist | Stardance
Devlogs:
I am currently developing my idea and exploring what parts i need i also started adding parts in kicad
I have assigned all of the footprint and values for all the parts that i have right now I’m a beginner so the progress is a bit slow :)
Wiring the scematic components in kicad. It’s a bit messy since im a beginner. Not done yet there is a bit more wiring to do.
I finished wiring and troubleshooting in the schematic and dealt with ERC My goal is btw to work 1h+ every day til stardance ends
Silly me i forgot to add buttons, potentiometer and headphone jack so i decided on a minimalist design using only one button and a potentiometer. I added the parts to my kicad schematic and decided what potentiometer I will use....
|
1792460934.832278
|
1793324934.832278
|
|
15385
|
StarShipOS by @Harsh_S | Stardance
|
Harsh_S
|
0
|
5.68
|
0
|
[]
|
[{"post_id": 7599, "ts": "2026 [{"post_id": 7599, "ts": "2026-06-12T18:22:46Z", "hours": 2.6794, "text": "So today I fully changed all the colors of pretty much everything because it kind of looked bad and the colors right now look so much better. I also changed the fonts to something more space-like, since it’s literally called space mono. I also did part two of the guide adding the clock and the basic window parts. I added a lot of space looking stuff to really match the theme but right now it’s looking kind of cramped so I still have to fix that. I messed around with the colors and tried to get the buttons in the right places, get the sizes right and all that which is why this took a lot longer than it was supposed to. Just trying to make it look good, you know."}, {"post_id": 6627, "ts": "2026-06-11T03:34:55Z", "hours": 3.0036, "text": "Overview: So today I started creating StarShipOS which is a webOS that is themed around a spaceship/cockpit type feel. For step 1 of the building thing based on the guide I made a pretty detailed welcome screen inside an index.html file. To go beyond the basics of the mission I tried using things like and to really make the welcome screen look welcoming. It kinda took a long time to get the fonts, sizings, and colors right but it good in the end. A big problem: It was that I tried to use GitHub Codespace but there were many issues with that and I couldn’t actually run the page through that easily. I also didn’t have wakatime in that already so it was kind of annoying. That’s why I just moved over to VSCode because I already had everything set up and had experience with it. So what I made in detail: I built a custom web design to make the screen look like a legit sci-fi computer. The background is super dark with neon colors andi n the middle there is a profile picture of a rocket ship that actually looks really good."}]...
|
Title: StarShipOS by @Harsh_S | Stardance
Devlogs Title: StarShipOS by @Harsh_S | Stardance
Devlogs:
Overview: So today I started creating StarShipOS which is a webOS that is themed around a spaceship/cockpit type feel. For step 1 of the building thing based on the guide I made a pretty detailed welcome screen inside an index.html file. To go beyond the basics of the mission I tried using things like and to really make the welcome screen look welcoming. It kinda took a long time to get the fonts, sizings, and colors right but it good in the end. A big problem: It was that I tried to use GitHub Codespace but there were many issues with that and I couldn’t actually run the page through that easily. I also didn’t have wakatime in that already so it was kind of annoying. That’s why I just moved over to VSCode because I already had everything set up and had experience with it. So what I made in detail: I built a custom web design to make the screen look like a legit sci-fi computer. The background is super dark with neon colors andi n the middle there is a profile picture of a rocket ship that actually looks really good.
So today I fully changed all the colors of pretty much everything because it kind of looked bad and the colors right now look so much better. I also changed the fonts to something more space-like, since it’s literally called space mono. I also did part two of the guide adding the clock and the basic window parts. I added a lot of space looking stuff to really match the theme but right now it’s looking kind of cramped so I still have to fix that. I messed around with the colors and tried to get the buttons in the right places, get the sizes right and all that which is why this took a lot longer than it was supposed to. Just trying to make it look good, you know....
|
1792759850.1419616
|
1793364650.1419616
|