|
66091
|
websos by @sapu | Stardance
|
sapu
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T06:20:39Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "web os to play my game in scratch, I use a cute theme and the challenging part was translating the normal css to tailwind", "repo": "https://github.com/savwicak/WebSOs", "demo": "https://savwicak.github.io/WebSOs/"}]...
|
[{"post_id": 75123, "ts": "202 [{"post_id": 75123, "ts": "2026-09-29T06:18:33Z", "hours": 0.9031, "text": "FINISSHH!!! Yes it can run everything added positions if you click in header and fix the code line"}, {"post_id": 75101, "ts": "2026-09-29T04:33:37Z", "hours": 0.855, "text": "ADDING GAMESS"}, {"post_id": 75070, "ts": "2026-09-29T01:56:49Z", "hours": 1.4864, "text": "i used kirby theme for this, looking really good, been designing for the UI Form"}, {"post_id": 74759, "ts": "2026-09-28T04:54:14Z", "hours": 0.6869, "text": "I’m making a webos that has a lot of exclusive games (my game) but the diffrent from the tutorial i used tailwind for the css :D"}]...
|
Title: websos by @sapu | Stardance
Devlogs:
I’m m Title: websos by @sapu | Stardance
Devlogs:
I’m making a webos that has a lot of exclusive games (my game) but the diffrent from the tutorial i used tailwind for the css :D
i used kirby theme for this, looking really good, been designing for the UI Form
ADDING GAMESS
FINISSHH!!! Yes it can run everything added positions if you click in header and fix the code line
Ships:
web os to play my game in scratch, I use a cute theme and the challenging part was translating the normal css to tailwind...
|
1793216888.0510325
|
1793303288.0510325
|
|
51188
|
arc rocket by @gyandakshin | Stardance
|
gyandakshin
|
0
|
8.11
|
0
|
[]
|
[{"post_id": 75126, "ts": "202 [{"post_id": 75126, "ts": "2026-09-29T06:40:35Z", "hours": 1.4669, "text": "I was working on the aft section and the egg capsule and other stuff for the rocket."}, {"post_id": 58691, "ts": "2026-08-31T06:30:25Z", "hours": 1.2167, "text": "Another work day for the egg capsule. This is really important as without it, the egg would crack and my team would lose at ARC. PS. I was trying to write upside down in this picture, which is why my hand is like that."}, {"post_id": 57821, "ts": "2026-08-30T03:53:00Z", "hours": 2.0336, "text": "I was working on the capsule which holds eggs that will go inside the rocket, as for ARC the 2 eggs must come back safely, uncracked, otherwise you’ll lose points."}, {"post_id": 55407, "ts": "2026-08-27T06:52:10Z", "hours": 3.3975, "text": "Fin alignment jig for my ARC rocket. It holds the 3 trapezoidal fins at the bottom of the rocket when we put the epoxy on to cure, then it slides off. It’s not an actual part of the rocket, but its there to help keep the fins in place while the epoxy hardens."}]...
|
Title: arc rocket by @gyandakshin | Stardance
Dev Title: arc rocket by @gyandakshin | Stardance
Devlogs:
Fin alignment jig for my ARC rocket. It holds the 3 trapezoidal fins at the bottom of the rocket when we put the epoxy on to cure, then it slides off. It’s not an actual part of the rocket, but its there to help keep the fins in place while the epoxy hardens.
I was working on the capsule which holds eggs that will go inside the rocket, as for ARC the 2 eggs must come back safely, uncracked, otherwise you’ll lose points.
Another work day for the egg capsule. This is really important as without it, the egg would crack and my team would lose at ARC. PS. I was trying to write upside down in this picture, which is why my hand is like that.
I was working on the aft section and the egg capsule and other stuff for the rocket....
|
1792659198.5366495
|
1793263998.5366495
|
|
56039
|
Honeycomb by @seanlhwi | Stardance
|
seanlhwi
|
1
|
0.32
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-04T05:50:48Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "My creation is the Honeycomb Clicker, a 3D printed magnetic fidget clicker with iconic hexagonal designs all over the model. A core challenge was making the clearance of the switch with the case an appropriate amount while not changing the initial design.", "repo": "https://github.com/seanlhwi/Honeycomb-Clicker", "demo": ""}]...
|
[{"post_id": 75131, "ts": "202 [{"post_id": 75131, "ts": "2026-09-29T07:12:14Z", "hours": 0.3169, "text": "Editing Clearances! Today, I shortly edited the clearances on my magnet honeycomb fidget clicker, and made a youtube video as the demo!"}, {"post_id": 61325, "ts": "2026-09-04T05:41:09Z", "hours": 1.2169, "text": "My project is done!!! (for real this time) This is my Honeycomb Clicker, a 3D printed magnetic fidget clicker with satisfying magnets and iconic hexagonal designs all around the model. Go to my Github page to print it (Page name is, “Honeycomb Clicker”)! As for today, I finished working on my Github repo by adding a BOM, assembly instructions, and a photo."}, {"post_id": 60087, "ts": "2026-09-02T07:19:30Z", "hours": 0.6333, "text": "FINALLY! My Honeycomb Clicker is nearly done! All I did for this revision was adjusting the magnet clearances and adding a notch for an assembly guide. I also made a version with 2 magnets on each side!"}, {"post_id": 59371, "ts": "2026-09-01T04:09:36Z", "hours": 0.8336, "text": "Today, I worked on my 3rd revision of my Honeycomb Clicker. It was mostly clearance issues, again, but I also added 2 small hexagons to indicate which side is supposed to align with which."}, {"post_id": 58690, "ts": "2026-08-31T06:26:12Z", "hours": 1.7589, "text": "For this work period, I fixed mistakes and errors from my first iteration of my Honeycomb Clicker. After a test print, many problems were clear, such as clearance issues and warped walls. Hopefully my changes can fix them!"}, {"post_id": 58519, "ts": "2026-08-30T23:09:26Z", "hours": 1.2503, "text": "Today, I worked on fixing on small errors. For example, I forgot to add clearances for all of the moving parts, so I updated the measurements. The next steps are to slice it in Bambu Studio and do a test print!"}, {"post_id": 57914, "ts": "2026-08-30T07:45:52Z", "hours": 6.1586, "text": "Today, I worked on my 3d CAD clicker. As I was working on it, the projct got harder and harder since I kept on trying to make it more detailed. Some key improvements are the designs on the switch it self, and the more precise angles and measurements. The only thing that bothers me is because I didn’t record the timelapse for the first 2 hours…"}]...
|
Title: Honeycomb by @seanlhwi | Stardance
Devlogs Title: Honeycomb by @seanlhwi | Stardance
Devlogs:
Today, I worked on my 3d CAD clicker. As I was working on it, the projct got harder and harder since I kept on trying to make it more detailed. Some key improvements are the designs on the switch it self, and the more precise angles and measurements. The only thing that bothers me is because I didn’t record the timelapse for the first 2 hours…
Today, I worked on fixing on small errors. For example, I forgot to add clearances for all of the moving parts, so I updated the measurements. The next steps are to slice it in Bambu Studio and do a test print!
For this work period, I fixed mistakes and errors from my first iteration of my Honeycomb Clicker. After a test print, many problems were clear, such as clearance issues and warped walls. Hopefully my changes can fix them!
Today, I worked on my 3rd revision of my Honeycomb Clicker. It was mostly clearance issues, again, but I also added 2 small hexagons to indicate which side is supposed to align with which.
FINALLY! My Honeycomb Clicker is nearly done! All I did for this revision was adjusting the magnet clearances and adding a notch for an assembly guide. I also made a version with 2 magnets on each side!
My project is done!!! (for real this time) This is my Honeycomb Clicker, a 3D printed magnetic fidget clicker with satisfying magnets and iconic hexagonal designs all around the model. Go to my Github page to print it (Page name is, “Honeycomb Clicker”)! As for today, I finished working on my Github repo by adding a BOM, assembly instructions, and a photo.
Editing Clearances! Today, I shortly edited the clearances on my magnet honeycomb fidget clicker, and made a youtube video as the demo!
Ships:
My creation is the Honeycomb Clicker, a 3D printed magnetic fidget clicker with iconic hexagonal designs all over the model. A core challenge was making the clearance of the switch with the case an appropriate amount while not changing the initial design....
|
1793274599.0765178
|
1793360999.0765178
|
|
46385
|
Programming Language by @devrajesh | Stardance
|
devrajesh
|
0
|
0.29
|
0
|
[]
|
[{"post_id": 75139, "ts": "202 [{"post_id": 75139, "ts": "2026-09-29T08:39:08Z", "hours": 0.2939, "text": "Making sure to write clean code, working on the animations first."}]...
|
Title: Programming Language by @devrajesh | Starda Title: Programming Language by @devrajesh | Stardance
Devlogs:
Making sure to write clean code, working on the animations first....
|
1792662645.4853406
|
1793267445.4853406
|
|
10287
|
My awesome macropad! by @DaLama007 | Stardance
|
DaLama007
|
0
|
2.07
|
0
|
[]
|
[{"post_id": 7514, "ts": "2026 [{"post_id": 7514, "ts": "2026-06-12T15:26:18Z", "hours": 0.3397, "text": "Completed the whole README"}, {"post_id": 7171, "ts": "2026-06-11T23:41:55Z", "hours": 0.3142, "text": "I updated the project’s file structure and generated an .hex file from the qmk src"}, {"post_id": 7056, "ts": "2026-06-11T20:30:05Z", "hours": 0.3794, "text": "Add firmware code for rotary encoder and oled display"}, {"post_id": 7030, "ts": "2026-06-11T19:50:24Z", "hours": 1.0389, "text": "Complete pcb, case model and basic keyboard folder for project"}]...
|
Title: My awesome macropad! by @DaLama007 | Starda Title: My awesome macropad! by @DaLama007 | Stardance
Devlogs:
Complete pcb, case model and basic keyboard folder for project
Add firmware code for rotary encoder and oled display
I updated the project’s file structure and generated an .hex file from the qmk src
Completed the whole README...
|
1793177584.9263182
|
1793782384.9263182
|
|
66701
|
my-alarm by @shaurya500 | Stardance
|
shaurya500
|
0
|
2.73
|
0
|
[]
|
[{"post_id": 75142, "ts": "202 [{"post_id": 75142, "ts": "2026-09-29T08:53:23Z", "hours": 1.5339, "text": "Designed PCB with correct components ,fixed issues"}, {"post_id": 75130, "ts": "2026-09-29T07:07:50Z", "hours": 1.2003, "text": "made PCB for my first alarm clock"}]...
|
Title: my-alarm by @shaurya500 | Stardance
Devlog Title: my-alarm by @shaurya500 | Stardance
Devlogs:
made PCB for my first alarm clock
Designed PCB with correct components ,fixed issues...
|
1793101864.7759693
|
1793706664.7759693
|
|
66457
|
Docs - A Premium Draggable Notes & Todo Web Ap Docs - A Premium Draggable Notes & Todo Web App by @pandityashkaushik4963 | Stardance...
|
pandityashkaushik4963
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T09:43:35Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have built Docs, a premium dark-themed draggable notes and todo web app using React and Vite. The most challenging part was resolving the Netlify single-page application refresh routing bug and building an advanced layout that is completely responsive from desktop to mobile screens. I am incredibly proud of implementing a seamless, fluid draggable interface that works flawlessly across all devices. Users can test it live immediately via the deployment link to manage their workflow with custom note organization and dynamic todo states.", "repo": "https://github.com/pandityashkaushik4963-cmyk/Docs", "demo": "https://docs-draggable-app.netlify.app/"}]...
|
[{"post_id": 75145, "ts": "202 [{"post_id": 75145, "ts": "2026-09-29T09:10:20Z", "hours": 4.6694, "text": "📝 Project Update: Docs is Officially Live & Fully Responsive! I have successfully built, optimized, and completed the core functionality of “Docs”, a premium draggable notes and todo web app. ✨ Key Features Built: => “Dynamic Note Creation:” Users can seamlessly create custom notes on the fly. => “Premium Draggable Interface:” Cards can be dragged around freely for custom workflow organization. => “Smart Task Management:” Seamlessly track tasks using distinct Pending and Completed state filters. => “100% Responsive UI:” Optimized using advanced styling layouts so that the entire interface adapts beautifully from desktop down to mobile viewports without any breakages! 📱 🛠️ Development & Optimization: “Time Invested”: Spent 4 hours and 40 minutes refining the interactive user experience. “Performance”: Handled dynamic item sorting and ensured a lightning-fast experience using Vite and React . “Deployment”: The application is hosted on Netlify and officially ready for use! 🚀"}]...
|
Title: Docs - A Premium Draggable Notes & Todo Title: Docs - A Premium Draggable Notes & Todo Web App by @pandityashkaushik4963 | Stardance
Devlogs:
📝 Project Update: Docs is Officially Live & Fully Responsive! I have successfully built, optimized, and completed the core functionality of “Docs”, a premium draggable notes and todo web app. ✨ Key Features Built: => “Dynamic Note Creation:” Users can seamlessly create custom notes on the fly. => “Premium Draggable Interface:” Cards can be dragged around freely for custom workflow organization. => “Smart Task Management:” Seamlessly track tasks using distinct Pending and Completed state filters. => “100% Responsive UI:” Optimized using advanced styling layouts so that the entire interface adapts beautifully from desktop down to mobile viewports without any breakages! 📱 🛠️ Development & Optimization: “Time Invested”: Spent 4 hours and 40 minutes refining the interactive user experience. “Performance”: Handled dynamic item sorting and ensured a lightning-fast experience using Vite and React . “Deployment”: The application is hosted on Netlify and officially ready for use! 🚀
Ships:
I have built Docs, a premium dark-themed draggable notes and todo web app using React and Vite. The most challenging part was resolving the Netlify single-page application refresh routing bug and building an advanced layout that is completely responsive from desktop to mobile screens. I am incredibly proud of implementing a seamless, fluid draggable interface that works flawlessly across all devices. Users can test it live immediately via the deployment link to manage their workflow with custom note organization and dynamic todo states....
|
1793216955.7004628
|
1793303355.7004628
|
|
61259
|
DevLens by @Noben_Nobi | Stardance
|
Noben_Nobi
|
1
|
17.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T11:02:07Z", "hours": 17.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have made a website which is like a tool for people. we can upload any project folder (it is for large folders), then it analysis it and then show all the info about the files and folders. it solves the problem which many people face, the people who want to know about any project, website, or any code folders, we have to open the files or run it to understand it, see which files are connected to which, and some people don’t know from which file to start, so this website solves that. I faced some issues in some parts of javascript and css but I did it. I took some help from ai for javascript parts to understand it, and then I typed the code.", "repo": "https://github.com/Niraj2013/DevLens", "demo": "https://devlenss.netlify.app/"}]...
|
[{"post_id": 75147, "ts": "202 [{"post_id": 75147, "ts": "2026-09-29T09:12:11Z", "hours": 1.3736, "text": "Completed Javascript, I had took a new laptop a few days ago and when I started to complete the remaining code, time didn’t got tracked and I lost my hours ! I have tested it on this stardance, I had downloaded the project folder from github stardance official. here are the results of it:"}, {"post_id": 71070, "ts": "2026-09-20T08:17:28Z", "hours": 0.5883, "text": "completed the inspector and finished palette, it is for jumping to any file, nvigate, open, or close. not much."}, {"post_id": 71046, "ts": "2026-09-20T07:40:23Z", "hours": 0.9842, "text": "started with the inspector screen, this is the screen which shows info about each fie, just click on the file and you can see the info about it, yet no info as ofcourse folder or any file is not there yet."}, {"post_id": 69602, "ts": "2026-09-17T12:13:49Z", "hours": 0.7503, "text": "Two newses: 1. Completed the history section (page) css too, it was a little big but as compared to other pages, it was like medium small and less hard. 2. I have crossed 1000 lines in css, won’t be very big for coders who regularly code huge, but for me it is like very less time I hit above 1000 lines, sooo !"}, {"post_id": 69575, "ts": "2026-09-17T10:33:59Z", "hours": 0.3394, "text": "Completed warning screen (section) toooooo!! the css for this was not hard, means it was easy, nothing so much was there, just wrote css for body, title, content, hover, etc. you can’t see so much n the image yet as after js when I will upload any folder, that time it will show warnings of the folder, files, etc."}, {"post_id": 69554, "ts": "2026-09-17T09:34:26Z", "hours": 0.7103, "text": "I finished my graph section css. I took some help of AI for understanding how to make that graph box in between and the circles of it and a little more, but I wrote the code myself, I used AI only to know about it and understand it as I haven’t made any css for graph."}, {"post_id": 69538, "ts": "2026-09-17T08:02:49Z", "hours": 0.7117, "text": "I startd with the graph screen CSS!!!!!!!!! agggaaaaiiin the same, buttons are hover reacctive, colours are pastel, and nothing more, just font size color, alignment, shadows, hover, etc etc; not yet finished but at least it looks good. you would be thinking how am I able to see the graph screen before writing js (as we can see graph screen by using navigation bar)? the answer is simple, the div of overview section had “class=“view active” “ and others had view, so I made overview’s class to view, and graph’s class to “view active”. simple. so for every thing untill css finishes, I will do this, and after all the things are done in css, I will make it correct again, and then write the perfect js for it (which could get wrong, don’t know yet)."}, {"post_id": 69128, "ts": "2026-09-16T13:12:07Z", "hours": 2.0486, "text": "Finally completed the main dashboard (overview) css. everything is hover reactive, and the best look which gives my style to it is the messiness off all things, the pastel colours, the tapes, etc. it looks super cool. No data is there as after the css and js finishes, while testing or anything, when we upload the folder to it, it will analyse it and give the results. when you will click on the file, it should show everything about the file like data, type, and all.rest depends if my code succeeds to work (which it will after different attempts, could be less, could be more, don’t know, but I will try my best to finish this project completely working and help other people, coders, office people through it."}, {"post_id": 68716, "ts": "2026-09-15T16:29:59Z", "hours": 0.8792, "text": "completed completely with scanning screen and started writing css for the main screen. I have wrote the css for the buttons and the file navigation box at the lleft side, then also for the top main navigation bar, the buttons arre reactive with mouse hover and click, and has a dashed border or highlighting the main thing at top right corner: 🔒 Local — files never leave your machine. I used the ‘& hashtag128274;’ (hashtag should be replaced with hashtag sign, when I put hashtag sign here, it converted it to the same lock sign) for making the lock logo (it is in html). I removed the class=hidden for a while from the main app division and header section, later I will agaiin make them hidden and remove class=hidden from the main landing page section/division."}, {"post_id": 68621, "ts": "2026-09-15T12:35:56Z", "hours": 2.0742, "text": "I finished the scanniing screen, it is plain but looks good, I tried making it look more good, but some errors were there so I made it simple and started with the main dshboard styling."}, {"post_id": 68512, "ts": "2026-09-15T07:31:29Z", "hours": 1.0822, "text": "Completed with the landing/main page!! 🅰️ Y! All the cards which are randomly placed everywhere are hover sensitive, means when you will hover over it, it will react to it and change it’s shadow giving the effect of being pressed, same for the 2 main buttons for selecting the folder. now I have started with the scanning screen which you can also tell loading screen."}, {"post_id": 68135, "ts": "2026-09-14T15:54:31Z", "hours": 1.5644, "text": "I have now made it look even more beautiful!! A half transparency box in center for uploading or dropping files and folders (or you can say codebase) for devlens to analyze it and give you the report. then made its borders rotate which was a little tricky work but I did it. The codeblock for the rotating border is in the code image below and also you can see the image of my launch/main starting page. also it has some colour boxes randomly placed around with dashed border around it and also the pastel colour, brown colour shade, etc looks very pretty."}, {"post_id": 67935, "ts": "2026-09-14T07:55:33Z", "hours": 0.3167, "text": "Wrote more css, now the starting page or landing page llooks very good, not completed yet but still it is like around 60% is done, now the title colour, stlye of writing, the tagline, the points about devlens, and background, all looks like excellent. I used ink, ink-soft, butter, etc; colours. then for the font style I used these font families: 1st is named mono: “SFMono-Regular”, Consolas, “Liberation Mono”, Menlo, monospape; and second is named serif: Gorgia, “Iowan Old Style”, “Palatino Linotype”, serif; both are wonderful styles according to me. I had described these font families and colours in start itself inside ‘:root{}’ so it is easy to directly use it wherever we want inside the css file."}, {"post_id": 67902, "ts": "2026-09-14T06:28:00Z", "hours": 0.4156, "text": "Now it has started looking good, not completely but partially, I have wrote css for navigation button, the main title of DEVLENS, then also for the feature lines which tells what DevLens can do, yet css for the select folder button and the box in which it will be there, then for the main dashboard and other navigated buttons like history, graph, etc; is remaining."}, {"post_id": 67259, "ts": "2026-09-13T10:10:11Z", "hours": 0.9203, "text": "Started with css and added one mre button in html which I had forgot, the button is for adding or using DEVLENS for new folder or code base. in css I have added so many colours in start itself using variables, colours like: Kraft, mint, ink, blue, lavendar, butter, deep colours of many colours, etc. the made colour families in starting itself. so by defining and using 20 to 22 colours and 3 font families in start itself, it will be very helpful throughout the css coding."}, {"post_id": 67172, "ts": "2026-09-13T07:38:34Z", "hours": 0.7417, "text": "Wrote the first version of html, it has tabs or sections for overview, graph, warnings, History, export for whole analysis."}, {"post_id": 66666, "ts": "2026-09-12T15:05:22Z", "hours": 0.4883, "text": "Made the scanning screen which will come when the file is being analyzed and a the main scene which comes after it, it has all the features and the main outputs and workings like it will show everything about the codebase or the folder which we uploaded, it will show all the files, their content type, relation with other files like css file is connected to html and js is also connected to html, then css is connected to js, etc. then the importance of each file, etc. till now only Project health section and architecture section"}, {"post_id": 66619, "ts": "2026-09-12T13:53:15Z", "hours": 0.3, "text": "Added new section which contains the lines which will show the button to upload the folder of codes and explain the features of DevLens such as: Where the project starts, how files are connected, etc."}, {"post_id": 66481, "ts": "2026-09-12T10:08:15Z", "hours": 0.5972, "text": "I have started making my frictionless project, which is DevLens! it helps you to upload any folder in it and then it will tell everything about each and every file in it, like what is connected to which file, what is importance of each file, you can view the whole file, and many more features. When developers open a codebase which is new or they don’t know about it, they often don’t know: Where to start, How files are connected, Which files are important, What might be problematic, Why certain files/code exist. This project turns a confusing codebase into an interactive explanation. I have made the navigation bar, the title and some details."}]...
|
Title: DevLens by @Noben_Nobi | Stardance
Devlogs Title: DevLens by @Noben_Nobi | Stardance
Devlogs:
I have started making my frictionless project, which is DevLens! it helps you to upload any folder in it and then it will tell everything about each and every file in it, like what is connected to which file, what is importance of each file, you can view the whole file, and many more features. When developers open a codebase which is new or they don’t know about it, they often don’t know: Where to start, How files are connected, Which files are important, What might be problematic, Why certain files/code exist. This project turns a confusing codebase into an interactive explanation. I have made the navigation bar, the title and some details.
Added new section which contains the lines which will show the button to upload the folder of codes and explain the features of DevLens such as: Where the project starts, how files are connected, etc.
Made the scanning screen which will come when the file is being analyzed and a the main scene which comes after it, it has all the features and the main outputs and workings like it will show everything about the codebase or the folder which we uploaded, it will show all the files, their content type, relation with other files like css file is connected to html and js is also connected to html, then css is connected to js, etc. then the importance of each file, etc. till now only Project health section and architecture section
Wrote the first version of html, it has tabs or sections for overview, graph, warnings, History, export for whole analysis.
Started with css and added one mre button in html which I had forgot, the button is for adding or using DEVLENS for new folder or code base. in css I have added so many colours in start itself using variables, colours like: Kraft, mint, ink, blue, lavendar, butter, deep colours of many colours, etc. the made colour families in starting itself. so by defining and using 20 to 22 colours and 3 font families in start itself, it will be very helpful throughout the css coding.
Now it has started looking good, not completely but partially, I have wrote css for navigation button, the main title of DEVLENS, then also for the feature lines which tells what DevLens can do, yet css for the select folder button and the box in which it will be there, then for the main dashboard and other navigated buttons like history, graph, etc; is remaining.
Wrote more css, now the starting page or landing page llooks very good, not completed yet but still it is like around 60% is done, now the title colour, stlye of writing, the tagline, the points about devlens, and background, all looks like excellent. I used ink, ink-soft, butter, etc; colours. then for the font style I used these font families: 1st is named mono: “SFMono-Regular”, Consolas, “Liberation Mono”, Menlo, monospape; and second is named serif: Gorgia, “Iowan Old Style”, “Palatino Linotype”, serif; both are wonderful styles according to me. I had described these font families and colours in start itself inside ‘:root{}’ so it is easy to directly use it wherever we want inside the css file.
I have now made it look even more beautiful!! A half transparency box in center for uploading or dropping files and folders (or you can say codebase) for devlens to analyze it and give you the report. then made its borders rotate which was a little tricky work but I did it. The codeblock for the rotating border is in the code image below and also you can see the image of my launch/main starting page. also it has some colour boxes randomly placed around with dashed border around it and also the pastel colour, brown colour shade, etc looks very pretty.
Completed with the landing/main page!! 🅰️ Y! All the cards which are randomly placed everywhere are hover sensitive, means when you will hover over it, it will react to it and change it’s shadow giving the effect of being pressed, same for the 2 main buttons for selecting the folder. now I have started with the scanning screen which you can also tell loading screen.
I finished the scanniing screen, it is plain but looks good, I tried making it look more good, but some errors were there so I made it simple and started with the main dshboard styling.
completed completely with scanning screen and started writing css for the main screen. I have wrote the css for the buttons and the file navigation box at the lleft side, then also for the top main navigation bar, the buttons arre reactive with mouse hover and click, and has a dashed border or highlighting the main thing at top right corner: 🔒 Local — files never leave your machine. I used the ‘& hashtag128274;’ (hashtag should be replaced with hashtag sign, when I put hashtag sign here, it converted it to the same lock sign) for making the lock logo (it is in html). I removed the class=hidden for a while from the main app division and header section, later I will agaiin make them hidden and remove class=hidden from the main landing page section/division.
Finally completed the main dashboard (overview) css. everything is hover reactive, and the best look which gives my style to it is the messiness off all things, the pastel colours, the tapes, etc. it looks super cool. No data is there as after the css and js finishes, while testing or anything, when we upload the folder to it, it will analyse it and give the results. when you will click on the file, it should show everything about the file like data, type, and all.rest depends if my code succeeds to work (which it will after different attempts, could be less, could be more, don’t know, but I will try my best to finish this project completely working and help other people, coders, office people through it.
I startd with the graph screen CSS!!!!!!!!! agggaaaaiiin the same, buttons are hover reacctive, colours are pastel, and nothing more, just font size color, alignment, shadows, hover, etc etc; not yet finished but at least it looks good. you would be thinking how am I able to see the graph screen before writing js (as we can see graph screen by using navigation bar)? the answer is simple, the div of overview section had “class=“view active” “ and others had view, so I made overview’s class to view, and graph’s class to “view active”. simple. so for every thing untill css finishes, I will do this, and after all the things are done in css, I will make it correct again, and then write the perfect js for it (which could get wrong, don’t know yet).
I finished my graph section css. I took some help of AI for understanding how to make that graph box in between and the circles of it and a little more, but I wrote the code myself, I used AI only to know about it and understand it as I haven’t made any css for graph.
Completed warning screen (section) toooooo!! the css for this was not hard, means it was easy, nothing so much was there, just wrote css for body, title, content, hover, etc. you can’t see so much n the image yet as after js when I will upload any folder, that time it will show warnings of the folder, files, etc.
Two newses: 1. Completed the history section (page) css too, it was a little big but as compared to other pages, it was like medium small and less hard. 2. I have crossed 1000 lines in css, won’t be very big for coders who regularly code huge, but for me it is like very less time I hit above 1000 lines, sooo !
started with the inspector screen, this is the screen which shows info about each fie, just click on the file and you can see the info about it, yet no info as ofcourse folder or any file is not there yet.
completed the inspector and finished palette, it is for jumping to any file, nvigate, open, or close. not much.
Completed Javascript, I had took a new laptop a few days ago and when I started to complete the remaining code, time didn’t got tracked and I lost my hours ! I have tested it on this stardance, I had downloaded the project folder from github stardance official. here are the results of it:
Ships:
I have made a website which is like a tool for people. we can upload any project folder (it is for large folders), then it analysis it and then show all the info about the files and folders. it solves the problem which many people face, the people who want to know about any project, website, or any code folders, we have to open the files or run it to understand it, see which files are connected to which, and some people don’t know from which file to start, so this website solves that. I faced some issues in some parts of javascript and css but I did it. I took some help from ai for javascript parts to understand it, and then I typed the code....
|
1793209698.0143895
|
1793296098.0143895
|
|
62419
|
OrbitSim by @Bennediktiner | Stardance
|
Bennediktiner
|
0
|
20.13
|
0
|
[]
|
[{"post_id": 75150, "ts": "202 [{"post_id": 75150, "ts": "2026-09-29T09:31:15Z", "hours": 10.9633, "text": "Devlog 2 Ive now got the detection of SOI changes and following parent changing working. The attached picture shows a ship (yellow) encountering the moon. Due to matplotlibs constrains and because it would require reworking the whole system, i cant show the actual change in the Graph, but i promise it is correctly calculating it in the backend. To make this work i also had to create a global hierarchy system to find possible interaction partners, and create a timesystem that can dynamicallychange timewarp to schedule the events with Sched. Upong detecting an Soi change it now scedules an event to recalculate the objects position to parent relative, then recalculates the obrit in global time, so only one orbital trajectory has to be stored at a time. While i was at it i also added the functionality of creating the Objects from a sperate config file, to make later changes to the system far easier. Now to make it actually visible with Ursina"}, {"post_id": 69827, "ts": "2026-09-17T21:14:00Z", "hours": 9.1681, "text": "Devlog 1 Im making a newtonian Orbit Simulator using Python and the Ursina Engine Framework for visualization. This is a topic Ive always found interesting and I hope to both learn the Math behind it and use the finished product to demonstrate orbital mechanics in a physics presentation in a couple of weeks. What ive got so far: Basic frontend visualization using Ursina, mostly to see if it was fitting for this project The spritelike artstyle using these cute free to use textures* Good chunk of the simulation backend, calculates Orbit by using scipys ivp solver on the intial position and velocity by integrating newtonian laws of gravity What i haven’t got (yet): Sphere of influence Updating ( im NOT solving the n-body problem) and the object hierarchy that comes with it Tying together of backend Physics with Frontend visualization (keeping these seperate as much as possible to take advantage of high float precission) -Framework to make custom initial planetary/solar system states *texture credit: https://opengameart.org/content/space-pixel-art by Peony https://opengameart.org/content/space-background-1 by westbeam"}]...
|
Title: OrbitSim by @Bennediktiner | Stardance
Dev Title: OrbitSim by @Bennediktiner | Stardance
Devlogs:
Devlog 1 Im making a newtonian Orbit Simulator using Python and the Ursina Engine Framework for visualization. This is a topic Ive always found interesting and I hope to both learn the Math behind it and use the finished product to demonstrate orbital mechanics in a physics presentation in a couple of weeks. What ive got so far: Basic frontend visualization using Ursina, mostly to see if it was fitting for this project The spritelike artstyle using these cute free to use textures* Good chunk of the simulation backend, calculates Orbit by using scipys ivp solver on the intial position and velocity by integrating newtonian laws of gravity What i haven’t got (yet): Sphere of influence Updating ( im NOT solving the n-body problem) and the object hierarchy that comes with it Tying together of backend Physics with Frontend visualization (keeping these seperate as much as possible to take advantage of high float precission) -Framework to make custom initial planetary/solar system states *texture credit: https://opengameart.org/content/space-pixel-art by Peony https://opengameart.org/content/space-background-1 by westbeam
Devlog 2 Ive now got the detection of SOI changes and following parent changing working. The attached picture shows a ship (yellow) encountering the moon. Due to matplotlibs constrains and because it would require reworking the whole system, i cant show the actual change in the Graph, but i promise it is correctly calculating it in the backend. To make this work i also had to create a global hierarchy system to find possible interaction partners, and create a timesystem that can dynamicallychange timewarp to schedule the events with Sched. Upong detecting an Soi change it now scedules an event to recalculate the objects position to parent relative, then recalculates the obrit in global time, so only one orbital trajectory has to be stored at a time. While i was at it i also added the functionality of creating the Objects from a sperate config file, to make later changes to the system far easier. Now to make it actually visible with Ursina...
|
1793044405.6785104
|
1793649205.6785104
|
|
65744
|
LED Chaser by @Nivedh_Govil | Stardance
|
Nivedh_Govil
|
0
|
3.64
|
0
|
[]
|
[{"post_id": 75151, "ts": "202 [{"post_id": 75151, "ts": "2026-09-29T09:34:28Z", "hours": 0.7503, "text": "Routing done! Yesterday, I spent such a long time trying to route the PCB. Today, it’s done. Phew. I hope it’s done correctly. I learnt about vias and how you can go from one layer to another. I also added some custom text. Next Steps: Double check the schematic and PCB. Update the Github repo Draft the Bill of materials Submit for Funding!"}, {"post_id": 74885, "ts": "2026-09-28T14:57:14Z", "hours": 1.2339, "text": "Hi guys! Today I was working on routing all the components on the PCB, and it was so hard! I had to try to find alternate paths for each trace. I had to avoid some paths, create vias to other layers, and it was challenging. But I hope to fix it and remove the issue soon. It was a completely new experience for me."}, {"post_id": 74459, "ts": "2026-09-27T12:39:38Z", "hours": 0.3503, "text": "Continuing my work on the PCB. For those of you who don’t know: It’s a Thor-inspired PCB that makes a series of 10 LEDs light up in a sequence. Today, I added the icon of a lightning bolt and wrote a description of the project. I had a minor issue with aligning the text description. I hope to complete this soon. :D"}, {"post_id": 73974, "ts": "2026-09-26T13:09:08Z", "hours": 0.75, "text": "Working on the PCB for my LED Chaser. Got into some issues while importing the .dxf file for the board outline, but now its fine! I have placed the components, but the routing is left. Hope to finish it soon!"}, {"post_id": 73959, "ts": "2026-09-26T12:21:21Z", "hours": 0.5506, "text": "It’s my first day making an LED Chaser! Project goal: 10 LEDs light up in a sequence. I have some ideas to make the final project better, but this is the start. It’s a bit easy right now, and it’s also my first PCB. Hope it works! :D"}]...
|
Title: LED Chaser by @Nivedh_Govil | Stardance
De Title: LED Chaser by @Nivedh_Govil | Stardance
Devlogs:
It’s my first day making an LED Chaser! Project goal: 10 LEDs light up in a sequence. I have some ideas to make the final project better, but this is the start. It’s a bit easy right now, and it’s also my first PCB. Hope it works! :D
Working on the PCB for my LED Chaser. Got into some issues while importing the .dxf file for the board outline, but now its fine! I have placed the components, but the routing is left. Hope to finish it soon!
Continuing my work on the PCB. For those of you who don’t know: It’s a Thor-inspired PCB that makes a series of 10 LEDs light up in a sequence. Today, I added the icon of a lightning bolt and wrote a description of the project. I had a minor issue with aligning the text description. I hope to complete this soon. :D
Hi guys! Today I was working on routing all the components on the PCB, and it was so hard! I had to try to find alternate paths for each trace. I had to avoid some paths, create vias to other layers, and it was challenging. But I hope to fix it and remove the issue soon. It was a completely new experience for me.
Routing done! Yesterday, I spent such a long time trying to route the PCB. Today, it’s done. Phew. I hope it’s done correctly. I learnt about vias and how you can go from one layer to another. I also added some custom text. Next Steps: Double check the schematic and PCB. Update the Github repo Draft the Bill of materials Submit for Funding!...
|
1793091041.5530734
|
1793695841.5530734
|
|
53894
|
What's It Worth by @capyblaze | Stardance
|
capyblaze
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T09:59:04Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did you make? A mini web game where you have to guess the price of random Amazon products and get as close as you can What was challenging? Finding the data and cleaning it up to keep only the good info What are you proud of? That it saves your score in local storage so even if you close the page, you don’t lose your progress What should people know so they can test your project? Just head to the site and start playing", "repo": "https://github.com/CapyBlaze/What-is-It-Worth", "demo": "https://capyblaze.github.io/What-is-It-Worth/"}]...
|
[{"post_id": 75152, "ts": "202 [{"post_id": 75152, "ts": "2026-09-29T09:43:05Z", "hours": 7.57, "text": "Hey everyone, just wanted to make a quick little game. It’s super simple: the app shows a random Amazon product and you gotta guess the price. The closer you get, the more points you score.The whole game was built in this devlog (fetching Amazon data, sorting it, and coding the site)"}]...
|
Title: What's It Worth by @capyblaze | Stardan Title: What's It Worth by @capyblaze | Stardance
Devlogs:
Hey everyone, just wanted to make a quick little game. It’s super simple: the app shows a random Amazon product and you gotta guess the price. The closer you get, the more points you score.The whole game was built in this devlog (fetching Amazon data, sorting it, and coding the site)
Ships:
What did you make? A mini web game where you have to guess the price of random Amazon products and get as close as you can What was challenging? Finding the data and cleaning it up to keep only the good info What are you proud of? That it saves your score in local storage so even if you close the page, you don’t lose your progress What should people know so they can test your project? Just head to the site and start playing...
|
1793152487.9283369
|
1793238887.9283369
|
|
66713
|
Pac-Man by @ojasthakur | Stardance
|
ojasthakur
|
1
|
2.0
|
4
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-30T07:06:38Z", "hours": 2.0, "multiplier": 1.7, "payout": 4, "blessing": "neutral", "text": "I’m a beginner with C lol. Idts its a really great start compared to other projects I see out here and I joined late too.. so yeah.", "repo": "https://github.com/OjasQwQ/Pac-Man", "demo": "https://ojasqwq.itch.io/pac-man"}]...
|
[{"post_id": 75154, "ts": "202 [{"post_id": 75154, "ts": "2026-09-29T09:51:04Z", "hours": 2.1228, "text": "I’m a beginner with coding in C so I decided to put the skills I have to test and built this simple terminal based game, Pa(C)-Man. The ghost is a jumpscare tbh lol. Its full of bugs and its really basic."}]...
|
Title: Pac-Man by @ojasthakur | Stardance
Devlogs Title: Pac-Man by @ojasthakur | Stardance
Devlogs:
I’m a beginner with coding in C so I decided to put the skills I have to test and built this simple terminal based game, Pa(C)-Man. The ghost is a jumpscare tbh lol. Its full of bugs and its really basic.
Ships:
I’m a beginner with C lol. Idts its a really great start compared to other projects I see out here and I joined late too.. so yeah....
|
1793216994.564438
|
1793303394.564438
|
|
58501
|
Dazzy-Alaram by @KashanZahid | Stardance
|
KashanZahid
|
0
|
12.35
|
0
|
[]
|
[{"post_id": 75155, "ts": "202 [{"post_id": 75155, "ts": "2026-09-29T09:51:13Z", "hours": 7.1003, "text": "working on finishing"}, {"post_id": 69062, "ts": "2026-09-16T09:47:58Z", "hours": 3.4172, "text": "##fix my errors"}, {"post_id": 64027, "ts": "2026-09-08T04:23:01Z", "hours": 1.8336, "text": "finally lean how to use cad"}]...
|
Title: Dazzy-Alaram by @KashanZahid | Stardance
D Title: Dazzy-Alaram by @KashanZahid | Stardance
Devlogs:
finally lean how to use cad
##fix my errors
working on finishing...
|
1792756029.7718747
|
1793360829.7718747
|
|
59716
|
hackaclock by @zac_i | Stardance
|
zac_i
|
0
|
16.23
|
0
|
[]
|
[{"post_id": 75160, "ts": "202 [{"post_id": 75160, "ts": "2026-09-29T10:03:51Z", "hours": 1.5417, "text": "Devlog # 5 PCB - DONE! CAD - DONE! Firmware - DONE! README - DONE! Hackaclock is on the move! If anyone can tell me if I’ve done anything wrong that would be great!"}, {"post_id": 74786, "ts": "2026-09-28T07:46:22Z", "hours": 9.5408, "text": "CAD IS DONE!!!! YAYYYYYY!! After nearly 10 painstaking hours on non manifold and badddd geometry in blender (ik I shouldn’t have used blender), my CAD is finally done and working for hackaclock! Onto firmware now…"}, {"post_id": 71066, "ts": "2026-09-20T08:06:57Z", "hours": 1.7433, "text": "Devlog #? Added lid and fixed blender settings to make it run faster! I came back to designing my custom BLARE alarm clock (3D enclosure) after a while and I’m almost done! Will submit soon and maybe build before Stardance ends 🤞"}, {"post_id": 65852, "ts": "2026-09-11T08:47:49Z", "hours": 1.7269, "text": "Devlog #2! Worked on CAD a bit and just started designing the case for hackaclock! I’m using blender though so omg it keeps crashing so much!!!! I imported my PCB using pcb2blender in Kicad, and it is too complicated for blender!!! Hopefully I can fix it soon though and get designing properly."}, {"post_id": 65254, "ts": "2026-09-10T08:02:23Z", "hours": 1.6747, "text": "Devlog #1!!! Started off a new BLARE alarm clock project: hackaclock! I’m thinking cool bevelled edges and an inset screen. 👌"}]...
|
Title: hackaclock by @zac_i | Stardance
Devlogs:
Title: hackaclock by @zac_i | Stardance
Devlogs:
Devlog #1!!! Started off a new BLARE alarm clock project: hackaclock! I’m thinking cool bevelled edges and an inset screen. 👌
Devlog #2! Worked on CAD a bit and just started designing the case for hackaclock! I’m using blender though so omg it keeps crashing so much!!!! I imported my PCB using pcb2blender in Kicad, and it is too complicated for blender!!! Hopefully I can fix it soon though and get designing properly.
Devlog #? Added lid and fixed blender settings to make it run faster! I came back to designing my custom BLARE alarm clock (3D enclosure) after a while and I’m almost done! Will submit soon and maybe build before Stardance ends 🤞
CAD IS DONE!!!! YAYYYYYY!! After nearly 10 painstaking hours on non manifold and badddd geometry in blender (ik I shouldn’t have used blender), my CAD is finally done and working for hackaclock! Onto firmware now…
Devlog # 5 PCB - DONE! CAD - DONE! Firmware - DONE! README - DONE! Hackaclock is on the move! If anyone can tell me if I’ve done anything wrong that would be great!...
|
1793029845.0965354
|
1793634645.0965354
|
|
66206
|
Simon says by @rounaknayak17649 | Stardance
|
rounaknayak17649
|
1
|
16.0
|
16
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T10:50:43Z", "hours": 16.0, "multiplier": 1.02, "payout": 16, "blessing": "neutral", "text": "I built a classic Simon Says memory game using HTML, CSS, and JavaScript!. Getting the game deployed correctly and making sure the file structure lined up seamlessly with Vercel and GitHub.I’m super proud of pulling everything together from scratch, styling it with custom gradients and layouts, and getting the live deployment working smoothly.Just click the “Try project” button, press any key to start, and watch the sequence closely to see how high of a score you can get", "repo": "https://github.com/crazyboy118/Simon-says", "demo": "https://simon-says-mauve.vercel.app"}]...
|
[{"post_id": 75162, "ts": "202 [{"post_id": 75162, "ts": "2026-09-29T10:45:20Z", "hours": 6.7075, "text": "debuging the codes"}, {"post_id": 74351, "ts": "2026-09-27T06:54:56Z", "hours": 9.3747, "text": "I have created logic, structure, design"}]...
|
Title: Simon says by @rounaknayak17649 | Stardance Title: Simon says by @rounaknayak17649 | Stardance
Devlogs:
I have created logic, structure, design
debuging the codes
Ships:
I built a classic Simon Says memory game using HTML, CSS, and JavaScript!. Getting the game deployed correctly and making sure the file structure lined up seamlessly with Vercel and GitHub.I’m super proud of pulling everything together from scratch, styling it with custom gradients and layouts, and getting the live deployment working smoothly.Just click the “Try project” button, press any key to start, and watch the sequence closely to see how high of a score you can get...
|
1793216915.521776
|
1793303315.521776
|
|
45877
|
A personal interactive website by @JoannaGera | St A personal interactive website by @JoannaGera | Stardance...
|
JoannaGera
|
0
|
7.28
|
0
|
[]
|
[{"post_id": 75168, "ts": "202 [{"post_id": 75168, "ts": "2026-09-29T11:07:12Z", "hours": 7.2778, "text": "Done with the basic layout so far, need to personalize it a lil more! The hover might be my fav :3"}]...
|
Title: A personal interactive website by @JoannaGe Title: A personal interactive website by @JoannaGera | Stardance
Devlogs:
Done with the basic layout so far, need to personalize it a lil more! The hover might be my fav :3...
|
1792641128.765305
|
1793245928.765305
|
|
50393
|
Frictionless by @misbahgauri9 | Stardance
|
misbahgauri9
|
1
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T11:38:54Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a note taking website, so this is basically the Web version of good notes [ well we are not quite there yet] and I made it as a free and accessible. the most challenging part more than coding for me as someone who is doing it for the first time was to figure things and set up things:}", "repo": "https://github.com/misbahgauri/BeeMark", "demo": "https://misbahgauri.github.io/BeeMark/"}]...
|
[{"post_id": 75172, "ts": "202 [{"post_id": 75172, "ts": "2026-09-29T11:32:58Z", "hours": 0.4397, "text": "guys I added a readme and fixed the errors I was getting w GitHub, its shipped now so please check it out and leave honest revieww so happy RN!!!"}, {"post_id": 74460, "ts": "2026-09-27T12:51:19Z", "hours": 0.3867, "text": "it’s doneeee yayyyy try it ouut yall"}, {"post_id": 73570, "ts": "2026-09-25T12:40:07Z", "hours": 1.4192, "text": "things I did: 1. added new fonts, increased the storage & added grid. 2. change the whole css cuz i wanted to change the colour pallet and layout so it kinda fits the futuristic biophilic aesthetics and for that I added some unnatural shapes and textures. 3. worked on making the already existing features work better. [ AKA the hardest part]"}, {"post_id": 69674, "ts": "2026-09-17T15:31:28Z", "hours": 1.0711, "text": "after so many days of working its still glitching and storage sucks!!"}, {"post_id": 61445, "ts": "2026-09-04T11:26:04Z", "hours": 0.9364, "text": "dev log #3 ok i know it’s been a while that’s cuz i’ve been figuring out a few things in the code aswell as my life :) so far i have worked on the stylus writting feauture and adding more bg options. but I am yet to add a better storage system, more fonts , text editing optin and integrate AI feautures also improve th UI, Any tips?"}, {"post_id": 53747, "ts": "2026-08-24T12:40:04Z", "hours": 0.3094, "text": "devlog 2 guys I worked on my HTML, CSS and java and today I added a handwritten notes feature where users can write through stylus as well as type and also added a feature through which 3d models and images can be uploaded on the page and some more basic features."}, {"post_id": 53110, "ts": "2026-08-23T15:22:32Z", "hours": 5.3506, "text": "this my note taking app ‘bee mark’ I am working on this as my first ever coding project since I’m a newbie but the reason I chose to make an actual note taking app rather than a ‘quick notes’ web cuz I actually wanted to create a cutesy and Pinterest coded version that is actually function and has features that can help students make note taking process a bit easier and is free to use also I’ll explain more about my web in next post and if you have suggestions or features that you would personally like to see in such plsssss do let me know. here’s my HTML progress as of now. there is more but i could only upload one about 128 lines."}]...
|
Title: Frictionless by @misbahgauri9 | Stardance
Title: Frictionless by @misbahgauri9 | Stardance
Devlogs:
this my note taking app ‘bee mark’ I am working on this as my first ever coding project since I’m a newbie but the reason I chose to make an actual note taking app rather than a ‘quick notes’ web cuz I actually wanted to create a cutesy and Pinterest coded version that is actually function and has features that can help students make note taking process a bit easier and is free to use also I’ll explain more about my web in next post and if you have suggestions or features that you would personally like to see in such plsssss do let me know. here’s my HTML progress as of now. there is more but i could only upload one about 128 lines.
devlog 2 guys I worked on my HTML, CSS and java and today I added a handwritten notes feature where users can write through stylus as well as type and also added a feature through which 3d models and images can be uploaded on the page and some more basic features.
dev log #3 ok i know it’s been a while that’s cuz i’ve been figuring out a few things in the code aswell as my life :) so far i have worked on the stylus writting feauture and adding more bg options. but I am yet to add a better storage system, more fonts , text editing optin and integrate AI feautures also improve th UI, Any tips?
after so many days of working its still glitching and storage sucks!!
things I did: 1. added new fonts, increased the storage & added grid. 2. change the whole css cuz i wanted to change the colour pallet and layout so it kinda fits the futuristic biophilic aesthetics and for that I added some unnatural shapes and textures. 3. worked on making the already existing features work better. [ AKA the hardest part]
it’s doneeee yayyyy try it ouut yall
guys I added a readme and fixed the errors I was getting w GitHub, its shipped now so please check it out and leave honest revieww so happy RN!!!
Ships:
I made a note taking website, so this is basically the Web version of good notes [ well we are not quite there yet] and I made it as a free and accessible. the most challenging part more than coding for me as someone who is doing it for the first time was to figure things and set up things:}...
|
1793148836.1593947
|
1793235236.1593947
|
|
22643
|
station-siege by @Abbos | Stardance
|
Abbos
|
1
|
90.0
|
1130
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T11:46:37Z", "hours": 90.0, "multiplier": 15.55, "payout": 1130, "blessing": "neutral", "text": "I made Station Siege, a first-person zombie shooter set on an abandoned space station. You fight through 10 waves of zombies, earn gold for kills, and spend it on weapons, ammo, and unlocking doors to different rooms. It’s built in Godot 4.7 and runs in the browser. The hardest part was zombie pathfinding. Zombies kept getting stuck in their spawn rooms, and one stuck zombie was enough to stop the next wave from starting. It turned out the doors were baked into the navigation mesh as closed, so even with a door open, the zombies had no path out. I rebuilt the navmesh without doors and barricades, and added a backup that despawns any zombie that makes no progress for 20 seconds. Getting it onto the web was the other big challenge. The first export was 2.3 GB, so I cut unused models and switched textures to a web-safe format to get it under itch’s 200 MB limit. I’m proudest of the atmosphere: the dark corridors, the barricades zombies tear through, and the moment a wave starts pouring in from several directions at once. How to test: Open the itch link in Chrome or Edge on a desktop computer. It doesn’t work on phones. Click Start, then click inside the game window to lock the mouse. Controls: WASD to move, Shift to sprint, left click to shoot, R to reload, 1-3 to switch weapons, E to interact or buy, hold F to repair a barricade, Esc to pause. They’re also on the Controls screen in the main menu. The first load can take a little while because the game is about 150 MB. Read the note near the spawn. It tells you where to find the shotgun, machine gun and gives a small backstory.", "repo": "https://github.com/Madyarov27/station-siege", "demo": "https://madyarov27.itch.io/station-siege-web"}]...
|
[{"post_id": 75174, "ts": "202 [{"post_id": 75174, "ts": "2026-09-29T11:36:11Z", "hours": 2.5928, "text": "Devlog #10 - my last devlog. Done: Removed jumping (it had no purpose) Repairing is now done via the F button. Shipped the game to itch.io. This took me a while. The export was 2.3 gigabytes, so itch.io flat-out rejected it due to size limits. I removed a pile of unused models from the export. GPU texture compression came out garbled in WebGL, so I switched the textures to WebP capped at 2048px. That got the build down to about 150 MB, well under itch’s 200 MB per-file limit. You can play it here: https://madyarov27.itch.io/station-siege-web . I also cleaned up the repo, rewrote the README, and pushed everything to GitHub, including the zombie model through Git LFS."}, {"post_id": 74902, "ts": "2026-09-28T15:52:46Z", "hours": 16.2392, "text": "#9th devlog. Station Siege. Achieved: Added acid puddle as an environmental threat. Can be used to kite zombies and kill them or likewise, end up hurting yourself if you step on it. Messages in HUD when interacting with barricades, vending machine, and acid puddle. Improved zombie navigation. Now it’s completely foolproof to sharp corner turns. Added sound effect when reloading. I had the mp3 and wav files lying there doing nothing for a while but now i finally wired them in. Added like a dozen new props. Took everything from SketchFab, and used them to decorate medical bay, engineering, and cargo. Replaced almost all existing AI generated 3d models to the ones took from sketchfab. Mainly because they had like a trillion faces which was frying my CPU but also they kinda looked soulless and low effort. Added an interior wall in the spawn chamber so zombies dont look like they appear out of thin air when they spawn. Also redesigned the barricade slightly. Good for realism Changed the game map extensively. The ring part is gone. That part made sense in the beginning but the more I tested, the more I realized that shape is not ideal for my game. It’s too big and you can kite zombies forever. Now, the map looks more like spaceship themed family home interior and it’s actualyl challenging here now. You can get cornered and slimed unexpectedly."}, {"post_id": 71096, "ts": "2026-09-20T09:08:46Z", "hours": 10.3072, "text": "Devlog #wa8 I’ll just keep it short Added: Sprinting Added male zombie (finally) Overhauled wave manager. Now zombies in rooms that are locked will not spawn until you unlock them yourself. Switched to open only doors so players can’t just go to empty room to heal forever Replaced wooden plank in barricades for rusty slab of metal with sound effect when fixing. Fixed a bug where zombies broke barricades unreliably. A dozen zombies took a whole minute to break 2 barricades due to a timing mismatch Built main menu screen Built pause menu Added ammo reserve system so weapons finally stop having infinite ammo except for default pistol"}, {"post_id": 67979, "ts": "2026-09-14T09:40:17Z", "hours": 12.8564, "text": "**Devlog #7 ** A lot of stuff added so this time I’ll try to keep it short and concise. Gun model kickback on firing. Muzzle smoke on every shot Real travelling bullet projectile instead of yellow ray Bullet shell ejected every time you fire Fixed the weird bug with zombie not spawning at all. Fixed an unexpepcted bug where corridor lights worked facing one way but not the other. It was because of too many lights crowded into one area after duplicating the lights node to new added areas. Fixed the bug with bullets sometimes passing through the zombies without hitting Fixed the bug with the gun accidentally damaging the player Added extra damage for headshot Added head bob to player POV so it feels more natural Fixed the crosshair not being perfectly centered on screen Added a sliding door"}, {"post_id": 61005, "ts": "2026-09-03T18:19:05Z", "hours": 10.0069, "text": "Station siege - Devlog #6 This time I spent my hours optimizing the game, mainly because the game was borderline unplayable to work on. The map had ~90 live CSG collision shapes constantly recalculating in real time. I baked them into static geometry. Also, I swapped out the majority of 3D models in the map, which were absurdly overbuilt. Most had over a million faces, while one was sitting at ~3 million faces for a single 1x1 meter window. The editor is noticeably faster now. Another huge change was the map. Now it is a tube-like corridor connected to a polygon with 18 sides. There is also a small room connected to the ring. This ate up most of my hours. A small yet meaningful thing was the lighting overhaul. I pivoted from flat, evenly lit corridors to nearly dark chambers with higher contrast and isolated pools of light. Moreover, I added flickering animation to some of the lights so there’s some variety. Last thing is the new HUD. It’s not final yet; I will likely iterate multiple times before settling on the ideal one. However, it’s a noticeable upgrade from the previous flat white text on the screen. What I’m most happy about is still the optimization. My laptop isn’t particularly a RAM titan, so this is really important for me. I think this will ripple into other areas of the development and speed things up a lot."}, {"post_id": 52856, "ts": "2026-08-23T06:59:58Z", "hours": 13.4275, "text": "Devlog #5 - The station finally looks like a station. Last time, the place was simply a box with some texture, fog and good lighting. Now it actually has real objects, and smoothher gameplay. Biggest thing: I built out a full Tripo3D asset pipeline and used it to generate a whole set of props. Window, metal junk, archways, tubes, a metal fence, vent, door, and a vending machine used for weapon purchasing, all are wired up. The place, at least the corridor, can larp as an abandoned space station and not just a box. Another small update for immersiveness: I added creepy ambient background music. Small, but does a lot of work when you are in an empty hallway and hear nothing but that song. Took me expensive 13 hours but it was all worth it."}, {"post_id": 19506, "ts": "2026-06-30T20:37:05Z", "hours": 14.3875, "text": "This one’s huge. 14 hours logged and the game is totally not the same game anymore. Biggest news first: I pivoted the whole thing. It used to be a generic zombie shooter on Earth. Now it’s Station Siege - a dark horror-survival game set on n abandoned space station. And no, this wasn’t a random. Three reasons: Earth zombies are overdone and generic, my 2018 Intel Mac physically cannot handle realistic Earth environments without dying, and a pitch-black abandoned space station justifies the oppressive lighting and lore for free. I even did actual homework, studied why Lethal Company, R.E.P.O. and PEAK blew up (turns out: co-op survival horror, simple visuals, mood over graphics). So the direction is locked now, backed by real reasoning instead of vibes. The zombies got a massive glow-up. They now groan at you in the dark (positional audio on random timers. Honestly the single biggest horror upgrade I’ve made), they wind up an attack animation when they reach you or a barricade, and they play a death animation before crumpling and disappearing instead of just vanishing. I also generated a custom horror zombie with Tripo3D, retopologized it from 1.9 million triangles down to ~11k so my Mac doesn’t catch fire, and rigged it through Mixamo. The struggle award goes to the AnimationPlayer. Getting multiple Mixamo animations onto one model in Godot is way more painful than it sounds, name collisions everywhere (everything Mixamo exports is named “mixamo_com”), two AnimationPlayers fighting over one skeleton, and getting the death animation to actually finish before the body gets deleted. I spent hours in that menu. But it works now. Btw thanks to @sol4r_on_hackclub for suggesting using mixamo assets. Atmosphere-wise: black space void background, cold dark lighting, fog retuned to feel like a morgue. Added screen shake when you get hit and a blood overlay that gets heavier the lower your health drops. Also solved a nasty FPS hitch where the whole map stuttered the first time it rendered, fixed it with a black loading screen that spins the camera in a full circle while hidden, so all the shaders compile before the player ever sees anything. Pretty proud of that one. And of course, the Intel GPU texture curse struck again (devlog #3 readers know the grass saga). Every single model I imported rendered as a black blob until I remembered my own golden rule: compress everything Lossless or it won’t decode. Nearly lost my mind a second time before it clicked. One design decision I’m happy about: I’m keeping real gun sounds instead of sci-fi laser noises. Grounded firearms fit horror way better, and they make sense for a human station that got overrun. Next up: Finish wiring the male zombie (texture + animations) Reskin barricades into hull breaches / blast doors Build out the 4-room map (Airlock → Hangar → Reactor / Med Bay) Per-room zombie spawning (only spawn in rooms you’ve unlocked) Props to fill the empty rooms - consoles, crates, corpses - so the station feels lived-in and abandoned"}, {"post_id": 14666, "ts": "2026-06-23T21:04:15Z", "hours": 6.9606, "text": "Devlog #3 - A lot of updates on the zombie-game. Whooh, where do I even start? I made a functional barricade that repairs when pressing shift and that zombies can break to escape. I added crosshair, gold and health labels on screen. I added actual grass texture instead of grey floor I added shotgun - a second weapon - and a real shop where you can buy it using gold. I added jumping mechanics I changed the map from 2 platforms connected by a bridge to a single large platform. The biggest struggle was the grass although it sounds kinda ridiculous. I added it for the first time and it rendered either extreme green or extreme grey, nothing in between. It resembled nothing in the actual grass texture that I used. Turns out my Intel Mac can’t decode DXT-compressed textures so anything I imported rendered as weird slop. Fixed it with one setting - compress: losless. Nearly ragequit but then reimported and worked perfectly. A lot of stuff out of my to-do list in just 7 hours. Next, I will focus on adding more weapons (e.g sniper), expanding the map, adding actual buidings (e.g bunker), dedicated zombie spawning spots, and real sound effects."}, {"post_id": 13034, "ts": "2026-06-21T09:59:49Z", "hours": 0.9778, "text": "Made some progress on my zombie game! the map is a larger now with a corridor connecting 2 platforms. I also added 3 more zombies and obstacles to the map. Next step is to make them spawn continuously and give them actual body instead of green cube :/"}, {"post_id": 12664, "ts": "2026-06-20T18:06:58Z", "hours": 2.1242, "text": "Working on a cool zombie game :). Just made the first map, working gun and zombie (that little green cube on the screen). So far smooth, never had so much fun. Next step is to give shape to the player and the zombie"}]...
|
Title: station-siege by @Abbos | Stardance
Devlog Title: station-siege by @Abbos | Stardance
Devlogs:
Working on a cool zombie game :). Just made the first map, working gun and zombie (that little green cube on the screen). So far smooth, never had so much fun. Next step is to give shape to the player and the zombie
Made some progress on my zombie game! the map is a larger now with a corridor connecting 2 platforms. I also added 3 more zombies and obstacles to the map. Next step is to make them spawn continuously and give them actual body instead of green cube :/
Devlog #3 - A lot of updates on the zombie-game. Whooh, where do I even start? I made a functional barricade that repairs when pressing shift and that zombies can break to escape. I added crosshair, gold and health labels on screen. I added actual grass texture instead of grey floor I added shotgun - a second weapon - and a real shop where you can buy it using gold. I added jumping mechanics I changed the map from 2 platforms connected by a bridge to a single large platform. The biggest struggle was the grass although it sounds kinda ridiculous. I added it for the first time and it rendered either extreme green or extreme grey, nothing in between. It resembled nothing in the actual grass texture that I used. Turns out my Intel Mac can’t decode DXT-compressed textures so anything I imported rendered as weird slop. Fixed it with one setting - compress: losless. Nearly ragequit but then reimported and worked perfectly. A lot of stuff out of my to-do list in just 7 hours. Next, I will focus on adding more weapons (e.g sniper), expanding the map, adding actual buidings (e.g bunker), dedicated zombie spawning spots, and real sound effects.
This one’s huge. 14 hours logged and the game is totally not the same game anymore. Biggest news first: I pivoted the whole thing. It used to be a generic zombie shooter on Earth. Now it’s Station Siege - a dark horror-survival game set on n abandoned space station. And no, this wasn’t a random. Three reasons: Earth zombies are overdone and generic, my 2018 Intel Mac physically cannot handle realistic Earth environments without dying, and a pitch-black abandoned space station justifies the oppressive lighting and lore for free. I even did actual homework, studied why Lethal Company, R.E.P.O. and PEAK blew up (turns out: co-op survival horror, simple visuals, mood over graphics). So the direction is locked now, backed by real reasoning instead of vibes. The zombies got a massive glow-up. They now groan at you in the dark (positional audio on random timers. Honestly the single biggest horror upgrade I’ve made), they wind up an attack animation when they reach you or a barricade, and they play a death animation before crumpling and disappearing instead of just vanishing. I also generated a custom horror zombie with Tripo3D, retopologized it from 1.9 million triangles down to ~11k so my Mac doesn’t catch fire, and rigged it through Mixamo. The struggle award goes to the AnimationPlayer. Getting multiple Mixamo animations onto one model in Godot is way more painful than it sounds, name collisions everywhere (everything Mixamo exports is named “mixamo_com”), two AnimationPlayers fighting over one skeleton, and getting the death animation to actually finish before the body gets deleted. I spent hours in that menu. But it works now. Btw thanks to @sol4r_on_hackclub for suggesting using mixamo assets. Atmosphere-wise: black space void background, cold dark lighting, fog retuned to feel like a morgue. Added screen shake when you get hit and a blood overlay that gets heavier the lower your health drops. Also solved a nasty FPS hitch where the whole map stuttered the first time it rendered, fixed it with a black loading screen that spins the camera in a full circle while hidden, so all the shaders compile before the player ever sees anything. Pretty proud of that one. And of course, the Intel GPU texture curse struck again (devlog #3 readers know the grass saga). Every single model I imported rendered as a black blob until I remembered my own golden rule: compress everything Lossless or it won’t decode. Nearly lost my mind a second time before it clicked. One design decision I’m happy about: I’m keeping real gun sounds instead of sci-fi laser noises. Grounded firearms fit horror way better, and they make sense for a human station that got overrun. Next up: Finish wiring the male zombie (texture + animations) Reskin barricades into hull breaches / blast doors Build out the 4-room map (Airlock → Hangar → Reactor / Med Bay) Per-room zombie spawning (only spawn in rooms you’ve unlocked) Props to fill the empty rooms - consoles, crates, corpses - so the station feels lived-in and abandoned
Devlog #5 - The station finally looks like a station. Last time, the place was simply a box with some texture, fog and good lighting. Now it actually has real objects, and smoothher gameplay. Biggest thing: I built out a full Tripo3D asset pipeline and used it to generate a whole set of props. Window, metal junk, archways, tubes, a metal fence, vent, door, and a vending machine used for weapon purchasing, all are wired up. The place, at least the corridor, can larp as an abandoned space station and not just a box. Another small update for immersiveness: I added creepy ambient background music. Small, but does a lot of work when you are in an empty hallway and hear nothing but that song. Took me expensive 13 hours but it was all worth it.
Station siege - Devlog #6 This time I spent my hours optimizing the game, mainly because the game was borderline unplayable to work on. The map had ~90 live CSG collision shapes constantly recalculating in real time. I baked them into static geometry. Also, I swapped out the majority of 3D models in the map, which were absurdly overbuilt. Most had over a million faces, while one was sitting at ~3 million faces for a single 1x1 meter window. The editor is noticeably faster now. Another huge change was the map. Now it is a tube-like corridor connected to a polygon with 18 sides. There is also a small room connected to the ring. This ate up most of my hours. A small yet meaningful thing was the lighting overhaul. I pivoted from flat, evenly lit corridors to nearly dark chambers with higher contrast and isolated pools of light. Moreover, I added flickering animation to some of the lights so there’s some variety. Last thing is the new HUD. It’s not final yet; I will likely iterate multiple times before settling on the ideal one. However, it’s a noticeable upgrade from the previous flat white text on the screen. What I’m most happy about is still the optimization. My laptop isn’t particularly a RAM titan, so this is really important for me. I think this will ripple into other areas of the development and speed things up a lot.
**Devlog #7 ** A lot of stuff added so this time I’ll try to keep it short and concise. Gun model kickback on firing. Muzzle smoke on every shot Real travelling bullet projectile instead of yellow ray Bullet shell ejected every time you fire Fixed the weird bug with zombie not spawning at all. Fixed an unexpepcted bug where corridor lights worked facing one way but not the other. It was because of too many lights crowded into one area after duplicating the lights node to new added areas. Fixed the bug with bullets sometimes passing through the zombies without hitting Fixed the bug with the gun accidentally damaging the player Added extra damage for headshot Added head bob to player POV so it feels more natural Fixed the crosshair not being perfectly centered on screen Added a sliding door
Devlog #wa8 I’ll just keep it short Added: Sprinting Added male zombie (finally) Overhauled wave manager. Now zombies in rooms that are locked will not spawn until you unlock them yourself. Switched to open only doors so players can’t just go to empty room to heal forever Replaced wooden plank in barricades for rusty slab of metal with sound effect when fixing. Fixed a bug where zombies broke barricades unreliably. A dozen zombies took a whole minute to break 2 barricades due to a timing mismatch Built main menu screen Built pause menu Added ammo reserve system so weapons finally stop having infinite ammo except for default pistol
#9th devlog. Station Siege. Achieved: Added acid puddle as an environmental threat. Can be used to kite zombies and kill them or likewise, end up hurting yourself if you step on it. Messages in HUD when interacting with barricades, vending machine, and acid puddle. Improved zombie navigation. Now it’s completely foolproof to sharp corner turns. Added sound effect when reloading. I had the mp3 and wav files lying there doing nothing for a while but now i finally wired them in. Added like a dozen new props. Took everything from SketchFab, and used them to decorate medical bay, engineering, and cargo. Replaced almost all existing AI generated 3d models to the ones took from sketchfab. Mainly because they had like a trillion faces which was frying my CPU but also they kinda looked soulless and low effort. Added an interior wall in the spawn chamber so zombies dont look like they appear out of thin air when they spawn. Also redesigned the barricade slightly. Good for realism Changed the game map extensively. The ring part is gone. That part made sense in the beginning but the more I tested, the more I realized that shape is not ideal for my game. It’s too big and you can kite zombies forever. Now, the map looks more like spaceship themed family home interior and it’s actualyl challenging here now. You can get cornered and slimed unexpectedly.
Devlog #10 - my last devlog. Done: Removed jumping (it had no purpose) Repairing is now done via the F button. Shipped the game to itch.io. This took me a while. The export was 2.3 gigabytes, so itch.io flat-out rejected it due to size limits. I removed a pile of unused models from the export. GPU texture compression came out garbled in WebGL, so I switched the textures to WebP capped at 2048px. That got the build down to about 150 MB, well under itch’s 200 MB per-file limit. You can play it here: https://madyarov27.itch.io/station-siege-web . I also cleaned up the repo, rewrote the README, and pushed everything to GitHub, including the zombie model through Git LFS.
Ships:
I made Station Siege, a first-person zombie shooter set on an abandoned space station. You fight through 10 waves of zombies, earn gold for kills, and spend it on weapons, ammo, and unlocking doors to different rooms. It’s built in Godot 4.7 and runs in the browser. The hardest part was zombie pathfinding. Zombies kept getting stuck in their spawn rooms, and one stuck zombie was enough to stop the next wave from starting. It turned out the doors were baked into the navigation mesh as closed, so even with a door open, the zombies had no path out. I rebuilt the navmesh without doors and barricades, and added a backup that despawns any zombie that makes no progress for 20 seconds. Getting it onto the web was the other big challenge. The first export was 2.3 GB, so I cut unused models and switched textures to a web-safe format to get it under itch’s 200 MB limit. I’m proudest of the atmosphere: the dark corridors, the barricades zombies tear through, and the moment a wave starts pouring in from several directions at once. How to test: Open the itch link in Chrome or Edge on a desktop computer. It doesn’t work on phones. Click Start, then click inside the game window to lock the mouse. Controls: WASD to move, Shift to sprint, left click to shoot, R to reload, 1-3 to switch weapons, E to interact or buy, hold F to repair a barricade, Esc to pause. They’re also on the Controls screen in the main menu. The first load can take a little while because the game is about 150 MB. Read the note near the spawn. It tells you where to find the shotgun, machine gun and gives a small backstory....
|
1793152064.8819964
|
1793238464.8819964
|
|
66521
|
WhatAboutMe? by @Viktor | Stardance
|
Viktor
|
0
|
1.22
|
0
|
[]
|
[{"post_id": 75177, "ts": "202 [{"post_id": 75177, "ts": "2026-09-29T12:06:31Z", "hours": 0.3039, "text": "Devlog #2 Got the -github part working! Now when you type /about-vickekatt-github you will see my stats! 0 followers and 0 stars 🤞"}, {"post_id": 75133, "ts": "2026-09-29T07:42:47Z", "hours": 0.9175, "text": "Devlog #1 Implemented some simple commands for my bot: -ping -help -catfact -joke."}]...
|
Title: WhatAboutMe? by @Viktor | Stardance
Devlog Title: WhatAboutMe? by @Viktor | Stardance
Devlogs:
Devlog #1 Implemented some simple commands for my bot: -ping -help -catfact -joke.
Devlog #2 Got the -github part working! Now when you type /about-vickekatt-github you will see my stats! 0 followers and 0 stars 🤞...
|
1793098507.5117073
|
1793703307.5117073
|
|
62694
|
Casimir Effect by @kian_george | Stardance
|
kian_george
|
0
|
1.75
|
0
|
[]
|
[{"post_id": 75179, "ts": "202 [{"post_id": 75179, "ts": "2026-09-29T12:23:06Z", "hours": 1.7494, "text": "Worked on the animation and learned a lot from Gemini (I asked gemini to make its own animation and then compared it to mine to see how i could make improvments) also made the animation longer (its for a youtube video)"}]...
|
Title: Casimir Effect by @kian_george | Stardance
Title: Casimir Effect by @kian_george | Stardance
Devlogs:
Worked on the animation and learned a lot from Gemini (I asked gemini to make its own animation and then compared it to mine to see how i could make improvments) also made the animation longer (its for a youtube video)...
|
1793047732.4968812
|
1793652532.4968812
|
|
64002
|
KeySlash by @Ridith | Stardance
|
Ridith
|
0
|
10.12
|
0
|
[]
|
[{"post_id": 75182, "ts": "202 [{"post_id": 75182, "ts": "2026-09-29T12:29:41Z", "hours": 1.9008, "text": "Hiya, WHOO!! we finished all the things organization, pcb and 3D case. Hopefully the next devlog will be the hardware stage. Thank you, keep deving!!"}, {"post_id": 74908, "ts": "2026-09-28T16:03:35Z", "hours": 1.3336, "text": "YO!! The entire thing is 99% done ive worked hard today to finish. YEAH THE CHANGE IS MASSIVE FROM THE LAST PIC"}, {"post_id": 74838, "ts": "2026-09-28T12:34:41Z", "hours": 1.4669, "text": "I finished my first sessioin of finishing the KeySlash case. I am trying to get the first design proper so that I can worry about colors later."}, {"post_id": 74521, "ts": "2026-09-27T15:36:43Z", "hours": 2.8842, "text": "DEVLOG 2: Hiya. today I realized that the kit that comes with KeySlash isn’t just meant for basics. Hence, I completely redid the PCB to match the requirements, and tomorrow I will finish the 3D case and hopefully submit again!!!"}, {"post_id": 71163, "ts": "2026-09-20T11:46:15Z", "hours": 2.5336, "text": "I have completely finished the Design phase of KeySlash. PCB, CASE, and Firmware has been completed in a span of 3.2"}]...
|
Title: KeySlash by @Ridith | Stardance
Devlogs:
I Title: KeySlash by @Ridith | Stardance
Devlogs:
I have completely finished the Design phase of KeySlash. PCB, CASE, and Firmware has been completed in a span of 3.2
DEVLOG 2: Hiya. today I realized that the kit that comes with KeySlash isn’t just meant for basics. Hence, I completely redid the PCB to match the requirements, and tomorrow I will finish the 3D case and hopefully submit again!!!
I finished my first sessioin of finishing the KeySlash case. I am trying to get the first design proper so that I can worry about colors later.
YO!! The entire thing is 99% done ive worked hard today to finish. YEAH THE CHANGE IS MASSIVE FROM THE LAST PIC
Hiya, WHOO!! we finished all the things organization, pcb and 3D case. Hopefully the next devlog will be the hardware stage. Thank you, keep deving!!...
|
1793058477.0923889
|
1793663277.0923889
|
|
66758
|
Janus by @surfygalaxy | Stardance
|
surfygalaxy
|
0
|
3.54
|
0
|
[]
|
[{"post_id": 75183, "ts": "202 [{"post_id": 75183, "ts": "2026-09-29T12:30:27Z", "hours": 3.5394, "text": "Forgor stardance wants these but hey it seems to be working properly (In other news logging works too)"}]...
|
Title: Janus by @surfygalaxy | Stardance
Devlogs: Title: Janus by @surfygalaxy | Stardance
Devlogs:
Forgor stardance wants these but hey it seems to be working properly (In other news logging works too)...
|
1793101950.1394498
|
1793706750.1394498
|
|
66763
|
Gargi (Generally A Really Good Interface) by @Tech Gargi (Generally A Really Good Interface) by @Techiral | Stardance...
|
Techiral
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T13:30:44Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made this with a basic problem in my mind, “Each AI terminal agent is built for developers, not teenagers”. The teenagers need something fun, personal, so I built this terminal agent. And, second motivation is to get credits in Stardance to earn & claim some hardware.", "repo": "https://github.com/lakshyabuilds/gargi", "demo": "https://github.com/lakshyabuilds/gargi/releases/tag/v1.2.0"}]...
|
[{"post_id": 75188, "ts": "202 [{"post_id": 75188, "ts": "2026-09-29T13:05:27Z", "hours": 7.6611, "text": "Hello Everyone! I have built this cute Waifu terminal AI with similar acronym to JARVIS. This isn’t any web app, it’s a TERMINAL app, so install exe, run it, test it, and enjoy it. I have added several features like voice changes, mood changes, conversation maintaining, etc. My MOTIVATION for building this- Getting more credits on Hackclub to get hardware for myself. So, support this one. Thanks All."}]...
|
Title: Gargi (Generally A Really Good Interface) b Title: Gargi (Generally A Really Good Interface) by @Techiral | Stardance
Devlogs:
Hello Everyone! I have built this cute Waifu terminal AI with similar acronym to JARVIS. This isn’t any web app, it’s a TERMINAL app, so install exe, run it, test it, and enjoy it. I have added several features like voice changes, mood changes, conversation maintaining, etc. My MOTIVATION for building this- Getting more credits on Hackclub to get hardware for myself. So, support this one. Thanks All.
Ships:
I made this with a basic problem in my mind, “Each AI terminal agent is built for developers, not teenagers”. The teenagers need something fun, personal, so I built this terminal agent. And, second motivation is to get credits in Stardance to earn & claim some hardware....
|
1793217008.510212
|
1793303408.510212
|
|
52231
|
aero OS by @kulraj | Stardance
|
kulraj
|
0
|
11.14
|
0
|
[]
|
[{"post_id": 75191, "ts": "202 [{"post_id": 75191, "ts": "2026-09-29T13:26:57Z", "hours": 0.3311, "text": "I MADE THE NOTES APP though it lacks functioning but it types too tired to code today cause im exhausted"}, {"post_id": 74857, "ts": "2026-09-28T13:37:46Z", "hours": 3.2531, "text": "i made a taskbar with a few apps and also made the dialog buttons work and also fixed transitions"}, {"post_id": 54625, "ts": "2026-08-25T17:27:07Z", "hours": 1.5614, "text": "ok so: i added custom cursor for various things i really enhanced the visuals of the dialog box of startup. i made the window draggable around so can see the transparency. I uploaded the revised version on my site which is: https://aero-os-sage.vercel.app/ so you can test this for yourself…"}, {"post_id": 53933, "ts": "2026-08-24T17:10:57Z", "hours": 5.9939, "text": "yayy so i got this really cool startup screen which im planning to put audio effects on. i also made this dialog box appear on starting the os and it isnt full functional cause i still have a lot to do. this is gonna take a long time cause i prefer quality over quantity."}]...
|
Title: aero OS by @kulraj | Stardance
Devlogs:
ya Title: aero OS by @kulraj | Stardance
Devlogs:
yayy so i got this really cool startup screen which im planning to put audio effects on. i also made this dialog box appear on starting the os and it isnt full functional cause i still have a lot to do. this is gonna take a long time cause i prefer quality over quantity.
ok so: i added custom cursor for various things i really enhanced the visuals of the dialog box of startup. i made the window draggable around so can see the transparency. I uploaded the revised version on my site which is: https://aero-os-sage.vercel.app/ so you can test this for yourself…
i made a taskbar with a few apps and also made the dialog buttons work and also fixed transitions
I MADE THE NOTES APP though it lacks functioning but it types too tired to code today cause im exhausted...
|
1792702112.389661
|
1793306912.389661
|
|
291
|
YouTweaks by @kanavv | Stardance
|
kanavv
|
2
|
36.0
|
646
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T15:48:19Z", "hours": 8.0, "multiplier": 14.56, "payout": 113, "blessing": "neutral", "text": "YouTweaks is a quality of life extension made to improve your experience on youtube. I decided to build this project because I was super frustrated with how youtube has become. With this extension I made the youtube experience less annoying and also added some features so you are more mindful while choosing what to watch. For this Ship I added the color themes feature fixed a LOT of bugs and I also created a custom playback speed feature which im super proud of and finally I incorporated feedback from the first ship (fixing the readme). This project has been super fun and this is going to be my last ship for stardance but I will probably keep working on this! Also im super happy my extension got approved to be on the firefox store so if you like it you can add it here: https://addons.mozilla.org/en-US/firefox/addon/youtweaks/", "repo": "https://github.com/KanAvR/YouTweaks", "demo": "https://github.com/KanAvR/YouTweaks/releases"}, {"ship_num": 2, "ts": "2026-09-19T14:15:30Z", "hours": 28.0, "multiplier": 18.99, "payout": 533, "blessing": "neutral", "text": "YouTweaks is a quality of life extension made to improve your experience on youtube. I decided to build this project because I was super frustrated with how youtube has become. With this extension I made the youtube experience less annoying and also added some features so you are more mindful while choosing what to watch. Overall this has been a really fun project to work on. I never thought I would have fun coding in javascript.", "repo": "https://github.com/KanAvR/YouTweaks", "demo": "https://github.com/KanAvR/YouTweaks/releases"}]...
|
[{"post_id": 75193, "ts": "202 [{"post_id": 75193, "ts": "2026-09-29T13:29:09Z", "hours": 1.3944, "text": "Bug Fixes I fixed another bug with the stop hover effects feature that used to show the effect if you hovered over the title of the video. Blur Slider I added a blur slider so people can adjust the amount of thumbnail blur. Feedback I incorporated the better readme feedback from the first ship where many people said I should explain why each feature is added. Sry for the camera photo I just reinstalled linux."}, {"post_id": 72184, "ts": "2026-09-22T12:40:55Z", "hours": 2.1672, "text": "Custom themes fixes I fixed some parts of the website that were not changing colors. I should have thought of this earlier but its going to be such a pain to keep the themes feature up to date with youtubes ui hence I am going to mark it as an experimental feature until I figure out how to change the themes in a better way. Playback speed controls without premium I am super happy with how this feature turned out it looks exactly like youtubes ui."}, {"post_id": 71663, "ts": "2026-09-21T08:21:31Z", "hours": 4.2158, "text": "Whole lotta bugs I thought I was done with everything but I found so many bugs. The shorts blocker was broken, the blocking youtube games dint work, and there was a bug where the video you were watching just stopped playing when you went into full screen. Shorts and game blocker So first the shorts bug would just delete the whole fyp if it found a short. This was was quite an easy fix since I just had to change what got deleted. Next the youtube games blocker was searching for text with “youtube games” which I changed to work the same way as the shorts blocker and then it started working properly. Full screen bug I fixed the full screen bug by only stopping the effects on objects we know are video tiles and nothing else. Themes Finally I also started working on a themes feature which looks so cool!! but its such a pain to work on. Theres so many tiny things I need to sit and edit so it looks right."}, {"post_id": 70604, "ts": "2026-09-19T13:15:26Z", "hours": 0.7297, "text": "Made the final commit before shipping Soo now the hide shorts feature works without bugs and I also finished adding the hide merch store feature. Now I just need to figure out how to publish my extension to the firefox and chrome store. Oh I also made a readme."}, {"post_id": 52261, "ts": "2026-08-22T11:20:45Z", "hours": 1.0539, "text": "View count and Publish date I moved the view count and publish dates to be next to the like button instead of the stupid tiny text it was before. To do this I made a new file called videometa.js it uses two functions one to extract the abbreviated views/ publish date and another one to extract the full views/ publish date which shows up when you hover over the information. Additionally I also fixed some Issues with the stop autoplay on hover and stop effects on hover functions, which I merged into one function earlier."}, {"post_id": 47509, "ts": "2026-08-15T13:57:57Z", "hours": 1.5306, "text": "Finished the time tracking feature!!! I haven’t gotten any time to update the project since my summer break ended. But I finally got some time to work on the project because of the time constraints I used AI to write code for this feature :( Im not proud of it but at least the feature works with no dumb bugs (for now at least) Daily limit So I added a daily limit and a bed time cut off so people dont waste the whole day on YouTube. I also added a snooze feature that appears when the YouTube limit has been reached since I often need YouTube for school work and it would become an issue if there was no way to bypass the limit. Time counter badge The concept time counter I made in a previous devlog works now and changes colors based on how much of the daily limit you have used. Stats And finally I also added a stats feature for fun since I love looking at my stats on leech block and wanted something similar for this project."}, {"post_id": 33955, "ts": "2026-07-24T09:42:36Z", "hours": 2.2917, "text": "Everything is such a mess right now I’m working on so many features at once its getting to much too handle. And I dint even make separate branches or make commits per feature so its getting so messy . I’m working on Refactoring all the code to change the deleting elements code to use css instead of JS so it has better performance hopefully . A time tracking feature. Moving the view count and date of upload up to the like button. This feature has had so many random unexpected issues its pmo. hiding the annoying red little bar below videos on the homescreen. some good progress: I merged the stopAutoPlayOnHover and stopHoverEffects into one function and I also fixed all the bugs with the function such as it not working on pages other then the homepage. Next time I should work on things in order AND AT LEAST MAKE BRANCHES ALSO MY COMMITS RN ARE HUGE I SHOULD MAKE THEM SMALLER; ONE FOR EACH FEATURE."}, {"post_id": 32345, "ts": "2026-07-21T13:35:52Z", "hours": 2.7347, "text": "Fixed Blur Again Instead of sitting and excluding things from the thumbnail blur I changed the code to only blur thumbnails. This is so stupid idk how I came up with that nonsense earlier. Stopped auto play when you hover over videos This feature works along with the other hover feature to make you a little more mindful while choosing a video to watch. Time tracking Im working on a whole new set of features to actually add something new for once since this project has just been removing stuff till now. The feature will track your time on youtube and allow you to set limits so you don’t waste your whole day on youtube. The feature will look something like the image. The current image is just a mock up ."}, {"post_id": 24678, "ts": "2026-07-08T12:58:53Z", "hours": 2.5467, "text": "Bugs The hide notification toggle worked visually but if you clicked in that spot the panel still opened so for now I came up with a temporary fix of using a new function to stop the button form working. Also the thumbnail blur still has issues 😭 . For some reason it blurs emojis now. I will fix that later. New Feature I added a feature so when you hover on video you don’t get that distracting ambient color around the thumbnail. This helps because the glow acts like a tiny visual reward before you’ve actually decided anything; it makes a thumbnail feel “chosen” the moment you hover over it. Without that glow, your judgement has to do the work the color was doing for them; so you can be a little more mindful about what you click on. Popup ui Added a background, added the logo, aligned all the elements, and tested out a few fonts before finally choosing Geist . I used this Article to understand css."}, {"post_id": 24303, "ts": "2026-07-07T19:46:42Z", "hours": 2.9003, "text": "First time features actually work as intended!! The blur had a lot of bugs as mentioned in the first devlog I slowly managed to fix all of them in different ways and now its complete. The hardest issue was if you scrolled too fast then you would still get a glimpse of the thumbnail. I fixed this by creating a <style> element which applies the blur before the thumbnails load. So now there’s no need of a mutation or scroll observer either. Logo I created the logo for this project using free form on my ipad then I used claude to make different versions of it for all the resolutions (16,32,48,128) and for the project banner. New Features I added two new features to hide the create button and the notifications button because who ever clicks those. At first I made to separate functions for this but that was really stupid so then I made a generic function that just removes any element. Also I used el.style.display = hidden instead of el.remove since the element can instantly be unhidden if the user wants without needing a refresh."}, {"post_id": 22143, "ts": "2026-07-04T13:28:00Z", "hours": 4.3089, "text": "Major Progress Okay so a lot happened since the last devlog. I paused my progress on the auto play feature and instead moved on to some small changes. I also made a lot of random commits for testing small things which was kinda tedious to revert later (Image shows the graph after all the random stuff was removed). Hide Shorts This feature was pretty simple to implement as I just used querySelectorAll to select the elements with the youtube shorts buttons then I just checked for the text “shorts” so the function doesn’t accidentally delete something else. Finally I used element.remove() to delete the buttons. Also added a mutation observer so the button stays deleted. Hiding unnecessary buttons I basically just did the same thing as above to hide other buttons that clutter up the screen like the create button and the voice search button. Branches This is the first time I learnt how to properly use branches in git. I made two separate branches for the two features I worked on so the variable names are not an issue for now."}, {"post_id": 16405, "ts": "2026-06-26T18:04:27Z", "hours": 2.8767, "text": "Improving file structure First off I fixed the mess of files that were just dropped into the project folder; this would become an issue in the future as I kept on creating new files. Creating the popup I stared off by creating popup.html popup.css and popup.js files after which I went back to the manifest.json to link the popup files but here I realized that the whole JSON file was broken because all the items were inside \"action\" this had not caused any issues so far but it could have led to many problems in the future. After fixing the JSON file I linked the popup files and added storage and scripting permissions to the extension which will be needed later. Next I read a blog post of how to write HTML. Then I created a toggle switch for which I borrowed copied the css from w3schools . Now for the toggle switch to work I had to make a few changes to youtweaks.js . Now it checks the browser storage to see if thumbnail blur is toggled on/off and also continuous checks to see if the toggle switch has been changed which accordingly turns on/off the blur. Other changes I started working on the next feature to stop the auto play of videos when you hover over them as the only purpose of this is to get you hooked onto a video before you even click on it. Which often results in wasted time. While working on that feature I also managed to fix the blur so now it works everywhere on youtube but as a side effect it also blurs youtubers profile pictures which ill fix later."}, {"post_id": 12135, "ts": "2026-06-19T20:37:08Z", "hours": 3.2972, "text": "Fixing the three issues: I first implemented a mutation observer which reapplies the blur every time something on the page changes, this solved issues 1 and 3 but did so in a very sloppy way as a “mutation” was only detected when you hover the mouse on a thumbnail. To fix the problems in a more optimal way I tried a lot of things: I started learning about intersection observers, scroll observers, and started a 3 hour crash course on js to understand what in the world I was doing. I spent a lot of time tinkering and then my problem was solved with a simple search on Mozilla’s developer docs . I used a scroll event listener which fixed the scrolling issue but the other issues still remain. At this point I was so tired I started setting up the gui for the extension which involved making some changes to the manifest.json file."}, {"post_id": 3002, "ts": "2026-06-05T22:40:05Z", "hours": 3.8056, "text": "So the aim of this project is to improve youtube’s usage experience through small tweaks. This is my first time doing anything related to websites I know nothing 😭 So I started off the project by creating a manifest.json file which contains all the data required to run the extension. For this the Mozilla docs were a huge help. Next, I started by creating the first feature of blurring thumbnails. I somehow managed to inspect element the youtube website and select the correct element id to select the thumbnails ig. But this came with three issues: The blur stops working after a refresh The blur only works on the home page The blur stops working after scrolling a lot To fix these Issues I first searched for the issue on w3schools but I dint understand anything I found; so after a bit more digging I came across someone facing a similar issue on stack overflow and after a very long while of trying to understand his code I managed to modify it to work for my extension. This fixed the third issue but not the other 2."}]...
|
Title: YouTweaks by @kanavv | Stardance
Devlogs:
Title: YouTweaks by @kanavv | Stardance
Devlogs:
So the aim of this project is to improve youtube’s usage experience through small tweaks. This is my first time doing anything related to websites I know nothing 😭 So I started off the project by creating a manifest.json file which contains all the data required to run the extension. For this the Mozilla docs were a huge help. Next, I started by creating the first feature of blurring thumbnails. I somehow managed to inspect element the youtube website and select the correct element id to select the thumbnails ig. But this came with three issues: The blur stops working after a refresh The blur only works on the home page The blur stops working after scrolling a lot To fix these Issues I first searched for the issue on w3schools but I dint understand anything I found; so after a bit more digging I came across someone facing a similar issue on stack overflow and after a very long while of trying to understand his code I managed to modify it to work for my extension. This fixed the third issue but not the other 2.
Fixing the three issues: I first implemented a mutation observer which reapplies the blur every time something on the page changes, this solved issues 1 and 3 but did so in a very sloppy way as a “mutation” was only detected when you hover the mouse on a thumbnail. To fix the problems in a more optimal way I tried a lot of things: I started learning about intersection observers, scroll observers, and started a 3 hour crash course on js to understand what in the world I was doing. I spent a lot of time tinkering and then my problem was solved with a simple search on Mozilla’s developer docs . I used a scroll event listener which fixed the scrolling issue but the other issues still remain. At this point I was so tired I started setting up the gui for the extension which involved making some changes to the manifest.json file.
Improving file structure First off I fixed the mess of files that were just dropped into the project folder; this would become an issue in the future as I kept on creating new files. Creating the popup I stared off by creating popup.html popup.css and popup.js files after which I went back to the manifest.json to link the popup files but here I realized that the whole JSON file was broken because all the items were inside "action" this had not caused any issues so far but it could have led to many problems in the future. After fixing the JSON file I linked the popup files and added storage and scripting permissions to the extension which will be needed later. Next I read a blog post of how to write HTML. Then I created a toggle switch for which I borrowed copied the css from w3schools . Now for the toggle switch to work I had to make a few changes to youtweaks.js . Now it checks the browser storage to see if thumbnail blur is toggled on/off and also continuous checks to see if the toggle switch has been changed which accordingly turns on/off the blur. Other changes I started working on the next feature to stop the auto play of videos when you hover over them as the only purpose of this is to get you hooked onto a video before you even click on it. Which often results in wasted time. While working on that feature I also managed to fix the blur so now it works everywhere on youtube but as a side effect it also blurs youtubers profile pictures which ill fix later.
Major Progress Okay so a lot happened since the last devlog. I paused my progress on the auto play feature and instead moved on to some small changes. I also made a lot of random commits for testing small things which was kinda tedious to revert later (Image shows the graph after all the random stuff was removed). Hide Shorts This feature was pretty simple to implement as I just used querySelectorAll to select the elements with the youtube shorts buttons then I just checked for the text “shorts” so the function doesn’t accidentally delete something else. Finally I used element.remove() to delete the buttons. Also added a mutation observer so the button stays deleted. Hiding unnecessary buttons I basically just did the same thing as above to hide other buttons that clutter up the screen like the create button and the voice search button. Branches This is the first time I learnt how to properly use branches in git. I made two separate branches for the two features I worked on so the variable names are not an issue for now.
First time features actually work as intended!! The blur had a lot of bugs as mentioned in the first devlog I slowly managed to fix all of them in different ways and now its complete. The hardest issue was if you scrolled too fast then you would still get a glimpse of the thumbnail. I fixed this by creating a <style> element which applies the blur before the thumbnails load. So now there’s no need of a mutation or scroll observer either. Logo I created the logo for this project using free form on my ipad then I used claude to make different versions of it for all the resolutions (16,32,48,128) and for the project banner. New Features I added two new features to hide the create button and the notifications button because who ever clicks those. At first I made to separate functions for this but that was really stupid so then I made a generic function that just removes any element. Also I used el.style.display = hidden instead of el.remove since the element can instantly be unhidden if the user wants without needing a refresh.
Bugs The hide notification toggle worked visually but if you clicked in that spot the panel still opened so for now I came up with a temporary fix of using a new function to stop the button form working. Also the thumbnail blur still has issues 😭 . For some reason it blurs emojis now. I will fix that later. New Feature I added a feature so when you hover on video you don’t get that distracting ambient color around the thumbnail. This helps because the glow acts like a tiny visual reward before you’ve actually decided anything; it makes a thumbnail feel “chosen” the moment you hover over it. Without that glow, your judgement has to do the work the color was doing for them; so you can be a little more mindful about what you click on. Popup ui Added a background, added the logo, aligned all the elements, and tested out a few fonts before finally choosing Geist . I used this Article to understand css.
Fixed Blur Again Instead of sitting and excluding things from the thumbnail blur I changed the code to only blur thumbnails. This is so stupid idk how I came up with that nonsense earlier. Stopped auto play when you hover over videos This feature works along with the other hover feature to make you a little more mindful while choosing a video to watch. Time tracking Im working on a whole new set of features to actually add something new for once since this project has just been removing stuff till now. The feature will track your time on youtube and allow you to set limits so you don’t waste your whole day on youtube. The feature will look something like the image. The current image is just a mock up .
Everything is such a mess right now I’m working on so many features at once its getting to much too handle. And I dint even make separate branches or make commits per feature so its getting so messy . I’m working on Refactoring all the code to change the deleting elements code to use css instead of JS so it has better performance hopefully . A time tracking feature. Moving the view count and date of upload up to the like button. This feature has had so many random unexpected issues its pmo. hiding the annoying red little bar below videos on the homescreen. some good progress: I merged the stopAutoPlayOnHover and stopHoverEffects into one function and I also fixed all the bugs with the function such as it not working on pages other then the homepage. Next time I should work on things in order AND AT LEAST MAKE BRANCHES ALSO MY COMMITS RN ARE HUGE I SHOULD MAKE THEM SMALLER; ONE FOR EACH FEATURE.
Finished the time tracking feature!!! I haven’t gotten any time to update the project since my summer break ended. But I finally got some time to work on the project because of the time constraints I used AI to write code for this feature :( Im not proud of it but at least the feature works with no dumb bugs (for now at least) Daily limit So I added a daily limit and a bed time cut off so people dont waste the whole day on YouTube. I also added a snooze feature that appears when the YouTube limit has been reached since I often need YouTube for school work and it would become an issue if there was no way to bypass the limit. Time counter badge The concept time counter I made in a previous devlog works now and changes colors based on how much of the daily limit you have used. Stats And finally I also added a stats feature for fun since I love looking at my stats on leech block and wanted something similar for this project.
View count and Publish date I moved the view count and publish dates to be next to the like button instead of the stupid tiny text it was before. To do this I made a new file called videometa.js it uses two functions one to extract the abbreviated views/ publish date and another one to extract the full views/ publish date which shows up when you hover over the information. Additionally I also fixed some Issues with the stop autoplay on hover and stop effects on hover functions, which I merged into one function earlier.
Made the final commit before shipping Soo now the hide shorts feature works without bugs and I also finished adding the hide merch store feature. Now I just need to figure out how to publish my extension to the firefox and chrome store. Oh I also made a readme.
Whole lotta bugs I thought I was done with everything but I found so many bugs. The shorts blocker was broken, the blocking youtube games dint work, and there was a bug where the video you were watching just stopped playing when you went into full screen. Shorts and game blocker So first the shorts bug would just delete the whole fyp if it found a short. This was was quite an easy fix since I just had to change what got deleted. Next the youtube games blocker was searching for text with “youtube games” which I changed to work the same way as the shorts blocker and then it started working properly. Full screen bug I fixed the full screen bug by only stopping the effects on objects we know are video tiles and nothing else. Themes Finally I also started working on a themes feature which looks so cool!! but its such a pain to work on. Theres so many tiny things I need to sit and edit so it looks right.
Custom themes fixes I fixed some parts of the website that were not changing colors. I should have thought of this earlier but its going to be such a pain to keep the themes feature up to date with youtubes ui hence I am going to mark it as an experimental feature until I figure out how to change the themes in a better way. Playback speed controls without premium I am super happy with how this feature turned out it looks exactly like youtubes ui.
Bug Fixes I fixed another bug with the stop hover effects feature that used to show the effect if you hovered over the title of the video. Blur Slider I added a blur slider so people can adjust the amount of thumbnail blur. Feedback I incorporated the better readme feedback from the first ship where many people said I should explain why each feature is added. Sry for the camera photo I just reinstalled linux.
Ships:
YouTweaks is a quality of life extension made to improve your experience on youtube. I decided to build this project because I was super frustrated with how youtube has become. With this extension I made the youtube experience less annoying and also added some features so you are more mindful while choosing what to watch. Overall this has been a really fun project to work on. I never thought I would have fun coding in javascript.
YouTweaks is a quality of life extension made to improve your experience on youtube. I decided to build this project because I was super frustrated with how youtube has become. With this extension I made the youtube experience less annoying and also added some features so you are more mindful while choosing what to watch. For this Ship I added the color themes feature fixed a LOT of bugs and I also created a custom playback speed feature which im super proud of and finally I incorporated feedback from the first ship (fixing the readme). This project has been super fun and this is going to be my last ship for stardance but I will probably keep working on this! Also im super happy my extension got approved to be on the firefox store so if you like it you can add it here: https://addons.mozilla.org/en-US/firefox/addon/youtweaks/...
|
1793145318.2778354
|
1793231718.2778354
|
|
66721
|
My own site! by @Icexfire | Stardance
|
Icexfire
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T14:02:02Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a web page, which i explained im learning web development again, i did some in the past but i forgot so i am doing it again, it has another section in which i will update (if i remember) of the next projects i will be doing, and lastly a button that sends you to github. I asked AI for help with the fonts and the “polaroid effect” on the cat image", "repo": "https://github.com/Icexfire098-cpu/Website", "demo": "https://icexfire098-cpu.github.io/Website/"}]...
|
[{"post_id": 75194, "ts": "202 [{"post_id": 75194, "ts": "2026-09-29T13:29:23Z", "hours": 0.4178, "text": "I implemented CSS to the html and later i will add more stuff, i used some ai to help me create the “polaroid effect” on the cat image and also used it for the font."}, {"post_id": 75143, "ts": "2026-09-29T09:03:57Z", "hours": 0.3267, "text": "Finished my first project,"}]...
|
Title: My own site! by @Icexfire | Stardance
Devl Title: My own site! by @Icexfire | Stardance
Devlogs:
Finished my first project,
I implemented CSS to the html and later i will add more stuff, i used some ai to help me create the “polaroid effect” on the cat image and also used it for the font.
Ships:
I made a web page, which i explained im learning web development again, i did some in the past but i forgot so i am doing it again, it has another section in which i will update (if i remember) of the next projects i will be doing, and lastly a button that sends you to github. I asked AI for help with the fonts and the “polaroid effect” on the cat image...
|
1793217001.1421576
|
1793303401.1421576
|
|
1761
|
Kinetic AHRS by @someonelse | Stardance
|
someonelse
|
1
|
71.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T16:08:31Z", "hours": 71.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is an algorithm to get orientation (roll, pitch and yaw) from raw sensor data. The underlying math was pretty difficult but I’m proud that I got it at least mostly working. Since this is very low level and hardware heavy it was hard to make a demo website for it. But if you have a spare mpu6050 or something give it a try!", "repo": "https://github.com/someonelse20/kinetic", "demo": "https://kinetic.someonelse.net"}]...
|
[{"post_id": 75197, "ts": "202 [{"post_id": 75197, "ts": "2026-09-29T13:44:03Z", "hours": 2.9275, "text": "Finishing up project info To complete the project I started with filling out a readme. I then got my website up and running at kinetic.someonelse.net. I still plan to work on this after I submit it but for now I just want to submit my work."}, {"post_id": 74132, "ts": "2026-09-26T18:47:23Z", "hours": 1.8086, "text": "Added docs I looked into ways of adding documentation for this project and found that doxygen was exactly what I wanted. I went through the quick start and got it running a bit. Then I used my ai to write inline comments for all the functions. I went through all of them and fixed any errors that it made. Then when generating the config with doxygen I ran into the problem where it only made docs for structs and not for functions. After tweaking everything it now works. I changed so much I don’t really know what individual tweak actually fixed it."}, {"post_id": 73110, "ts": "2026-09-24T12:38:09Z", "hours": 8.0983, "text": "Started demo website Since the due date for stardance it coming up quick I shifted to finishing the project and making a demo website for Kinetic. I tried having my ai just try to do it all from scratch but it fell flat on its face. It made a website where the buttons didn’t work and after looking at the source code it merely tried to rewrite the EKF code rather that run the actual library. So I then went to create a python wrapper with pybind11 myself. After reading the docs and fixing countless compiler errors I got it to compile correctly. I then asked my ai to create it from the c++ python wrapper file which it also failed at. I took the bad code it wrote and modified it myself to use the actual python wrapper so it could have a pure python reference. It was finally able to successfully make a website from that. There was a few errors which I then fixed to create a working website. I haven’t started hosting it yet though."}, {"post_id": 68320, "ts": "2026-09-14T22:44:36Z", "hours": 4.2158, "text": "Wrote calibration suite I went to make a calibration python script. I tried using ai pretty heavily for this. At first I directed it to fill out stub files first to get structure and go step by step. Since I’m using dumb self-hosted models it got confused when I asked it to do all of it at once. I got it to write the helper scripts pretty well but it fell flat on its face with the main executable. I copied it over and rewrote pretty much everything except the parsing logic. Even then some of the flags are unused. After writing the core logic myself the script works with a static reference I recorded a bit back. To use it point it at a directory with recording files and it will calibrate as much as it can with the data it gets. I’m using jsonl for the recording format and a ai generated script that reads serial data or just a file and converts it over to the jsonl format. I noticed that comparing with old sensor recordings some of the raw sensor values have changed so I will go through getting all the calibration data next."}, {"post_id": 63579, "ts": "2026-09-07T14:30:04Z", "hours": 0.6919, "text": "Tested against actual implementation I tested the real data I recorded with an actual working implementation of an extended kalman filter , the one I’m roughly following as a guide for my own. I used ai a lot which worked pretty well, the code is very ugly but its just for testing so it doesn’t really matter. After my ai had got it working I went in and tuned the parameters for my dataset and it actually performed kinda worse than my own code! This really encouraged me because it means that my core code works and the errors are with the data processing. Next I think I’ll go through the gauntlet of calibrating my IMU which shouldn’t be too hard because I already did for a very similar project a while ago."}, {"post_id": 62391, "ts": "2026-09-05T18:43:14Z", "hours": 7.2383, "text": "Improved performance with real data Overall most of what I did here was bang my head against a wall trying to make it work. I made a lot of small changes but as you can see with the video still a lot to go. The biggest change I made was originally I used a NED or north east down corresponding to x y z and I switched over for ENU or east north up. I though originally I could just choose at a whim which one to use but different sensors use different reference frames and converting it over is more trouble than its worth. Now the output is a good bit better and I think I can improve it a lot by calibrating the sensor, currently the gyro outputs 3 deg/s when stationary. Next I will also be comparing against a much better kalman filter implementation in python to see how much of it is processing the raw data or the core algorithm."}, {"post_id": 53438, "ts": "2026-08-23T23:55:30Z", "hours": 2.4714, "text": "Finally fixed all memory leaks After running on the rp2040 again after I thought I fixed the memory leaks it still panicked with an out of memory error. So I went to take another look. The main problem is that all the basic matrix math functions allocated a new matrix for their returns. I had an idea of restructuring them to instead input another matrix to store the result and only return an error code. In practice this didn’t do much since I needed to allocate memory most of the time anyway. This did help a little bit but was probably more trouble than it was worth. Along the way of doing this I noticed a few more memory leaks and fixed them as I went. When I was done I got compile error after compile error but I eventually worked through all of them. But once the compiler errors went away it gave an output that was just slightly off. I narrowed it down to being in the math file and I sent my ai of to find the bug. After a long wait the error was simply that I forgot to uncomment some code when I was debugging the compiler errors. After poking around at a few more memory leaks it now gives the same output without losing any memory at all!"}, {"post_id": 51367, "ts": "2026-08-21T00:19:35Z", "hours": 1.3608, "text": "Tested with recorded data Since the hardware I setup spat out gibberish when I first tried running kinetic on it I thought to record the raw imu output and test that on my computer instead. To do this I modified my rp2040 script to print the data to a serial output with a 10ms delay. I then asked my ai to make a script to record the data and save it to a csv file which it was able to do pretty well. On the kinetic side I made a new file that opens a csv file and pipes the data into kinetic which a little more help from ai. I ran it and to my surprise it actually outputted what I would expect. The picture below is the kinetic output from when the imu was sitting on my desk. I did run it again with a few different datasets I recorded and for some reason the angle never went above 1 deg which is a little weird and still wrong but definitely not the erratic output I first saw."}, {"post_id": 49303, "ts": "2026-08-18T01:22:37Z", "hours": 2.9925, "text": "Fixed memory leaks (mostly) This is a bit of a tangent from running on my rp2040 but it’s important. When I did run it on my board it threw an out of memory panic so I began to look for ways to fix that. I found valgrind which is a tool to check for memory leaks in c/c++ programs which was exactly what I need. Running it revealed that my test suite alone ate up ~600 kilobytes of extra memory which is very not good. I began to go through all the errors valgrind gave me and finding ways to free memory. I created a few functions to help with this, mainly for the core functions such as add/sub_matrix and mul_matrix, that run the base function but then free the first argument to make the code a little cleaner. In the end I was able to solve all but two memory leaks in the kinetic code. One I think is a false positive where the error is when the kalman filter state is updated. There were a few more in the simulation code. I tried to fix some but gave up since it doesn’t really mater if that leaks memory."}, {"post_id": 48551, "ts": "2026-08-17T00:09:31Z", "hours": 2.0058, "text": "Got running on real hardware After getting the IMU up and running I went and grabbed an oled display I had kicking around and plugged the whole thing into a breadboard. There is example oled driver code in the pico sdk so I took that and modified it to work for this. I then copied in my kinetic project and had to mess around a lot with cmake to get it to import right. I ended up making a new cmake file to help with this. But when it actually started running the output was nowhere near to correct and had an out of memory panic. I’ll probably figure out how to run it though a linter or something next."}, {"post_id": 48497, "ts": "2026-08-16T21:21:48Z", "hours": 2.6944, "text": "Setting up to test on real hardware So far the project looks good in my simulations, but now I want to move on to testing in real applications on real hardware. To this I grabbed some parts I had laying around including a custom devboard I made for a previous hackclub project. I am using the LSM9DS1 because it has a gyroscope, accelerometer, and a magnetometer in one chip and I happen to have one. I created a new git repo called imu-prototype to store all the files in. In there I set up a raspberry pi pico project and coded a very simple driver for the IMU."}, {"post_id": 46624, "ts": "2026-08-14T00:30:19Z", "hours": 1.1403, "text": "Fixed Initial State Bug As soon as I plugged the kalman filter to the new sin wave tests I noticed that the output was way off. I put off fixing it until first fixing the error function first. To find the bug I first tried asking my ai and it halucinated something that had nothing to do with the problem. I started to look for the bug myself and noticed that for the initial state the y axis had the wrong sign. When it should have had about 57 degrees it had -57 ish. So I went to the code that calculates that and couldn’t find an obvious bug. Since I couldn’t fix the existing code I replaced it with a different method to do the same thing. The old code calculated a rotation matrix with the accelerometer and magnetometer and the new code calculates the euler angles. I’m hoping that because it starts with a static state I won’t run into gimble lock but that’s a future me problem."}, {"post_id": 46567, "ts": "2026-08-13T21:46:57Z", "hours": 1.4194, "text": "Improved error calculation I noticed the error calculation didn’t seem to behave as expected so I did a little research and found an equation to find the angle between two quaternions and I’m using that angle as an error. I had to write two new functions, one to get the conjugate of a quaternion which was pretty simple and one to get the inverse of a quaternion which wasn’t to hard either."}, {"post_id": 45446, "ts": "2026-08-11T22:05:12Z", "hours": 1.2792, "text": "Added new tests Previously I only had one test that linearly integrates between two orientations. Now there are two more, one that’s x axis is a sin wave, and another where all axes are sin waves with an offset."}, {"post_id": 44960, "ts": "2026-08-11T02:09:38Z", "hours": 4.8144, "text": "Put a lot of work into improving tests and simulations I probably put too much effort into the simulations and tests and should work more on the actual code but having good tests is pretty nice. I added some simple alternate orientation algorithms, one that simply inegrates the gyro measurement and another that it a complementary filter. I revamped the simulation code to work with any number of algorithms as long as they have the same format. I then spent a while making a nice error sort of tui that changes based on how many algorithms are being used."}, {"post_id": 44746, "ts": "2026-08-10T18:27:34Z", "hours": 1.3661, "text": "Found bug in simulation, now results are a lot better After a little debugging I noticed a bug in the function in the simulation that calculates the rate of change between orientations used to simulate gyro measurements. After fixing that the kalman filter works almost perfectly from the graph!"}, {"post_id": 44690, "ts": "2026-08-10T16:55:09Z", "hours": 4.4683, "text": "ITS ALMOST WORKING! So much better that before. After I wrote the code to abstract the kalman filter logic, there was still the rest of the algorithm to reimplement. I copied over what I could and for some of the functions I changed the way they worked. The guide I am following went through most of the calculations with the general matrix math and then at the end gave the full calculations to get the final matrix with single numbers. Following the spirit of my rewrite I decided to instead use the matrix math where I could. After this I hoked it up to my graphing program and it almost sorta kinda works! I have no idea what changed that makes it work but I’m not complaining."}, {"post_id": 43294, "ts": "2026-08-08T14:01:56Z", "hours": 3.2003, "text": "Abstracted Kalman filter logic I decided that since the code I already wrote wasn’t working, why not just try again? In all seriousness there was a few reasons for the rewrite, that other parts of the program might need their own kalman filter and it would be easier to understand and maintain but mostly I was sick of the code not working and not knowing why. So I found the basic equations for the extended kalman filter and went to implement that. At first I was using a struct of function pointers to get the input for the ekf (extended kalman filter) but was able to rewrite it to input static matrices instead which was way less clunky."}, {"post_id": 39655, "ts": "2026-08-02T19:38:25Z", "hours": 3.1517, "text": "Still debugging but at least there’s a pretty graph I hooked the kinetic output up to the graph program which only showed that the kinetic part doesn’t work."}, {"post_id": 36767, "ts": "2026-07-29T01:08:26Z", "hours": 2.3639, "text": "Ditched ai code and wrote a better plotting script and a few bug fixes After my ai couldn’t create the graph program I wanted and with calling python from c being so hard I went looking for alternatives. I found gnuplot which isn’t a c library but can be called fairly easily from c using pipes which I still don’t understand completely. I did find some code though that already works so I was able to modify it to what I wanted."}, {"post_id": 35408, "ts": "2026-07-26T19:49:48Z", "hours": 3.9044, "text": "Used Hermes agent to write gnuplot program which still doesn’t work. I’m going back an editing all my devlogs to more than just one line from this devlog to the one titled “Improved error calculation”. I wanted to create a way to visualize what was going on. I initially tried to go with using matplotlib and calling the python from c. I thought this was something my ai could handle. It couldn’t. I don’t think it could make anything that could even compile. To the ai’s credit I was running it myself on my computer so it’s a lot dumber than most but it turned out to be harder than I thought."}, {"post_id": 29227, "ts": "2026-07-16T00:25:01Z", "hours": 0.5828, "text": "Found out my inverse function works, the matrix I’m putting in is invalid"}, {"post_id": 27306, "ts": "2026-07-12T19:25:48Z", "hours": 7.2469, "text": "Getting Kalman Implementation Working Project Overview I’ve done a lot of work here on spare time and I got really behind on making journals so sorry for that. Since this is my first devlog I’ll start with an overview of this project. This is a sensor fusion algorithm (and a full flight controller if I have time) to obtain orientation, speed, direction, and position from raw sensor data. What I Worked On The bulk of the work here was getting the extended kalman filter for the imu working (which it still doesn’t) . I had a lot of trouble getting the initialization function working and after banging my head against a wall most of the problems were in the underlying matrix math functions and the weirdness of the matrix library I’m using. I also had a little side tangent of getting the initial orientation through an easier method but I eventually got it to work. To test all of this I wrote some code to generate fake gyrometer, accelerometer, and magnetometer data with some random rotations. Somewhere here I also decided to convert all doubles to floats and all size_t to uint_8 because this will be running on very minimal hardware. Once I got the init function working I then went on to the main loop function where I realized I did not know matrix math. A lot of my math functions were completely wrong or not the right ones. After fixing this I also did some restructuring to make the code flow better and I got the first half of the kalman filter mostly working. I then stumbled onto my atrocious matrix inversion function where I was just dividing all the elements under 1 which is definitely not how that works and after some research I added a few helper functions and that’s about the point I stopped, with the full inversion function still not working of course."}]...
|
Title: Kinetic AHRS by @someonelse | Stardance
De Title: Kinetic AHRS by @someonelse | Stardance
Devlogs:
Getting Kalman Implementation Working Project Overview I’ve done a lot of work here on spare time and I got really behind on making journals so sorry for that. Since this is my first devlog I’ll start with an overview of this project. This is a sensor fusion algorithm (and a full flight controller if I have time) to obtain orientation, speed, direction, and position from raw sensor data. What I Worked On The bulk of the work here was getting the extended kalman filter for the imu working (which it still doesn’t) . I had a lot of trouble getting the initialization function working and after banging my head against a wall most of the problems were in the underlying matrix math functions and the weirdness of the matrix library I’m using. I also had a little side tangent of getting the initial orientation through an easier method but I eventually got it to work. To test all of this I wrote some code to generate fake gyrometer, accelerometer, and magnetometer data with some random rotations. Somewhere here I also decided to convert all doubles to floats and all size_t to uint_8 because this will be running on very minimal hardware. Once I got the init function working I then went on to the main loop function where I realized I did not know matrix math. A lot of my math functions were completely wrong or not the right ones. After fixing this I also did some restructuring to make the code flow better and I got the first half of the kalman filter mostly working. I then stumbled onto my atrocious matrix inversion function where I was just dividing all the elements under 1 which is definitely not how that works and after some research I added a few helper functions and that’s about the point I stopped, with the full inversion function still not working of course.
Found out my inverse function works, the matrix I’m putting in is invalid
Used Hermes agent to write gnuplot program which still doesn’t work. I’m going back an editing all my devlogs to more than just one line from this devlog to the one titled “Improved error calculation”. I wanted to create a way to visualize what was going on. I initially tried to go with using matplotlib and calling the python from c. I thought this was something my ai could handle. It couldn’t. I don’t think it could make anything that could even compile. To the ai’s credit I was running it myself on my computer so it’s a lot dumber than most but it turned out to be harder than I thought.
Ditched ai code and wrote a better plotting script and a few bug fixes After my ai couldn’t create the graph program I wanted and with calling python from c being so hard I went looking for alternatives. I found gnuplot which isn’t a c library but can be called fairly easily from c using pipes which I still don’t understand completely. I did find some code though that already works so I was able to modify it to what I wanted.
Still debugging but at least there’s a pretty graph I hooked the kinetic output up to the graph program which only showed that the kinetic part doesn’t work.
Abstracted Kalman filter logic I decided that since the code I already wrote wasn’t working, why not just try again? In all seriousness there was a few reasons for the rewrite, that other parts of the program might need their own kalman filter and it would be easier to understand and maintain but mostly I was sick of the code not working and not knowing why. So I found the basic equations for the extended kalman filter and went to implement that. At first I was using a struct of function pointers to get the input for the ekf (extended kalman filter) but was able to rewrite it to input static matrices instead which was way less clunky.
ITS ALMOST WORKING! So much better that before. After I wrote the code to abstract the kalman filter logic, there was still the rest of the algorithm to reimplement. I copied over what I could and for some of the functions I changed the way they worked. The guide I am following went through most of the calculations with the general matrix math and then at the end gave the full calculations to get the final matrix with single numbers. Following the spirit of my rewrite I decided to instead use the matrix math where I could. After this I hoked it up to my graphing program and it almost sorta kinda works! I have no idea what changed that makes it work but I’m not complaining.
Found bug in simulation, now results are a lot better After a little debugging I noticed a bug in the function in the simulation that calculates the rate of change between orientations used to simulate gyro measurements. After fixing that the kalman filter works almost perfectly from the graph!
Put a lot of work into improving tests and simulations I probably put too much effort into the simulations and tests and should work more on the actual code but having good tests is pretty nice. I added some simple alternate orientation algorithms, one that simply inegrates the gyro measurement and another that it a complementary filter. I revamped the simulation code to work with any number of algorithms as long as they have the same format. I then spent a while making a nice error sort of tui that changes based on how many algorithms are being used.
Added new tests Previously I only had one test that linearly integrates between two orientations. Now there are two more, one that’s x axis is a sin wave, and another where all axes are sin waves with an offset.
Improved error calculation I noticed the error calculation didn’t seem to behave as expected so I did a little research and found an equation to find the angle between two quaternions and I’m using that angle as an error. I had to write two new functions, one to get the conjugate of a quaternion which was pretty simple and one to get the inverse of a quaternion which wasn’t to hard either.
Fixed Initial State Bug As soon as I plugged the kalman filter to the new sin wave tests I noticed that the output was way off. I put off fixing it until first fixing the error function first. To find the bug I first tried asking my ai and it halucinated something that had nothing to do with the problem. I started to look for the bug myself and noticed that for the initial state the y axis had the wrong sign. When it should have had about 57 degrees it had -57 ish. So I went to the code that calculates that and couldn’t find an obvious bug. Since I couldn’t fix the existing code I replaced it with a different method to do the same thing. The old code calculated a rotation matrix with the accelerometer and magnetometer and the new code calculates the euler angles. I’m hoping that because it starts with a static state I won’t run into gimble lock but that’s a future me problem.
Setting up to test on real hardware So far the project looks good in my simulations, but now I want to move on to testing in real applications on real hardware. To this I grabbed some parts I had laying around including a custom devboard I made for a previous hackclub project. I am using the LSM9DS1 because it has a gyroscope, accelerometer, and a magnetometer in one chip and I happen to have one. I created a new git repo called imu-prototype to store all the files in. In there I set up a raspberry pi pico project and coded a very simple driver for the IMU.
Got running on real hardware After getting the IMU up and running I went and grabbed an oled display I had kicking around and plugged the whole thing into a breadboard. There is example oled driver code in the pico sdk so I took that and modified it to work for this. I then copied in my kinetic project and had to mess around a lot with cmake to get it to import right. I ended up making a new cmake file to help with this. But when it actually started running the output was nowhere near to correct and had an out of memory panic. I’ll probably figure out how to run it though a linter or something next.
Fixed memory leaks (mostly) This is a bit of a tangent from running on my rp2040 but it’s important. When I did run it on my board it threw an out of memory panic so I began to look for ways to fix that. I found valgrind which is a tool to check for memory leaks in c/c++ programs which was exactly what I need. Running it revealed that my test suite alone ate up ~600 kilobytes of extra memory which is very not good. I began to go through all the errors valgrind gave me and finding ways to free memory. I created a few functions to help with this, mainly for the core functions such as add/sub_matrix and mul_matrix, that run the base function but then free the first argument to make the code a little cleaner. In the end I was able to solve all but two memory leaks in the kinetic code. One I think is a false positive where the error is when the kalman filter state is updated. There were a few more in the simulation code. I tried to fix some but gave up since it doesn’t really mater if that leaks memory.
Tested with recorded data Since the hardware I setup spat out gibberish when I first tried running kinetic on it I thought to record the raw imu output and test that on my computer instead. To do this I modified my rp2040 script to print the data to a serial output with a 10ms delay. I then asked my ai to make a script to record the data and save it to a csv file which it was able to do pretty well. On the kinetic side I made a new file that opens a csv file and pipes the data into kinetic which a little more help from ai. I ran it and to my surprise it actually outputted what I would expect. The picture below is the kinetic output from when the imu was sitting on my desk. I did run it again with a few different datasets I recorded and for some reason the angle never went above 1 deg which is a little weird and still wrong but definitely not the erratic output I first saw.
Finally fixed all memory leaks After running on the rp2040 again after I thought I fixed the memory leaks it still panicked with an out of memory error. So I went to take another look. The main problem is that all the basic matrix math functions allocated a new matrix for their returns. I had an idea of restructuring them to instead input another matrix to store the result and only return an error code. In practice this didn’t do much since I needed to allocate memory most of the time anyway. This did help a little bit but was probably more trouble than it was worth. Along the way of doing this I noticed a few more memory leaks and fixed them as I went. When I was done I got compile error after compile error but I eventually worked through all of them. But once the compiler errors went away it gave an output that was just slightly off. I narrowed it down to being in the math file and I sent my ai of to find the bug. After a long wait the error was simply that I forgot to uncomment some code when I was debugging the compiler errors. After poking around at a few more memory leaks it now gives the same output without losing any memory at all!
Improved performance with real data Overall most of what I did here was bang my head against a wall trying to make it work. I made a lot of small changes but as you can see with the video still a lot to go. The biggest change I made was originally I used a NED or north east down corresponding to x y z and I switched over for ENU or east north up. I though originally I could just choose at a whim which one to use but different sensors use different reference frames and converting it over is more trouble than its worth. Now the output is a good bit better and I think I can improve it a lot by calibrating the sensor, currently the gyro outputs 3 deg/s when stationary. Next I will also be comparing against a much better kalman filter implementation in python to see how much of it is processing the raw data or the core algorithm.
Tested against actual implementation I tested the real data I recorded with an actual working implementation of an extended kalman filter , the one I’m roughly following as a guide for my own. I used ai a lot which worked pretty well, the code is very ugly but its just for testing so it doesn’t really matter. After my ai had got it working I went in and tuned the parameters for my dataset and it actually performed kinda worse than my own code! This really encouraged me because it means that my core code works and the errors are with the data processing. Next I think I’ll go through the gauntlet of calibrating my IMU which shouldn’t be too hard because I already did for a very similar project a while ago.
Wrote calibration suite I went to make a calibration python script. I tried using ai pretty heavily for this. At first I directed it to fill out stub files first to get structure and go step by step. Since I’m using dumb self-hosted models it got confused when I asked it to do all of it at once. I got it to write the helper scripts pretty well but it fell flat on its face with the main executable. I copied it over and rewrote pretty much everything except the parsing logic. Even then some of the flags are unused. After writing the core logic myself the script works with a static reference I recorded a bit back. To use it point it at a directory with recording files and it will calibrate as much as it can with the data it gets. I’m using jsonl for the recording format and a ai generated script that reads serial data or just a file and converts it over to the jsonl format. I noticed that comparing with old sensor recordings some of the raw sensor values have changed so I will go through getting all the calibration data next.
Started demo website Since the due date for stardance it coming up quick I shifted to finishing the project and making a demo website for Kinetic. I tried having my ai just try to do it all from scratch but it fell flat on its face. It made a website where the buttons didn’t work and after looking at the source code it merely tried to rewrite the EKF code rather that run the actual library. So I then went to create a python wrapper with pybind11 myself. After reading the docs and fixing countless compiler errors I got it to compile correctly. I then asked my ai to create it from the c++ python wrapper file which it also failed at. I took the bad code it wrote and modified it myself to use the actual python wrapper so it could have a pure python reference. It was finally able to successfully make a website from that. There was a few errors which I then fixed to create a working website. I haven’t started hosting it yet though.
Added docs I looked into ways of adding documentation for this project and found that doxygen was exactly what I wanted. I went through the quick start and got it running a bit. Then I used my ai to write inline comments for all the functions. I went through all of them and fixed any errors that it made. Then when generating the config with doxygen I ran into the problem where it only made docs for structs and not for functions. After tweaking everything it now works. I changed so much I don’t really know what individual tweak actually fixed it.
Finishing up project info To complete the project I started with filling out a readme. I then got my website up and running at kinetic.someonelse.net. I still plan to work on this after I submit it but for now I just want to submit my work.
Ships:
This is an algorithm to get orientation (roll, pitch and yaw) from raw sensor data. The underlying math was pretty difficult but I’m proud that I got it at least mostly working. Since this is very low level and hardware heavy it was hard to make a demo website for it. But if you have a spare mpu6050 or something give it a try!...
|
1793144911.6216269
|
1793231311.6216269
|
|
55516
|
rock paper scissors by @usmanbatman | Stardance
|
usmanbatman
|
1
|
3.0
|
4
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T14:19:55Z", "hours": 3.0, "multiplier": 1.51, "payout": 4, "blessing": "neutral", "text": "makeee a terminal based rock paper scissors game so when u came back from a break its a nice way to lock in again", "repo": "https://github.com/batman990-bit/ROCK-PAPER-SCISSORS", "demo": "https://github.com/batman990-bit/ROCK-PAPER-SCISSORS/releases/tag/v1.0.0"}]...
|
[{"post_id": 75198, "ts": "202 [{"post_id": 75198, "ts": "2026-09-29T13:46:01Z", "hours": 2.8411, "text": "yayyy"}]...
|
Title: rock paper scissors by @usmanbatman | Stard Title: rock paper scissors by @usmanbatman | Stardance
Devlogs:
yayyy
Ships:
makeee a terminal based rock paper scissors game so when u came back from a break its a nice way to lock in again...
|
1793145179.4436004
|
1793231579.4436004
|
|
65660
|
My very own WebOS by @Voxel21 | Stardance
|
Voxel21
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T14:12:46Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built my first web-based OS, VoxelOS. It contains a desktop with 3 applications and multiple draggable windows. The apps are Notes, Browser, and Calculator. The browser searches by clicking the arrow button in the top-right corner.", "repo": "https://github.com/GamerDJ21/WebOS", "demo": "https://gamerdj21.github.io/WebOS/"}]...
|
[{"post_id": 75203, "ts": "202 [{"post_id": 75203, "ts": "2026-09-29T14:02:40Z", "hours": 0.8019, "text": "Added a browser app and a calculator app."}, {"post_id": 74809, "ts": "2026-09-28T10:13:26Z", "hours": 1.7578, "text": "Added a base ui and a notes app"}, {"post_id": 73546, "ts": "2026-09-25T11:14:06Z", "hours": 0.3072, "text": "a webOS"}]...
|
Title: My very own WebOS by @Voxel21 | Stardance
Title: My very own WebOS by @Voxel21 | Stardance
Devlogs:
a webOS
Added a base ui and a notes app
Added a browser app and a calculator app.
Ships:
I built my first web-based OS, VoxelOS. It contains a desktop with 3 applications and multiple draggable windows. The apps are Notes, Browser, and Calculator. The browser searches by clicking the arrow button in the top-right corner....
|
1793213791.5970433
|
1793300191.5970433
|
|
59742
|
Custom Scientific Calculator by @Lawrence_Ian | St Custom Scientific Calculator by @Lawrence_Ian | Stardance...
|
Lawrence_Ian
|
0
|
3.52
|
0
|
[]
|
[{"post_id": 75204, "ts": "202 [{"post_id": 75204, "ts": "2026-09-29T14:06:42Z", "hours": 1.0836, "text": "Building a test simulation (unfinished)"}, {"post_id": 65788, "ts": "2026-09-11T05:07:39Z", "hours": 1.3503, "text": "Close to finishing the back enclosure"}, {"post_id": 64208, "ts": "2026-09-08T13:16:41Z", "hours": 0.65, "text": "Made a prototype custom 3d enclosure"}, {"post_id": 64180, "ts": "2026-09-08T12:19:41Z", "hours": 0.4333, "text": "A scientific calculator of my own"}]...
|
Title: Custom Scientific Calculator by @Lawrence_I Title: Custom Scientific Calculator by @Lawrence_Ian | Stardance
Devlogs:
A scientific calculator of my own
Made a prototype custom 3d enclosure
Close to finishing the back enclosure
Building a test simulation (unfinished)...
|
1793029862.4757092
|
1793634662.4757092
|
|
65679
|
3D Printer-based optical access tag cloning by @ra 3D Printer-based optical access tag cloning by @rares2 | Stardance...
|
rares2
|
1
|
3.0
|
16
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T15:40:12Z", "hours": 3.0, "multiplier": 6.27, "payout": 16, "blessing": "neutral", "text": "This is a tool made to generate optical cards for old Electra intercoms that are here in Romania, for easy cloning using a 3D printer. Using it, you can replace your old access cards that are worn out with new tough and eco-friendly (if printed with PLA) access cards.", "repo": "https://github.com/GigelHarbuz/electra-cloner", "demo": "https://gigelharbuz.github.io/electra-cloner/"}]...
|
[{"post_id": 75209, "ts": "202 [{"post_id": 75209, "ts": "2026-09-29T14:20:50Z", "hours": 0.5781, "text": "Final devlog!! Fixed bugs, tweaked the 3D print settings, and made the test print. It works!"}, {"post_id": 74872, "ts": "2026-09-28T14:13:06Z", "hours": 1.0514, "text": "The code for STL generation is finally finished!! Until next devlog, I will make the UI a little better and do a test print. Next devlog will be the last one before shipping."}, {"post_id": 74840, "ts": "2026-09-28T12:39:00Z", "hours": 0.6711, "text": "Added English/Romanian language switching and preview card in which you can see the bits. (STL generation is not yet complete)"}, {"post_id": 73556, "ts": "2026-09-25T12:03:41Z", "hours": 0.2617, "text": "Added the interface (with basic features before I start making them) and CSS."}]...
|
Title: 3D Printer-based optical access tag cloning Title: 3D Printer-based optical access tag cloning by @rares2 | Stardance
Devlogs:
Added the interface (with basic features before I start making them) and CSS.
Added English/Romanian language switching and preview card in which you can see the bits. (STL generation is not yet complete)
The code for STL generation is finally finished!! Until next devlog, I will make the UI a little better and do a test print. Next devlog will be the last one before shipping.
Final devlog!! Fixed bugs, tweaked the 3D print settings, and made the test print. It works!
Ships:
This is a tool made to generate optical cards for old Electra intercoms that are here in Romania, for easy cloning using a 3D printer. Using it, you can replace your old access cards that are worn out with new tough and eco-friendly (if printed with PLA) access cards....
|
1793213794.8207517
|
1793300194.8207517
|
|
17273
|
Materialsimulation by @jannes_ruder | Stardance
|
jannes_ruder
|
0
|
0.35
|
0
|
[]
|
[{"post_id": 7521, "ts": "2026 [{"post_id": 7521, "ts": "2026-06-12T15:45:37Z", "hours": 0.3453, "text": "getting started"}]...
|
Title: Materialsimulation by @jannes_ruder | Stard Title: Materialsimulation by @jannes_ruder | Stardance
Devlogs:
getting started...
|
1792709633.1937456
|
1793314433.1937456
|
|
60232
|
Notes App by @paula_g_jantunen | Stardance
|
paula_g_jantunen
|
1
|
3.77
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T20:49:35Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did I make? I built a full-stack Notes App using React, Express, and SQLite, a tiny but mighty trio. It lets you write notes, search notes, delete notes and store your questionable ideas in a database that never judges you. It’s simple, fast, and surprisingly cute for something powered by a database the size of a sandwich. What was challenging? Oh boy. Getting React and Express to talk to each other in Codespaces was like babysitting two kids who refuse to share toys. I spent a heroic amount of time staring at errors that turned out to be a missing semicolon, a typo, a port that wasn’t public and once… nothing. The app just felt dramatic. SQLite is tiny, powerful, and slightly clingy. If the database disappears, it just recreates itself. What am I proud of? The clean project structure (Marie Kondo would approve), the express API that works on the first try… sometimes, the react components that actually render what they’re supposed to and the fact that I didn’t rage-quit even once. And honestly? The app feels good. Like “I built this with my own hands” good. What should people know to test it? Umm I guess just read the README. Features to try: add a note, search a note, delete a note and add a note titled “IT WORKS!!!” (tradition).", "repo": "https://github.com/paulagjantunen-hue/Notes-App", "demo": "https://notes-app-2-k1i6.onrender.com/"}]...
|
[{"post_id": 75211, "ts": "202 [{"post_id": 75211, "ts": "2026-09-29T14:27:42Z", "hours": 0.325, "text": "Devlog #4 Time logged: 19 minutes Mission: Deploy the app Rality: Deploy the app, break the app, fix the app, question reality The Great Deployment Adventure Today I decided my Notes App deserved to leave the cozy safety of Codespaces and enter the real world. This was a mistake. At first, everything seemed fine: Backend deployed Frontend deployed Confidence deployed Then the app hit me with: “Could not connect to the notes server.” Wonderful. The Mystery of the Missing Notes The backend insisted it was alive. I visited: /api/notes And it proudly responded: [] Which is programmer for: “Yes, I’m working. No, I have no friends.” At least I knew the server wasn’t dead. The Deployment Detective Arc I spent the next few minutes playing detective. Questions included: Is the backend running? Is the frontend running? Is the API URL correct? Have I offended the internet somehow? After sufficient poking, prodding, and staring at logs, I discovered the issue wasn’t total disaster. For once. Render vs. SQLite Render and SQLite had a brief disagreement. Render: “Please start.” SQLite: “No.” Eventually they came to an understanding. Mostly. Final Thoughts In just 19 minutes: I deployed a backend I deployed a frontend I convinced a database to cooperate I learned that [] can be emotionally reassuring I received several error messages with amazing confidence"}, {"post_id": 74993, "ts": "2026-09-28T19:51:28Z", "hours": 0.4422, "text": "Devlog #3 Time logged: 26 minutes Main enemy: 404 Not Found The Great Demo Page Construction Today’s coding session wasn’t about React, Express, or SQLite. It was about something far more heroic: Making a demo page so my project stops returning a 404. I created a docs/ folder, dropped an index.html inside, and suddenly felt like a front-end engineer from 2012. Pure HTML. No frameworks. Just vibes. The “Why Does Ship Hate My Demo Link?” Arc The moment I realized Ship requires a public demo link , not a Codespaces URL that only works when I’m awake and the stars align, I knew what had to be done. So I built a whole mini-website: Title Description Features Screenshot placeholder Buttons Instructions The HTML Shenanigans I wrote CSS like a person who has seen too much: centered text rounded screenshots blue buttons margins that actually look normal It’s not fancy, but it works. And most importantly: It does not 404. Final Thoughts In just 26 minutes: I defeated the 404 monster I created a demo page that actually loads I made GitHub Pages happy And now Ship will (maybe?) accept my project Honestly? A surprisingly productive micro-session."}, {"post_id": 67669, "ts": "2026-09-13T20:37:20Z", "hours": 2.3067, "text": "Devlog #2 Time logged: 2h 16m Emotional damage: minimal Coffee consumed: classified Bugs defeated: several Bugs created: also several The Great Construction Phase I opened the project like a surgeon preparing for an operation. Except instead of scalpels, I had: React components Express routes And a database that behaves like a moody houseplant Folders appeared. Files multiplied. Imports broke. Imports were fixed. I felt powerful. The “Why Is This Not Working?” Arc At some point, I wrote code so elegant it should’ve been framed. Then I ran it. It immediately threw an error. Classic. I spent a solid 14 minutes staring at the screen like: “Explain yourself.” Eventually, I found the problems. Victory tasted sweet. The Backend Awakens Express booted up like a sleepy dragon. SQLite whispered: “I’m small… but I will store your deepest secrets.” Endpoints were created: GET /notes - for reading your questionable ideas POST /notes - for adding new questionable ideas DELETE /notes - for removing the really questionable ones Everything worked. Until it didn’t. Then it worked again. I don’t question it anymore. Frontend Chaos (React Edition) I built components like a lego master: NoteList - where your thoughts go to hang out NoteEditor - where new chaos is born SearchBar - because sometimes you forget what chaos you wrote React was cooperative today. Mostly. Except when it wasn’t. But we don’t talk about that. The Legendary “Why Won’t You Connect?” Saga Frontend and backend behaved like two siblings forced to share a room. Frontend: “I can’t find the server.” Backend: “I’m literally right here.” Me: “Both of you, stop.” Eventually, they made peace. The API worked. I celebrated by saving a note titled “IT WORKS!!!” Final Thoughts After 2 hours and 16 minutes: The app runs The notes save The database behaves The components render And I only threatened to delete the whole project twice Honestly? A successful dev session."}, {"post_id": 65101, "ts": "2026-09-10T00:16:30Z", "hours": 1.1233, "text": "Devlog Full-Stack Notes App (React + Express + SQLite) Project Structure Appears I created folders so organized they could win a beauty pageant. Backend, frontend, devcontainer - the holy trinity. If Marie Kondo saw this repo, she’d shed a single joyful tear. Devcontainer Magic I wrote a devcontainer that installs everything automatically. It’s basically a tiny robot that whispers: “Don’t worry, Paula… I got you.” Backend Time I built an Express API so simple it could run on a potato. SQLite joined the party because it requires zero setup and has strong “I’m small but mighty” energy. Endpoints: GET notes POST notes DELETE notes Basically: CRUD, but make it cute. Frontend Shenanigans React + Vite. Components everywhere. I made: NoteList (aka “the list of your questionable ideas”) NoteEditor (where chaos is born) SearchBar (for when you forget what chaos you wrote)"}]...
|
Title: Notes App by @paula_g_jantunen | Stardance
Title: Notes App by @paula_g_jantunen | Stardance
Devlogs:
Devlog Full-Stack Notes App (React + Express + SQLite) Project Structure Appears I created folders so organized they could win a beauty pageant. Backend, frontend, devcontainer - the holy trinity. If Marie Kondo saw this repo, she’d shed a single joyful tear. Devcontainer Magic I wrote a devcontainer that installs everything automatically. It’s basically a tiny robot that whispers: “Don’t worry, Paula… I got you.” Backend Time I built an Express API so simple it could run on a potato. SQLite joined the party because it requires zero setup and has strong “I’m small but mighty” energy. Endpoints: GET notes POST notes DELETE notes Basically: CRUD, but make it cute. Frontend Shenanigans React + Vite. Components everywhere. I made: NoteList (aka “the list of your questionable ideas”) NoteEditor (where chaos is born) SearchBar (for when you forget what chaos you wrote)
Devlog #2 Time logged: 2h 16m Emotional damage: minimal Coffee consumed: classified Bugs defeated: several Bugs created: also several The Great Construction Phase I opened the project like a surgeon preparing for an operation. Except instead of scalpels, I had: React components Express routes And a database that behaves like a moody houseplant Folders appeared. Files multiplied. Imports broke. Imports were fixed. I felt powerful. The “Why Is This Not Working?” Arc At some point, I wrote code so elegant it should’ve been framed. Then I ran it. It immediately threw an error. Classic. I spent a solid 14 minutes staring at the screen like: “Explain yourself.” Eventually, I found the problems. Victory tasted sweet. The Backend Awakens Express booted up like a sleepy dragon. SQLite whispered: “I’m small… but I will store your deepest secrets.” Endpoints were created: GET /notes - for reading your questionable ideas POST /notes - for adding new questionable ideas DELETE /notes - for removing the really questionable ones Everything worked. Until it didn’t. Then it worked again. I don’t question it anymore. Frontend Chaos (React Edition) I built components like a lego master: NoteList - where your thoughts go to hang out NoteEditor - where new chaos is born SearchBar - because sometimes you forget what chaos you wrote React was cooperative today. Mostly. Except when it wasn’t. But we don’t talk about that. The Legendary “Why Won’t You Connect?” Saga Frontend and backend behaved like two siblings forced to share a room. Frontend: “I can’t find the server.” Backend: “I’m literally right here.” Me: “Both of you, stop.” Eventually, they made peace. The API worked. I celebrated by saving a note titled “IT WORKS!!!” Final Thoughts After 2 hours and 16 minutes: The app runs The notes save The database behaves The components render And I only threatened to delete the whole project twice Honestly? A successful dev session.
Devlog #3 Time logged: 26 minutes Main enemy: 404 Not Found The Great Demo Page Construction Today’s coding session wasn’t about React, Express, or SQLite. It was about something far more heroic: Making a demo page so my project stops returning a 404. I created a docs/ folder, dropped an index.html inside, and suddenly felt like a front-end engineer from 2012. Pure HTML. No frameworks. Just vibes. The “Why Does Ship Hate My Demo Link?” Arc The moment I realized Ship requires a public demo link , not a Codespaces URL that only works when I’m awake and the stars align, I knew what had to be done. So I built a whole mini-website: Title Description Features Screenshot placeholder Buttons Instructions The HTML Shenanigans I wrote CSS like a person who has seen too much: centered text rounded screenshots blue buttons margins that actually look normal It’s not fancy, but it works. And most importantly: It does not 404. Final Thoughts In just 26 minutes: I defeated the 404 monster I created a demo page that actually loads I made GitHub Pages happy And now Ship will (maybe?) accept my project Honestly? A surprisingly productive micro-session.
Devlog #4 Time logged: 19 minutes Mission: Deploy the app Rality: Deploy the app, break the app, fix the app, question reality The Great Deployment Adventure Today I decided my Notes App deserved to leave the cozy safety of Codespaces and enter the real world. This was a mistake. At first, everything seemed fine: Backend deployed Frontend deployed Confidence deployed Then the app hit me with: “Could not connect to the notes server.” Wonderful. The Mystery of the Missing Notes The backend insisted it was alive. I visited: /api/notes And it proudly responded: [] Which is programmer for: “Yes, I’m working. No, I have no friends.” At least I knew the server wasn’t dead. The Deployment Detective Arc I spent the next few minutes playing detective. Questions included: Is the backend running? Is the frontend running? Is the API URL correct? Have I offended the internet somehow? After sufficient poking, prodding, and staring at logs, I discovered the issue wasn’t total disaster. For once. Render vs. SQLite Render and SQLite had a brief disagreement. Render: “Please start.” SQLite: “No.” Eventually they came to an understanding. Mostly. Final Thoughts In just 19 minutes: I deployed a backend I deployed a frontend I convinced a database to cooperate I learned that [] can be emotionally reassuring I received several error messages with amazing confidence
Ships:
What did I make? I built a full-stack Notes App using React, Express, and SQLite, a tiny but mighty trio. It lets you write notes, search notes, delete notes and store your questionable ideas in a database that never judges you. It’s simple, fast, and surprisingly cute for something powered by a database the size of a sandwich. What was challenging? Oh boy. Getting React and Express to talk to each other in Codespaces was like babysitting two kids who refuse to share toys. I spent a heroic amount of time staring at errors that turned out to be a missing semicolon, a typo, a port that wasn’t public and once… nothing. The app just felt dramatic. SQLite is tiny, powerful, and slightly clingy. If the database disappears, it just recreates itself. What am I proud of? The clean project structure (Marie Kondo would approve), the express API that works on the first try… sometimes, the react components that actually render what they’re supposed to and the fact that I didn’t rage-quit even once. And honestly? The app feels good. Like “I built this with my own hands” good. What should people know to test it? Umm I guess just read the README. Features to try: add a note, search a note, delete a note and add a note titled “IT WORKS!!!” (tradition)....
|
1793206368.4589803
|
1793292768.4589803
|
|
55938
|
Daydream Shader by @timon | Stardance
|
timon
|
1
|
14.0
|
105
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T14:35:46Z", "hours": 14.0, "multiplier": 7.33, "payout": 105, "blessing": "neutral", "text": "I made a tuff minecraft shader. Daydream is a lightweight Minecraft shader focused on making the vanilla world feel more atmospgeric without completely changing the look. WHY LIGHTWEIGHT: First of all the changes: I improved the lighting, colors, shadows and fog. And for that I used many vibrancy increases and exposure increases that look really good and stunning but dont take much code (basically just 1 line) and dont require much performance. Im proud of trying and learning something new. It started all with a video on my YouTube fy page talking about how to start a shader and when i saw another shader project here on stardance by a beginner i started too. I like that it is lightweight because of those visual vibrancy and exposure increases.", "repo": "https://github.com/Facticee/Daydream", "demo": "https://modrinth.com/shader/daydream-shader"}]...
|
[{"post_id": 75212, "ts": "202 [{"post_id": 75212, "ts": "2026-09-29T14:30:52Z", "hours": 0.8022, "text": "Last Devlog (as im finished) FINALLY 😁 Whats new: I tested alot with the vibrancy values and changed the sky color values to: baseSky.r *= 0.1;baseSky.g *= 0.45;baseSky.b *= 9.0; The 9.0 wont change anything at daytime, but makes the sky way more blue on night time. I used the same lighting setup for both day and night. Now I use seperate Light values making the night natively darker while keeping block lighting the same as before. float skyLight = day ? lm.y : lm.y * 0.45;vec3 lighting = skyLight * (vec3(0.5, 0.62, 0.75) + vec3(1.0, 0.92, 0.78) * sun * shadowCol)+ vec3(1.0, 0.6, 0.3) * lm.x * lm.x + 0.03; Also, before the entites were glowing very hard. This was because the lightmap was applied directly on the entities. I removed it: lmdata = vec4(lmcoord, 0.0, 1.0); (Picture of the glowing pig also here)"}, {"post_id": 75002, "ts": "2026-09-28T20:29:06Z", "hours": 1.905, "text": "I made some small and easy updates. I tested alot and wrote alot and deleted most things. Gemin had the Fog Idea :) First Change: I changed the gbuffers_skybasic.fsh color grading for the sky. It makes the sky way more light blue isntead of the dark blue I had before (image included) baseSky.r *= 0.1; baseSky.g *= 0.65; baseSky.b *= 1.8; Second Change: I added Exposure to the final.fsh. One Problem was that it got so bright, that lighter texutres like sand looked basically white. So i went in the composite.fsh and multiplied the lighting by 0.85 so it will get darker and compensates the Exposure (image included before and after): final.fsh: float exposure = 1.3;color.rgb *= exposure; composite.fsh: vec3 finalColor = albedo.rgb * lighting * 0.85; Third Change: I added a fog near the render distance. It was Geminis Idea to add fog. It was only 2 lines to add: float fog = smoothstep(far * 0.7, far, length(viewPos.xyz));finalColor = mix(finalColor, fogColor, fog);"}, {"post_id": 72832, "ts": "2026-09-23T20:41:26Z", "hours": 6.1117, "text": "This is a devlog with much time because first i forgot to devlog and second because i had one huge problem and i was working on it for like two and a half hour (also much with ai on that problem, ill admit that i was furious after 1,5 hours) So yeah. Whats new: Shadow Rewrite, Color Grading, Lighting, Wave update. Starting Small: I made Waves faster to make them more visible. Before: float wave = sin(p.x * 1.20 + frameTimeCounter * 2.50) * 0.01; Now: float wave = sin(p.x * 1.20 + frameTimeCounter * 2.50) * 0.05; Like seen in the last Devlogs, the shadow never really looked nice. Before i used like manual 5 samplig grid to soften the shadows which is okay for performance but it looks weird. In the new version i completely threw that out. Instead I decided to move over to PCF Percentage Closer FIltering (was claudes idea). It makes the shadow look soft and way smoother. vec3 pcf(vec4 clip) { ivec2 s = ivec2(texcoord * vec2(viewWidth, viewHeight)) % 64; float a = texelFetch(noisetex, s, 0).r * 6.2831853; mat2 r = mat2(cos(a), -sin(a), sin(a), cos(a)); vec3 sum = vec3(0.0); float n = 0.0; for (int x = -PCF_RANGE; x <= PCF_RANGE; x++) { for (int y = -PCF_RANGE; y <= PCF_RANGE; y++) { vec4 p = clip + vec4(r * (vec2(x, y) * (PCF_RADIUS / 8092.0)), -0.002, 0.0); p.xyz = warpShadowClipPos(p.xyz); p.xyz = p.xyz / p.w * 0.5 + 0.5; if (all(greaterThanEqual(p.xy, vec2(0.0))) && all(lessThanEqual(p.xy, vec2(1.0)))) { sum += sh(p.xyz); n += 1.0; } } } return n > 0.0 ? sum / n : vec3(1.0); } While rewriting the composite I had multiple transparent bugs (seen in the pictures below). Basically my palyer hand and mobs were see through. The mob bug was pretty easy fix. gbuffers_entities.vsh wasnt actually passing down normal vectors to the fragment shader. (This was also found by gemini not me) For the Hand fix, i ran into a problem becuase it was the fault of composite.fsh. I was doing some weird depth buffer checks that basically told the shader to ignore the hand and draw the world behind it. (And again this was found by gemini) In the composite shader, I had this depth check to filter out water and sky: if (d0 != d2) { color = albedo; return; } By using if (d0 == 1.0 || d0 < d1 || d0 != d2) the shader now correctly renders it. The Problem was becase how Miencraft renders the hand. The hand renders into depthtex2 but it usually doesnt render into depthtex0. Because the hand depth in d2 was different freom the sky block depthh in d0 it triggered and the composite shader skipped drawing the hand. ( I hope I understood it right). Then came the 2.5 hour problem 😩: Random blocky shadows appeated on water (seen in pictures). Because the problem didnt occured before and because I just reworked the composite i tried everything. I changed things back to old. asked AI nothing helped. In the end it was because gbuffers_water.vsh was calcuilating the shadow coordiantes without applying the shadow map distorion. It was trying to read warped shadow map using undistoreted coordinates. nce I added the #include “libs/distort.glsl” it worked… (again found by gemini, i troubleshooted ALOT with it). Lasty i addewd Color Grading tweaks in final.fsh. Just more vibrance and contras."}, {"post_id": 59077, "ts": "2026-08-31T18:05:00Z", "hours": 4.2739, "text": "I spent some time remaking the water. Before the Waves were pretty symmetrical. I added more randomness by adding more cos and sin waves with different speed and direction. Before: wavePos = floor(wavePos * 16.0) / 16.0; float wave = sin(wavePos.x * 1.5 + frameTimeCounter * 2.0) * 0.08 + cos(wavePos.z * 1.5 + frameTimeCounter * 1.8) * 0.08; After: float wave = 0.0; wave += sin(wavePos.x * 1.2 + frameTimeCounter * 1.6) * 0.07; wave += sin(wavePos.z * 1.4 + frameTimeCounter * 1.9) * 0.05; wave += sin((wavePos.x + wavePos.z) * 1.0 + frameTimeCounter * 1.1) * 0.04; wave += cos((wavePos.x - wavePos.z) * 1.1 + frameTimeCounter * 1.3) * 0.045; Then I went to the gbuffer_terrain.fsh and gbuffer_terrain.vsh. It is there fore the foundation for shadow mapping by calculating the shadow coordinates in the vertex shader and getting the shadow map. When i finnished that i went to the composite.fsh to actually getting the shadows to run. But first i began working on the overall lighting to make it feel much brighter and cooler. vec3 sunLight = vec3(1.0, 0.92, 0.78) * shadow * lm.y;vec3 skyAmbient = vec3(0.3, 0.42, 0.55) * lm.y;vec3 blocklight = vec3(1.0, 0.6, 0.3) * lm.x * lm.x;vec3 lighting = sunLight + skyAmbient + blocklight + 0.03; Now the shadows. The shadowSample() function takes the reconstructed player position and normal ( reconstructed player = 3d world position from a pixel, normal = where a surface is facing to) and transforms it into the shadow map. I also added 6 shadow samples around the pixel (geminis advice) to make the shadows softer instead of sharp (Though i might change that because as you will se in the picture the shadow is ugly… It might be because of that). float shadow = step(sp.z, texture2D(shadowtex0, sp.xy).r) * 0.4+ step(sp.z, texture2D(shadowtex0, sp.xy + vec2( r, r)).r) * 0.15+ step(sp.z, texture2D(shadowtex0, sp.xy + vec2(-r, r)).r) * 0.15+ step(sp.z, texture2D(shadowtex0, sp.xy + vec2( r, -r)).r) * 0.15+ step(sp.z, texture2D(shadowtex0, sp.xy + vec2(-r, -r)).r) * 0.15; The shadow itself is actiavated in main() with: float shadow = shadowSample(playerPos, normal); After all that though, the shadow didnt work and i was looking for it like 30 minutes and also troubleshootign with AI and after changeing the code like 10 times it also didnt work so I reverted the changes and noticed that: uniform float shadowDistance; is wrong because it of course needs a number :/ -> uniform float shadowDistance = 128.0;"}, {"post_id": 57547, "ts": "2026-08-29T18:39:44Z", "hours": 1.1972, "text": "Im making a shader for Minecraft and after upgrading the template from 1.21.5 to 26.2 I implemented waves to water.. It took long 😭 but it wasnt that difficult. I also added a pciture here. With mc_Entity i added blockID for specifically Water to the IDs 10034 and 10033. For the animation I used sine and cosine functions. After i styled the Water by blending its texture with a blue tint: vec3 waterColor = vec3(0.1, 0.4, 0.8); Though, because it was all the same color, you couldnt really see the waved that were further away than 3 blocks, so I implented a bit of shadow: shadow = texture(shadowtex0, shadowCoord.st).r;albedo.rgb *=mix(0.5, 1.0, shadow);"}]...
|
Title: Daydream Shader by @timon | Stardance
Devl Title: Daydream Shader by @timon | Stardance
Devlogs:
Im making a shader for Minecraft and after upgrading the template from 1.21.5 to 26.2 I implemented waves to water.. It took long 😭 but it wasnt that difficult. I also added a pciture here. With mc_Entity i added blockID for specifically Water to the IDs 10034 and 10033. For the animation I used sine and cosine functions. After i styled the Water by blending its texture with a blue tint: vec3 waterColor = vec3(0.1, 0.4, 0.8); Though, because it was all the same color, you couldnt really see the waved that were further away than 3 blocks, so I implented a bit of shadow: shadow = texture(shadowtex0, shadowCoord.st).r;albedo.rgb *=mix(0.5, 1.0, shadow);
I spent some time remaking the water. Before the Waves were pretty symmetrical. I added more randomness by adding more cos and sin waves with different speed and direction. Before: wavePos = floor(wavePos * 16.0) / 16.0; float wave = sin(wavePos.x * 1.5 + frameTimeCounter * 2.0) * 0.08 + cos(wavePos.z * 1.5 + frameTimeCounter * 1.8) * 0.08; After: float wave = 0.0; wave += sin(wavePos.x * 1.2 + frameTimeCounter * 1.6) * 0.07; wave += sin(wavePos.z * 1.4 + frameTimeCounter * 1.9) * 0.05; wave += sin((wavePos.x + wavePos.z) * 1.0 + frameTimeCounter * 1.1) * 0.04; wave += cos((wavePos.x - wavePos.z) * 1.1 + frameTimeCounter * 1.3) * 0.045; Then I went to the gbuffer_terrain.fsh and gbuffer_terrain.vsh. It is there fore the foundation for shadow mapping by calculating the shadow coordinates in the vertex shader and getting the shadow map. When i finnished that i went to the composite.fsh to actually getting the shadows to run. But first i began working on the overall lighting to make it feel much brighter and cooler. vec3 sunLight = vec3(1.0, 0.92, 0.78) * shadow * lm.y;vec3 skyAmbient = vec3(0.3, 0.42, 0.55) * lm.y;vec3 blocklight = vec3(1.0, 0.6, 0.3) * lm.x * lm.x;vec3 lighting = sunLight + skyAmbient + blocklight + 0.03; Now the shadows. The shadowSample() function takes the reconstructed player position and normal ( reconstructed player = 3d world position from a pixel, normal = where a surface is facing to) and transforms it into the shadow map. I also added 6 shadow samples around the pixel (geminis advice) to make the shadows softer instead of sharp (Though i might change that because as you will se in the picture the shadow is ugly… It might be because of that). float shadow = step(sp.z, texture2D(shadowtex0, sp.xy).r) * 0.4+ step(sp.z, texture2D(shadowtex0, sp.xy + vec2( r, r)).r) * 0.15+ step(sp.z, texture2D(shadowtex0, sp.xy + vec2(-r, r)).r) * 0.15+ step(sp.z, texture2D(shadowtex0, sp.xy + vec2( r, -r)).r) * 0.15+ step(sp.z, texture2D(shadowtex0, sp.xy + vec2(-r, -r)).r) * 0.15; The shadow itself is actiavated in main() with: float shadow = shadowSample(playerPos, normal); After all that though, the shadow didnt work and i was looking for it like 30 minutes and also troubleshootign with AI and after changeing the code like 10 times it also didnt work so I reverted the changes and noticed that: uniform float shadowDistance; is wrong because it of course needs a number :/ -> uniform float shadowDistance = 128.0;
This is a devlog with much time because first i forgot to devlog and second because i had one huge problem and i was working on it for like two and a half hour (also much with ai on that problem, ill admit that i was furious after 1,5 hours) So yeah. Whats new: Shadow Rewrite, Color Grading, Lighting, Wave update. Starting Small: I made Waves faster to make them more visible. Before: float wave = sin(p.x * 1.20 + frameTimeCounter * 2.50) * 0.01; Now: float wave = sin(p.x * 1.20 + frameTimeCounter * 2.50) * 0.05; Like seen in the last Devlogs, the shadow never really looked nice. Before i used like manual 5 samplig grid to soften the shadows which is okay for performance but it looks weird. In the new version i completely threw that out. Instead I decided to move over to PCF Percentage Closer FIltering (was claudes idea). It makes the shadow look soft and way smoother. vec3 pcf(vec4 clip) { ivec2 s = ivec2(texcoord * vec2(viewWidth, viewHeight)) % 64; float a = texelFetch(noisetex, s, 0).r * 6.2831853; mat2 r = mat2(cos(a), -sin(a), sin(a), cos(a)); vec3 sum = vec3(0.0); float n = 0.0; for (int x = -PCF_RANGE; x <= PCF_RANGE; x++) { for (int y = -PCF_RANGE; y <= PCF_RANGE; y++) { vec4 p = clip + vec4(r * (vec2(x, y) * (PCF_RADIUS / 8092.0)), -0.002, 0.0); p.xyz = warpShadowClipPos(p.xyz); p.xyz = p.xyz / p.w * 0.5 + 0.5; if (all(greaterThanEqual(p.xy, vec2(0.0))) && all(lessThanEqual(p.xy, vec2(1.0)))) { sum += sh(p.xyz); n += 1.0; } } } return n > 0.0 ? sum / n : vec3(1.0); } While rewriting the composite I had multiple transparent bugs (seen in the pictures below). Basically my palyer hand and mobs were see through. The mob bug was pretty easy fix. gbuffers_entities.vsh wasnt actually passing down normal vectors to the fragment shader. (This was also found by gemini not me) For the Hand fix, i ran into a problem becuase it was the fault of composite.fsh. I was doing some weird depth buffer checks that basically told the shader to ignore the hand and draw the world behind it. (And again this was found by gemini) In the composite shader, I had this depth check to filter out water and sky: if (d0 != d2) { color = albedo; return; } By using if (d0 == 1.0 || d0 < d1 || d0 != d2) the shader now correctly renders it. The Problem was becase how Miencraft renders the hand. The hand renders into depthtex2 but it usually doesnt render into depthtex0. Because the hand depth in d2 was different freom the sky block depthh in d0 it triggered and the composite shader skipped drawing the hand. ( I hope I understood it right). Then came the 2.5 hour problem 😩: Random blocky shadows appeated on water (seen in pictures). Because the problem didnt occured before and because I just reworked the composite i tried everything. I changed things back to old. asked AI nothing helped. In the end it was because gbuffers_water.vsh was calcuilating the shadow coordiantes without applying the shadow map distorion. It was trying to read warped shadow map using undistoreted coordinates. nce I added the #include “libs/distort.glsl” it worked… (again found by gemini, i troubleshooted ALOT with it). Lasty i addewd Color Grading tweaks in final.fsh. Just more vibrance and contras.
I made some small and easy updates. I tested alot and wrote alot and deleted most things. Gemin had the Fog Idea :) First Change: I changed the gbuffers_skybasic.fsh color grading for the sky. It makes the sky way more light blue isntead of the dark blue I had before (image included) baseSky.r *= 0.1; baseSky.g *= 0.65; baseSky.b *= 1.8; Second Change: I added Exposure to the final.fsh. One Problem was that it got so bright, that lighter texutres like sand looked basically white. So i went in the composite.fsh and multiplied the lighting by 0.85 so it will get darker and compensates the Exposure (image included before and after): final.fsh: float exposure = 1.3;color.rgb *= exposure; composite.fsh: vec3 finalColor = albedo.rgb * lighting * 0.85; Third Change: I added a fog near the render distance. It was Geminis Idea to add fog. It was only 2 lines to add: float fog = smoothstep(far * 0.7, far, length(viewPos.xyz));finalColor = mix(finalColor, fogColor, fog);
Last Devlog (as im finished) FINALLY 😁 Whats new: I tested alot with the vibrancy values and changed the sky color values to: baseSky.r *= 0.1;baseSky.g *= 0.45;baseSky.b *= 9.0; The 9.0 wont change anything at daytime, but makes the sky way more blue on night time. I used the same lighting setup for both day and night. Now I use seperate Light values making the night natively darker while keeping block lighting the same as before. float skyLight = day ? lm.y : lm.y * 0.45;vec3 lighting = skyLight * (vec3(0.5, 0.62, 0.75) + vec3(1.0, 0.92, 0.78) * sun * shadowCol)+ vec3(1.0, 0.6, 0.3) * lm.x * lm.x + 0.03; Also, before the entites were glowing very hard. This was because the lightmap was applied directly on the entities. I removed it: lmdata = vec4(lmcoord, 0.0, 1.0); (Picture of the glowing pig also here)
Ships:
I made a tuff minecraft shader. Daydream is a lightweight Minecraft shader focused on making the vanilla world feel more atmospgeric without completely changing the look. WHY LIGHTWEIGHT: First of all the changes: I improved the lighting, colors, shadows and fog. And for that I used many vibrancy increases and exposure increases that look really good and stunning but dont take much code (basically just 1 line) and dont require much performance. Im proud of trying and learning something new. It started all with a video on my YouTube fy page talking about how to start a shader and when i saw another shader project here on stardance by a beginner i started too. I like that it is lightweight because of those visual vibrancy and exposure increases....
|
1793148916.021612
|
1793235316.021612
|
|
65440
|
Weather Bot by @Frostymist | Stardance
|
Frostymist
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T15:38:54Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my first slack bot which can tell the weather of a place", "repo": "https://github.com/0xAvaneesh/Slack-Bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0P5NE354"}]...
|
[{"post_id": 75221, "ts": "202 [{"post_id": 75221, "ts": "2026-09-29T14:42:07Z", "hours": 0.3664, "text": "Shipping Bot to Nest"}]...
|
Title: Weather Bot by @Frostymist | Stardance
Dev Title: Weather Bot by @Frostymist | Stardance
Devlogs:
Shipping Bot to Nest
Ships:
I made my first slack bot which can tell the weather of a place...
|
1793213767.6346676
|
1793300167.6346676
|
|
62804
|
AquaBot by @Ridith | Stardance
|
Ridith
|
0
|
1.97
|
0
|
[]
|
[{"post_id": 75230, "ts": "202 [{"post_id": 75230, "ts": "2026-09-29T15:19:23Z", "hours": 0.9167, "text": "Hello, the code is done and redy for the Bot"}, {"post_id": 71052, "ts": "2026-09-20T07:46:40Z", "hours": 0.5336, "text": "I am Working on fixing the MD5 errors with the Esp-32 Camera Module"}, {"post_id": 70500, "ts": "2026-09-19T09:05:42Z", "hours": 0.515, "text": "Im working on Debugging the code as Arduino ide keeps lagging"}]...
|
Title: AquaBot by @Ridith | Stardance
Devlogs:
Im Title: AquaBot by @Ridith | Stardance
Devlogs:
Im working on Debugging the code as Arduino ide keeps lagging
I am Working on fixing the MD5 errors with the Esp-32 Camera Module
Hello, the code is done and redy for the Bot...
|
1793047801.46557
|
1793652601.46557
|
|
54562
|
SiteScope AI by @Euge | Stardance
|
Euge
|
1
|
23.8
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T14:27:37Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hello, I made a project called SiteScope AI! It is an auditor for websites that gets raw JSON data from Google PageSpeed/Lighthouse and adds an AI (Gemini) layer, which basically describes every mistake on your website in understandable language and tells you how to fix it. This project was almost built by myself. I did the FastAPI backend, and the frontend is mostly my own ideas (80%), the other 20% was done with AI because I didn’t know what fonts and colors to use. I also did the deployment frontend is on Netlify, backend is on Nest (Stardance/Hack Club). What was difficult? Honestly, during building the backend I encountered a lot of bugs. One I’m proud I found: the AI explanation step was blocking, with no timeout, so a slow Gemini response could freeze the entire server for every user at once, not just one request. I found this by deliberately load-testing with 5 browser tabs at once, then fixed it by running it in a thread with a 20-second timeout. Later, the Nest container itself went down, and because of my limited knowledge of Linux I used AI (Claude Sonnet 5) to help me understand what was going on. Instead of just guessing it was my code, I tested the backend directly on the server (localhost) versus through the public domain, and proved the problem was on Nest’s side, not mine and later their own admin confirmed it was a platform-wide issue affecting all containers, not just mine. I also found a few bugs during testing for example, when the URL contained just underscores or random text like “not_a_url_at_all”, the frontend counted it as a valid URL and sent it to the backend anyway, wasting API calls before failing. I had to rewrite the URL validation logic in script.js to properly check it looks like a real domain first. Why I am still proud of my project? The main reason is that it still works even when the AI API is broken or times out, you still must to get a full audit with the technical description. The second reason is, I wrote earlier, the design was almost done by myself. What you should know before testing. I recommend for testing you use a light website with mostly basic HTML and CSS structure e.g. example.com. If you don’t know any test URL, here you are: example.com info.cern.ch httpbin.org sitescope-ai.netlify.app motherfuckingwebsite.com bettermotherfuckingwebsite.com text.npr.org ! If it says “failed to fetch”, try another one of these URLs or wait a few minutes, Nest might be repairing the backend containers. ! Don’t use e-shop or big brand websites like McDonald’s, Nike, Adidas, etc., because of the large amount of images the audit can take too long and time out…", "repo": "https://github.com/ich-bin-eugenius/sitescope-ai", "demo": "https://sitescope-ai.netlify.app/"}]...
|
[{"post_id": 75231, "ts": "202 [{"post_id": 75231, "ts": "2026-09-29T15:19:24Z", "hours": 5.8028, "text": "Alright guys, here we go… I don’t know if I can call this DEVLOG 11, because I didn’t add any new features, I just rewrote almost the entire frontend because it was kind of AI-generated. Sorry about that, but I still hope you like it…"}, {"post_id": 67341, "ts": "2026-09-13T12:42:29Z", "hours": 0.5553, "text": "The project is ready for shipping, I fixed a few bugs just before it. I hope you like it! :)"}, {"post_id": 66863, "ts": "2026-09-12T19:57:21Z", "hours": 1.6919, "text": "DEVLOG #10 - AI timeouts, Nest drama & almost shipping Today I fixed a pretty annoying issue with the AI part of SiteScope AI. Basically, if Gemini took too long to respond, it could make the whole backend freeze 💀. I added a 20s timeout and now the audit just falls back to the normal Lighthouse description if AI takes too long. Then Nest decided to have a little meltdown 😭. My container went down and SSH kept disconnecting. At first I thought I broke something, but apparently it was a problem on Nest’s side affecting multiple containers. I also found that heavier websites can take too long to audit, so for now there’s roughly a 30s limit. Finally, I finished the README and did some small UI fixes. So yeah… SiteScope AI is basically ready for a ship."}, {"post_id": 64475, "ts": "2026-09-08T22:03:05Z", "hours": 0.6392, "text": "DEVLOG #9 - Backend finally working Today I spent a bit less time on SiteScope AI than usual, but I finally solved one of the biggest problems so far - getting the backend properly hosted and connected. Claude Sonnet 5 helped me understand the Nest setup, especially the systemd service and how to make the backend accessible from outside the server. I also discovered that I had simply forgotten to set the target port 8000 in the Nest dashboard…🙌😭, thanks guys for reading bye :>"}, {"post_id": 63775, "ts": "2026-09-07T18:48:37Z", "hours": 4.1114, "text": "DEVLOG #8 - Frontend improvements & new ideas From September 2nd to 7th, I spent around 4 hours working on SiteScope AI. I mainly improved the frontend to make it feel less AI-generated and more like my own design. I also came up with new ideas for pages like About and Thanks, different themes, and a better project navigation system. I also started working on hosting the backend and tried Nest, a free hosting service from Hack Club. It didn’t work out yet, but I’ll keep working on it. Overall, a lot of frontend improvements, new ideas and some backend experiments this time."}, {"post_id": 59793, "ts": "2026-09-01T18:43:54Z", "hours": 2.2014, "text": "Devlog #7 - Phase 1 complete & Gemini prompt testing Today I finished Phase 1 by testing valid, invalid and slow URLs and fixing client-side URL validation to prevent unnecessary PageSpeed API requests. I also started Phase 2: designed and tested the Gemini prompt for generating explanation, why_it_matters and how_to_fix for each audit issue. The first AI outputs are working well, so I’m moving on to integrating this into the actual audit pipeline."}, {"post_id": 59196, "ts": "2026-08-31T21:03:12Z", "hours": 2.0469, "text": "Hello guys! Welcome to my 6th devlog! 🔥🙃 Today I finally made a big improvement to the frontend. I got the initial idea from the internet and combined it with my own design skills and AI to create something that fits SiteScope AI. I also finally figured out why I kept getting the “PageSpeed API daily limit reached” error, even though my 25,000-token quota was still available. Turns out I was running the backend from the wrong directory. 😭 I also started working on making the frontend more polished and attractive. That’s all for today! The frontend actually took much longer than the 2 hours shown here, since I didn’t log some of yesterday’s and the day before’s work. Btw, I’d really appreciate it if you checked out the video attached to this devlog! ❤️"}, {"post_id": 58439, "ts": "2026-08-30T21:10:27Z", "hours": 0.8844, "text": "DEVLOG #5 - Backend Fixes & Frontend Today I worked mainly on the backend, fixed several issues with the Google PageSpeed API, solved the API quota problem and added CORS so the frontend can communicate with the backend properly. I also started working on a better-looking frontend that should make SiteScope AI more attractive and easier to use… thanks for reading this devlog and watching that video."}, {"post_id": 57608, "ts": "2026-08-29T20:21:41Z", "hours": 0.6139, "text": "DEVLOG #4 - Connecting the Frontend 🚀 Today I spent about 30 minutes finishing the basic frontend structure and connecting it to the backend. What I did today: ● Connected script.js to the audit form ● Added a request from the frontend to /api/audit ● Added loading and error states ● Connected the frontend to the backend ● Deployed the frontend to Netlify The basic flow is now there: URL → Frontend → Backend → PageSpeed API → Results There is still a problem with the deployed version — currently I get: Error: Failed to fetch I haven’t fully solved the deployment/API setup yet, so the audit doesn’t work properly from the public website for now. If you are a bit interested in my project here is the url: sitescope-ai.netlify.app, thanks for visiting💗🔥, Eugene"}, {"post_id": 56893, "ts": "2026-08-28T21:51:44Z", "hours": 1.8739, "text": "DEVLOG #3 — Parsing, Error Handling & First Frontend Today I cleaned up the PageSpeed response and added basic error handling. The backend now: ● Extracts scores for Performance, SEO, Accessibility and Best Practices ● Lists detected issues with their title, description and severity ● Handles invalid URLs, timeouts and API errors ● Returns a simpler JSON response ● Works with the /api/audit endpoint Example response: { \"url\" : \"https://example.com\" , \"scores\" : { \"performance\" : 100 , \"accessibility\" : 96 , \"best-practices\" : 96 , \"seo\" : 80 }, \"opportunities\" : [] } I also started working on the frontend. The URL form and some basic CSS are now in place, including the Space Grotesk font. Next step: connect the form to the backend and display the audit results in the browser."}, {"post_id": 56209, "ts": "2026-08-27T21:13:18Z", "hours": 2.0622, "text": "DEVLOG #2 - First Working Audit Today I continued working on SiteScope AI and got the first real website audit working. The main goal was to connect the backend to Google PageSpeed Insights and turn its response into something easier to use. What I worked on today: Created the basic FastAPI backend Added the GET / endpoint Created the POST /api/audit endpoint Connected the backend to the PageSpeed Insights API Tested the PageSpeed API manually and explored its JSON response Created a parser to simplify the PageSpeed response Extracted Performance, SEO, Accessibility and Best Practices scores Added the main opportunities/issues to the response Created mock data and tested the parser Tested the complete /api/audit endpoint with curl Refactored the PageSpeed parser into a separate module Fixed a bug with query parameter serialization The endpoint can now receive a website URL and return its Lighthouse scores together with the main issues found on the website. For example, when testing it with example.com, the API returned the scores and detected issues such as a missing meta description, non-descriptive link text, a missing main landmark and a missing charset declaration. This is still only the backend foundation, but the main idea is finally starting to work. Next, I want to continue building the analysis pipeline and eventually use AI to turn the raw audit data into useful explanations and recommendations. Day 2."}, {"post_id": 55435, "ts": "2026-08-27T08:17:03Z", "hours": 1.1633, "text": "DEVLOG #1 - Starting SiteScope AI 🚀 Today I discovered Stardance by Hack Club, and it finally gave me the motivation to start a project I’ve wanted to build for a while: SiteScope AI. The idea is to build an AI-powered website auditor that can analyze websites and provide useful insights and recommendations. Before starting, I used AI to help me understand the basic architecture, technologies and components I would need. Then I got to work. What I did today: Created the GitHub repository Added a README.md and MIT License Cloned the repository locally Connected the project to Hack Club Stardance Registered it as a Software -> Websites project Created the initial project structure Added .gitignore and .env Created a Python virtual environment Split the project into backend and frontend Added the required API keys: PAGESPEED_API_KEY GEMINI_API_KEY Tested the API keys to make sure they work Fixed the Python interpreter and virtual environment configuration It’s still just the beginning, but the foundation is now ready. Next step: start building the actual website analysis pipeline. 🔥 This is only Day 1."}]...
|
Title: SiteScope AI by @Euge | Stardance
Devlogs: Title: SiteScope AI by @Euge | Stardance
Devlogs:
DEVLOG #1 - Starting SiteScope AI 🚀 Today I discovered Stardance by Hack Club, and it finally gave me the motivation to start a project I’ve wanted to build for a while: SiteScope AI. The idea is to build an AI-powered website auditor that can analyze websites and provide useful insights and recommendations. Before starting, I used AI to help me understand the basic architecture, technologies and components I would need. Then I got to work. What I did today: Created the GitHub repository Added a README.md and MIT License Cloned the repository locally Connected the project to Hack Club Stardance Registered it as a Software -> Websites project Created the initial project structure Added .gitignore and .env Created a Python virtual environment Split the project into backend and frontend Added the required API keys: PAGESPEED_API_KEY GEMINI_API_KEY Tested the API keys to make sure they work Fixed the Python interpreter and virtual environment configuration It’s still just the beginning, but the foundation is now ready. Next step: start building the actual website analysis pipeline. 🔥 This is only Day 1.
DEVLOG #2 - First Working Audit Today I continued working on SiteScope AI and got the first real website audit working. The main goal was to connect the backend to Google PageSpeed Insights and turn its response into something easier to use. What I worked on today: Created the basic FastAPI backend Added the GET / endpoint Created the POST /api/audit endpoint Connected the backend to the PageSpeed Insights API Tested the PageSpeed API manually and explored its JSON response Created a parser to simplify the PageSpeed response Extracted Performance, SEO, Accessibility and Best Practices scores Added the main opportunities/issues to the response Created mock data and tested the parser Tested the complete /api/audit endpoint with curl Refactored the PageSpeed parser into a separate module Fixed a bug with query parameter serialization The endpoint can now receive a website URL and return its Lighthouse scores together with the main issues found on the website. For example, when testing it with example.com, the API returned the scores and detected issues such as a missing meta description, non-descriptive link text, a missing main landmark and a missing charset declaration. This is still only the backend foundation, but the main idea is finally starting to work. Next, I want to continue building the analysis pipeline and eventually use AI to turn the raw audit data into useful explanations and recommendations. Day 2.
DEVLOG #3 — Parsing, Error Handling & First Frontend Today I cleaned up the PageSpeed response and added basic error handling. The backend now: ● Extracts scores for Performance, SEO, Accessibility and Best Practices ● Lists detected issues with their title, description and severity ● Handles invalid URLs, timeouts and API errors ● Returns a simpler JSON response ● Works with the /api/audit endpoint Example response: { "url" : "https://example.com" , "scores" : { "performance" : 100 , "accessibility" : 96 , "best-practices" : 96 , "seo" : 80 }, "opportunities" : [] } I also started working on the frontend. The URL form and some basic CSS are now in place, including the Space Grotesk font. Next step: connect the form to the backend and display the audit results in the browser.
DEVLOG #4 - Connecting the Frontend 🚀 Today I spent about 30 minutes finishing the basic frontend structure and connecting it to the backend. What I did today: ● Connected script.js to the audit form ● Added a request from the frontend to /api/audit ● Added loading and error states ● Connected the frontend to the backend ● Deployed the frontend to Netlify The basic flow is now there: URL → Frontend → Backend → PageSpeed API → Results There is still a problem with the deployed version — currently I get: Error: Failed to fetch I haven’t fully solved the deployment/API setup yet, so the audit doesn’t work properly from the public website for now. If you are a bit interested in my project here is the url: sitescope-ai.netlify.app, thanks for visiting💗🔥, Eugene
DEVLOG #5 - Backend Fixes & Frontend Today I worked mainly on the backend, fixed several issues with the Google PageSpeed API, solved the API quota problem and added CORS so the frontend can communicate with the backend properly. I also started working on a better-looking frontend that should make SiteScope AI more attractive and easier to use… thanks for reading this devlog and watching that video.
Hello guys! Welcome to my 6th devlog! 🔥🙃 Today I finally made a big improvement to the frontend. I got the initial idea from the internet and combined it with my own design skills and AI to create something that fits SiteScope AI. I also finally figured out why I kept getting the “PageSpeed API daily limit reached” error, even though my 25,000-token quota was still available. Turns out I was running the backend from the wrong directory. 😭 I also started working on making the frontend more polished and attractive. That’s all for today! The frontend actually took much longer than the 2 hours shown here, since I didn’t log some of yesterday’s and the day before’s work. Btw, I’d really appreciate it if you checked out the video attached to this devlog! ❤️
Devlog #7 - Phase 1 complete & Gemini prompt testing Today I finished Phase 1 by testing valid, invalid and slow URLs and fixing client-side URL validation to prevent unnecessary PageSpeed API requests. I also started Phase 2: designed and tested the Gemini prompt for generating explanation, why_it_matters and how_to_fix for each audit issue. The first AI outputs are working well, so I’m moving on to integrating this into the actual audit pipeline.
DEVLOG #8 - Frontend improvements & new ideas From September 2nd to 7th, I spent around 4 hours working on SiteScope AI. I mainly improved the frontend to make it feel less AI-generated and more like my own design. I also came up with new ideas for pages like About and Thanks, different themes, and a better project navigation system. I also started working on hosting the backend and tried Nest, a free hosting service from Hack Club. It didn’t work out yet, but I’ll keep working on it. Overall, a lot of frontend improvements, new ideas and some backend experiments this time.
DEVLOG #9 - Backend finally working Today I spent a bit less time on SiteScope AI than usual, but I finally solved one of the biggest problems so far - getting the backend properly hosted and connected. Claude Sonnet 5 helped me understand the Nest setup, especially the systemd service and how to make the backend accessible from outside the server. I also discovered that I had simply forgotten to set the target port 8000 in the Nest dashboard…🙌😭, thanks guys for reading bye :>
DEVLOG #10 - AI timeouts, Nest drama & almost shipping Today I fixed a pretty annoying issue with the AI part of SiteScope AI. Basically, if Gemini took too long to respond, it could make the whole backend freeze 💀. I added a 20s timeout and now the audit just falls back to the normal Lighthouse description if AI takes too long. Then Nest decided to have a little meltdown 😭. My container went down and SSH kept disconnecting. At first I thought I broke something, but apparently it was a problem on Nest’s side affecting multiple containers. I also found that heavier websites can take too long to audit, so for now there’s roughly a 30s limit. Finally, I finished the README and did some small UI fixes. So yeah… SiteScope AI is basically ready for a ship.
The project is ready for shipping, I fixed a few bugs just before it. I hope you like it! :)
Alright guys, here we go… I don’t know if I can call this DEVLOG 11, because I didn’t add any new features, I just rewrote almost the entire frontend because it was kind of AI-generated. Sorry about that, but I still hope you like it…
Ships:
Hello, I made a project called SiteScope AI! It is an auditor for websites that gets raw JSON data from Google PageSpeed/Lighthouse and adds an AI (Gemini) layer, which basically describes every mistake on your website in understandable language and tells you how to fix it. This project was almost built by myself. I did the FastAPI backend, and the frontend is mostly my own ideas (80%), the other 20% was done with AI because I didn’t know what fonts and colors to use. I also did the deployment frontend is on Netlify, backend is on Nest (Stardance/Hack Club). What was difficult? Honestly, during building the backend I encountered a lot of bugs. One I’m proud I found: the AI explanation step was blocking, with no timeout, so a slow Gemini response could freeze the entire server for every user at once, not just one request. I found this by deliberately load-testing with 5 browser tabs at once, then fixed it by running it in a thread with a 20-second timeout. Later, the Nest container itself went down, and because of my limited knowledge of Linux I used AI (Claude Sonnet 5) to help me understand what was going on. Instead of just guessing it was my code, I tested the backend directly on the server (localhost) versus through the public domain, and proved the problem was on Nest’s side, not mine and later their own admin confirmed it was a platform-wide issue affecting all containers, not just mine. I also found a few bugs during testing for example, when the URL contained just underscores or random text like “not_a_url_at_all”, the frontend counted it as a valid URL and sent it to the backend anyway, wasting API calls before failing. I had to rewrite the URL validation logic in script.js to properly check it looks like a real domain first. Why I am still proud of my project? The main reason is that it still works even when the AI API is broken or times out, you still must to get a full audit with the technical description. The second reason is, I wrote earlier, the design was almost done by myself. What you should know before testing. I recommend for testing you use a light website with mostly basic HTML and CSS structure e.g. example.com. If you don’t know any test URL, here you are: example.com info.cern.ch httpbin.org sitescope-ai.netlify.app motherfuckingwebsite.com bettermotherfuckingwebsite.com text.npr.org ! If it says “failed to fetch”, try another one of these URLs or wait a few minutes, Nest might be repairing the backend containers. ! Don’t use e-shop or big brand websites like McDonald’s, Nike, Adidas, etc., because of the large amount of images the audit can take too long and time out…...
|
1793155662.1768084
|
1793242062.1768084
|
|
66044
|
LokalMapr by @satr14 | Stardance
|
satr14
|
0
|
2.92
|
0
|
[]
|
[{"post_id": 75234, "ts": "202 [{"post_id": 75234, "ts": "2026-09-29T15:26:15Z", "hours": 1.2083, "text": "soon my school is gonna have an event where i have to go offline for a WHOLE WEEK 😭 gotta squeeze as much hours as i can gang oauth and email otp handling for form global stylesheet fixes, all styles are on base layer made a simple homepage with create buttons for the planned types add google material symbols cdn made a style to center icons in buttons disable style for buttons and inputs remove debug console.log gings use pre element for new line formatting on debug user object dump i think the main challenge for stardance on my side is that my school hosts way too much programs thats required for every student to join. but whatever"}, {"post_id": 74241, "ts": "2026-09-27T01:34:39Z", "hours": 1.3894, "text": "this took a while, mainly because im not really into implementing auth for web apps. mostly only ever made static sites with little to no oauth. main challenge being pocketbase authstore handling. luckily copilot got my back and fixed things fix css warnings on font import add a login check to the layout code (invalid authstore => goto /login) fix typos with class names etc made a /login page handling every single auth type from password, email otp, and oauth implemented login functionality for password auth styling changes to forms globally added profile json info from home screen (will be expanded later, this is for debugging purposes) you may also notice theres a “hackclub auth” button here. this is for stardance reviewers and raters when they wanna try the app. ill make sure that this is heavily restricted to prevent spam on my homelab"}, {"post_id": 73999, "ts": "2026-09-26T14:34:13Z", "hours": 0.3175, "text": "currently i havent really used my skill into good use for my education life. so this is gonna be an opportunity to make something i would actually use constantly. current selection of selfhosted mind mapping software is pretty buggy, outdated, and usually just doesnt give me all the features i need. hence this is gonna be a “fine, ill do it myself” attempt. init readme and license init sveltekit, tailwind, lora font, catppuccin colors, pocketbase created pocketbase class in lib file updated readme with dev and build instructions app is still bare bones so here is a photo of the commit tree :D"}]...
|
Title: LokalMapr by @satr14 | Stardance
Devlogs:
Title: LokalMapr by @satr14 | Stardance
Devlogs:
currently i havent really used my skill into good use for my education life. so this is gonna be an opportunity to make something i would actually use constantly. current selection of selfhosted mind mapping software is pretty buggy, outdated, and usually just doesnt give me all the features i need. hence this is gonna be a “fine, ill do it myself” attempt. init readme and license init sveltekit, tailwind, lora font, catppuccin colors, pocketbase created pocketbase class in lib file updated readme with dev and build instructions app is still bare bones so here is a photo of the commit tree :D
this took a while, mainly because im not really into implementing auth for web apps. mostly only ever made static sites with little to no oauth. main challenge being pocketbase authstore handling. luckily copilot got my back and fixed things fix css warnings on font import add a login check to the layout code (invalid authstore => goto /login) fix typos with class names etc made a /login page handling every single auth type from password, email otp, and oauth implemented login functionality for password auth styling changes to forms globally added profile json info from home screen (will be expanded later, this is for debugging purposes) you may also notice theres a “hackclub auth” button here. this is for stardance reviewers and raters when they wanna try the app. ill make sure that this is heavily restricted to prevent spam on my homelab
soon my school is gonna have an event where i have to go offline for a WHOLE WEEK 😭 gotta squeeze as much hours as i can gang oauth and email otp handling for form global stylesheet fixes, all styles are on base layer made a simple homepage with create buttons for the planned types add google material symbols cdn made a style to center icons in buttons disable style for buttons and inputs remove debug console.log gings use pre element for new line formatting on debug user object dump i think the main challenge for stardance on my side is that my school hosts way too much programs thats required for every student to join. but whatever...
|
1792457558.5091887
|
1793321558.5091887
|
|
60746
|
game by @AaravChaudhary | Stardance
|
AaravChaudhary
|
0
|
17.73
|
0
|
[]
|
[{"post_id": 75261, "ts": "202 [{"post_id": 75261, "ts": "2026-09-29T16:15:09Z", "hours": 5.0219, "text": "Code is done now yayy it had many bugs but I spent a lot of time to debug ngl"}, {"post_id": 72712, "ts": "2026-09-23T15:55:33Z", "hours": 9.7333, "text": "yayy!"}, {"post_id": 69743, "ts": "2026-09-17T18:14:13Z", "hours": 1.0, "text": "code till now basic code"}, {"post_id": 69266, "ts": "2026-09-16T18:16:21Z", "hours": 0.9667, "text": "my work till now"}, {"post_id": 68743, "ts": "2026-09-15T17:36:50Z", "hours": 1.0086, "text": "it was very fun and interesting I hope my game turn out very good"}]...
|
Title: game by @AaravChaudhary | Stardance
Devlog Title: game by @AaravChaudhary | Stardance
Devlogs:
it was very fun and interesting I hope my game turn out very good
my work till now
code till now basic code
yayy!
Code is done now yayy it had many bugs but I spent a lot of time to debug ngl...
|
1793036997.313008
|
1793641797.313008
|
|
32620
|
MinecraftOS by @rapidSpeed | Stardance
|
rapidSpeed
|
2
|
10.88
|
14
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T15:59:55Z", "hours": 3.0, "multiplier": 5.34, "payout": 14, "blessing": "neutral", "text": "I added maximising and minimising of windows, which was pretty difficult. Adding eaglercraft was pretty easy, but the server is another thing. It took a long time. Btw, eaglercraft does take some time to startup on the website, so please be patient.", "repo": "https://github.com/rapidSpeed4652/MinecraftOS", "demo": "https://rapidspeed4652.github.io/MinecraftOS/"}, {"ship_num": 2, "ts": "2026-07-13T13:04:06Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an OS in the style of minecraft which is a game i like a lot. It took me a long time to make this, and im looking forward to make the next version too. Before this, i barely knew how to code html, css and javascript, but now i can confidently write basic websites :3 I’m very happy with how the website turned out ngl. Making the windows draggable and closable was a very big task, which im glad i was able to do. I hope yall enjoy the website.", "repo": "https://github.com/rapidSpeed4652/MinecraftOS", "demo": "https://rapidspeed4652.github.io/MinecraftOS/"}]...
|
[{"post_id": 75265, "ts": "202 [{"post_id": 75265, "ts": "2026-09-29T16:22:50Z", "hours": 0.8756, "text": "Thanks for the reviews! They gave a lot of insight on how to improve the OS. So, I have made it such that windows opened near the cursor and added the calc application! I will start working on improving the journel app too. I have been wondering if I should add a music player pre loaded with minecraft songs. What do yall think?"}, {"post_id": 55721, "ts": "2026-08-27T18:14:51Z", "hours": 0.3775, "text": "OMGG!!! It finally worked! I have ran a minecraft server on github actions that you can join easily! Technically its an eaglercraftX server, but still! I have lots of plans for future projects using this knowledge i learnt by making this. For now, I’m gonna give the repo link and you can check if the server is running. If it is, u can join the link given in the logs by cloudflare. (dont forget to add the wss:) https://github.com/rapidSpeed4652/Eaglercraft-Server Andd soon imma make a gui in the website to start or stop the server and show stats like number of players online or smh like that. Theres a problem tho, the world isnt persistant. While i tried making it, it didnt work and was taking way too long. I hope i can fix it later. P.S i didnt put time on hackatime, but i swear i spent hours on this"}, {"post_id": 39024, "ts": "2026-08-01T18:05:51Z", "hours": 0.8478, "text": "Added eaglercraftX 1.8.8, it was pretty easy, just downloading the offline .html and embedding it using , honestly the maximising button bothered me as it refused to work due to a simple error . Anyways, this is huge success, but it will lag while the game is loading due to which the windows wont be able to move. I still havent added window resizing which i will add later. I also updated the version numbering, if you look closely TBH, im considering to remove all the personality stuff and make it into a functional os with a calc, browser, games, etc. Note: Once you open the eaglercraft window, you might need to wait 10 seconds for it to load as it is hosted on github pages. I will change the host later to my own nest server."}, {"post_id": 38303, "ts": "2026-07-31T16:53:51Z", "hours": 1.4319, "text": "I finally added maximising and restoring of windows. Im thinking of adding the resizing of windows and minimising. But i have a crazy idea, what if i add eaglercraft to this? Like since it alr works on browser, maybe i can add it as a part of suite of games on the website? Sounds good but hard to implement."}, {"post_id": 27643, "ts": "2026-07-13T12:23:34Z", "hours": 0.7844, "text": "added custom app to credit myself , i think im done with the OS, maybe if i feel bored i might add more apps. But for now, im gonna get the website up on github pages."}, {"post_id": 27125, "ts": "2026-07-12T12:16:27Z", "hours": 1.7547, "text": "Added headers for all the windows . I also implemented the journel app, but you can only view or edit existing journels, you cannot add new journels which sounds incomplete. I might add the feature in the future. For now, I have also fixed the tap on window to bring on top, which is so satisfying ."}, {"post_id": 26736, "ts": "2026-07-11T18:15:00Z", "hours": 0.4058, "text": "Exams are going on 😭😭, but im still gonna do atleast one hour of coding. But for now, i have started modularising of code so that its easier to add more apps. But looks like i have broken the window size and the window on top. Thats a future me problem ¯ _ (ツ)_/¯. I have also started working on the notes app… Dw i will fix it and complete the notes app too tomorrow."}, {"post_id": 26025, "ts": "2026-07-10T16:34:56Z", "hours": 1.4103, "text": "Added the hotbar, which will contain all the programs and windows. I also completed the functionality of closing and opening of windows to all the windows. Should i add the old minecraft launcher icon as my OS icon? I think it would look pretty good."}, {"post_id": 25295, "ts": "2026-07-09T14:22:42Z", "hours": 1.6781, "text": "I have added the functionality of moving windows and closing and opening of them. For now, the functionality of opening and closing is only for hobbies window, i will add it for other windows too. I’m thinking of making the taskbar that holds all the programs as the hotbar in minecraft."}, {"post_id": 24784, "ts": "2026-07-08T16:09:22Z", "hours": 0.8217, "text": "Still working on the minecraft aesthetic. Finding the classic dirt background is difficult, but i think i will finish it by tmr. For today, i have added the content and played around with the style tags and stuff i can add."}]...
|
Title: MinecraftOS by @rapidSpeed | Stardance
Dev Title: MinecraftOS by @rapidSpeed | Stardance
Devlogs:
Still working on the minecraft aesthetic. Finding the classic dirt background is difficult, but i think i will finish it by tmr. For today, i have added the content and played around with the style tags and stuff i can add.
I have added the functionality of moving windows and closing and opening of them. For now, the functionality of opening and closing is only for hobbies window, i will add it for other windows too. I’m thinking of making the taskbar that holds all the programs as the hotbar in minecraft.
Added the hotbar, which will contain all the programs and windows. I also completed the functionality of closing and opening of windows to all the windows. Should i add the old minecraft launcher icon as my OS icon? I think it would look pretty good.
Exams are going on 😭😭, but im still gonna do atleast one hour of coding. But for now, i have started modularising of code so that its easier to add more apps. But looks like i have broken the window size and the window on top. Thats a future me problem ¯ _ (ツ)_/¯. I have also started working on the notes app… Dw i will fix it and complete the notes app too tomorrow.
Added headers for all the windows . I also implemented the journel app, but you can only view or edit existing journels, you cannot add new journels which sounds incomplete. I might add the feature in the future. For now, I have also fixed the tap on window to bring on top, which is so satisfying .
added custom app to credit myself , i think im done with the OS, maybe if i feel bored i might add more apps. But for now, im gonna get the website up on github pages.
I finally added maximising and restoring of windows. Im thinking of adding the resizing of windows and minimising. But i have a crazy idea, what if i add eaglercraft to this? Like since it alr works on browser, maybe i can add it as a part of suite of games on the website? Sounds good but hard to implement.
Added eaglercraftX 1.8.8, it was pretty easy, just downloading the offline .html and embedding it using , honestly the maximising button bothered me as it refused to work due to a simple error . Anyways, this is huge success, but it will lag while the game is loading due to which the windows wont be able to move. I still havent added window resizing which i will add later. I also updated the version numbering, if you look closely TBH, im considering to remove all the personality stuff and make it into a functional os with a calc, browser, games, etc. Note: Once you open the eaglercraft window, you might need to wait 10 seconds for it to load as it is hosted on github pages. I will change the host later to my own nest server.
OMGG!!! It finally worked! I have ran a minecraft server on github actions that you can join easily! Technically its an eaglercraftX server, but still! I have lots of plans for future projects using this knowledge i learnt by making this. For now, I’m gonna give the repo link and you can check if the server is running. If it is, u can join the link given in the logs by cloudflare. (dont forget to add the wss:) https://github.com/rapidSpeed4652/Eaglercraft-Server Andd soon imma make a gui in the website to start or stop the server and show stats like number of players online or smh like that. Theres a problem tho, the world isnt persistant. While i tried making it, it didnt work and was taking way too long. I hope i can fix it later. P.S i didnt put time on hackatime, but i swear i spent hours on this
Thanks for the reviews! They gave a lot of insight on how to improve the OS. So, I have made it such that windows opened near the cursor and added the calc application! I will start working on improving the journel app too. I have been wondering if I should add a music player pre loaded with minecraft songs. What do yall think?
Ships:
I made an OS in the style of minecraft which is a game i like a lot. It took me a long time to make this, and im looking forward to make the next version too. Before this, i barely knew how to code html, css and javascript, but now i can confidently write basic websites :3 I’m very happy with how the website turned out ngl. Making the windows draggable and closable was a very big task, which im glad i was able to do. I hope yall enjoy the website.
I added maximising and minimising of windows, which was pretty difficult. Adding eaglercraft was pretty easy, but the server is another thing. It took a long time. Btw, eaglercraft does take some time to startup on the website, so please be patient....
|
1793256484.0469253
|
1793342884.0469253
|
|
63897
|
A Autumn Alarm Clock by @theagentaurum | Stardance
|
theagentaurum
|
0
|
7.82
|
0
|
[]
|
[{"post_id": 75269, "ts": "202 [{"post_id": 75269, "ts": "2026-09-29T16:28:53Z", "hours": 1.4167, "text": "Github and Firmware Finished the Firmware on the Arduino IDE. Created basic commands for the different switches and their functions. Wrote the Github README and also worked on organizing the files correctly creating the 4 folders."}, {"post_id": 75223, "ts": "2026-09-29T14:44:05Z", "hours": 3.0681, "text": "CAD Used Onshape and Finished The Cad for the Alarm Clock. Decided with a Orange Aesthetic!"}, {"post_id": 70939, "ts": "2026-09-20T02:32:40Z", "hours": 3.3336, "text": "Cyberpunk Alarm Clock Devlog #1 During this build session, I finished my schematic, my PCB board, added visuals to my PCB, and exported everything. This was the first time I did something with a PCB and found it very interesting! I plan on expanding my work with hardware projects in the future."}]...
|
Title: A Autumn Alarm Clock by @theagentaurum | St Title: A Autumn Alarm Clock by @theagentaurum | Stardance
Devlogs:
Cyberpunk Alarm Clock Devlog #1 During this build session, I finished my schematic, my PCB board, added visuals to my PCB, and exported everything. This was the first time I did something with a PCB and found it very interesting! I plan on expanding my work with hardware projects in the future.
CAD Used Onshape and Finished The Cad for the Alarm Clock. Decided with a Orange Aesthetic!
Github and Firmware Finished the Firmware on the Arduino IDE. Created basic commands for the different switches and their functions. Wrote the Github README and also worked on organizing the files correctly creating the 4 folders....
|
1793055159.6623418
|
1793659959.6623418
|
|
57800
|
AEGIS by @aron_roger | Stardance
|
aron_roger
|
2
|
71.0
|
795
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T19:55:05Z", "hours": 21.0, "multiplier": 14.56, "payout": 301, "blessing": "neutral", "text": "A NFC tag tracker app, it is on the web right now, for designing and prototyping purpose, although I have written much greater detail in my previous ship, this is just a contiuation to my last ship. So, from the previous feedback, I have fixed few thing worked more on the representation and then also added a instruction page to the routes. I want to say I am happy with where I have reached as said in my previous dev-log, I have decided to get this project a halt, due to other responsibilities and priorities. I wanted to do more than that, but I am glad with whatever I learned along the way, it was all fun. As of now it is still not a native application rather a web hosted testing prototype, you can use the graphs and toggle option to change option, and yeah for now i haven’t yet added different user option, although I started with it. I might be signing off after this, would try to comeback but till then, may everyone do well in anything they do, I would still like to receive feedback, and yeah Ik I have sm things in mind to do and add, but yet again sadly it is kinda hard for me as of now.", "repo": "https://github.com/aron-roger/aegis", "demo": "https://aronnn.pythonanywhere.com/hydration"}, {"ship_num": 2, "ts": "2026-09-19T09:57:04Z", "hours": 50.0, "multiplier": 9.92, "payout": 494, "blessing": "neutral", "text": "AEGIS General intro I made a NFC tracker application, even though it is on the web rn, I have deployed it to pythonanywhere for use, currently. Story-Time: I might be a strange guy but I like to track my habits and count everything, and I surely have done tracking across both digitally and manually on my journal. That is when I knew about NFC stickers where a person showcased how he is using it to track his stuff, and i thought it to be so cool if i can do it too, so I began searching… later, here I am. Challenges I tried my best to make this as best i can, ngl I kinda tripped, and hit so many walls, at some point I was about to give up, but nah, I was more determined to complete it. I watched few HTML videos and CSS workaround, as i learned them through this project too, I learned a lot of stuff, I do not regret it, And the java-script was so hard to learn with my studies and in this short amount of time, that i must day i used AI to get me through it. Happy? Yeah I am so happy, with all I could do I wish i could do more, but as ever I’m not giving up. I am so happy about it, also when i discussed it with my cousin and he was like he wanted to track his water intake, it was hard for him. And i instantly knew, I can do it and I might can help him too. NOTE: I uses a NFC sticker on the objects, for example; water bottle, where the user can scan it whenever he can log his intake, and I have shared the link to where the person can use it, I am sorry not everyone can get a sticker, but I can make sure if they do have it it is most best UX for them. Otherwise, I have added an approach to to manually log the intake, Since, it is suppose to be an app and i haven’t yet made it an app, so i deployed it on pythonanywhere you can try out manual logging into my db. but as soon as the project is completed i will produce it such way the users have their local db to store their intake which is when a mobile app comes in. This a WIP PROJECT and I have so many things in mind to add, as I progress, lets hope I can do it, I believe i can do more pages faster as I have whole workflow in my head. Thank you for reading it this farrrr, arigato gozaimasu.", "repo": "https://github.com/aron-roger/aegis", "demo": "https://aronnn.pythonanywhere.com/hydration"}]...
|
[{"post_id": 75273, "ts": "202 [{"post_id": 75273, "ts": "2026-09-29T16:39:51Z", "hours": 4.0106, "text": "This might be my last dev-log I hate to admit but my study have been over-whelming. I am in 12th grade and catching up with my studies + preparing for a screening test olympiads. It is like juggling them but can’t do anything, I must eliminate something to keep up with everything else. Not gonna lie, it has been so much fun and learning during my time in Star-dance. I would miss this. I wanted to complete aegis-project but I still seem to have a long way to go especially learning dart or xml to host my app. Actually there might a bit more longer way because i haven’t really picked up on java-script either. I am kinda sad because I can not put in my everything, but I am happy with whatever I have learnt, plus all the new people I have met and then also able to tell more people about it. For this dev-log I’d like to showcase my whole app and designs Ive been working on. I have tried learning a lil bit of schema, but unable to give my whole time towards it also, I have also sent my code to ai to help me too. Things I have done instruction route is done for now re-newed the db for new schema (which i would not use after this decision) tweaked some design for my all routes and html which I have attached ss to it."}, {"post_id": 74088, "ts": "2026-09-26T17:15:09Z", "hours": 7.4475, "text": "#YOPP! I tried re-designing my home page and here is hat Ive come up with I used this pale-yellow green. I don’t know if i would change it or keep it. Any-ways here is what Ive been up to and what I did I have read the reasons that came through with the shipment results, and few reviewers claimed that they can’t understand they way it works, which for what i would like to apologize for I should’ve made an instruction screen, or smth more prominent of the usage of my system. I am glad they have pointed it out! So, I have tried making a Home-screen and a simple instruction screen. It was fun and quick process, although few designing got me time tinkering. Here is a overview to what I have done, I used lapse to record my Figma designing hours and then, later tried implementing it inside my code. although there have been so many inconsistencies that I had to use ai to help me, but Im glas with what im at. Then, also I have changed date selector bar which was again fun, because this time there was less friction than before, I’m kinda disappointed that I couldn’t manipulate JS on my own. Aside naturally, everything worked well, now I would like to complete it soon, because my other responsibilities have been hiking. BTW, I am tweaking myself I am kinda super glad with my hydration and sleep routes they are peaking, I would like to highlight them at next dev post, keep getting posted, I am sure you guys would like it"}, {"post_id": 72246, "ts": "2026-09-22T15:00:37Z", "hours": 8.0583, "text": "YO - I’m back I have posted my app to what I designed and where I am rn, first picture is my figma design, second is my where I am… I’ve been wanting to add those animated giphy, let me know how you guys do it. I tweaked my route kinda completed it, I’m kinda happy with this, some of the things are repetitive but so far here is what i did: re-made my date selector bar changed the background for sleep tracker theme sleep button toggle, it was kinda hard to learn DOM manipulation, so I let ai do it (will learn it) set-up routes in the backend, kinda fun to tweak it and used ai to help me clear my mess Honestly, I think must showcase my result properly, it is not a web but an app, soon converting it to a whole app, as im finished with logic routes. NFC is working, soon uploading it on Github. You can send me your reviews as you like my app to be, I would be happy to view them and react to them."}, {"post_id": 70771, "ts": "2026-09-19T18:52:19Z", "hours": 1.18, "text": "IRONY So, I have been flagged, to be using ai styled design, which is sad truly because, I myself had came up with the layout, in figma, and then later i tweaked the design in dark theme, because i probably my eyes hurt working with bright screen lol. light theme I was hoping to use this design, later, for customizing theme option in settings. Apparently, I am switching back to it, after some tweaks, I will be able to push it on github Clarification Also, I want to tell that I wanted to make an app out of it, and all i did rn is just made it on a web, so i got a long way to go, I was am soon using flutter for my application and deployment. I believe i wont be flagged next because yeah, It is my design, i wonder if it is that good or that much slop."}, {"post_id": 70461, "ts": "2026-09-19T07:31:03Z", "hours": 4.5711, "text": "FINALLY, I THINK MY HYDRATION PAGE IS DONE. Changes; First of all I have graphss, like it is working the one day graph is supposed to be a cumulative graph and its working well. fixed few bugs i was facing when i was testing it, i still cannot test 1w and 1 month graph due to limited logs, It was a long way, honestly, i have put my design i made on figma in the later image, and the first one is what Im at rn. If you scroll through my other dev logs you might stumble upon my whole design phase. However, I am glad with what I got to, it is just as expected, I am ship this as a WIP project, please I really put my heart at it, learning and idealizing, I really appreciate your rating and help, Thanks for reading it this farr, really thank you. I will add more details, when i will ship this."}, {"post_id": 69699, "ts": "2026-09-17T16:36:31Z", "hours": 6.0686, "text": "HYDRATION TRACKER TLDR; deployed it on pythonanywhere removed variable input created tables for history I’ve re- the whole hydration.html, due to the reasons my javascript wasn’t performing well with variable input. so now i backed off from it and start to complete the basics. Deployed my project on pythonanywhere so now i can officially use the sticker when i go outside too, please acknowledy this my first time making a dedicated project and i have learned a lot of stuff, yet i try to keep on improving ##Future plans… making graphsss (tuff) ig, i always liked visual representation. sleep.html but diff cards mihi med tracker (custom medication) Will work on better dev posts."}, {"post_id": 67561, "ts": "2026-09-13T18:15:53Z", "hours": 8.3778, "text": "It was supposed to be a mobile app but it looks cool anyways, YEPP i worked on backend, again and yet got to this new screen with new cardsss. NOW user can adjust the amount logs, there is bug i found while testing but then i got message that i must dev post soon, anyways les goo, i would like to know and hear more suggestion on anything about my project."}, {"post_id": 66661, "ts": "2026-09-12T14:55:37Z", "hours": 8.1722, "text": "Worked on Backend and front end both, i cant decide which theme to choose, that blue one or white one, Anyways, backend for hydration route is all set i might not need to tweak it anymore or i must say much. front end, im honestly enjoying all of this, i learnt a lot…"}, {"post_id": 65883, "ts": "2026-09-11T10:07:28Z", "hours": 3.1342, "text": "Worked on the back-end, css html too. i took few courses from html to get started with it, next im refining my page to make it look more like my figma design and also im re-building backend py code. Till, i receive my stickers, ordered from a store, imma work on on making front end better and re doing my py files for a formal structure."}, {"post_id": 64210, "ts": "2026-09-08T13:21:21Z", "hours": 3.7906, "text": "Honestly for now im done with the design all thing sive made myself everything took lotta time to get to this point and it is only design, i will tweak more like get home page and more tacker with more features soon, maybe add badges and its tab, There is still a lot to do. (sorry for poor quality video i still cant figure out how to use obs screen rec.) SO, IM DONE FOR NOW WITH DESIGNING, I am starting at backend code using flutter i have shared the files to test my backend and it is going good fo rnow next we adding pages and its logic. It is all new im learning midway. I would like if you can suggest me any idea for tracker although i might add a medicine tracker and brush at night tracker because i believe there are many people who do not brush at night too, correct me and share your review, thankss."}, {"post_id": 62356, "ts": "2026-09-05T18:00:09Z", "hours": 7.4225, "text": "Today, I have made more buttons and started at both hydration and sleep tracker page. From last time, I have been more consistent with so many things. Next, I am adding graphs to the system, so finally start at code. And would probably post a preview to the design. For those who don’t know, im building nfc tracker system for day to day life and for now i am only integrating 2 trackers for now."}, {"post_id": 61705, "ts": "2026-09-04T19:02:13Z", "hours": 8.2783, "text": "OK, it was my first time using figma, started my design (ui) for my app: Aegis. There a lot more to go…"}]...
|
Title: AEGIS by @aron_roger | Stardance
Devlogs:
Title: AEGIS by @aron_roger | Stardance
Devlogs:
OK, it was my first time using figma, started my design (ui) for my app: Aegis. There a lot more to go…
Today, I have made more buttons and started at both hydration and sleep tracker page. From last time, I have been more consistent with so many things. Next, I am adding graphs to the system, so finally start at code. And would probably post a preview to the design. For those who don’t know, im building nfc tracker system for day to day life and for now i am only integrating 2 trackers for now.
Honestly for now im done with the design all thing sive made myself everything took lotta time to get to this point and it is only design, i will tweak more like get home page and more tacker with more features soon, maybe add badges and its tab, There is still a lot to do. (sorry for poor quality video i still cant figure out how to use obs screen rec.) SO, IM DONE FOR NOW WITH DESIGNING, I am starting at backend code using flutter i have shared the files to test my backend and it is going good fo rnow next we adding pages and its logic. It is all new im learning midway. I would like if you can suggest me any idea for tracker although i might add a medicine tracker and brush at night tracker because i believe there are many people who do not brush at night too, correct me and share your review, thankss.
Worked on the back-end, css html too. i took few courses from html to get started with it, next im refining my page to make it look more like my figma design and also im re-building backend py code. Till, i receive my stickers, ordered from a store, imma work on on making front end better and re doing my py files for a formal structure.
Worked on Backend and front end both, i cant decide which theme to choose, that blue one or white one, Anyways, backend for hydration route is all set i might not need to tweak it anymore or i must say much. front end, im honestly enjoying all of this, i learnt a lot…
It was supposed to be a mobile app but it looks cool anyways, YEPP i worked on backend, again and yet got to this new screen with new cardsss. NOW user can adjust the amount logs, there is bug i found while testing but then i got message that i must dev post soon, anyways les goo, i would like to know and hear more suggestion on anything about my project.
HYDRATION TRACKER TLDR; deployed it on pythonanywhere removed variable input created tables for history I’ve re- the whole hydration.html, due to the reasons my javascript wasn’t performing well with variable input. so now i backed off from it and start to complete the basics. Deployed my project on pythonanywhere so now i can officially use the sticker when i go outside too, please acknowledy this my first time making a dedicated project and i have learned a lot of stuff, yet i try to keep on improving ##Future plans… making graphsss (tuff) ig, i always liked visual representation. sleep.html but diff cards mihi med tracker (custom medication) Will work on better dev posts.
FINALLY, I THINK MY HYDRATION PAGE IS DONE. Changes; First of all I have graphss, like it is working the one day graph is supposed to be a cumulative graph and its working well. fixed few bugs i was facing when i was testing it, i still cannot test 1w and 1 month graph due to limited logs, It was a long way, honestly, i have put my design i made on figma in the later image, and the first one is what Im at rn. If you scroll through my other dev logs you might stumble upon my whole design phase. However, I am glad with what I got to, it is just as expected, I am ship this as a WIP project, please I really put my heart at it, learning and idealizing, I really appreciate your rating and help, Thanks for reading it this farr, really thank you. I will add more details, when i will ship this.
IRONY So, I have been flagged, to be using ai styled design, which is sad truly because, I myself had came up with the layout, in figma, and then later i tweaked the design in dark theme, because i probably my eyes hurt working with bright screen lol. light theme I was hoping to use this design, later, for customizing theme option in settings. Apparently, I am switching back to it, after some tweaks, I will be able to push it on github Clarification Also, I want to tell that I wanted to make an app out of it, and all i did rn is just made it on a web, so i got a long way to go, I was am soon using flutter for my application and deployment. I believe i wont be flagged next because yeah, It is my design, i wonder if it is that good or that much slop.
YO - I’m back I have posted my app to what I designed and where I am rn, first picture is my figma design, second is my where I am… I’ve been wanting to add those animated giphy, let me know how you guys do it. I tweaked my route kinda completed it, I’m kinda happy with this, some of the things are repetitive but so far here is what i did: re-made my date selector bar changed the background for sleep tracker theme sleep button toggle, it was kinda hard to learn DOM manipulation, so I let ai do it (will learn it) set-up routes in the backend, kinda fun to tweak it and used ai to help me clear my mess Honestly, I think must showcase my result properly, it is not a web but an app, soon converting it to a whole app, as im finished with logic routes. NFC is working, soon uploading it on Github. You can send me your reviews as you like my app to be, I would be happy to view them and react to them.
#YOPP! I tried re-designing my home page and here is hat Ive come up with I used this pale-yellow green. I don’t know if i would change it or keep it. Any-ways here is what Ive been up to and what I did I have read the reasons that came through with the shipment results, and few reviewers claimed that they can’t understand they way it works, which for what i would like to apologize for I should’ve made an instruction screen, or smth more prominent of the usage of my system. I am glad they have pointed it out! So, I have tried making a Home-screen and a simple instruction screen. It was fun and quick process, although few designing got me time tinkering. Here is a overview to what I have done, I used lapse to record my Figma designing hours and then, later tried implementing it inside my code. although there have been so many inconsistencies that I had to use ai to help me, but Im glas with what im at. Then, also I have changed date selector bar which was again fun, because this time there was less friction than before, I’m kinda disappointed that I couldn’t manipulate JS on my own. Aside naturally, everything worked well, now I would like to complete it soon, because my other responsibilities have been hiking. BTW, I am tweaking myself I am kinda super glad with my hydration and sleep routes they are peaking, I would like to highlight them at next dev post, keep getting posted, I am sure you guys would like it
This might be my last dev-log I hate to admit but my study have been over-whelming. I am in 12th grade and catching up with my studies + preparing for a screening test olympiads. It is like juggling them but can’t do anything, I must eliminate something to keep up with everything else. Not gonna lie, it has been so much fun and learning during my time in Star-dance. I would miss this. I wanted to complete aegis-project but I still seem to have a long way to go especially learning dart or xml to host my app. Actually there might a bit more longer way because i haven’t really picked up on java-script either. I am kinda sad because I can not put in my everything, but I am happy with whatever I have learnt, plus all the new people I have met and then also able to tell more people about it. For this dev-log I’d like to showcase my whole app and designs Ive been working on. I have tried learning a lil bit of schema, but unable to give my whole time towards it also, I have also sent my code to ai to help me too. Things I have done instruction route is done for now re-newed the db for new schema (which i would not use after this decision) tweaked some design for my all routes and html which I have attached ss to it.
Ships:
AEGIS General intro I made a NFC tracker application, even though it is on the web rn, I have deployed it to pythonanywhere for use, currently. Story-Time: I might be a strange guy but I like to track my habits and count everything, and I surely have done tracking across both digitally and manually on my journal. That is when I knew about NFC stickers where a person showcased how he is using it to track his stuff, and i thought it to be so cool if i can do it too, so I began searching… later, here I am. Challenges I tried my best to make this as best i can, ngl I kinda tripped, and hit so many walls, at some point I was about to give up, but nah, I was more determined to complete it. I watched few HTML videos and CSS workaround, as i learned them through this project too, I learned a lot of stuff, I do not regret it, And the java-script was so hard to learn with my studies and in this short amount of time, that i must day i used AI to get me through it. Happy? Yeah I am so happy, with all I could do I wish i could do more, but as ever I’m not giving up. I am so happy about it, also when i discussed it with my cousin and he was like he wanted to track his water intake, it was hard for him. And i instantly knew, I can do it and I might can help him too. NOTE: I uses a NFC sticker on the objects, for example; water bottle, where the user can scan it whenever he can log his intake, and I have shared the link to where the person can use it, I am sorry not everyone can get a sticker, but I can make sure if they do have it it is most best UX for them. Otherwise, I have added an approach to to manually log the intake, Since, it is suppose to be an app and i haven’t yet made it an app, so i deployed it on pythonanywhere you can try out manual logging into my db. but as soon as the project is completed i will produce it such way the users have their local db to store their intake which is when a mobile app comes in. This a WIP PROJECT and I have so many things in mind to add, as I progress, lets hope I can do it, I believe i can do more pages faster as I have whole workflow in my head. Thank you for reading it this farrrr, arigato gozaimasu.
A NFC tag tracker app, it is on the web right now, for designing and prototyping purpose, although I have written much greater detail in my previous ship, this is just a contiuation to my last ship. So, from the previous feedback, I have fixed few thing worked more on the representation and then also added a instruction page to the routes. I want to say I am happy with where I have reached as said in my previous dev-log, I have decided to get this project a halt, due to other responsibilities and priorities. I wanted to do more than that, but I am glad with whatever I learned along the way, it was all fun. As of now it is still not a native application rather a web hosted testing prototype, you can use the graphs and toggle option to change option, and yeah for now i haven’t yet added different user option, although I started with it. I might be signing off after this, would try to comeback but till then, may everyone do well in anything they do, I would still like to receive feedback, and yeah Ik I have sm things in mind to do and add, but yet again sadly it is kinda hard for me as of now....
|
1793152311.8720741
|
1793238711.8720741
|
|
6648
|
LUNATIK by @g_jeanvermeille | Stardance
|
g_jeanvermeille
|
1
|
15.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T17:06:09Z", "hours": 15.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built LUNATIK, a flight computer for our model rocket (Pico 2, CircuitPython) that fuses a barometer and accelerometer with a Kalman filter to detect apogee, logs to SD and streams LoRa telemetry. The hard part: we had one motor, so it had to work first try. I’m proud it did, calling apogee 0.45 s after the top while the motor’s charge fired 2.5 s later. To test without a rocket: python scripts/dashboard.py –simulate. Only coding hours were logged, not the hardware build.", "repo": "https://github.com/gabriel84-py/fus-e_code", "demo": ""}]...
|
[{"post_id": 75278, "ts": "202 [{"post_id": 75278, "ts": "2026-09-29T16:59:52Z", "hours": 0.4389, "text": "Documention for ship !"}, {"post_id": 75249, "ts": "2026-09-29T15:50:42Z", "hours": 0.3511, "text": "launching with avionics !!!"}, {"post_id": 70671, "ts": "2026-09-19T15:51:12Z", "hours": 11.8942, "text": "Launching LUNATIK (without electronics) and coding its flight computer to launch it in 1 week !!"}, {"post_id": 42061, "ts": "2026-08-06T16:53:48Z", "hours": 1.9433, "text": "Body of the rocket, some elctronics (PCB) and some code for the PCB !"}]...
|
Title: LUNATIK by @g_jeanvermeille | Stardance
De Title: LUNATIK by @g_jeanvermeille | Stardance
Devlogs:
Body of the rocket, some elctronics (PCB) and some code for the PCB !
Launching LUNATIK (without electronics) and coding its flight computer to launch it in 1 week !!
launching with avionics !!!
Documention for ship !
Ships:
I built LUNATIK, a flight computer for our model rocket (Pico 2, CircuitPython) that fuses a barometer and accelerometer with a Kalman filter to detect apogee, logs to SD and streams LoRa telemetry. The hard part: we had one motor, so it had to work first try. I’m proud it did, calling apogee 0.45 s after the top while the motor’s charge fired 2.5 s later. To test without a rocket: python scripts/dashboard.py –simulate. Only coding hours were logged, not the hardware build....
|
1793145117.7686045
|
1793231517.7686045
|
|
42256
|
Tinker Party by @JPR | Stardance
|
JPR
|
1
|
18.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T17:16:59Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A beta version of a game Idea I’ve had for long. Combining two of my interests, game dev and electrical components, I wanted to create a game that can interact with physical embedded systems and teach you in an engaging way. Before I created a proper educational game with lessons and maybe some storyline, I needed a proof of concept that this could work. Hence, enter the idea of a minigame, party-like game, where I could try and grasp the basics of connecting an Arduino to a Unity game through the Serial port, and learning more intricate part of the systems, like collecting readings and input, etc. I will dedicate myself to continue this sometime, to finish all art, to finish a first alpha. So, thank you! If you’d like to play the game, please do, and let me know any ideas or any bugs you find (I’m certain there will be). Since this game is a beta, there are some unexplained features that you will need to find out about by checking out my GitHub. Thank you!", "repo": "https://github.com/jpribeiru/tinker-party", "demo": "https://jpribeiru.itch.io/tinker-party"}]...
|
[{"post_id": 75284, "ts": "202 [{"post_id": 75284, "ts": "2026-09-29T17:12:38Z", "hours": 0.9689, "text": "Ready for launch! Since it is the Beta version, I fully commented the code so I could pick up on it another time without forgetting. To release the beta, I put it up on itch.io to download, as well as updated the README on GitHub so that all the non-mentioned setup could be explained to anyone wanting to give it a go! Also made a bit of banner art and icon art, a style i will pick up again to try to integrate into the game itself. Hopefully I will find the time to dedicate myself to this once again, and thank you Stardance!"}, {"post_id": 45174, "ts": "2026-08-11T14:25:12Z", "hours": 6.4667, "text": "Game fully working! The full game is done with the Main Menu, Minigame 1 and Minigame 2. I added small new things Minigame 1: Tutorial Page at the start fully works, including displaying the layout of the breadboard and the testing part works too. Here, the P1ZPos variable (the variable that stores the reading of the potentiometers and turns the range of 0->1023 into -6->6) has maths done on it to fit it onto the range of the screen. Each potentiometer controls a car icon, and the car has to be on the very right (aka potentiometer to the max), on top of it’s green silhouette. Both cars need to remain there for 5s for game to start. Minigame 2: camera elevates each block so it doesn’t go off screen also tutorial page now works with the test, where both players have to hold onto their button for 5 seconds before starting. there was an issue i had to fix for these buttons, figuring out a way to only send one reading when the player holds it down to click once, because readings are sent really frequently, a hold for less than a second led to 20 occasions of button being held down, so I added another variable, buttonPressedOnce, did some logic operations with buttonHeld (the readings) to make sure the signal is sent once. (side note, I know realise I should have done devlogs more frequently because i could’ve gone into more detail explaining the things I’ve learnt, but alas, I tried to explain as much as I could in my actual code, for anyone checking it out) Here’s the new major stuff! The Main Menu came with a lot of challenges. The idea was for the user to use a potentiometer and a button to scroll between games and select. Issue was, multiple instances of Arduino Connector happened, with scenes being reloaded and led to all kinds of chaos. So I had to do some Instancing, removed Arduino Connector from Minigame Scenes. I also had to add a score manager, that also would be permanent and instanced, so variables could stay the whole time the game was run. Also, to connect the winners of the minigame to the score manager, I had to include win conditions to each of the minigame game handler scripts. Then the Score manager would read from the public variable “winner” in those Game Handler scripts, to see who won and increment the respective score. Then, I realised a small flaw. The Arduino Connector script was static to the usual port that I used on my computer, but a different user would be using a different port. So, I added a textbox and a porthandler to recieve info from that textbox into a public variable for the Arduino Connector script to retrieve and refresh the port entered, to ensure connection still works if changed. That was it, the game functions perfectly fine, however there is one major thing I have to do before shipping. I had to showcase this prototype of a game to a summer program I was doing, and realised that when I was showcasing, everything was already setup for people to use. But I was only able to setup the game since I knew the way. I never showed a setup schematic in the main menu, nor did I even give the user the Arduino IDE code to send to their board. These crucial extra details I will do in future devlogs, but so far, that was my game!"}, {"post_id": 39602, "ts": "2026-08-02T18:08:30Z", "hours": 10.6, "text": "Core concept added + Almost done with Minigame 1 + Minigame 2! PS: Devlog is long because I forgot to post a previous one… To start the proof-of-concept I had to figure out how I could get the Arduino Uno to connect to Unity. Learning from a tutorial by DIY TechRush , I found out the main method was by having code sent to the board from the IDE where readings are sent to the Serial Port. After I understood that, I could finally start on my first idea, a Timeline-based race through a city between two cars that have to avoid obstacles. Since I’m working on a time crunch, I used some free low poly models: cars by ‘antonmoek’ city by ‘ilkhom23’ Their models are so cool - go check them out! Once I added the models, I changed potentiometer readings from rotation to transformation on the Z axis, so the car could go left and right to avoid things. Since I was using two potentiometers (for two players), before printing, I had to concatenate “1:” or “2:” for the Unity script to find out which is which. I also encountered some delay issues, which I fixed by increasing baud rate from 9600 to 115200 and adding a delay function in the boards code. Then, it was time to make a rig for the players and their cameras (cameras made two split screens). The rig was so that I could animate the position of the player using the Timeline feature. Then, on the same timeline, add animation tracks for the ‘enemies’ (just buses and vans). Added some variety, some were static some were driving to the player, some fell out the sky from no where. Also, to make it clear they were enemies, I added some outline shading to them from this tutorial by ‘AAvirusAA’ . Then, I added box colliders and rigidbodies to the player cars and the enemies while tagging them as ‘player’ and ‘enemy’ respectively. Each time there was a hit, it would increment a counter for each player. Then used the canvas/UI feature to display the counter! Finally, I got started on the tutorial at the start. I wanted to show the player(s) a TinkerCad setup including what they need and what pins to connect. Then, ( kind of inspired by those switch games where they joycons are taken off, and before the game starts a button must be pressed to ensure connectivity ), created an image to show the setup before the game, and to only disappear once the test has passed! Got bored of M1 so started on M2 The concept for this was to do that simple mobile game where the blocks slide and you have to stack them by pressing it. The foundation of the game was from a tutorial by Jason Weimann , and I added the following things: Instead of “Fire1” from the Input Package, it was connected to a boolean variable that was based off of the Serial Readings of whether a button was pressed. Only Player 1 button could affect player 1 turn, etc. Alternating colours of blue and purple to match the cars Game over screen Tutorial/setup at start Thanks for reading this far! If anyone has any suggestions on improvements please let me know!"}]...
|
Title: Tinker Party by @JPR | Stardance
Devlogs:
Title: Tinker Party by @JPR | Stardance
Devlogs:
Core concept added + Almost done with Minigame 1 + Minigame 2! PS: Devlog is long because I forgot to post a previous one… To start the proof-of-concept I had to figure out how I could get the Arduino Uno to connect to Unity. Learning from a tutorial by DIY TechRush , I found out the main method was by having code sent to the board from the IDE where readings are sent to the Serial Port. After I understood that, I could finally start on my first idea, a Timeline-based race through a city between two cars that have to avoid obstacles. Since I’m working on a time crunch, I used some free low poly models: cars by ‘antonmoek’ city by ‘ilkhom23’ Their models are so cool - go check them out! Once I added the models, I changed potentiometer readings from rotation to transformation on the Z axis, so the car could go left and right to avoid things. Since I was using two potentiometers (for two players), before printing, I had to concatenate “1:” or “2:” for the Unity script to find out which is which. I also encountered some delay issues, which I fixed by increasing baud rate from 9600 to 115200 and adding a delay function in the boards code. Then, it was time to make a rig for the players and their cameras (cameras made two split screens). The rig was so that I could animate the position of the player using the Timeline feature. Then, on the same timeline, add animation tracks for the ‘enemies’ (just buses and vans). Added some variety, some were static some were driving to the player, some fell out the sky from no where. Also, to make it clear they were enemies, I added some outline shading to them from this tutorial by ‘AAvirusAA’ . Then, I added box colliders and rigidbodies to the player cars and the enemies while tagging them as ‘player’ and ‘enemy’ respectively. Each time there was a hit, it would increment a counter for each player. Then used the canvas/UI feature to display the counter! Finally, I got started on the tutorial at the start. I wanted to show the player(s) a TinkerCad setup including what they need and what pins to connect. Then, ( kind of inspired by those switch games where they joycons are taken off, and before the game starts a button must be pressed to ensure connectivity ), created an image to show the setup before the game, and to only disappear once the test has passed! Got bored of M1 so started on M2 The concept for this was to do that simple mobile game where the blocks slide and you have to stack them by pressing it. The foundation of the game was from a tutorial by Jason Weimann , and I added the following things: Instead of “Fire1” from the Input Package, it was connected to a boolean variable that was based off of the Serial Readings of whether a button was pressed. Only Player 1 button could affect player 1 turn, etc. Alternating colours of blue and purple to match the cars Game over screen Tutorial/setup at start Thanks for reading this far! If anyone has any suggestions on improvements please let me know!
Game fully working! The full game is done with the Main Menu, Minigame 1 and Minigame 2. I added small new things Minigame 1: Tutorial Page at the start fully works, including displaying the layout of the breadboard and the testing part works too. Here, the P1ZPos variable (the variable that stores the reading of the potentiometers and turns the range of 0->1023 into -6->6) has maths done on it to fit it onto the range of the screen. Each potentiometer controls a car icon, and the car has to be on the very right (aka potentiometer to the max), on top of it’s green silhouette. Both cars need to remain there for 5s for game to start. Minigame 2: camera elevates each block so it doesn’t go off screen also tutorial page now works with the test, where both players have to hold onto their button for 5 seconds before starting. there was an issue i had to fix for these buttons, figuring out a way to only send one reading when the player holds it down to click once, because readings are sent really frequently, a hold for less than a second led to 20 occasions of button being held down, so I added another variable, buttonPressedOnce, did some logic operations with buttonHeld (the readings) to make sure the signal is sent once. (side note, I know realise I should have done devlogs more frequently because i could’ve gone into more detail explaining the things I’ve learnt, but alas, I tried to explain as much as I could in my actual code, for anyone checking it out) Here’s the new major stuff! The Main Menu came with a lot of challenges. The idea was for the user to use a potentiometer and a button to scroll between games and select. Issue was, multiple instances of Arduino Connector happened, with scenes being reloaded and led to all kinds of chaos. So I had to do some Instancing, removed Arduino Connector from Minigame Scenes. I also had to add a score manager, that also would be permanent and instanced, so variables could stay the whole time the game was run. Also, to connect the winners of the minigame to the score manager, I had to include win conditions to each of the minigame game handler scripts. Then the Score manager would read from the public variable “winner” in those Game Handler scripts, to see who won and increment the respective score. Then, I realised a small flaw. The Arduino Connector script was static to the usual port that I used on my computer, but a different user would be using a different port. So, I added a textbox and a porthandler to recieve info from that textbox into a public variable for the Arduino Connector script to retrieve and refresh the port entered, to ensure connection still works if changed. That was it, the game functions perfectly fine, however there is one major thing I have to do before shipping. I had to showcase this prototype of a game to a summer program I was doing, and realised that when I was showcasing, everything was already setup for people to use. But I was only able to setup the game since I knew the way. I never showed a setup schematic in the main menu, nor did I even give the user the Arduino IDE code to send to their board. These crucial extra details I will do in future devlogs, but so far, that was my game!
Ready for launch! Since it is the Beta version, I fully commented the code so I could pick up on it another time without forgetting. To release the beta, I put it up on itch.io to download, as well as updated the README on GitHub so that all the non-mentioned setup could be explained to anyone wanting to give it a go! Also made a bit of banner art and icon art, a style i will pick up again to try to integrate into the game itself. Hopefully I will find the time to dedicate myself to this once again, and thank you Stardance!
Ships:
A beta version of a game Idea I’ve had for long. Combining two of my interests, game dev and electrical components, I wanted to create a game that can interact with physical embedded systems and teach you in an engaging way. Before I created a proper educational game with lessons and maybe some storyline, I needed a proof of concept that this could work. Hence, enter the idea of a minigame, party-like game, where I could try and grasp the basics of connecting an Arduino to a Unity game through the Serial port, and learning more intricate part of the systems, like collecting readings and input, etc. I will dedicate myself to continue this sometime, to finish all art, to finish a first alpha. So, thank you! If you’d like to play the game, please do, and let me know any ideas or any bugs you find (I’m certain there will be). Since this game is a beta, there are some unexplained features that you will need to find out about by checking out my GitHub. Thank you!...
|
1793145209.706669
|
1793231609.706669
|
|
58066
|
LeadGen by @R10 | Stardance
|
R10
|
0
|
20.2
|
0
|
[]
|
[{"post_id": 75293, "ts": "202 [{"post_id": 75293, "ts": "2026-09-29T17:30:24Z", "hours": 4.4919, "text": "DEVLOG #8 ㅤ It’s been a long time since I wrote my last journal and that is because I just didn’t feel like writing a journal. It just seemed like too much work. I was also busy studying so I could not code and journal as frequently but I have made significant changes to my Lead handling ideas and I would like to share them. ㅤ LEAD GENERATION CHANGES Basically, I have decided on a flow where a user can send multiple queries at the same time to generate leads from and choose the number of leads that they want to generate for each query. This would make work faster if a user wants to target a diverse set of businesses. ㅤ while generating leads, the user will see 2 options. In the first one, the user will be asked to enter their query. In the second one, the user will be asked to add an upper limit to their search. ㅤ There will also be a “+” button at the bottom of each “query box” of “query batch” so that a user can add another query box and mix and match how many leads they want and what queries they want. both questions are required for a query and hence there will be a continue button only when both a re filled. If the user adds a new box then the continue button will again disappear until both of the new questions are filled and so on and so forth. ㅤ BATCHES Every lead generation is now given its own batch. A batch can be managed easily by going to a new “Manage Leads” tab where the user can do all sorts of stuff like view generation history, view all batches, push generated batches to the team, remove batches, break up batches, set deadline on batches, etc. ㅤ LEAD PUBLISHING Earlier, the flow was such that the boss generates the leads and the leads are there for everyone in the team to view immediately. We do not want that. Instead, now the flow is that when the leads are generated, they are only visible to the boss so that they could tune the batch by adding deadlines and stuff. Then, when the boss is ready, they can publish the full batch to the common workspace where all the employees can see the leads and pick them up. ㅤ WORKING ON LEADS once the leads are published, the employees in the team can pick up leads and start working on them. This is the flow that I have decided upon. ㅤ Claim Leads -> Work on Claimed leads -> Log outcome of call -> Complete lead ㅤ It is as simple as that. As per the endpoints we have /leads/{lead_id}/claim to claim a lead, /leads/{lead_id}/log to make a log for a lead and /leads/{lead_id}/complete to complete a lead. There is also an endpoint /leads/{lead_id}/return which is used to return a claimed lead back to the common pool. ㅤ ㅤ code wise there have been a lot of changes like new lead_batches and call_record tables and a lot more stuff so I won’t go in depth about all that because then the journal would be too long and I honestly do not want to spend much time journaling and I would rather spend more time coding. ㅤ While writing this journal, I also thought of a bug for my scraper logic: ㅤ Imagine if a user wants 10 leads for dentists in delhi, the user scrapes and the scraper only looks at the first 10 businesses even though there are 124 businesses. Next, the user wants leads for dentists in Delhi again the next day so the user scrapes again. Now, since the scraper does not know if this business already exists in the database, it will just give the same 10 businesses as before and all get marked as duplicate event though we have other 114 businesses. But, they will never be scraped because the search is linear and the scraper has no context of, this lead exists, leave it. ㅤ So, I think I will be spending my trying to fix this bug somehow as this is pretty serious. ㅤ commit: 45f5e2d4107b23bd4a7609aaf17fd0bafb566bcf"}, {"post_id": 73128, "ts": "2026-09-24T13:22:48Z", "hours": 2.9364, "text": "DEVLOG #7 ㅤ SCRAPER Made a few significant changes to the scraper: Earlier, my scraper was based on the CLI logic where the user will enter their query and then the program will scrape all the businesses for that specific query before asking the user about how many leads they wanted to generate. But, now that I am switching from CLI to web, this logic is broken (even from a CLI perspective this logic was broken). Basically, if there are 124 businesses found for a certain query then the user would have to wait at least 84 seconds (I tested this time and it is not an estimation) for the whole search process and generation. Now this long wait time is because the program is basically asking the user the limit of leads they want to generate but the point of application of that limit is incorrect. For example, if a user only wants 50 leads, then the program would still go through all the 124 businesses and then only generate 50 leads out of those 124. Thus, all the searching and scrolling through the menu takes time. Whereas, now If we instead make it such that the user inputs an upper limit value to their search all along then the time would be significantly improved. For example, If a user only wants 50 leads out of however many there are, we now don’t try to find all the leads and then apply the limit, we instead apply the limit straight at the searching step and then generate all the found leads. Using the same 124 total leads example, now the scraping and lead generation time is only 33 seconds. while randomly talking about my project with gemini (and glazing it), I suddenly got a feedback for it out of nowhere. It said “wow, its great that you are using playwright. Make sure to not make new browsers for each user or else your scraper will burst cause of the ram usage”. This completely unexpected feedback really made me think cause that is exactly what I was doing up until now. So, I asked it how to fix it. It told me to create a single browser for the lifetime for the app and for each user, simply make a new browser.context() . Well, I was going to do that but I found out that to do that, I first have to turn my whole playwright script into async . I do remember why I had to do it but if I explain that right now then it would take too much time and would be too boring. The simplest explanation that I can give is that sync runs on multiple threads, so if 2 requests coincide, the data could get merged or damaged. Hence, async is like the ultra time managing chef which works on a single thread but manages all the coming requests so that it works even when it is waiting for another process to happen. So, after doing all of that, I think my scraper will not blow up now. This was a precautionary step more than an immediate necessity but its good to handle it early than to regret not adding it after the project goes live. /lead/reinstate ENDPOINT: I also made the reinstate endpoint which acts on duplicate leads. There are 4 specific cases that it looks for: If user provides a flag value -> reinstate all leads with that flag by clearing the flag and pushing changes. If user provides a lead ID -> reinstate the lead with that lead ID by clearing the flag and pushing changes. If none are provided -> reinstate all duplicate leads. By default, a user cannot pass both flag and lead_id . Now that all of my basic endpoints are complete with all the tables covered and linked together successfully. I can now move onto the more deeper logic of the program and work on some more features like call records with the ability for the users to mark the status of the call, etc. and other stuff that I have thought of. Also, I made a new frontend.md to store all my fronted ideas as I make the API and ideas.md as I come up with more useful ideas. commit: 2fbba880236ed9644733666de2cfb4dcacba40cb"}, {"post_id": 71343, "ts": "2026-09-20T17:44:45Z", "hours": 2.5428, "text": "DEVLOG #6 I have been working on the leads route for the past 3 days and this has been a lot of slow progress. I have been coding less and more thinking about the design of how leads are generated. Basically, the 2 endpoints that I have made till now are /leads and /leads/generate-leads . /leads: This endpoint is responsible for simply getting all the leads generated for the team. It simply takes the current user, finds their team and query the database to find all the leads for that specific team ID. This was pretty simple to make and there is not much to describe in this. /leads/generate-leads: This is the endpoint that took a lot of iteration and design changing to get right. The basic idea that I had before making this endpoint was that I use my existing scraper function to scrape the businesses, then check the database to see if the lead already exists (this is the point which take a lot of time to design) and then either add the lead or not. Now it was simple in theory, but there were a lot of questions like - what is the parameter to check if a lead exists?, If a lead exists then should the newly generated lead just be dropped?, if we drop the lead then what about the case when something about a business genuinely changed like its name or something?, what if the user wants to still act on duplicate leads?, etc. I will not go in detail about all the failed attempts at designing the structure for lead generation and I will instead just focus on what design I finally decided. It is basically a flag system which flags duplicate leads and the type of duplicate. we make sure that the user requesting for lead generation is a manager of their team and not an employee (cause employees don’t get to generate leads for the team). we use the scraper to generate the leads. we loop through the newly generated leads. In each pass, we query the database to find if there is an existing lead. Now, I realized that a lead is basically just a phone number. Thus, if a phone number for that specific team already exists in the table then we have a duplicate lead. If we do find a duplicate lead then we move onto the Lead Sorting Logic. Else, we simply add the lead to the table as a fresh lead. Finally we commit all the changes to the leads table after the loop completes. Lead Sorting Logic If name and website changed -> Flag = 0 If only name changed -> Flag = 1 If only website changed -> Flag = 2 if completely duplicate (nothing changed) -> flag = 3 This sorting makes it easy for the UI to display duplicate leads to the user and I am planning on adding a feature where the user can decide if they want to reinstate the duplicate leads for assigning quota. Next, I will be working on some bugs that I think are in my current logic. Right now, I am asking the user to prematurely enter the number of leads they want to generate without knowing how many businesses were even scraped for their query. For example, if someone wants 100 leads for their query but we could only scrape 80 then there will be an error according to the current logic. Therefore, I am thinking to split the lead generation into 2 parts. First the scraping part and then the generating part. For that, I simply need to restructure my single scraper function into 2 separate functions. Then I will call the 2 functions one by one in 2 endpoints."}, {"post_id": 69552, "ts": "2026-09-17T09:20:28Z", "hours": 1.7425, "text": "DEVLOG #5 I found out about JSON Web Tokens (JWT) and how they are used to help in user authentication. I learned more about JWT and found out about the python library Pyjwt . What I made is basically this: new auth_utils.py file which contains the following functions: create_access_token , decode_token , get_current_user . Reformed auth routes’ response to carry the JWT inside the response body during the signup/login. .env file with a secret key for the JWT. AUTHENTICATION LOGIC: The basic logic behind the JWT is that we get the access token and provide every user with their own unique access token at login and signup. This token is then stored in the LoclStorage (for now this is the plan but this being a fronted thing, it is subject to changes) but I am currently wondering about the security of the token being stored in the LocalStorage because a simple JS script can retrieve the token. Also, given that I am not utilizing a refresh token for this version of the program and the 30 day expiration of the access token, the token getting leaked is a big safety hazard so I am looking at utilizing httpOnly cookies instead which cannot be accessed by any rogue JS script running in the browser and would insert the token inside the request header automatically without any backend side JS script having to look into LocalStorage first. Next, we have a function whose sole job is to authenticate the token and then return the user from the database. This function would be called by all the endpoints the user has access to so that we first authenticate the session of the user before providing the user with any data. This means that if you are on /home and you want to go to /leads, /leads will first authenticate the token given to you and only then will you be able to access that endpoint. HOW IT WORKS: create_access_token : takes in the user id and uses it along with the secret key to encode the JWT. The payload consists of the user id and the expiration which is set to 30 days from when the token is issued. ㅤㅤㅤㅤㅤ decode_token : simply takes in the token, secret key and the algorithm used for encoding to decode the JWT back into the original payload used during encoding. ㅤㅤㅤㅤㅤ get_current_user : This is the function that authenticates the user session. Basically it has 3 jobs: Use HTTPBearer() to extract the authorization credentials from the Bearer <Authorization> in the request header. Here, the credentials in the header will be the JWT for the user. Decode the extracted token using decode_token function to get the payload back and handle all the errors like ExpiredSignatureError , InvalidTokenError , etc. Finally, use the payload to extract the user ID and query the database to find that user and return the user object. Now, I will be working on making the leads route which finishes off all the current tables that I have made. ㅤ commit: 1ad521f0218e9b6c8f9ebe908e01e6a578c78643"}, {"post_id": 68522, "ts": "2026-09-15T08:03:48Z", "hours": 1.1356, "text": "DEVLOG #4 I reformed the Signup API flow and also made the Login endpoint. The new signup API flow goes something like this: PAGE-1: Enter full name Enter email set password Submit button when submit button is clicked, we query /users/check-email to check if the account already exists. If account exists, the API simply returns a status_code=400, detail=\"email taken\" else it returns {\"available\": True} . PAGE-2: Set Username When submit button is clicked, we query /users/check-username to check if the username is available or not. If username is already taken, the API simply returns a status_code=400, detail=\"username taken\" else it returns {\"available\": True} PAGE-3: Choose if signing up as a business or as an individual. PAGE-4: Set team name if applicable. Finally, we have all the required data and data validation to make a new user so we can POST to /users to make a new user. Now, I had to think about this a bit because what if a there is a scenario that while a user is still making their account, they enter a username and go to the on-boarding step with the team name entering and all that stuff. And meanwhile, another user also enters the same username and creates the account by finishing the on-boarding before the first user who has the same username but did not create the account yet? when the user who is currently on on-boarding finishes all the steps, the server errors if there is no second data validation with all the collected data. Hence, I added validation of username and email in the second step too so that this case is handled correctly. I also made the simple login endpoint which takes the email and password and validates the user and their hashed password. I am planning to keep the login a single page and hence there are no live validations I need to make. Thus, everything lives in a single /login endpoint. Next Steps I am also wondering that in the API response, I do not signify anywhere that if the user is currently logged in or not and I do not know how to keep the user logged in until either they sign out or something else so I need to learn that state management too. I will work on that next."}, {"post_id": 68108, "ts": "2026-09-14T15:03:38Z", "hours": 1.4308, "text": "DEVLOG #3 Today I worked on just the signup endpoint and the password hashing. I basically made an endpoint which would take all the collected data: full_name , username , email , hashed_password , role , team_name and use it to create team and user on the database. I have successfully implemented the basic idea that I had but it currently has no error handling like duplicate user checking or existing username. So, what I thought was to keep a single endpoint and do the data validation at the end when the api call is made by querying the database first to check for unique email and username. But, That was not good user flow according to me, and I was looking for something like this: PAGE-1: Enter full name Enter email set password Submit button Then we will internally check if the email exists or not. If it exists show “account already exists, login instead”. If the email does not exist then move into the next page. PAGE-2: Set Username Check if username exists. If username already exists, show the error “username already taken” else move onto the next page. PAGE-3: Choose if signing up as a business or as an individual. PAGE-4: Set team name if applicable. All the data required for the database entry for user creation is complete so after a few more random onboarding steps, commit all the collected data to the database to make the team and the user. Basically this is the whole signup flow that I want with the most basic data collected from the user initially. Now what I want it some way to check the validity live on every page and I do not know how to do that. I will need to display the error messages and all through JS though I don’t know if I can also query the database live through JS to do some live validation. I will not learn this FastAPI concept and try to implement it in my API"}, {"post_id": 67289, "ts": "2026-09-13T11:13:20Z", "hours": 2.0042, "text": "DEVLOG #2 Created all the database models along with database.py with the boilerplate code for making database and tables. Database models that I made: Team -> id , team_name , created_at User -> id , full_name , username , email , hashed_password , role , team_id , solo_team_id , created_at Lead -> id , team_id , name , phone_number , website , rating , created_at I also made some changes to scraper.py by adding more filtering such that: If business does not have any phone number but has a website, lead is added. If business has a phone number but no website, lead still added. if business does not have any phone number or website, it is basically useless and excluded. I have not faced any major challenges yet as it has mostly been boilerplate code straight from the docs or simple repetitive code. To be honest, this has been boring. But, now I will be starting with the FastAPI stuff and actually start making the API and I am very excited for that."}, {"post_id": 66439, "ts": "2026-09-12T08:36:13Z", "hours": 3.9192, "text": "DEVLOG #1 The scraper is something that I had completed a few months back. I made it for my friend’s business. Now, I am trying to expand the scope of this from just a scraper to a full Business platform where a whole team can collaborate on cold-calling with daily quotas and a manager who can view stats about his employees. I also want to make a live chat option to better increase coordination between the team. It is a pretty basic project but a pretty ambitious for me. Right now, I have completed all the error handling and re-enforcing the scraper logic in the 4 hours that I have spent, to make it ready for a web-UI. I will now start working on making the actual API and database for my project. There are 3 basic tables that I have identified: Teams Users Leads I believe that all other features can build on top of these 3 as these are the basic building blocks. Hence, I will start working on making these right now. This is my first time working with FastAPI (earlier I had only used Flask) so there will be a learning gap but I have experience with Flask so I think that transitioning would be easier."}]...
|
Title: LeadGen by @R10 | Stardance
Devlogs:
DEVLO Title: LeadGen by @R10 | Stardance
Devlogs:
DEVLOG #1 The scraper is something that I had completed a few months back. I made it for my friend’s business. Now, I am trying to expand the scope of this from just a scraper to a full Business platform where a whole team can collaborate on cold-calling with daily quotas and a manager who can view stats about his employees. I also want to make a live chat option to better increase coordination between the team. It is a pretty basic project but a pretty ambitious for me. Right now, I have completed all the error handling and re-enforcing the scraper logic in the 4 hours that I have spent, to make it ready for a web-UI. I will now start working on making the actual API and database for my project. There are 3 basic tables that I have identified: Teams Users Leads I believe that all other features can build on top of these 3 as these are the basic building blocks. Hence, I will start working on making these right now. This is my first time working with FastAPI (earlier I had only used Flask) so there will be a learning gap but I have experience with Flask so I think that transitioning would be easier.
DEVLOG #2 Created all the database models along with database.py with the boilerplate code for making database and tables. Database models that I made: Team -> id , team_name , created_at User -> id , full_name , username , email , hashed_password , role , team_id , solo_team_id , created_at Lead -> id , team_id , name , phone_number , website , rating , created_at I also made some changes to scraper.py by adding more filtering such that: If business does not have any phone number but has a website, lead is added. If business has a phone number but no website, lead still added. if business does not have any phone number or website, it is basically useless and excluded. I have not faced any major challenges yet as it has mostly been boilerplate code straight from the docs or simple repetitive code. To be honest, this has been boring. But, now I will be starting with the FastAPI stuff and actually start making the API and I am very excited for that.
DEVLOG #3 Today I worked on just the signup endpoint and the password hashing. I basically made an endpoint which would take all the collected data: full_name , username , email , hashed_password , role , team_name and use it to create team and user on the database. I have successfully implemented the basic idea that I had but it currently has no error handling like duplicate user checking or existing username. So, what I thought was to keep a single endpoint and do the data validation at the end when the api call is made by querying the database first to check for unique email and username. But, That was not good user flow according to me, and I was looking for something like this: PAGE-1: Enter full name Enter email set password Submit button Then we will internally check if the email exists or not. If it exists show “account already exists, login instead”. If the email does not exist then move into the next page. PAGE-2: Set Username Check if username exists. If username already exists, show the error “username already taken” else move onto the next page. PAGE-3: Choose if signing up as a business or as an individual. PAGE-4: Set team name if applicable. All the data required for the database entry for user creation is complete so after a few more random onboarding steps, commit all the collected data to the database to make the team and the user. Basically this is the whole signup flow that I want with the most basic data collected from the user initially. Now what I want it some way to check the validity live on every page and I do not know how to do that. I will need to display the error messages and all through JS though I don’t know if I can also query the database live through JS to do some live validation. I will not learn this FastAPI concept and try to implement it in my API
DEVLOG #4 I reformed the Signup API flow and also made the Login endpoint. The new signup API flow goes something like this: PAGE-1: Enter full name Enter email set password Submit button when submit button is clicked, we query /users/check-email to check if the account already exists. If account exists, the API simply returns a status_code=400, detail="email taken" else it returns {"available": True} . PAGE-2: Set Username When submit button is clicked, we query /users/check-username to check if the username is available or not. If username is already taken, the API simply returns a status_code=400, detail="username taken" else it returns {"available": True} PAGE-3: Choose if signing up as a business or as an individual. PAGE-4: Set team name if applicable. Finally, we have all the required data and data validation to make a new user so we can POST to /users to make a new user. Now, I had to think about this a bit because what if a there is a scenario that while a user is still making their account, they enter a username and go to the on-boarding step with the team name entering and all that stuff. And meanwhile, another user also enters the same username and creates the account by finishing the on-boarding before the first user who has the same username but did not create the account yet? when the user who is currently on on-boarding finishes all the steps, the server errors if there is no second data validation with all the collected data. Hence, I added validation of username and email in the second step too so that this case is handled correctly. I also made the simple login endpoint which takes the email and password and validates the user and their hashed password. I am planning to keep the login a single page and hence there are no live validations I need to make. Thus, everything lives in a single /login endpoint. Next Steps I am also wondering that in the API response, I do not signify anywhere that if the user is currently logged in or not and I do not know how to keep the user logged in until either they sign out or something else so I need to learn that state management too. I will work on that next.
DEVLOG #5 I found out about JSON Web Tokens (JWT) and how they are used to help in user authentication. I learned more about JWT and found out about the python library Pyjwt . What I made is basically this: new auth_utils.py file which contains the following functions: create_access_token , decode_token , get_current_user . Reformed auth routes’ response to carry the JWT inside the response body during the signup/login. .env file with a secret key for the JWT. AUTHENTICATION LOGIC: The basic logic behind the JWT is that we get the access token and provide every user with their own unique access token at login and signup. This token is then stored in the LoclStorage (for now this is the plan but this being a fronted thing, it is subject to changes) but I am currently wondering about the security of the token being stored in the LocalStorage because a simple JS script can retrieve the token. Also, given that I am not utilizing a refresh token for this version of the program and the 30 day expiration of the access token, the token getting leaked is a big safety hazard so I am looking at utilizing httpOnly cookies instead which cannot be accessed by any rogue JS script running in the browser and would insert the token inside the request header automatically without any backend side JS script having to look into LocalStorage first. Next, we have a function whose sole job is to authenticate the token and then return the user from the database. This function would be called by all the endpoints the user has access to so that we first authenticate the session of the user before providing the user with any data. This means that if you are on /home and you want to go to /leads, /leads will first authenticate the token given to you and only then will you be able to access that endpoint. HOW IT WORKS: create_access_token : takes in the user id and uses it along with the secret key to encode the JWT. The payload consists of the user id and the expiration which is set to 30 days from when the token is issued. ㅤㅤㅤㅤㅤ decode_token : simply takes in the token, secret key and the algorithm used for encoding to decode the JWT back into the original payload used during encoding. ㅤㅤㅤㅤㅤ get_current_user : This is the function that authenticates the user session. Basically it has 3 jobs: Use HTTPBearer() to extract the authorization credentials from the Bearer <Authorization> in the request header. Here, the credentials in the header will be the JWT for the user. Decode the extracted token using decode_token function to get the payload back and handle all the errors like ExpiredSignatureError , InvalidTokenError , etc. Finally, use the payload to extract the user ID and query the database to find that user and return the user object. Now, I will be working on making the leads route which finishes off all the current tables that I have made. ㅤ commit: 1ad521f0218e9b6c8f9ebe908e01e6a578c78643
DEVLOG #6 I have been working on the leads route for the past 3 days and this has been a lot of slow progress. I have been coding less and more thinking about the design of how leads are generated. Basically, the 2 endpoints that I have made till now are /leads and /leads/generate-leads . /leads: This endpoint is responsible for simply getting all the leads generated for the team. It simply takes the current user, finds their team and query the database to find all the leads for that specific team ID. This was pretty simple to make and there is not much to describe in this. /leads/generate-leads: This is the endpoint that took a lot of iteration and design changing to get right. The basic idea that I had before making this endpoint was that I use my existing scraper function to scrape the businesses, then check the database to see if the lead already exists (this is the point which take a lot of time to design) and then either add the lead or not. Now it was simple in theory, but there were a lot of questions like - what is the parameter to check if a lead exists?, If a lead exists then should the newly generated lead just be dropped?, if we drop the lead then what about the case when something about a business genuinely changed like its name or something?, what if the user wants to still act on duplicate leads?, etc. I will not go in detail about all the failed attempts at designing the structure for lead generation and I will instead just focus on what design I finally decided. It is basically a flag system which flags duplicate leads and the type of duplicate. we make sure that the user requesting for lead generation is a manager of their team and not an employee (cause employees don’t get to generate leads for the team). we use the scraper to generate the leads. we loop through the newly generated leads. In each pass, we query the database to find if there is an existing lead. Now, I realized that a lead is basically just a phone number. Thus, if a phone number for that specific team already exists in the table then we have a duplicate lead. If we do find a duplicate lead then we move onto the Lead Sorting Logic. Else, we simply add the lead to the table as a fresh lead. Finally we commit all the changes to the leads table after the loop completes. Lead Sorting Logic If name and website changed -> Flag = 0 If only name changed -> Flag = 1 If only website changed -> Flag = 2 if completely duplicate (nothing changed) -> flag = 3 This sorting makes it easy for the UI to display duplicate leads to the user and I am planning on adding a feature where the user can decide if they want to reinstate the duplicate leads for assigning quota. Next, I will be working on some bugs that I think are in my current logic. Right now, I am asking the user to prematurely enter the number of leads they want to generate without knowing how many businesses were even scraped for their query. For example, if someone wants 100 leads for their query but we could only scrape 80 then there will be an error according to the current logic. Therefore, I am thinking to split the lead generation into 2 parts. First the scraping part and then the generating part. For that, I simply need to restructure my single scraper function into 2 separate functions. Then I will call the 2 functions one by one in 2 endpoints.
DEVLOG #7 ㅤ SCRAPER Made a few significant changes to the scraper: Earlier, my scraper was based on the CLI logic where the user will enter their query and then the program will scrape all the businesses for that specific query before asking the user about how many leads they wanted to generate. But, now that I am switching from CLI to web, this logic is broken (even from a CLI perspective this logic was broken). Basically, if there are 124 businesses found for a certain query then the user would have to wait at least 84 seconds (I tested this time and it is not an estimation) for the whole search process and generation. Now this long wait time is because the program is basically asking the user the limit of leads they want to generate but the point of application of that limit is incorrect. For example, if a user only wants 50 leads, then the program would still go through all the 124 businesses and then only generate 50 leads out of those 124. Thus, all the searching and scrolling through the menu takes time. Whereas, now If we instead make it such that the user inputs an upper limit value to their search all along then the time would be significantly improved. For example, If a user only wants 50 leads out of however many there are, we now don’t try to find all the leads and then apply the limit, we instead apply the limit straight at the searching step and then generate all the found leads. Using the same 124 total leads example, now the scraping and lead generation time is only 33 seconds. while randomly talking about my project with gemini (and glazing it), I suddenly got a feedback for it out of nowhere. It said “wow, its great that you are using playwright. Make sure to not make new browsers for each user or else your scraper will burst cause of the ram usage”. This completely unexpected feedback really made me think cause that is exactly what I was doing up until now. So, I asked it how to fix it. It told me to create a single browser for the lifetime for the app and for each user, simply make a new browser.context() . Well, I was going to do that but I found out that to do that, I first have to turn my whole playwright script into async . I do remember why I had to do it but if I explain that right now then it would take too much time and would be too boring. The simplest explanation that I can give is that sync runs on multiple threads, so if 2 requests coincide, the data could get merged or damaged. Hence, async is like the ultra time managing chef which works on a single thread but manages all the coming requests so that it works even when it is waiting for another process to happen. So, after doing all of that, I think my scraper will not blow up now. This was a precautionary step more than an immediate necessity but its good to handle it early than to regret not adding it after the project goes live. /lead/reinstate ENDPOINT: I also made the reinstate endpoint which acts on duplicate leads. There are 4 specific cases that it looks for: If user provides a flag value -> reinstate all leads with that flag by clearing the flag and pushing changes. If user provides a lead ID -> reinstate the lead with that lead ID by clearing the flag and pushing changes. If none are provided -> reinstate all duplicate leads. By default, a user cannot pass both flag and lead_id . Now that all of my basic endpoints are complete with all the tables covered and linked together successfully. I can now move onto the more deeper logic of the program and work on some more features like call records with the ability for the users to mark the status of the call, etc. and other stuff that I have thought of. Also, I made a new frontend.md to store all my fronted ideas as I make the API and ideas.md as I come up with more useful ideas. commit: 2fbba880236ed9644733666de2cfb4dcacba40cb
DEVLOG #8 ㅤ It’s been a long time since I wrote my last journal and that is because I just didn’t feel like writing a journal. It just seemed like too much work. I was also busy studying so I could not code and journal as frequently but I have made significant changes to my Lead handling ideas and I would like to share them. ㅤ LEAD GENERATION CHANGES Basically, I have decided on a flow where a user can send multiple queries at the same time to generate leads from and choose the number of leads that they want to generate for each query. This would make work faster if a user wants to target a diverse set of businesses. ㅤ while generating leads, the user will see 2 options. In the first one, the user will be asked to enter their query. In the second one, the user will be asked to add an upper limit to their search. ㅤ There will also be a “+” button at the bottom of each “query box” of “query batch” so that a user can add another query box and mix and match how many leads they want and what queries they want. both questions are required for a query and hence there will be a continue button only when both a re filled. If the user adds a new box then the continue button will again disappear until both of the new questions are filled and so on and so forth. ㅤ BATCHES Every lead generation is now given its own batch. A batch can be managed easily by going to a new “Manage Leads” tab where the user can do all sorts of stuff like view generation history, view all batches, push generated batches to the team, remove batches, break up batches, set deadline on batches, etc. ㅤ LEAD PUBLISHING Earlier, the flow was such that the boss generates the leads and the leads are there for everyone in the team to view immediately. We do not want that. Instead, now the flow is that when the leads are generated, they are only visible to the boss so that they could tune the batch by adding deadlines and stuff. Then, when the boss is ready, they can publish the full batch to the common workspace where all the employees can see the leads and pick them up. ㅤ WORKING ON LEADS once the leads are published, the employees in the team can pick up leads and start working on them. This is the flow that I have decided upon. ㅤ Claim Leads -> Work on Claimed leads -> Log outcome of call -> Complete lead ㅤ It is as simple as that. As per the endpoints we have /leads/{lead_id}/claim to claim a lead, /leads/{lead_id}/log to make a log for a lead and /leads/{lead_id}/complete to complete a lead. There is also an endpoint /leads/{lead_id}/return which is used to return a claimed lead back to the common pool. ㅤ ㅤ code wise there have been a lot of changes like new lead_batches and call_record tables and a lot more stuff so I won’t go in depth about all that because then the journal would be too long and I honestly do not want to spend much time journaling and I would rather spend more time coding. ㅤ While writing this journal, I also thought of a bug for my scraper logic: ㅤ Imagine if a user wants 10 leads for dentists in delhi, the user scrapes and the scraper only looks at the first 10 businesses even though there are 124 businesses. Next, the user wants leads for dentists in Delhi again the next day so the user scrapes again. Now, since the scraper does not know if this business already exists in the database, it will just give the same 10 businesses as before and all get marked as duplicate event though we have other 114 businesses. But, they will never be scraped because the search is linear and the scraper has no context of, this lead exists, leave it. ㅤ So, I think I will be spending my trying to fix this bug somehow as this is pretty serious. ㅤ commit: 45f5e2d4107b23bd4a7609aaf17fd0bafb566bcf...
|
1792734756.4188619
|
1793339556.4188619
|
|
5879
|
Michigan Roadready Alternative by @yefoi | Stardan Michigan Roadready Alternative by @yefoi | Stardance...
|
yefoi
|
0
|
1.85
|
0
|
[]
|
[{"post_id": 7530, "ts": "2026 [{"post_id": 7530, "ts": "2026-06-12T16:02:08Z", "hours": 0.4917, "text": "created the all drives page, start looking into how to actually use react native so I can start making it for real"}, {"post_id": 6981, "ts": "2026-06-11T18:36:27Z", "hours": 1.3539, "text": "I worked on creating some screens for logging in, migrating, and the home page for the app in figma."}]...
|
Title: Michigan Roadready Alternative by @yefoi | Title: Michigan Roadready Alternative by @yefoi | Stardance
Devlogs:
I worked on creating some screens for logging in, migrating, and the home page for the app in figma.
created the all drives page, start looking into how to actually use react native so I can start making it for real...
|
1793166459.1715229
|
1793771259.1715229
|
|
39530
|
Ship Talkers by @SeradedStripes | Stardance
|
SeradedStripes
|
1
|
44.69
|
676
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-17T09:59:54Z", "hours": 41.0, "multiplier": 13.61, "payout": 676, "blessing": "neutral", "text": "I made shiptalkers! A bot that originally allows you to compare your slack time to hackatime time. Previously it was shut down, but I have revived it! With many additions as well. It features a website with a bunch of aggregated stats, a cool api and sweet leaderboards. Even a search system! It processes all messages in hack club slack to calculate slack time. Although if you opt in to it storing your messages as well, it will be way more accurate and will stay updated faster.", "repo": "https://github.com/SeradedStripes/shiptalkers", "demo": "https://shiptalkers.kirze.de"}]...
|
[{"post_id": 75302, "ts": "202 [{"post_id": 75302, "ts": "2026-09-29T18:01:58Z", "hours": 1.6317, "text": "Updates Quite a bit this time that are important. First up I added a link to the github in the header and fixed the bot to actually follow slack rate limtis. Added a board for linked accounts page. Big thing now. Added consent gated slack scraping. Basically fd told me i need people to opt in. And finally the last big thing I added channel blacklisting as a shipwright and a goi linked through OAuth so I had to blacklist all sw channels and goi channel as they have sensitive messages in them"}, {"post_id": 74418, "ts": "2026-09-27T11:00:42Z", "hours": 2.0608, "text": "Update time Been quite a bit since ship and i decided because of the stardance extension I’m going to do more devlogs. Mainly i added an opt out feature and realized the new defaults for scraping speeds were shit so i undid them. I then decided that because there were channels with fucking 3000 thread roots, i lowered the age limit of threads to 7 days instead of 30 days. I nuked opt out/opt in and nuked the manual apps needed for scraping. There is now an OAuth system with slack, you can link your account and it will scrape your messages in private channels you are in. works without this though. Added a max scraping per minute variable so i dont strain my internet connection a bunch. And finally I also added the [PRIVATE] and [ARCHIVED] badges to channels"}, {"post_id": 69557, "ts": "2026-09-17T09:48:52Z", "hours": 2.6625, "text": "Updates Should be final update before I ship Added all users and all channels boards Renamed Leaderboards to just Boards Normalized colum widths for those boards and added pagination We were hammering hackatime, it now has a hard limit of 50k hackatime reqs/day and 1req/sec Massive update to stats page so it displays more info and is more relevant. Changed total time to total hours where the time was hours and added total time in format of years/months/ etc. as well We sped up docker builds a bunch We retry known private hackatime users ever 30 days now Fixed a shared message-scrape lock The response when you ask the bot for time now includes a link to your/person your checking time ofs stats page I think thats about it"}, {"post_id": 68061, "ts": "2026-09-14T13:34:14Z", "hours": 3.9675, "text": "Updates Quite a bunch of updates this time, a lot of work has been done, and i feel like I was nearly killed by fd. Okay so Shiptalkers is now opt in. Most of this devlogs time was spent: Adding a message locator system, basically maps out where every message is instead of storing content of it Process messages without storing message content Backfill message content for users who opt in Add a custom shiptalkers id assigned to messages so we dont store sender id of each message. To opt in you can send “Opt In” in the shiptalkers channel Apart from that I migrated from in file SQL to a proper migrations system. General updates Added mobile support Massive cleanup of AGENTS.md 0 Full fetch and scrape all messages run in parrallel now. Archived channels card for stats page. Now persists thread rescans, added a thread timestamp index, persisted thread high-water marks. Reduced repeated history-wide scans Added durable consent backfill progress and fixed backfills blocking fresh message checks Fixed a per message update of the shared database counter row. It now updates per statement Score recomputation is now hourly instead of passly. I think thats about it. Main point of this is that we got scraping to be way faster, and we got opt in requirement."}, {"post_id": 64872, "ts": "2026-09-09T15:53:56Z", "hours": 2.1342, "text": "Updates Bunch of API related things this time Added api docs API key section in account tab and APIT key account endpoints Added CSRF support (lmao i dont know why i didnt have it before) Made the api key response be a popup in account page and centered it in a later commit Added Stats API endpoint Added Max Age to cookies Website and slack bot now share 1 source of truth for stats (stupid that i didnt have it like this already) Added granting perms to other api keys New user joins are now picked up in real time. Thats about it"}, {"post_id": 62009, "ts": "2026-09-05T06:41:19Z", "hours": 0.9625, "text": "Updates Really short devlog this time. Added Error logging for session_query Resumable channel sweeps Use a new action for build & deploys Workflows are also greatly increased with speed"}, {"post_id": 60402, "ts": "2026-09-02T18:19:48Z", "hours": 3.8992, "text": "Alot of updates this time Updates Brand new scraper crate separate from app, dk if I have mentioned it before in devlogs. It does slack and hackatime scraping all in one so we can have the main app deploys not interrupt scrapes. Updates^2 Added “a” keyword - Alias for “all time” Updated settings.rs and example.env to fit new defaults Fixed refresh_daily_stats failing on a second Fixed a bunch of ::bigint needing to be everywhere a sum() was decoded switched scraper to mimalloc allocator Replaced ts with real message_tis / 1000000 (I dont know if i put enough/too many zeros here) Fixed slack time recomputing in new postgredb Precomputes page stats now Removed a useless half-hourly job ON CONFLICT now only fires when counts actually change Added DB available probe to tests Better logging (disabled timestamps in logger) Added a mark_seen dedupe Updated hackatime sync logging to be less taking up all logs Added zstd + drop duplicate tables Removed zstd as postgre18-alpine does not come with it and I am not rescraping slack Only the scraper can init tables now I don’t think im missing anything else i did, If I am though then sorry gois Also see in one of the images below is total ram and cpu usage. somehow the postgre db is using over 4.5G of ram"}, {"post_id": 55696, "ts": "2026-08-27T17:39:34Z", "hours": 2.3453, "text": "Updates Mighta lowkey forgot to be doing devlogs again… Anyway Updates^2 Basically any keyword for time works now Cargo Chef is now used for docker Updated AGENTS.md No longer requires hackatime data to display slack time data. Ported everything from clickhouse to postgresql but havent deployed that yet You can now mention other people to get their stats I think thats it Might be wrong on that tho. Anyway I got better from being sick last week and im sick again Also used @mahad in screenshot below, def not an excuse just for a random pung"}, {"post_id": 50981, "ts": "2026-08-20T13:52:57Z", "hours": 1.0983, "text": "Updates We still sick (not much better today) but i got some work done Updates^2 Split a bunch of existing code into separate files for maintainability added font caching parallel resyncs (hackatime) More memory/CPU optimizations in the code (I lowkey forgot what i changed for this Thats it for now"}, {"post_id": 50495, "ts": "2026-08-19T17:34:53Z", "hours": 1.4911, "text": "A decent length devlog this time So recently I have been sick so i got less time. (Wish me to get better soon) Anyway enough of that, on to the changes: Updates Fixed authless hackatime syncing Using the spans api of hackatime so we get all data for time specific commands fix SQL and rust helper dividing by 1000000 Wrapped the entire sum(if(…)) in toUInt64(), which fixed the slack bot reporting wrong time from public hackatime syncing change. It makes it so clickhouse sees a single output type regardless of what it infers inside. Thats about it"}, {"post_id": 47761, "ts": "2026-08-15T22:05:51Z", "hours": 1.8011, "text": "Updates We swapped aws-lc-rs for ring futures swapped for futures-util nuked tower crate & lowered what is pulled for tokio Brought back dependabot auto merge Added cool charts Nuked cool charts Stats page changed again (wip) Broke hackatime time syncing when i tried to make it not need auth (tmrw me problem) Added page streaming and incremantal word totals"}, {"post_id": 47444, "ts": "2026-08-15T11:36:12Z", "hours": 2.1614, "text": "Updates improving my devlog to hour ratio Anyway.. New db scrape is completed! Major changes Top words leaderboard Leaderboard search system Updated stats page (see below) Added a combined leaderboard (hackatime + slack time) Added backups in coolify Minor repo restructure (moved shiptalkers-app to its own shiptalkers-app/ dir) Added gzip support for slack api scrapers im lowkey running out of things to add… Drop any suggestions in the comments"}, {"post_id": 45844, "ts": "2026-08-12T15:56:53Z", "hours": 2.9381, "text": "Updates Tad bit of time that i forgot to log progressively. Anyway DB got corrupted We rescraping dis shi rn Added a whole new formula (multiple times actually) Added tests for formula Did a bunch of fixes to try and save corrupted db Afterwards i just nuked it and we started rescraping yesterday Made ini_tables probe slack_messages_by_user first Added default clickhouse values into the rust app Now recomputes stats page cache every 30s Fixed UNKNOWN_IDENTIFIER: ‘chars’ (Yeah i had claude do this one) Added a better system to add new slack keys to the env, instead of 1 big env var, its now, SLACK_BOT_TOKEN_X=xoxb…. Where X is token number made it a shared work queue instead of static round robin sharding for scraper Switched to a mimalloc allocator from glibc It now does backfills for channels and users in parallel Added a system for incase hackatime goes down Did a commit for one new keyboard being “last 2 months” It also now scrapes reactions"}, {"post_id": 43402, "ts": "2026-08-08T16:58:43Z", "hours": 2.14, "text": "Updates Added proper test system More keywords Heavily sped up per user pages & stats page Updates stats ui to mostly show 5 decs for db size in gib added a display load time in ms to footer Nuked the admin panel Dependabot & PR labeler system(s) We now use alpine base for docker We got a tests system now I think thats it, idk tho"}, {"post_id": 43170, "ts": "2026-08-08T09:04:47Z", "hours": 3.83, "text": "Updates May have forgot to be doing devlogs Anyway Actual thread scanning and actually scraping its replies Recconect system for run_socket so the slack bot part stops dying Added an admin panel Is bot and Is Deleted acc tags to make leaderboard better Slack_app_creation script (to scrape with more tokens.. faster) Added error support from slack Proper slack stats time computation for in channel image Scan older threads support (up to 30 days) If slack stops sending periodic pings then slack bot auto reconnects Displays coding time as hours and minutes instead of just minutes DB schema updates"}, {"post_id": 40194, "ts": "2026-08-03T16:25:15Z", "hours": 3.8114, "text": "Oops, forgot to devlog for a bit Anyway Updates its online it works Round robin support for multiple tokens for > speed it replies in channel (ship-talkers channel) downgraded clickhouse to 26.4 for my older server added a proper health check endpoint Optimized slack messages daily Realized conversations.history supports 999 per request instead of just 100 msgs Auto deploy system Limited resources for clickhouse Consistant rescrape checks w/ round robin support ofc Thats about it i think Oh yeah it finished the full slack scrape Next up Changing scrape system for privacy reasons (maybe) more scrape accs QOL features Idk gang"}, {"post_id": 39345, "ts": "2026-08-02T08:05:59Z", "hours": 1.7075, "text": "Updates As usual we got a bunch of features Search system Channel search User Search Per user stats page Per channel stats page Hackatime/HCA login systems Header & Footer Added a cool banner at top of the page to show its scraping for initial scrape Fix docker failing due to forgeting to COPY templates for it Added scopes needed for everything to readme Switched out the purple for a soft pink Still not done scraping"}, {"post_id": 38890, "ts": "2026-08-01T13:41:10Z", "hours": 1.4708, "text": "Updates Docker stuff Better concurrency system Replaced hand rolled bucket Two queue system for need to be scraped and already scraped checking Show total db size in stats page Backfilling for already scraped channels Top chatters and top shiptalkers tables in stats page Move all styling to a css file Add the css file to the repo as i forgot to include it in the move all styling to css file commit Use askama crate for server side rendering to remove javascript in website remove dead code and dead crates Create AGENTS.md Syslink CLAUDE.md to AGENTS.md Create clippy.toml Create a justfile Create CONTRIBUTING.md Add expected environment to contributing file Realize slack api sucks for the millionth time Fix things that i was ignoring and just lint needed me to fix to not error outs Scraping is coming along good too over 1k channels done 14.8k to go"}, {"post_id": 38777, "ts": "2026-08-01T10:43:33Z", "hours": 1.6328, "text": "Updates Archived Channel ID scraping I then reverted that change 2 days later after how stupid it was No more infinite scan loops Message scraping support Auto dedupe Better scraping Better logging Thread Scraping Then better thread scraping Finally Thread reply scraping in background"}, {"post_id": 35126, "ts": "2026-07-26T11:24:54Z", "hours": 1.0536, "text": "Updates We got it scraping total channel count so far Proper list Link up stats page to clickhouse Fix it not pushing to clickhouse often enough Start off with scraping total channel count Docker compose stuff Fun Fact: There is a total of 15,958 channels in Hack Club Slack!"}, {"post_id": 35088, "ts": "2026-07-26T09:20:49Z", "hours": 0.275, "text": "Updates Basic project setup"}]...
|
Title: Ship Talkers by @SeradedStripes | Stardance Title: Ship Talkers by @SeradedStripes | Stardance
Devlogs:
Updates Basic project setup
Updates We got it scraping total channel count so far Proper list Link up stats page to clickhouse Fix it not pushing to clickhouse often enough Start off with scraping total channel count Docker compose stuff Fun Fact: There is a total of 15,958 channels in Hack Club Slack!
Updates Archived Channel ID scraping I then reverted that change 2 days later after how stupid it was No more infinite scan loops Message scraping support Auto dedupe Better scraping Better logging Thread Scraping Then better thread scraping Finally Thread reply scraping in background
Updates Docker stuff Better concurrency system Replaced hand rolled bucket Two queue system for need to be scraped and already scraped checking Show total db size in stats page Backfilling for already scraped channels Top chatters and top shiptalkers tables in stats page Move all styling to a css file Add the css file to the repo as i forgot to include it in the move all styling to css file commit Use askama crate for server side rendering to remove javascript in website remove dead code and dead crates Create AGENTS.md Syslink CLAUDE.md to AGENTS.md Create clippy.toml Create a justfile Create CONTRIBUTING.md Add expected environment to contributing file Realize slack api sucks for the millionth time Fix things that i was ignoring and just lint needed me to fix to not error outs Scraping is coming along good too over 1k channels done 14.8k to go
Updates As usual we got a bunch of features Search system Channel search User Search Per user stats page Per channel stats page Hackatime/HCA login systems Header & Footer Added a cool banner at top of the page to show its scraping for initial scrape Fix docker failing due to forgeting to COPY templates for it Added scopes needed for everything to readme Switched out the purple for a soft pink Still not done scraping
Oops, forgot to devlog for a bit Anyway Updates its online it works Round robin support for multiple tokens for > speed it replies in channel (ship-talkers channel) downgraded clickhouse to 26.4 for my older server added a proper health check endpoint Optimized slack messages daily Realized conversations.history supports 999 per request instead of just 100 msgs Auto deploy system Limited resources for clickhouse Consistant rescrape checks w/ round robin support ofc Thats about it i think Oh yeah it finished the full slack scrape Next up Changing scrape system for privacy reasons (maybe) more scrape accs QOL features Idk gang
Updates May have forgot to be doing devlogs Anyway Actual thread scanning and actually scraping its replies Recconect system for run_socket so the slack bot part stops dying Added an admin panel Is bot and Is Deleted acc tags to make leaderboard better Slack_app_creation script (to scrape with more tokens.. faster) Added error support from slack Proper slack stats time computation for in channel image Scan older threads support (up to 30 days) If slack stops sending periodic pings then slack bot auto reconnects Displays coding time as hours and minutes instead of just minutes DB schema updates
Updates Added proper test system More keywords Heavily sped up per user pages & stats page Updates stats ui to mostly show 5 decs for db size in gib added a display load time in ms to footer Nuked the admin panel Dependabot & PR labeler system(s) We now use alpine base for docker We got a tests system now I think thats it, idk tho
Updates Tad bit of time that i forgot to log progressively. Anyway DB got corrupted We rescraping dis shi rn Added a whole new formula (multiple times actually) Added tests for formula Did a bunch of fixes to try and save corrupted db Afterwards i just nuked it and we started rescraping yesterday Made ini_tables probe slack_messages_by_user first Added default clickhouse values into the rust app Now recomputes stats page cache every 30s Fixed UNKNOWN_IDENTIFIER: ‘chars’ (Yeah i had claude do this one) Added a better system to add new slack keys to the env, instead of 1 big env var, its now, SLACK_BOT_TOKEN_X=xoxb…. Where X is token number made it a shared work queue instead of static round robin sharding for scraper Switched to a mimalloc allocator from glibc It now does backfills for channels and users in parallel Added a system for incase hackatime goes down Did a commit for one new keyboard being “last 2 months” It also now scrapes reactions
Updates improving my devlog to hour ratio Anyway.. New db scrape is completed! Major changes Top words leaderboard Leaderboard search system Updated stats page (see below) Added a combined leaderboard (hackatime + slack time) Added backups in coolify Minor repo restructure (moved shiptalkers-app to its own shiptalkers-app/ dir) Added gzip support for slack api scrapers im lowkey running out of things to add… Drop any suggestions in the comments
Updates We swapped aws-lc-rs for ring futures swapped for futures-util nuked tower crate & lowered what is pulled for tokio Brought back dependabot auto merge Added cool charts Nuked cool charts Stats page changed again (wip) Broke hackatime time syncing when i tried to make it not need auth (tmrw me problem) Added page streaming and incremantal word totals
A decent length devlog this time So recently I have been sick so i got less time. (Wish me to get better soon) Anyway enough of that, on to the changes: Updates Fixed authless hackatime syncing Using the spans api of hackatime so we get all data for time specific commands fix SQL and rust helper dividing by 1000000 Wrapped the entire sum(if(…)) in toUInt64(), which fixed the slack bot reporting wrong time from public hackatime syncing change. It makes it so clickhouse sees a single output type regardless of what it infers inside. Thats about it
Updates We still sick (not much better today) but i got some work done Updates^2 Split a bunch of existing code into separate files for maintainability added font caching parallel resyncs (hackatime) More memory/CPU optimizations in the code (I lowkey forgot what i changed for this Thats it for now
Updates Mighta lowkey forgot to be doing devlogs again… Anyway Updates^2 Basically any keyword for time works now Cargo Chef is now used for docker Updated AGENTS.md No longer requires hackatime data to display slack time data. Ported everything from clickhouse to postgresql but havent deployed that yet You can now mention other people to get their stats I think thats it Might be wrong on that tho. Anyway I got better from being sick last week and im sick again Also used @mahad in screenshot below, def not an excuse just for a random pung
Alot of updates this time Updates Brand new scraper crate separate from app, dk if I have mentioned it before in devlogs. It does slack and hackatime scraping all in one so we can have the main app deploys not interrupt scrapes. Updates^2 Added “a” keyword - Alias for “all time” Updated settings.rs and example.env to fit new defaults Fixed refresh_daily_stats failing on a second Fixed a bunch of ::bigint needing to be everywhere a sum() was decoded switched scraper to mimalloc allocator Replaced ts with real message_tis / 1000000 (I dont know if i put enough/too many zeros here) Fixed slack time recomputing in new postgredb Precomputes page stats now Removed a useless half-hourly job ON CONFLICT now only fires when counts actually change Added DB available probe to tests Better logging (disabled timestamps in logger) Added a mark_seen dedupe Updated hackatime sync logging to be less taking up all logs Added zstd + drop duplicate tables Removed zstd as postgre18-alpine does not come with it and I am not rescraping slack Only the scraper can init tables now I don’t think im missing anything else i did, If I am though then sorry gois Also see in one of the images below is total ram and cpu usage. somehow the postgre db is using over 4.5G of ram
Updates Really short devlog this time. Added Error logging for session_query Resumable channel sweeps Use a new action for build & deploys Workflows are also greatly increased with speed
Updates Bunch of API related things this time Added api docs API key section in account tab and APIT key account endpoints Added CSRF support (lmao i dont know why i didnt have it before) Made the api key response be a popup in account page and centered it in a later commit Added Stats API endpoint Added Max Age to cookies Website and slack bot now share 1 source of truth for stats (stupid that i didnt have it like this already) Added granting perms to other api keys New user joins are now picked up in real time. Thats about it
Updates Quite a bunch of updates this time, a lot of work has been done, and i feel like I was nearly killed by fd. Okay so Shiptalkers is now opt in. Most of this devlogs time was spent: Adding a message locator system, basically maps out where every message is instead of storing content of it Process messages without storing message content Backfill message content for users who opt in Add a custom shiptalkers id assigned to messages so we dont store sender id of each message. To opt in you can send “Opt In” in the shiptalkers channel Apart from that I migrated from in file SQL to a proper migrations system. General updates Added mobile support Massive cleanup of AGENTS.md 0 Full fetch and scrape all messages run in parrallel now. Archived channels card for stats page. Now persists thread rescans, added a thread timestamp index, persisted thread high-water marks. Reduced repeated history-wide scans Added durable consent backfill progress and fixed backfills blocking fresh message checks Fixed a per message update of the shared database counter row. It now updates per statement Score recomputation is now hourly instead of passly. I think thats about it. Main point of this is that we got scraping to be way faster, and we got opt in requirement.
Updates Should be final update before I ship Added all users and all channels boards Renamed Leaderboards to just Boards Normalized colum widths for those boards and added pagination We were hammering hackatime, it now has a hard limit of 50k hackatime reqs/day and 1req/sec Massive update to stats page so it displays more info and is more relevant. Changed total time to total hours where the time was hours and added total time in format of years/months/ etc. as well We sped up docker builds a bunch We retry known private hackatime users ever 30 days now Fixed a shared message-scrape lock The response when you ask the bot for time now includes a link to your/person your checking time ofs stats page I think thats about it
Update time Been quite a bit since ship and i decided because of the stardance extension I’m going to do more devlogs. Mainly i added an opt out feature and realized the new defaults for scraping speeds were shit so i undid them. I then decided that because there were channels with fucking 3000 thread roots, i lowered the age limit of threads to 7 days instead of 30 days. I nuked opt out/opt in and nuked the manual apps needed for scraping. There is now an OAuth system with slack, you can link your account and it will scrape your messages in private channels you are in. works without this though. Added a max scraping per minute variable so i dont strain my internet connection a bunch. And finally I also added the [PRIVATE] and [ARCHIVED] badges to channels
Updates Quite a bit this time that are important. First up I added a link to the github in the header and fixed the bot to actually follow slack rate limtis. Added a board for linked accounts page. Big thing now. Added consent gated slack scraping. Basically fd told me i need people to opt in. And finally the last big thing I added channel blacklisting as a shipwright and a goi linked through OAuth so I had to blacklist all sw channels and goi channel as they have sensitive messages in them
Ships:
I made shiptalkers! A bot that originally allows you to compare your slack time to hackatime time. Previously it was shut down, but I have revived it! With many additions as well. It features a website with a bunch of aggregated stats, a cool api and sweet leaderboards. Even a search system! It processes all messages in hack club slack to calculate slack time. Although if you opt in to it storing your messages as well, it will be way more accurate and will stay updated faster....
|
1793152403.4358275
|
1793238803.4358275
|
|
939
|
LUNAR-HAL by @INiNiDS | Stardance
|
INiNiDS
|
1
|
78.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T18:18:07Z", "hours": 78.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finally shipping this! It honestly took forever and I burned out twice along the way, but I pushed through to get it over the finish line. Try out the live demo or grab the local build. Heads up: the web demo might feel super sluggish since the models are running on Heroku, so expect some delay. Also, all demo sessions share the same persistent worlds! Have Fun!", "repo": "https://github.com/ininids/lunar-hal", "demo": "https://lnhal.ininids.in.rs"}]...
|
[{"post_id": 75310, "ts": "202 [{"post_id": 75310, "ts": "2026-09-29T18:16:50Z", "hours": 5.1756, "text": "Alright, final devlog! Went all-in on bug squashing for this one—crushed a ton of issues, finally got CI completely green and stable, cleared out all the CodeQL alerts, and pushed the demo build. So yeah… I’m officially shipping now!"}, {"post_id": 68044, "ts": "2026-09-14T12:49:45Z", "hours": 12.1378, "text": "DevLog #9: Checkpoint Hardening & Stage 5 GNN Kinematics Convergence * This session was focused on a deep technical milestone: diagnosing a critical engine staging bug in LUNAR-HAL and driving the Stellar GNN-kinematics pipeline through the completion of Stage 5. 1. 🛠️ Staging Architecture & Atomic Checkpoint RCA (Rust) Diagnosed and resolved a critical issue in the --resume workflow where staging logic triggered a self-copy ( src == dst ), truncating output checkpoint weights upon restart. Implemented robust canonical path checking ( std::fs: :canonicalize ) to ensure fully atomic weight persistence across interruption signals ( SIGINT / SIGTERM ). Hardened checkpoint state serialization, eliminating filesystem race conditions during runtime hot-reloads. 2. Stage 5: GNN-Kinematics Training Executed the 200-epoch training run for the galactic velocity prediction model ($v_x, v_y, v_z$ derived from positions + photometry). Validated host telemetry: stable VRAM footprint on local NVIDIA GeForce RTX 5070 (~3.1 GB / 12 GB allocated) with optimal throughput (~30s / epoch). 3. Loss & Convergence Verification Train Loss: Decreased to ~0.7660 . Validation Loss: Reached a clean, stable quasi-stationary plateau at ~0.7694 . Physics Constraint: Invariant equilibrium maintained throughout ( phys_loss ≈ 0.7700 ), demonstrating high generalization without overfitting."}, {"post_id": 45625, "ts": "2026-08-12T07:29:27Z", "hours": 3.5756, "text": "* 🚀 DevLog #8: The Great Pivot — From Game to Technical Stellar Platform * The mission has changed. Following the deployment of the WebOS in DevLog #7, we realized that the “game” mechanics were holding back the true potential of the engine. This update marks our transition from a simulation with combat elements to a high-fidelity technical platform for stellar generation, research, and visualization. We have officially executed the transition plan, gutting the “game” and hardening the “platform.” The Great Purge: lunar-stellar-core The era of lunar-game-backend is over. We have performed a git mv on the heart of the engine to establish a strict architectural boundary. Logic Extraction: We have completely removed all traces of Enemies, Projectiles, HP, Attacks, and the “Attention Map.” The simulation no longer cares if you are “watching” a star; it only cares about the physics. The Core: The new lunar-stellar-core crate is now framework-agnostic. It handles only the technical state: camera math, sector caching, and the pipeline results. Terminology Shift: “World” is now “StarScene.” It’s no longer a level; it’s a coordinate-stable dataset. Unified Multi-Platform Deployment We’ve consolidated our frontend logic. Instead of separate builds, we now have a single Managed Frontend Service with a unified builder. Target Switching: Through the lns utility, we can now hot-swap between web , desktop , and android targets. Android Integration: The platform now supports Android NDK/SDK. We’ve replaced mouse-only logic with Pointer Events , enabling touch-based pan/zoom/selection. Runtime Config: The backend now dynamically injects the correct URL (handling the 10.0.2.2 emulator trap) based on the active platform. Sandbox 2.0: The Admin Overlay The Sandbox is no longer a separate copy of the simulation. It has evolved into a Meta-Management Shell for the real frontend. The Iframe Bridge: The Sandbox now embeds the live lunar-frontend via an iframe. Communication Protocol: We implemented a versioned postMessage protocol in lunar-structures . The Sandbox sends Admin Commands (CreateStar, SetCamera) and receives Scene Events (StarSelected). Permanent SIREN Gallery & Drag-and-Drop We’ve moved from “latest renders” to a persistent filesystem-based catalog . Atomic Persistence: Stars created via AI or manual tools are now saved as GalleryStar DTOs. Each star gets its own directory with metadata, SIREN textures, and thumbnails. True Drag-and-Drop: We’ve implemented a custom drag-session in the WebOS. You can now drag a star from the Gallery into the Sandbox to insert it into the live scene, and vice versa. Found Issues The transition hasn’t been without its casualties. Two “boss-level” bugs have appeared during the implementation of the new WebOS logic: Sandbox Handshake & OS Crash: Currently, the Sandbox is failing to “see” the Frontend service through the iframe bridge. Even worse, attempting to initialize the connection often results in a total OS-level hang , crashing the Testbench entirely. We are currently investigating if this is a circular dependency in the backend or a massive memory leak during the handshake. The “Minimize” Trap: While we implemented WindowLifecycle to keep applications alive in the background using display: none , we hit a critical logic error. Once an app is minimized, the “un-minimize” (maximize) function fails to trigger . The app remains in a state of digital limbo, perfectly preserved but completely inaccessible."}, {"post_id": 41159, "ts": "2026-08-05T06:03:25Z", "hours": 3.4289, "text": "DevLog #7: WebOS Evolution, The Black Room, and “lns” Orchestration This update marks a fundamental shift in how we interact with the simulation ecosystem. We have moved away from static dashboards to a fully dynamic WebOS environment within lunar-testbench , alongside a complete overhaul of our launching utility. Lunar-Testbench: The WebOS Overhaul The Testbench has been reimagined as a “Black Room” —a dark, immersive workspace where everything begins with three spotlights. The Spotlight Mechanic The interface features three dormant flashlights. Service Ignition: Clicking a spotlight “turns it on” and launches its corresponding backend service. Dynamic App Injection: Once a service is active, the specific applications depending on that service manifest below the spotlight. The Sandbox: Our most complex tool, the Sandbox , now requires all three services to be active simultaneously, setting the stage for deep-system integration in future updates. The Dock To manage the chaos of multiple windows, we’ve implemented a Bottom Dock . Every running application is pinned here, allowing for seamless switching between training, validation, and live simulation environments. Orchestration: From “lunar-start” to “lns” The way we boot the engine has been streamlined. We’ve stripped the heavy lifting out of the primary entry point to create a more modular startup flow. lns Utility: lunar-start has been evolved into lns —a lightweight micro-utility. Its sole purpose is to initialize the Testbench and trigger the backend. lunar-start-backend: This is a new, dedicated service that acts as the primary launcher. It monitors and manages the lifecycle of all other applications within the suite, ensuring that when you click a service in the UI, the backend is ready to deploy it."}, {"post_id": 31372, "ts": "2026-07-19T18:15:40Z", "hours": 8.1406, "text": "🚀 DevLog #6: Hyper-Optimization, Core Threat Integration, and New Swarm Archetypes ⚙️ Optimization: The Fight for Nanoseconds With the transition to a full 3D environment and manual entity manipulation, the load on the CPU and memory bus grew exponentially. So we tried to optimize as much as possible. 👾 Integration: Enemies in the Core Loop Previously, hostile entities existed only as isolated test units (testbench). Now, enemy fleets are officially hardcoded into the base simulation loop. Autonomous Background AI: Enemy behavior is no longer bound to the player’s viewport. Strategic fleets live their own lives in the background—conquering systems and harvesting resources—even if you are editing a galaxy millions of light-years away. Dynamic Pathfinding: The toughest challenge was stabilizing AI during manual manipulation. If you grab a planet and toss it in front of an enemy dreadnought, the pathfinding algorithm instantly recalculates a safe bypass vector based on the newly altered gravitational signature of that sector. 🛸 New Threat Archetypes: The Utility-Driven AI Each enemy now operates on a Utility AI system, calculating its next move based on distance, health ratios, and—most importantly—the Player’s Attention . We have categorized the hostile forces into six distinct tactical archetypes: Archetype Role Logic Highlight The Tank Heavy Juggernaut Berserk Logic: Its utility increases as its health drops. It becomes more aggressive the harder you try to kill it. The Thief Rapid Raider Attention-Aware: Only strikes stars when the player is looking away ( t_neglect > 15.0 ). High speed (20.0) allows for quick hit-and-run ops. The Invisible Stealth Saboteur Adaptive Camouflage: Maintains $0.05$ visibility. Only reveals itself when the player’s cursor “scans” over it or during brief power-grid flickers. The Scavenger Opportunistic Parasite Pack Mentality: Heavily prioritizes stars that are already under attack by other units to “steal” the resources. The Backstabber Chaos Agent Infighting: If it detects a fellow enemy with $<35 % $ HP, it will betray its own kind to secure the kill for itself. The Coward Skittish Scout Self-Preservation: Immediately generates an escape vector if the player’s “God-Hand” (cursor) gets too close or a Tank enters its vicinity. 🧠 The “Attention Map” Integration The most advanced part of this integration is how these entities interact with the Lunar-Frontend . We don’t just track positions; we track the player’s focus: d_mouse Factor: Enemies calculate their distance to your cursor. Thieves and Cowards use this to decide when to flee or stay in the shadows. t_neglect Metric: The simulation tracks how long it’s been since you last interacted with a specific star. The longer a sector is neglected, the higher the “utility” for an invasion force to move in. ⚔️ Combat Mechanics: Physical Projectiles vs. Direct Damage To keep the simulation performant while maintaining visual fidelity: Star Assaults: Enemies fire physical Projectile entities. Each has its own speed, radius, and damage value, allowing players to potentially intercept them or warp them with gravitational anomalies. Internal Infighting: When enemies like the Backstabber turn on their allies, the damage is processed via an optimized EnemyDamage buffer, bypassing heavy projectile physics for internal “swarm” calculations. Note: ISP issues and local routing to the Hack Club site still make uploading updates feel like sending signals through a dense asteroid belt."}, {"post_id": 12966, "ts": "2026-06-21T06:54:53Z", "hours": 18.7053, "text": "DevLog #5: God-Mode Editor, Crate Separation, and Stealth Features Following the development of “Mission Control,” the project has transitioned into a full 3D environment. The cosmos is no longer just being generated; it can now be manipulated in real-time. Project “Lunar-Hal”: God-Mode Editor The new 3D editor allows for direct manipulation of the simulation rather than just monitoring metrics through the TestBench. Free-Fly Mode: A fully functional in-engine 3D editor. Users can toggle Creator Mode to navigate through stellar clusters at high speeds. Real-Time Manipulation: Selecting a star allows for immediate overrides of mass, spectral class, and luminosity. The SIREN engine recalculates astrophysics on the fly, updating the frontend visuals without performance drops. Architecture: The Great Crate Separation To manage codebase complexity, the backend has undergone a significant architectural refactor. All core gameplay logic has been isolated into a dedicated, independent Rust crate. Modular Design: Rendering overhead and editor scaffolding are now separated from pure game rules, physics, and state machines. Improved Compilation: Logic changes no longer require recompiling the entire project. Crates now compile in isolation, allowing for faster iteration and cleaner incremental builds. Inventory System and Stealth Mechanics Work has begun on a functional inventory system designed to hold “Creator Tools.” This system moves beyond traditional item management into world manipulation. Drag-and-Drop Reality: Mechanics are being implemented to allow users to grab celestial bodies directly from the viewport to rearrange solar systems manually. Entity Interaction: These telekinetic mechanics are also being tested on combat entities. This allows for manual interaction with hostile fleets, such as testing physics logic by moving units into gravitational anomalies like black hole event horizons. Lunar-Frontend: Enhanced UI The UI has been updated to accommodate the new editor and inventory capabilities: Creator Widgets: The modular sidebar now includes inspection panels for editor controls and inventory management. Optimized Streaming: The frontend provides a seamless bridge between TestBench metrics and the heavy 3D viewport, maintaining high performance during active manipulation. Roadmap The next phase of development will focus on: Running heavy simulations of billions of stars in background threads while maintaining editor stability. Stabilizing enemy pathfinding during manual entity manipulation. Preparing the architecture for multiplayer synchronization. Note: DevLog updates may be sporadic due to local ISP and network routing issues affecting access to the Hack Club site. Space logistics are complex, but terrestrial routing remains a significant challenge."}, {"post_id": 7982, "ts": "2026-06-13T09:54:00Z", "hours": 10.8433, "text": "🚀 DevLog #4: The God Mode Dashboard & Stellar Genesis! If Day 3 was about plugging the matrix straight into the engine’s spine, today we built the ultimate command center around it. No more chaos, no more manual config-wrangling via terminal. We just deployed a full-scale infrastructure for total cosmic control! Here is the tactical breakdown of what just dropped in the engineering bay: ⚙️ Project “TestBench”: Total Control & Validation We got tired of guessing what’s actually happening inside our AI’s digital brains, so we built TestBench—the ultimate proving ground for complete testing, training, and validation of every single AI model in the project. Backend Fusion: The whole thing is hardwired straight into our reactive Rust backend. God-Tier UX: Now, benchmarking a dataset, checking loss curves, validating weights, or fine-tuning a model is a matter of a few clicks without ever leaving the ecosystem. Real-time telemetry monitoring. Honestly? It’s clean, it’s seamless, and it just works. 🌟 Meet SIREN: The Star Architect Our AI fleet just got a massive reinforcement. Say hello to our newest model—SIREN. Her sole, monumental objective is the procedural generation of the stars themselves. No more random glowing spheres. SIREN calculates physics, luminosity, spectral classes, and spawns unique, structured astrophysical objects. The cosmos isn’t just procedural anymore; it’s beautifully complex and scientifically backed. 🎛️ Lunar-Frontend: The Creator’s Control Panel A cosmic backend deserves a killer visual interface. We gave lunar-frontend a massive upgrade to make managing this madness an absolute breeze: The Sidebar: We coded a modular, highly responsive sidebar. All your tools, model toggles, and data streams are now neatly organized and right at your fingertips. Next Stop: Unleashing SIREN onto the global map, syncing its generation directly with TestBench metrics, and forcing the frontend to smoothly render billions of new star systems without dropping a single frame! 🚀"}, {"post_id": 4775, "ts": "2026-06-08T08:22:17Z", "hours": 9.8683, "text": "🚀 DevLog #3: The Neural Awakening & Backend Fusion! 🪐 Day 2 was chaos, but Day 3? We just plugged the matrix straight into the spine of the engine! 🧠✨ Remember that “confused toaster” from the last devlog? Yeah, well, it just evolved into a full-blown stellar intellect. The pipeline is locked, loaded, and absolutely cooking. Here is the tactical breakdown of what just dropped in the engineering bay: 🌌 The Big Brain Upgrade (Model & Data): We didn’t just tweak the model; we completely rebuilt its reality. We scraped, cleaned, and injected a massive new dataset, pushing our local parameter model to the absolute limit. No more hallucinating dead stars — lnai now actually understands the cosmic data it’s processing. 🔗 The Great Backend Fusion: The neural net is officially out of the sandbox and merged with the core Rust backend! We wired the prediction pipelines directly into our engine architecture. It’s fast, it’s memory-safe, and it operates with zero friction. Data is flowing from the neural layers to the backend loops in real-time. 🏎️ Zero Meltdown, Pure Performance: Training and running local models usually turns your rig into a literal space heater, but we optimized the living hell out of the inference pipelines. The memory footprint is clean, the tokens are flying, and your GPU can actually breathe while rendering the cosmos. The foundation is solid, the telemetry is clean, and the local universe finally has a brain that doesn’t just work — it thinks . Next stop: weaponizing this intelligence for procedural generation and forcing that flight physics engine to respect the laws of space! 🛰️🔥"}, {"post_id": 1972, "ts": "2026-06-04T07:13:17Z", "hours": 2.9592, "text": "🚀 DevLog #2: Neural Overdrive & Brainstorming LUNAR-AI! 🪐 Day 1 is in the books, and we are officially cooking! We’re pushing the boundaries of our infinite, local-first universe, and things are getting wild in the engineering bay. Here is the lowdown on what just dropped: 🧠 Project LUNAR-AI (lnai) is ALIVE: We officially laid down the first lines of code for our core AI driver! The mission? Giving your local universe a brain. No external API calls, no corporate clouds—just raw, local intelligence. 📉 Reality Check (The Results): Okay, look… right now, the results are, let’s say, highly questionable . It’s giving “confused toaster” more than “galactic supercomputer,” but hey, Rome wasn’t built in a day, and an infinite universe needs a little chaos first. 🛠️ Absolute Grind Mode: The output might be mid right now, but the workflow is at an all-time high. We are working 25/7, refactoring the neural pipelines, and optimizing the backend to make sure this local LLM integration doesn’t melt your PC. The brain is wired, the bugs are being hunted, and the grind never stops. Next stop: making lnai actually smart and finally getting that flight physics engine to behave! 🛰️✨"}, {"post_id": 717, "ts": "2026-06-02T09:35:55Z", "hours": 3.0953, "text": "🚀 DevLog #1: Ignition & Cosmic Foundations for LUNAR-HAL! 🪐 Day 0 is officially complete. We are building an infinite, AI-driven space sandbox powered completely by your local hardware, and the base is locked down: 🌌 Mission Control: Prepared the repository, set up community standards, and went full open-source under the AGPL v3 license to keep our local engine free forever. 💻 Frontend Setup: Fired up the project using Rust + Dioxus! Built the core architecture and launched the first three foundational viewports: Home, About, and Contact. 🛠️ The Manifesto: Designed a killer glassmorphic UI layout and integrated our “Broke-Tech” framework—proudly rendering procedural worlds directly on your GPU. Zero server costs, zero latency, infinite universe. Next stop: implementing the flight physics and interactive star canvas! 🛰️✨"}]...
|
Title: LUNAR-HAL by @INiNiDS | Stardance
Devlogs: Title: LUNAR-HAL by @INiNiDS | Stardance
Devlogs:
🚀 DevLog #1: Ignition & Cosmic Foundations for LUNAR-HAL! 🪐 Day 0 is officially complete. We are building an infinite, AI-driven space sandbox powered completely by your local hardware, and the base is locked down: 🌌 Mission Control: Prepared the repository, set up community standards, and went full open-source under the AGPL v3 license to keep our local engine free forever. 💻 Frontend Setup: Fired up the project using Rust + Dioxus! Built the core architecture and launched the first three foundational viewports: Home, About, and Contact. 🛠️ The Manifesto: Designed a killer glassmorphic UI layout and integrated our “Broke-Tech” framework—proudly rendering procedural worlds directly on your GPU. Zero server costs, zero latency, infinite universe. Next stop: implementing the flight physics and interactive star canvas! 🛰️✨
🚀 DevLog #2: Neural Overdrive & Brainstorming LUNAR-AI! 🪐 Day 1 is in the books, and we are officially cooking! We’re pushing the boundaries of our infinite, local-first universe, and things are getting wild in the engineering bay. Here is the lowdown on what just dropped: 🧠 Project LUNAR-AI (lnai) is ALIVE: We officially laid down the first lines of code for our core AI driver! The mission? Giving your local universe a brain. No external API calls, no corporate clouds—just raw, local intelligence. 📉 Reality Check (The Results): Okay, look… right now, the results are, let’s say, highly questionable . It’s giving “confused toaster” more than “galactic supercomputer,” but hey, Rome wasn’t built in a day, and an infinite universe needs a little chaos first. 🛠️ Absolute Grind Mode: The output might be mid right now, but the workflow is at an all-time high. We are working 25/7, refactoring the neural pipelines, and optimizing the backend to make sure this local LLM integration doesn’t melt your PC. The brain is wired, the bugs are being hunted, and the grind never stops. Next stop: making lnai actually smart and finally getting that flight physics engine to behave! 🛰️✨
🚀 DevLog #3: The Neural Awakening & Backend Fusion! 🪐 Day 2 was chaos, but Day 3? We just plugged the matrix straight into the spine of the engine! 🧠✨ Remember that “confused toaster” from the last devlog? Yeah, well, it just evolved into a full-blown stellar intellect. The pipeline is locked, loaded, and absolutely cooking. Here is the tactical breakdown of what just dropped in the engineering bay: 🌌 The Big Brain Upgrade (Model & Data): We didn’t just tweak the model; we completely rebuilt its reality. We scraped, cleaned, and injected a massive new dataset, pushing our local parameter model to the absolute limit. No more hallucinating dead stars — lnai now actually understands the cosmic data it’s processing. 🔗 The Great Backend Fusion: The neural net is officially out of the sandbox and merged with the core Rust backend! We wired the prediction pipelines directly into our engine architecture. It’s fast, it’s memory-safe, and it operates with zero friction. Data is flowing from the neural layers to the backend loops in real-time. 🏎️ Zero Meltdown, Pure Performance: Training and running local models usually turns your rig into a literal space heater, but we optimized the living hell out of the inference pipelines. The memory footprint is clean, the tokens are flying, and your GPU can actually breathe while rendering the cosmos. The foundation is solid, the telemetry is clean, and the local universe finally has a brain that doesn’t just work — it thinks . Next stop: weaponizing this intelligence for procedural generation and forcing that flight physics engine to respect the laws of space! 🛰️🔥
🚀 DevLog #4: The God Mode Dashboard & Stellar Genesis! If Day 3 was about plugging the matrix straight into the engine’s spine, today we built the ultimate command center around it. No more chaos, no more manual config-wrangling via terminal. We just deployed a full-scale infrastructure for total cosmic control! Here is the tactical breakdown of what just dropped in the engineering bay: ⚙️ Project “TestBench”: Total Control & Validation We got tired of guessing what’s actually happening inside our AI’s digital brains, so we built TestBench—the ultimate proving ground for complete testing, training, and validation of every single AI model in the project. Backend Fusion: The whole thing is hardwired straight into our reactive Rust backend. God-Tier UX: Now, benchmarking a dataset, checking loss curves, validating weights, or fine-tuning a model is a matter of a few clicks without ever leaving the ecosystem. Real-time telemetry monitoring. Honestly? It’s clean, it’s seamless, and it just works. 🌟 Meet SIREN: The Star Architect Our AI fleet just got a massive reinforcement. Say hello to our newest model—SIREN. Her sole, monumental objective is the procedural generation of the stars themselves. No more random glowing spheres. SIREN calculates physics, luminosity, spectral classes, and spawns unique, structured astrophysical objects. The cosmos isn’t just procedural anymore; it’s beautifully complex and scientifically backed. 🎛️ Lunar-Frontend: The Creator’s Control Panel A cosmic backend deserves a killer visual interface. We gave lunar-frontend a massive upgrade to make managing this madness an absolute breeze: The Sidebar: We coded a modular, highly responsive sidebar. All your tools, model toggles, and data streams are now neatly organized and right at your fingertips. Next Stop: Unleashing SIREN onto the global map, syncing its generation directly with TestBench metrics, and forcing the frontend to smoothly render billions of new star systems without dropping a single frame! 🚀
DevLog #5: God-Mode Editor, Crate Separation, and Stealth Features Following the development of “Mission Control,” the project has transitioned into a full 3D environment. The cosmos is no longer just being generated; it can now be manipulated in real-time. Project “Lunar-Hal”: God-Mode Editor The new 3D editor allows for direct manipulation of the simulation rather than just monitoring metrics through the TestBench. Free-Fly Mode: A fully functional in-engine 3D editor. Users can toggle Creator Mode to navigate through stellar clusters at high speeds. Real-Time Manipulation: Selecting a star allows for immediate overrides of mass, spectral class, and luminosity. The SIREN engine recalculates astrophysics on the fly, updating the frontend visuals without performance drops. Architecture: The Great Crate Separation To manage codebase complexity, the backend has undergone a significant architectural refactor. All core gameplay logic has been isolated into a dedicated, independent Rust crate. Modular Design: Rendering overhead and editor scaffolding are now separated from pure game rules, physics, and state machines. Improved Compilation: Logic changes no longer require recompiling the entire project. Crates now compile in isolation, allowing for faster iteration and cleaner incremental builds. Inventory System and Stealth Mechanics Work has begun on a functional inventory system designed to hold “Creator Tools.” This system moves beyond traditional item management into world manipulation. Drag-and-Drop Reality: Mechanics are being implemented to allow users to grab celestial bodies directly from the viewport to rearrange solar systems manually. Entity Interaction: These telekinetic mechanics are also being tested on combat entities. This allows for manual interaction with hostile fleets, such as testing physics logic by moving units into gravitational anomalies like black hole event horizons. Lunar-Frontend: Enhanced UI The UI has been updated to accommodate the new editor and inventory capabilities: Creator Widgets: The modular sidebar now includes inspection panels for editor controls and inventory management. Optimized Streaming: The frontend provides a seamless bridge between TestBench metrics and the heavy 3D viewport, maintaining high performance during active manipulation. Roadmap The next phase of development will focus on: Running heavy simulations of billions of stars in background threads while maintaining editor stability. Stabilizing enemy pathfinding during manual entity manipulation. Preparing the architecture for multiplayer synchronization. Note: DevLog updates may be sporadic due to local ISP and network routing issues affecting access to the Hack Club site. Space logistics are complex, but terrestrial routing remains a significant challenge.
🚀 DevLog #6: Hyper-Optimization, Core Threat Integration, and New Swarm Archetypes ⚙️ Optimization: The Fight for Nanoseconds With the transition to a full 3D environment and manual entity manipulation, the load on the CPU and memory bus grew exponentially. So we tried to optimize as much as possible. 👾 Integration: Enemies in the Core Loop Previously, hostile entities existed only as isolated test units (testbench). Now, enemy fleets are officially hardcoded into the base simulation loop. Autonomous Background AI: Enemy behavior is no longer bound to the player’s viewport. Strategic fleets live their own lives in the background—conquering systems and harvesting resources—even if you are editing a galaxy millions of light-years away. Dynamic Pathfinding: The toughest challenge was stabilizing AI during manual manipulation. If you grab a planet and toss it in front of an enemy dreadnought, the pathfinding algorithm instantly recalculates a safe bypass vector based on the newly altered gravitational signature of that sector. 🛸 New Threat Archetypes: The Utility-Driven AI Each enemy now operates on a Utility AI system, calculating its next move based on distance, health ratios, and—most importantly—the Player’s Attention . We have categorized the hostile forces into six distinct tactical archetypes: Archetype Role Logic Highlight The Tank Heavy Juggernaut Berserk Logic: Its utility increases as its health drops. It becomes more aggressive the harder you try to kill it. The Thief Rapid Raider Attention-Aware: Only strikes stars when the player is looking away ( t_neglect > 15.0 ). High speed (20.0) allows for quick hit-and-run ops. The Invisible Stealth Saboteur Adaptive Camouflage: Maintains $0.05$ visibility. Only reveals itself when the player’s cursor “scans” over it or during brief power-grid flickers. The Scavenger Opportunistic Parasite Pack Mentality: Heavily prioritizes stars that are already under attack by other units to “steal” the resources. The Backstabber Chaos Agent Infighting: If it detects a fellow enemy with $<35 % $ HP, it will betray its own kind to secure the kill for itself. The Coward Skittish Scout Self-Preservation: Immediately generates an escape vector if the player’s “God-Hand” (cursor) gets too close or a Tank enters its vicinity. 🧠 The “Attention Map” Integration The most advanced part of this integration is how these entities interact with the Lunar-Frontend . We don’t just track positions; we track the player’s focus: d_mouse Factor: Enemies calculate their distance to your cursor. Thieves and Cowards use this to decide when to flee or stay in the shadows. t_neglect Metric: The simulation tracks how long it’s been since you last interacted with a specific star. The longer a sector is neglected, the higher the “utility” for an invasion force to move in. ⚔️ Combat Mechanics: Physical Projectiles vs. Direct Damage To keep the simulation performant while maintaining visual fidelity: Star Assaults: Enemies fire physical Projectile entities. Each has its own speed, radius, and damage value, allowing players to potentially intercept them or warp them with gravitational anomalies. Internal Infighting: When enemies like the Backstabber turn on their allies, the damage is processed via an optimized EnemyDamage buffer, bypassing heavy projectile physics for internal “swarm” calculations. Note: ISP issues and local routing to the Hack Club site still make uploading updates feel like sending signals through a dense asteroid belt.
DevLog #7: WebOS Evolution, The Black Room, and “lns” Orchestration This update marks a fundamental shift in how we interact with the simulation ecosystem. We have moved away from static dashboards to a fully dynamic WebOS environment within lunar-testbench , alongside a complete overhaul of our launching utility. Lunar-Testbench: The WebOS Overhaul The Testbench has been reimagined as a “Black Room” —a dark, immersive workspace where everything begins with three spotlights. The Spotlight Mechanic The interface features three dormant flashlights. Service Ignition: Clicking a spotlight “turns it on” and launches its corresponding backend service. Dynamic App Injection: Once a service is active, the specific applications depending on that service manifest below the spotlight. The Sandbox: Our most complex tool, the Sandbox , now requires all three services to be active simultaneously, setting the stage for deep-system integration in future updates. The Dock To manage the chaos of multiple windows, we’ve implemented a Bottom Dock . Every running application is pinned here, allowing for seamless switching between training, validation, and live simulation environments. Orchestration: From “lunar-start” to “lns” The way we boot the engine has been streamlined. We’ve stripped the heavy lifting out of the primary entry point to create a more modular startup flow. lns Utility: lunar-start has been evolved into lns —a lightweight micro-utility. Its sole purpose is to initialize the Testbench and trigger the backend. lunar-start-backend: This is a new, dedicated service that acts as the primary launcher. It monitors and manages the lifecycle of all other applications within the suite, ensuring that when you click a service in the UI, the backend is ready to deploy it.
* 🚀 DevLog #8: The Great Pivot — From Game to Technical Stellar Platform * The mission has changed. Following the deployment of the WebOS in DevLog #7, we realized that the “game” mechanics were holding back the true potential of the engine. This update marks our transition from a simulation with combat elements to a high-fidelity technical platform for stellar generation, research, and visualization. We have officially executed the transition plan, gutting the “game” and hardening the “platform.” The Great Purge: lunar-stellar-core The era of lunar-game-backend is over. We have performed a git mv on the heart of the engine to establish a strict architectural boundary. Logic Extraction: We have completely removed all traces of Enemies, Projectiles, HP, Attacks, and the “Attention Map.” The simulation no longer cares if you are “watching” a star; it only cares about the physics. The Core: The new lunar-stellar-core crate is now framework-agnostic. It handles only the technical state: camera math, sector caching, and the pipeline results. Terminology Shift: “World” is now “StarScene.” It’s no longer a level; it’s a coordinate-stable dataset. Unified Multi-Platform Deployment We’ve consolidated our frontend logic. Instead of separate builds, we now have a single Managed Frontend Service with a unified builder. Target Switching: Through the lns utility, we can now hot-swap between web , desktop , and android targets. Android Integration: The platform now supports Android NDK/SDK. We’ve replaced mouse-only logic with Pointer Events , enabling touch-based pan/zoom/selection. Runtime Config: The backend now dynamically injects the correct URL (handling the 10.0.2.2 emulator trap) based on the active platform. Sandbox 2.0: The Admin Overlay The Sandbox is no longer a separate copy of the simulation. It has evolved into a Meta-Management Shell for the real frontend. The Iframe Bridge: The Sandbox now embeds the live lunar-frontend via an iframe. Communication Protocol: We implemented a versioned postMessage protocol in lunar-structures . The Sandbox sends Admin Commands (CreateStar, SetCamera) and receives Scene Events (StarSelected). Permanent SIREN Gallery & Drag-and-Drop We’ve moved from “latest renders” to a persistent filesystem-based catalog . Atomic Persistence: Stars created via AI or manual tools are now saved as GalleryStar DTOs. Each star gets its own directory with metadata, SIREN textures, and thumbnails. True Drag-and-Drop: We’ve implemented a custom drag-session in the WebOS. You can now drag a star from the Gallery into the Sandbox to insert it into the live scene, and vice versa. Found Issues The transition hasn’t been without its casualties. Two “boss-level” bugs have appeared during the implementation of the new WebOS logic: Sandbox Handshake & OS Crash: Currently, the Sandbox is failing to “see” the Frontend service through the iframe bridge. Even worse, attempting to initialize the connection often results in a total OS-level hang , crashing the Testbench entirely. We are currently investigating if this is a circular dependency in the backend or a massive memory leak during the handshake. The “Minimize” Trap: While we implemented WindowLifecycle to keep applications alive in the background using display: none , we hit a critical logic error. Once an app is minimized, the “un-minimize” (maximize) function fails to trigger . The app remains in a state of digital limbo, perfectly preserved but completely inaccessible.
DevLog #9: Checkpoint Hardening & Stage 5 GNN Kinematics Convergence * This session was focused on a deep technical milestone: diagnosing a critical engine staging bug in LUNAR-HAL and driving the Stellar GNN-kinematics pipeline through the completion of Stage 5. 1. 🛠️ Staging Architecture & Atomic Checkpoint RCA (Rust) Diagnosed and resolved a critical issue in the --resume workflow where staging logic triggered a self-copy ( src == dst ), truncating output checkpoint weights upon restart. Implemented robust canonical path checking ( std::fs: :canonicalize ) to ensure fully atomic weight persistence across interruption signals ( SIGINT / SIGTERM ). Hardened checkpoint state serialization, eliminating filesystem race conditions during runtime hot-reloads. 2. Stage 5: GNN-Kinematics Training Executed the 200-epoch training run for the galactic velocity prediction model ($v_x, v_y, v_z$ derived from positions + photometry). Validated host telemetry: stable VRAM footprint on local NVIDIA GeForce RTX 5070 (~3.1 GB / 12 GB allocated) with optimal throughput (~30s / epoch). 3. Loss & Convergence Verification Train Loss: Decreased to ~0.7660 . Validation Loss: Reached a clean, stable quasi-stationary plateau at ~0.7694 . Physics Constraint: Invariant equilibrium maintained throughout ( phys_loss ≈ 0.7700 ), demonstrating high generalization without overfitting.
Alright, final devlog! Went all-in on bug squashing for this one—crushed a ton of issues, finally got CI completely green and stable, cleared out all the CodeQL alerts, and pushed the demo build. So yeah… I’m officially shipping now!
Ships:
Finally shipping this! It honestly took forever and I burned out twice along the way, but I pushed through to get it over the finish line. Try out the live demo or grab the local build. Heads up: the web demo might feel super sluggish since the models are running on Heroku, so expect some delay. Also, all demo sessions share the same persistent worlds! Have Fun!...
|
1793152252.9342802
|
1793238652.9342802
|
|
66740
|
Python Ollama Chatbot by @GoodAron | Stardance
|
GoodAron
|
0
|
1.46
|
0
|
[]
|
[{"post_id": 75313, "ts": "202 [{"post_id": 75313, "ts": "2026-09-29T18:36:46Z", "hours": 1.1025, "text": "made the ai into a web app, starting now with tool calling setup based on ollama docs"}, {"post_id": 75167, "ts": "2026-09-29T11:03:38Z", "hours": 0.3583, "text": "got started with the project"}]...
|
Title: Python Ollama Chatbot by @GoodAron | Starda Title: Python Ollama Chatbot by @GoodAron | Stardance
Devlogs:
got started with the project
made the ai into a web app, starting now with tool calling setup based on ollama docs...
|
1793101921.9777637
|
1793706721.9777637
|
|
18811
|
Frutiger OS by @ondy | Stardance
|
ondy
|
2
|
33.0
|
256
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T19:00:33Z", "hours": 23.0, "multiplier": 11.03, "payout": 256, "blessing": "neutral", "text": "A web-based operating system based on the infamous Frutiger Aero aesthetic of the mid 00s to early 10s. The reason i made this is that im big fan of this era and skeuomorphism, which i feel got killed by minimalism. some of the cool features: -working desktop environment(dragging apps, selection box, time, taskbar, window management…) -nostalgic boot animation and login -old stylized browser with nostalgic websites -og paint and notes programs -the nostalgic frutiger music player skins we all liked(i wasnt alive back then lol) -parody xbox app where you can play some of the popular games from back then I dont know what else to write here if you are interested check out the github readme.", "repo": "https://github.com/0ndyy/frutiger-os", "demo": "https://0ndyy.github.io/frutiger-os/"}, {"ship_num": 2, "ts": "2026-07-08T21:33:08Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Web based OS inspired by the Frutiger Aero aesthetic during 10s. I really enjoyed tweaking the CSS values to get the aesthetic just right, it was really fun and i implemented modular system for easy creation of new apps/elements, so i am planning on expanding this inti WebOS 2. If you want you can try it out here - https://0ndyy.github.io/frutiger-os/", "repo": "https://github.com/0ndyy/frutiger-os", "demo": "https://0ndyy.github.io/frutiger-os/"}]...
|
[{"post_id": 75315, "ts": "202 [{"post_id": 75315, "ts": "2026-09-29T18:52:06Z", "hours": 2.4547, "text": "Frutiger OS(Hexagons) Frutiger Aero/y2k aesthetic inspired OS devlog 8(final) This is going to be the final devlog before finally shipping this thing, its been great and i learnt a lot especially how to actually get div where i want it😭 Since ast devlog i added some cool new desktop behaviour, web browser and boot animation, you can check it out all in the final video…"}, {"post_id": 75001, "ts": "2026-09-28T20:19:43Z", "hours": 3.3958, "text": "Frutiger OS(Hexagons) Frutiger Aero/y2k aesthetic inspired OS devlog 7 I finally made the most fun part, games yall. Its basically a parody of xbox, i know some of the games are newer and not from the frutiger era but it still fun to mess around with. The games are saved as .swf files and run through ruffle."}, {"post_id": 73315, "ts": "2026-09-24T20:51:13Z", "hours": 4.4122, "text": "Frutiger OS (Hexagons) Frutiger Aero/y2k aesthetic inspired OS devlog 6 For the past couple weeks i havent made much progress since i have been busy with life n stuff, but atleast i managed to make another music player skin. I feel like this one really fits with the whole aquatic/frutiger aero style - what do you think? Some of the time was also spent on making a new games app - stay tuned, hopefully i can finish this in time😭😭 As always, you can try the live demo on the github linked under the project or here - https://github.com/0ndyy/frutiger-os/tree/main"}, {"post_id": 45429, "ts": "2026-08-11T21:19:13Z", "hours": 4.8044, "text": "Frutiger OS (Hexagons) Frutiger Aero/y2k aesthetic inspired OS devlog 5 For the past week i have been working on bringing the og windows media player skins into my os. It was quite a hassle, but eventually i managed to get a modular system working where i can add more skins in the future(stay tuned). For those who want to know how i pulled this off: there is a website - https://wmpskinsarchive.neocities.org/ with all the og skins in their original .wmz format. As it turns out the .wmz is basically just renamed .zip containing all the assets, although the assets are a mess - there is like 30+ images in .bmp format, some scripts, and magenta masks so you have to manually assemble it in photoshop remove the masks and get it to look good. Then you have to play for a while with your css file to correctly position and scale all of the buttons n stuff and thats it. I dont recommend anyone trying this shi😭 note: the reason some of the songs sound weird is because i used bitmap version not to mess with copyright scanning bots"}, {"post_id": 42582, "ts": "2026-08-07T12:24:29Z", "hours": 4.4, "text": "Frutiger OS (Hexagons) Frutiger Aero/y2k aesthetic inspired OS devlog 4 I kinda forgot that im supposted to posts devlogs here, but long story short a lot new things happen since last devlog. I created a new logo, you can actually see it in the background, its a knock off of the old windows logo but HEXAGON, because hexagons are the bestagons. I made(found) a paint app, i actually didnt code the whole thing it uses a cool project called JSPaint, check it out - https://jspaint.app/ Which fits the aesthetic i was going for really well."}, {"post_id": 26894, "ts": "2026-07-11T22:57:53Z", "hours": 3.4314, "text": "Frutiger OS Frutiger Aero/y2k aesthetic inspired OS devlog 3 Today i created a windows 7 inspired working Control Panel app, you can currently -change wallpaper -disable some elements(menubar, taskbar, icons) I really enjoyed tuning some of the CSS components especially buttons and switches(since i implemented the modular system for the main windows in the last devlog) Im stil trying to submit my ship for WebOS 1 but they still wont accept it😭🙏. Appparently it looks like every othe AI slop and has no personality, i really dont understand how could they say something like this, anyway wish me luck."}, {"post_id": 25996, "ts": "2026-07-10T15:28:36Z", "hours": 0.2947, "text": "After first failed ship i realised i completelt forgot about me README.md. Im not too sure why its needed since this project cant be voted yet but its good to start earlt righ? You can check it out here - https://github.com/0ndyy/frutiger-os/blob/main/README.md"}, {"post_id": 24983, "ts": "2026-07-08T21:28:27Z", "hours": 2.0272, "text": "Frutiger OS Frutiger Aero/y2k aesthetic inspired OS devlog 2 My most recent addition was the taskbar, its heavily inspired by windows 7 era and i find it kind of sleek, it was actually way easier to implement than i originally thought. I also created a new settings/control panel app which was pretty quick using the css classes made in last devlog. If you wanna try it out, its avalible at - https://0ndyy.github.io/frutiger-os/"}, {"post_id": 21062, "ts": "2026-07-02T20:50:37Z", "hours": 3.1067, "text": "Frutiger OS Frutiger Aero/y2k aesthetic inspired OS devlog 1 In this devlog i developen my first proper app, its basically a simple notepad, i developed my own system for app creation in css so i can easily add different sizes of windows, sidebars, topbars, buttons exct. and reuse them all. Its still a little rought around the edges and i might need to start handling the performance issue, since the css blur is pretty resource intensive, but we will see what happens."}, {"post_id": 16585, "ts": "2026-06-26T23:36:04Z", "hours": 4.7756, "text": "Frutiger OS Frutiger Aero/y2k aesthetic inspired OS devlog 0 I implemented the basic steps from the tutorial, though since i didnt like some of the solutions i designed a lot of things to be more modular and future proof, let the video speak for itself. Its been quite fun so far, especially playing with the different css elements of the frutiger aesthetic."}]...
|
Title: Frutiger OS by @ondy | Stardance
Devlogs:
Title: Frutiger OS by @ondy | Stardance
Devlogs:
Frutiger OS Frutiger Aero/y2k aesthetic inspired OS devlog 0 I implemented the basic steps from the tutorial, though since i didnt like some of the solutions i designed a lot of things to be more modular and future proof, let the video speak for itself. Its been quite fun so far, especially playing with the different css elements of the frutiger aesthetic.
Frutiger OS Frutiger Aero/y2k aesthetic inspired OS devlog 1 In this devlog i developen my first proper app, its basically a simple notepad, i developed my own system for app creation in css so i can easily add different sizes of windows, sidebars, topbars, buttons exct. and reuse them all. Its still a little rought around the edges and i might need to start handling the performance issue, since the css blur is pretty resource intensive, but we will see what happens.
Frutiger OS Frutiger Aero/y2k aesthetic inspired OS devlog 2 My most recent addition was the taskbar, its heavily inspired by windows 7 era and i find it kind of sleek, it was actually way easier to implement than i originally thought. I also created a new settings/control panel app which was pretty quick using the css classes made in last devlog. If you wanna try it out, its avalible at - https://0ndyy.github.io/frutiger-os/
After first failed ship i realised i completelt forgot about me README.md. Im not too sure why its needed since this project cant be voted yet but its good to start earlt righ? You can check it out here - https://github.com/0ndyy/frutiger-os/blob/main/README.md
Frutiger OS Frutiger Aero/y2k aesthetic inspired OS devlog 3 Today i created a windows 7 inspired working Control Panel app, you can currently -change wallpaper -disable some elements(menubar, taskbar, icons) I really enjoyed tuning some of the CSS components especially buttons and switches(since i implemented the modular system for the main windows in the last devlog) Im stil trying to submit my ship for WebOS 1 but they still wont accept it😭🙏. Appparently it looks like every othe AI slop and has no personality, i really dont understand how could they say something like this, anyway wish me luck.
Frutiger OS (Hexagons) Frutiger Aero/y2k aesthetic inspired OS devlog 4 I kinda forgot that im supposted to posts devlogs here, but long story short a lot new things happen since last devlog. I created a new logo, you can actually see it in the background, its a knock off of the old windows logo but HEXAGON, because hexagons are the bestagons. I made(found) a paint app, i actually didnt code the whole thing it uses a cool project called JSPaint, check it out - https://jspaint.app/ Which fits the aesthetic i was going for really well.
Frutiger OS (Hexagons) Frutiger Aero/y2k aesthetic inspired OS devlog 5 For the past week i have been working on bringing the og windows media player skins into my os. It was quite a hassle, but eventually i managed to get a modular system working where i can add more skins in the future(stay tuned). For those who want to know how i pulled this off: there is a website - https://wmpskinsarchive.neocities.org/ with all the og skins in their original .wmz format. As it turns out the .wmz is basically just renamed .zip containing all the assets, although the assets are a mess - there is like 30+ images in .bmp format, some scripts, and magenta masks so you have to manually assemble it in photoshop remove the masks and get it to look good. Then you have to play for a while with your css file to correctly position and scale all of the buttons n stuff and thats it. I dont recommend anyone trying this shi😭 note: the reason some of the songs sound weird is because i used bitmap version not to mess with copyright scanning bots
Frutiger OS (Hexagons) Frutiger Aero/y2k aesthetic inspired OS devlog 6 For the past couple weeks i havent made much progress since i have been busy with life n stuff, but atleast i managed to make another music player skin. I feel like this one really fits with the whole aquatic/frutiger aero style - what do you think? Some of the time was also spent on making a new games app - stay tuned, hopefully i can finish this in time😭😭 As always, you can try the live demo on the github linked under the project or here - https://github.com/0ndyy/frutiger-os/tree/main
Frutiger OS(Hexagons) Frutiger Aero/y2k aesthetic inspired OS devlog 7 I finally made the most fun part, games yall. Its basically a parody of xbox, i know some of the games are newer and not from the frutiger era but it still fun to mess around with. The games are saved as .swf files and run through ruffle.
Frutiger OS(Hexagons) Frutiger Aero/y2k aesthetic inspired OS devlog 8(final) This is going to be the final devlog before finally shipping this thing, its been great and i learnt a lot especially how to actually get div where i want it😭 Since ast devlog i added some cool new desktop behaviour, web browser and boot animation, you can check it out all in the final video…
Ships:
Web based OS inspired by the Frutiger Aero aesthetic during 10s. I really enjoyed tweaking the CSS values to get the aesthetic just right, it was really fun and i implemented modular system for easy creation of new apps/elements, so i am planning on expanding this inti WebOS 2. If you want you can try it out here - https://0ndyy.github.io/frutiger-os/
A web-based operating system based on the infamous Frutiger Aero aesthetic of the mid 00s to early 10s. The reason i made this is that im big fan of this era and skeuomorphism, which i feel got killed by minimalism. some of the cool features: -working desktop environment(dragging apps, selection box, time, taskbar, window management…) -nostalgic boot animation and login -old stylized browser with nostalgic websites -og paint and notes programs -the nostalgic frutiger music player skins we all liked(i wasnt alive back then lol) -parody xbox app where you can play some of the popular games from back then I dont know what else to write here if you are interested check out the github readme....
|
1793303650.9417076
|
1793390050.9417076
|