|
10984
|
slackbot by @fabianbuthere | Stardance
|
fabianbuthere
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T16:38:52Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "The product is not nearly as exciting as the code for it. I had to work with WebSockets, Slack’s (confusing (at least for me)) API and remote deployment (on Railway), including Docker. All in all a fun little project! And in Rust. I love Rust.", "repo": "https://github.com/Fabian2611/slackbot/", "demo": "https://hackclub.enterprise.slack.com/archives/C0BHJU4LEFJ"}]...
|
[{"post_id": 4328, "ts": "2026 [{"post_id": 4328, "ts": "2026-06-07T16:31:36Z", "hours": 0.6353, "text": "Cat commands are here! yayyy :3"}, {"post_id": 4295, "ts": "2026-06-07T15:40:05Z", "hours": 0.6217, "text": "The bot is running! I first set up shuttle, and only realised it was discontinued a few months ago when I tried to deploy. Now I use railway, and it works!"}, {"post_id": 4257, "ts": "2026-06-07T14:40:35Z", "hours": 2.0675, "text": "The bot is running! Getting the WebSocket to work was rather easy, the Slack API is really hard to navigate though. Not sure if I can host it on Nest (or similar services) if it is not NodeJS, that’s my next stop."}]...
|
Title: slackbot by @fabianbuthere | Stardance
Dev Title: slackbot by @fabianbuthere | Stardance
Devlogs:
The bot is running! Getting the WebSocket to work was rather easy, the Slack API is really hard to navigate though. Not sure if I can host it on Nest (or similar services) if it is not NodeJS, that’s my next stop.
The bot is running! I first set up shuttle, and only realised it was discontinued a few months ago when I tried to deploy. Now I use railway, and it works!
Cat commands are here! yayyy :3
Ships:
The product is not nearly as exciting as the code for it. I had to work with WebSockets, Slack’s (confusing (at least for me)) API and remote deployment (on Railway), including Docker. All in all a fun little project! And in Rust. I love Rust....
|
1793137927.4172523
|
1793224327.4172523
|
|
11035
|
VarFooty by @sansarkarki | Stardance
|
sansarkarki
|
1
|
14.0
|
166
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-19T00:53:39Z", "hours": 14.0, "multiplier": 16.59, "payout": 166, "blessing": "neutral", "text": "I built VarFoot for myself. I’m an incoming freshman trying to make varsity soccer and I was training hard but had no actual system. Clips on Instagram, random YouTube drills, nothing tied together. I built the thing I needed. You go through a baseline assessment when you sign up and it scores you on a Varsity Readiness scale (0-100, where 40 is freshman level, 70 is JV, 100 means you’re ready). From there it builds a day-by-day plan based on your weakest areas and your tryout date. As you complete sessions, the remaining plan regenerates from where you actually are, so it’s not just a static calendar you make on day one and ignore. There’s also 50+ drills with coaching diagrams, a nutrition tab that pulls from real USDA food data (and uses your actual height/weight/age from onboarding to calculate targets), and an AI coach. The coach was the hardest part. It used to show a spinner and dump a response. I rebuilt it so it streams token by token through SSE, with a blinking cursor. It reads your last 6 messages and knows how long the session has been so it doesn’t repeat itself. Getting that working in Next.js took way longer than I thought. The thing I’m most proud of is the roadmap engine. It’s deterministic: takes your scores, sorts your gaps weakest-first, and builds a real plan toward your tryout date. Every time you finish a session it re-runs from your current scores. It actually moves. To try it: on the login page, hit “Explore demo athlete.” It loads my profile (Sansar Karki, incoming freshman, Varsity Readiness 70, biggest gap Speed and Stamina). TODAY shows what’s up next, PLAN shows the full roadmap, TRAIN lets you open a session and go drill by drill, FUEL is nutrition, COACH you can ask anything like “what should I work on this week.” You can also create an account and do the real onboarding if you want to put in your own info.", "repo": "https://github.com/jccollinsdev/varfoot", "demo": "https://varfoot.vercel.app/"}]...
|
[{"post_id": 5524, "ts": "2026 [{"post_id": 5524, "ts": "2026-06-09T10:29:26Z", "hours": 13.9303, "text": "VarFoot is an AI-powered football training PWA. You go through an onboarding assessment, it scores you across skill categories, builds you a personalized training roadmap, and an AI coach responds to you in real time based on your data. I started with a full PWA rebuild, onboarding wizard, 5 tabs, the whole foundation. Since then I have been stacking features on top. The big thing I just shipped is streaming AI coaching. Previously the coach would just spinner and dump a response. Now it uses SSE streaming through a Next.js route and renders the text chunk by chunk with a live blinking cursor, the same way ChatGPT types out responses. The coach also gets context from your last 6 messages and knows your session length so it stops making things up. Nutrition is now personalized. I implemented Mifflin-St Jeor with an activity multiplier so calorie and macro targets are calculated from your actual height, weight, age, and activity level collected during onboarding instead of being hardcoded. Onboarding now ends with an aha moment: a score ring reveals your overall level, your strongest skill, and what to focus on. Before it was just a done screen. I also added sessionStorage draft-saving so if you refresh mid-onboarding your progress is not lost. Drills have a stopwatch mode for sprint work and a fill timer ring that builds toward your varsity benchmark on hold drills. Gap analysis was redesigned as collapsible per-category accordions so you can drill into exactly where you are falling short. The UI is framed as a phone shell on desktop so it always looks like a real mobile app regardless of screen size. Still working on some edge cases in the roadmap logic and refining how the coach uses session context. You can check it out at varfoot.vercel.app Happy coding!"}]...
|
Title: VarFooty by @sansarkarki | Stardance
Devlo Title: VarFooty by @sansarkarki | Stardance
Devlogs:
VarFoot is an AI-powered football training PWA. You go through an onboarding assessment, it scores you across skill categories, builds you a personalized training roadmap, and an AI coach responds to you in real time based on your data. I started with a full PWA rebuild, onboarding wizard, 5 tabs, the whole foundation. Since then I have been stacking features on top. The big thing I just shipped is streaming AI coaching. Previously the coach would just spinner and dump a response. Now it uses SSE streaming through a Next.js route and renders the text chunk by chunk with a live blinking cursor, the same way ChatGPT types out responses. The coach also gets context from your last 6 messages and knows your session length so it stops making things up. Nutrition is now personalized. I implemented Mifflin-St Jeor with an activity multiplier so calorie and macro targets are calculated from your actual height, weight, age, and activity level collected during onboarding instead of being hardcoded. Onboarding now ends with an aha moment: a score ring reveals your overall level, your strongest skill, and what to focus on. Before it was just a done screen. I also added sessionStorage draft-saving so if you refresh mid-onboarding your progress is not lost. Drills have a stopwatch mode for sprint work and a fill timer ring that builds toward your varsity benchmark on hold drills. Gap analysis was redesigned as collapsible per-category accordions so you can drill into exactly where you are falling short. The UI is framed as a phone shell on desktop so it always looks like a real mobile app regardless of screen size. Still working on some edge cases in the roadmap logic and refining how the coach uses session context. You can check it out at varfoot.vercel.app Happy coding!
Ships:
I built VarFoot for myself. I’m an incoming freshman trying to make varsity soccer and I was training hard but had no actual system. Clips on Instagram, random YouTube drills, nothing tied together. I built the thing I needed. You go through a baseline assessment when you sign up and it scores you on a Varsity Readiness scale (0-100, where 40 is freshman level, 70 is JV, 100 means you’re ready). From there it builds a day-by-day plan based on your weakest areas and your tryout date. As you complete sessions, the remaining plan regenerates from where you actually are, so it’s not just a static calendar you make on day one and ignore. There’s also 50+ drills with coaching diagrams, a nutrition tab that pulls from real USDA food data (and uses your actual height/weight/age from onboarding to calculate targets), and an AI coach. The coach was the hardest part. It used to show a spinner and dump a response. I rebuilt it so it streams token by token through SSE, with a blinking cursor. It reads your last 6 messages and knows how long the session has been so it doesn’t repeat itself. Getting that working in Next.js took way longer than I thought. The thing I’m most proud of is the roadmap engine. It’s deterministic: takes your scores, sorts your gaps weakest-first, and builds a real plan toward your tryout date. Every time you finish a session it re-runs from your current scores. It actually moves. To try it: on the login page, hit “Explore demo athlete.” It loads my profile (Sansar Karki, incoming freshman, Varsity Readiness 70, biggest gap Speed and Stamina). TODAY shows what’s up next, PLAN shows the full roadmap, TRAIN lets you open a session and go drill by drill, FUEL is nutrition, COACH you can ask anything like “what should I work on this week.” You can also create an account and do the real onboarding if you want to put in your own info....
|
1793224061.2541513
|
1793310461.2541513
|
|
11054
|
Project Tracker by @JasonC9 | Stardance
|
JasonC9
|
1
|
16.0
|
220
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-11T20:00:58Z", "hours": 16.0, "multiplier": 13.39, "payout": 220, "blessing": "neutral", "text": "I built a project tracker that runs in your browser using HTML, CSS, and JavaScript, where all project data is stored in a projects.json file. The main challenge was making the JavaScript, especially syncing edits across the dashboard, checklist, and editor while avoiding missing or broken code. Some projects don’t have BOMs or journals. To save it properly, you need to download the JSON file and upload it to the website root directory /root , since everything depends on that file for storage.", "repo": "https://github.com/anadskman/Project-Tracker", "demo": "https://anadskman.github.io/ProjectTracker/"}]...
|
[{"post_id": 7026, "ts": "2026 [{"post_id": 7026, "ts": "2026-06-11T19:45:11Z", "hours": 1.6639, "text": "Made checklist page similar as edit page download json and upload to website root to save globally Made mobile Friendly Made github"}, {"post_id": 6817, "ts": "2026-06-11T13:18:38Z", "hours": 1.4869, "text": "made editor have journal/bom buttons edit links edit status dashboard display from json projects page displays from json filled info for blueprint/flavortown in .json To Do Make checklist page Add Database(mightnt do, downloading and uploading the json fill would be easier) Make Github Page!!!"}, {"post_id": 6275, "ts": "2026-06-10T15:31:04Z", "hours": 4.4389, "text": "uploaded boms and journals for blueprint/flavortown Worked on Upload/Edit Page Current Features Edit Projects on right panel and hit save. download the json and replace with current one to save changes outside of local 4 items in the center are editable Add Programs/Projects buttons (Save Locally ATM ) To Do Add image upload/change change local storage to database(last thing) make projects in projects and dashboard pages load from projects.json instead of static make checklist page Add rest of info for blueprint/flavortown in .json"}, {"post_id": 4994, "ts": "2026-06-08T17:16:20Z", "hours": 3.7511, "text": "Completed Made Header Cleaner Dashboard Cleaner Projects Page Collapse button for each section Filter between project status and cost stats display at top of dashboard Fixed journal/bom box sizes made links next to eachother at the bottom Changed Global font to inter Changed color scheme to match and look nicer To Do links for hackatime/lapse upload boms/journals for blueprint and flavortown make upload/edit section make checklist page"}, {"post_id": 4390, "ts": "2026-06-07T18:24:27Z", "hours": 3.0078, "text": "I added a view BOM using a similar system but i ran in to some bugs of course, like the BOM not showing at all, styles not working. At first i was gonna type all the BOMs in as tables one by one but i remembered you can export your BOMs or just use the ones that would of been put in the GitHub. Once everything was looking nice and how i wanted it i did the slower part and copied and pasted it for each and every project and filled in their info. I filled in everything except for the pricing and times on the blueprint and flavortown projects. Additionally i have to upload the BOMs and journals for those projects as well. To Do List: Upload BOMs, Journals, Time, and Prices to Blueprint and Flavortown Projects Possibly make a “frontend” upload control so if others want to use this they can easy add in their own projects into their own copy of the site Possibly Filter option for completed and in progress projects Links section, for lapse or hackatime Cleaner Dashboard, collapse button for projects*(each program its own button)* Stats in the dashboard header to move between hackclub.html and index.html"}, {"post_id": 4216, "ts": "2026-06-07T13:31:35Z", "hours": 2.1431, "text": "Made the project list, and added a Status bar, links to github and hackclub sites, when you click on the project itself it takes you to its own page. I made the stasis page but only with the stopwatch on it so far. its the same setup but i added a total time, cost and the journals. For the journals i used zero-md. Heres the code for that if you wanna use it yourself: <head> script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/zero-md@3?register\"></script> </head> <body> <div class=\"journal\"> <details> <summary>View Journal</summary> <zero-md src=\"journals/Desktop-Stopwatch-JOURNAL.md\"> <template data-append> <style> img { max-width: 20% !important; width: 100% !important; height: auto !important; display: block !important; margin: 10px 0 !important; } </style> </template> </zero-md> </details> </div> </body>"}]...
|
Title: Project Tracker by @JasonC9 | Stardance
De Title: Project Tracker by @JasonC9 | Stardance
Devlogs:
Made the project list, and added a Status bar, links to github and hackclub sites, when you click on the project itself it takes you to its own page. I made the stasis page but only with the stopwatch on it so far. its the same setup but i added a total time, cost and the journals. For the journals i used zero-md. Heres the code for that if you wanna use it yourself: <head> script type="module" src="https://cdn.jsdelivr.net/npm/zero-md@3?register"></script> </head> <body> <div class="journal"> <details> <summary>View Journal</summary> <zero-md src="journals/Desktop-Stopwatch-JOURNAL.md"> <template data-append> <style> img { max-width: 20% !important; width: 100% !important; height: auto !important; display: block !important; margin: 10px 0 !important; } </style> </template> </zero-md> </details> </div> </body>
I added a view BOM using a similar system but i ran in to some bugs of course, like the BOM not showing at all, styles not working. At first i was gonna type all the BOMs in as tables one by one but i remembered you can export your BOMs or just use the ones that would of been put in the GitHub. Once everything was looking nice and how i wanted it i did the slower part and copied and pasted it for each and every project and filled in their info. I filled in everything except for the pricing and times on the blueprint and flavortown projects. Additionally i have to upload the BOMs and journals for those projects as well. To Do List: Upload BOMs, Journals, Time, and Prices to Blueprint and Flavortown Projects Possibly make a “frontend” upload control so if others want to use this they can easy add in their own projects into their own copy of the site Possibly Filter option for completed and in progress projects Links section, for lapse or hackatime Cleaner Dashboard, collapse button for projects*(each program its own button)* Stats in the dashboard header to move between hackclub.html and index.html
Completed Made Header Cleaner Dashboard Cleaner Projects Page Collapse button for each section Filter between project status and cost stats display at top of dashboard Fixed journal/bom box sizes made links next to eachother at the bottom Changed Global font to inter Changed color scheme to match and look nicer To Do links for hackatime/lapse upload boms/journals for blueprint and flavortown make upload/edit section make checklist page
uploaded boms and journals for blueprint/flavortown Worked on Upload/Edit Page Current Features Edit Projects on right panel and hit save. download the json and replace with current one to save changes outside of local 4 items in the center are editable Add Programs/Projects buttons (Save Locally ATM ) To Do Add image upload/change change local storage to database(last thing) make projects in projects and dashboard pages load from projects.json instead of static make checklist page Add rest of info for blueprint/flavortown in .json
made editor have journal/bom buttons edit links edit status dashboard display from json projects page displays from json filled info for blueprint/flavortown in .json To Do Make checklist page Add Database(mightnt do, downloading and uploading the json fill would be easier) Make Github Page!!!
Made checklist page similar as edit page download json and upload to website root to save globally Made mobile Friendly Made github
Ships:
I built a project tracker that runs in your browser using HTML, CSS, and JavaScript, where all project data is stored in a projects.json file. The main challenge was making the JavaScript, especially syncing edits across the dashboard, checklist, and editor while avoiding missing or broken code. Some projects don’t have BOMs or journals. To save it properly, you need to download the JSON file and upload it to the website root directory /root , since everything depends on that file for storage....
|
1793126934.0133808
|
1793213334.0133808
|
|
11135
|
portfolio website by @teteos | Stardance
|
teteos
|
1
|
19.0
|
68
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-24T15:18:58Z", "hours": 19.0, "multiplier": 6.8, "payout": 68, "blessing": "neutral", "text": "I was learning css and htmlat school, so i made this portfolio website. It shows who I am and wot I do, basically a one place with all about me and journey.", "repo": "https://github.com/swyaeta/MPW", "demo": "https://swyaeta.github.io/MPW/"}]...
|
[{"post_id": 13755, "ts": "202 [{"post_id": 13755, "ts": "2026-06-22T15:22:46Z", "hours": 19.2578, "text": "Hey, I’m Swyaeta and this is my personal portfolio website, built completely from scratch using HTML, CSS, and JS.I went full neo-brutalist on this one—think thick black borders everywhere, hard offset shadows that pop into 3D when you hover, bold uppercase headers in Orbitron, and Rajdhani for the body text. I spent a solid hour choosing the light mode colors, landing on a pink, berry, and neon yellow accent that gives major Hello Kitty energy. And because it’s 2026, it obviously has a dark mode toggle.Here’s how the pages break down: index.html (Home): The layout looks like a digital desk with scattered, tilted cards thrown around like sticky notes. The hero card with my name and tagline has extra padding to breathe, plus a massive offset shadow that makes it jump out. explore.html (About): This is where I drop my coding origin story, education, roles, skills, and hobbies. It uses a totally different layout to switch things up, complete with its own navbar and quick back buttons. contact.html (Contact Hub): The final piece. It features a top-left back button, a bright yellow navbar (Home, Learn More, Contact Hub), a live visitor counter, and the dark mode toggle tucked into the corner."}]...
|
Title: portfolio website by @teteos | Stardance
D Title: portfolio website by @teteos | Stardance
Devlogs:
Hey, I’m Swyaeta and this is my personal portfolio website, built completely from scratch using HTML, CSS, and JS.I went full neo-brutalist on this one—think thick black borders everywhere, hard offset shadows that pop into 3D when you hover, bold uppercase headers in Orbitron, and Rajdhani for the body text. I spent a solid hour choosing the light mode colors, landing on a pink, berry, and neon yellow accent that gives major Hello Kitty energy. And because it’s 2026, it obviously has a dark mode toggle.Here’s how the pages break down: index.html (Home): The layout looks like a digital desk with scattered, tilted cards thrown around like sticky notes. The hero card with my name and tagline has extra padding to breathe, plus a massive offset shadow that makes it jump out. explore.html (About): This is where I drop my coding origin story, education, roles, skills, and hobbies. It uses a totally different layout to switch things up, complete with its own navbar and quick back buttons. contact.html (Contact Hub): The final piece. It features a top-left back button, a bright yellow navbar (Home, Learn More, Contact Hub), a live visitor counter, and the dark mode toggle tucked into the corner.
Ships:
I was learning css and htmlat school, so i made this portfolio website. It shows who I am and wot I do, basically a one place with all about me and journey....
|
1792875213.4077547
|
1793739213.4077547
|
|
11152
|
Smooth Upscaler by @DubbsPi | Stardance
|
DubbsPi
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-23T21:02:28Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This took a while for me to figure out how to do. My goal to start was create a super simple sdf for a scene and solve it analytically, but that was being quite a pain. After a while, I found some nice values to put in that game a really nice result. Sadly, when I was coding it, I couldn’t figure out how to not have to reconstruct the entire scene for each pixel, because in theory I could cheat and only make nearby pixels. However, since it is a one step raymarch (or just an instant solve), the overhead of remaking every thing ended being quite negligible, and since the code is all branchless, it didn’t really care about doing that many ops.", "repo": "https://github.com/DubbsPi/Smooth-Upscaling-With-Smoothmin", "demo": "https://github.com/DubbsPi/Smooth-Upscaling-With-Smoothmin/blob/main/README.md"}]...
|
[{"post_id": 14097, "ts": "202 [{"post_id": 14097, "ts": "2026-06-23T02:34:01Z", "hours": 0.2861, "text": "Somehow got it to work. Literally no clue how"}, {"post_id": 14085, "ts": "2026-06-23T02:10:41Z", "hours": 0.8639, "text": "Currently trying to get it to work properly. Gotta love shaders since this is the output for some reason"}]...
|
Title: Smooth Upscaler by @DubbsPi | Stardance
De Title: Smooth Upscaler by @DubbsPi | Stardance
Devlogs:
Currently trying to get it to work properly. Gotta love shaders since this is the output for some reason
Somehow got it to work. Literally no clue how
Ships:
This took a while for me to figure out how to do. My goal to start was create a super simple sdf for a scene and solve it analytically, but that was being quite a pain. After a while, I found some nice values to put in that game a really nice result. Sadly, when I was coding it, I couldn’t figure out how to not have to reconstruct the entire scene for each pixel, because in theory I could cheat and only make nearby pixels. However, since it is a one step raymarch (or just an instant solve), the overhead of remaking every thing ended being quite negligible, and since the code is all branchless, it didn’t really care about doing that many ops....
|
1793141360.365582
|
1793227760.365582
|
|
11161
|
My weather slack bot by @andrea_dezzo08 | Stardanc My weather slack bot by @andrea_dezzo08 | Stardance...
|
andrea_dezzo08
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T15:58:09Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Make sure you to have a location setted on your slack account if you want to use the slacklocation mode", "repo": "https://github.com/Dezzo2000/slack-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0BBP74J3PE"}]...
|
[{"post_id": 11267, "ts": "202 [{"post_id": 11267, "ts": "2026-06-18T12:57:35Z", "hours": 1.0728, "text": "I’ve implemented two new commands: -”/weather_bot-slackLocation”: this command take your profile location and respond with a image of the meteo in that place using the site wttr.in -”/weather_bot-location”: this command needs to be given a location and respond with an image of the meteo in that place using the site wttr.in That the two examples:"}]...
|
Title: My weather slack bot by @andrea_dezzo08 | S Title: My weather slack bot by @andrea_dezzo08 | Stardance
Devlogs:
I’ve implemented two new commands: -”/weather_bot-slackLocation”: this command take your profile location and respond with a image of the meteo in that place using the site wttr.in -”/weather_bot-location”: this command needs to be given a location and respond with an image of the meteo in that place using the site wttr.in That the two examples:
Ships:
Make sure you to have a location setted on your slack account if you want to use the slacklocation mode...
|
1793109116.4507139
|
1793195516.4507139
|
|
11169
|
SupplyChains by @Thijmen | Stardance
|
Thijmen
|
1
|
313.73
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-03T19:48:03Z", "hours": 307.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Supply Chains Supply Chains is a game inspired by Transport Fever and Mindustry, centered around building road networks and logistics chains for construction and mining operations. Features Vehicles, trailers and a garage Route system: pick a source, a destination and a resource, then assign it to a vehicle Multi-step production chains Construction sites, trading, generated terrain, and A* pathfinding with road weights Controls: WASD camera, 1-5 build, right click remove, space pause. Everything else is in HELP.md . Known limitations I’m a solo dev, so some things aren’t finished. The full list is in the README. Hope you enjoy it!", "repo": "https://github.com/thijmenb1/roadbalencer", "demo": "https://github.com/thijmenb1/SupplyChains/releases/tag/v0.1.3"}]...
|
[{"post_id": 80746, "ts": "202 [{"post_id": 80746, "ts": "2026-10-18T18:11:49Z", "hours": 6.7261, "text": "Devlog 27: Tutorial: After feadback I have dicided to make a tutorial and made a couple quality of live updates that made the game easier to understand."}, {"post_id": 76500, "ts": "2026-10-03T19:24:02Z", "hours": 16.3356, "text": "Devlog 26: Last devlog I’ve officially finished the game. It’s been an incredible journey, and I’m pretty happy with the end result. excavator The excavator is now fully functional. You can use it to create mines, which automatically convert into factories once placed. a lot of small things I have done a lot of small things to optimse the game and fix things i coudend test till now Release This is the last devlog I’ll be writing for this project. I want to thank you all for the support. I hope you enjoy playing the game."}, {"post_id": 75365, "ts": "2026-09-29T21:04:49Z", "hours": 9.8742, "text": "Devlog 25: Planes and saving! I’ve locked in over the last 2 days and finished the final 2 of the 3 major systems. I’ve completed the planes (which now spawn when you accept an order) and finished the saving system. Planes/order system I’ve finished the order system, when you accept an order, a plane now spawns a couple thousand pixels out. It flies to the airstrip, loads up at the end of the runway, turns around, and flies away. It doesn’t taxi all the way to the terminal because I just don’t have time for that, but it looks good enough for now. Saving You can now save 3 worlds in the game. Everything gets encrypted and saves all the world values. It was pretty difficult converting some of the arrays filled with instances into dictionaries and back again, but it works on both PC and on the web. whats left: The only things left are the excavator and some smaller things. I’m finishing that all tomorrow, and that will be the last devlog for my ship. The main gameplay loop should be finished by end of day tomorrow. If I can’t finish everything, so be it, I dont have time to work on it anymore if I also want to continu in third space, but I’m happy with how it works now and what I have learned along the way."}, {"post_id": 74558, "ts": "2026-09-27T17:07:31Z", "hours": 10.1058, "text": "Devlog 24: Construction finished and start secunce made I’ve finished the construction system and made the start sequence actually playable by adding a resource box containing 10 iron bars needed to build a terminal. It’s been 2 weeks since my last devlog school and commitments to Third Space have kept me busier, so I’m not 100% certain I’ve captured everything that’s changed. Construction system The construction system now generates building routes that you can assign vehicles to. Resources must be delivered to a building site before construction begins, making the resource system meaningful in actual gameplay. Starting secunce The starting secunce now has a couple of steps: Place the resource box Place a runway Place a terminal Conect the runway with the terminal with a taxiway Place 4 base tiles for the vehicle to spawn on What has to be done: Mine/excavator system ~3h Finish trade system ~3h Save system ~2h Documentation ~2h"}, {"post_id": 67659, "ts": "2026-09-13T20:19:08Z", "hours": 10.0428, "text": "Devlog 23: Vehicle pathfinding and construction I have fixed the vehicle pathfinding (mostly) and I have made the construction system. Vehicle pathfinding I have fixed the vehicle pathfinding and it works now mostly. I say mostly because it breaks when a trailer is equipped, but that is a way smaller thing to fix. Construction system It’s almost done. The system makes it so the resources actually have a function and you now need to deliver resources to a building site before the factory can get built. Still not done I know I said it would be done this weekend and it still isn’t, but it’s almost there. What I still have to do: The mine/excavator ~5h Finishing a couple of systems (like the construction and trade system) ~5h Make a savegame system ~5h Small things ~2h Documentation ~2h So 2 devlogs left, and otherwise I will just ship incomplete because I don’t have time anymore."}, {"post_id": 66739, "ts": "2026-09-12T17:07:44Z", "hours": 10.2911, "text": "Devlog 22: Factory UI and Finished base building I’ve finished base building and am now working on the factory UI. Factory UI I’m working on the factory UI, where you can see the factory’s storage and change its recipe. It’s almost finished. Base building Base building is finished you can now make taxiways and build a warehouse. I’ve also put these into a UI like the factory’s, so it only takes one button. Vehicle physics/pathfinding I’ve spent yet another hour on vehicle physics/pathfinding, and I’ve narrowed it down to a bug in the handoff to the prebaked paths of the factories. Timeline I’m pretty sure I am gooing tho finish it this weekend. What’s left: Vehicle physics ~3h Mines/excavators ~5h Building construction (will reuse most of the factory logic) ~2h Random bugs and small things ~5h"}, {"post_id": 65022, "ts": "2026-09-09T20:33:42Z", "hours": 9.9275, "text": "Devlog 21: Trading Finished, but I’m Stuck I’ve finished the trading system! Trading System The trading system is done. Orders are generated, you can accept them, and accepted trades show up in the UI. The only thing left is adding the planes, but that depends on finishing the base-building system first. Base Building I’ve started working on base building. It’s pretty simple and mostly uses systems that already exist, so it should only take around an hour to fully implement. Stuck Development has been going way slower than I hoped because my codebase is currently a bunch of bandaids stacked on top of each other. I also need to ship this week since Thirdspace starts next week, which means I probably won’t have time to add much polish.So I need your opinion: is it worth delaying the game for another week? 😭 Or should I just ship it? Do you think I’ll still be able to afford the Framework 13 if I release it now? My current plan is to focus on getting the core systems working, fix any major bugs, and leave extra polish and construction vehicles for a post-launch update."}, {"post_id": 62429, "ts": "2026-09-05T19:31:29Z", "hours": 9.9097, "text": "Devlog 20: UI and Trading Got the backend for the trading system done and overhauled the UI to go with it. Trading System I made a trading system. It generates contracts with the recipient’s name, the resource being traded, and the price. Basically the foundation for the aircraft system. UI Redesigned the time and date display because it looked kinda rough. Also switched the economy back to money instead of the resource, makes way more sense for trading. Oh, and vehicles now actually speed up when you speed up time, which is pretty cool. What’s Shipping vs Later I’m not including construction vehicles in the initial release because that’s like 40+ more hours of work and I want to actually finish this before Thirdspace starts (I’m gonna compete too). So yeah, that’s going to a post-launch update. Still gotta do: Get the excavators working (mines) ~5h Finish the trading system ~3h Fix vehicle physics again 😭~5h Random bugs and polish ~5h Hope I can get that done this week. Tryna hit at least 14sd/h so I can hopfuly buy that Framework 13 lol"}, {"post_id": 55609, "ts": "2026-08-27T16:01:00Z", "hours": 4.3333, "text": "Devlog 19: Busy School has started again and I have been geting busy and my motivation is also not that high right now because things take alot longer and dont work like i want to. I think I will delay release to septembere 12th."}, {"post_id": 50634, "ts": "2026-08-19T21:45:22Z", "hours": 9.9061, "text": "Devlog 18: Pre-baked docking paths I’ve implemented pre-baked docking paths for factory entrances to solve some pathfinding issues with vehicle physics. Pre-baked paths The A* pathfinding system was struggling to navigate the sharp corners around factory entrances. When the trailer tried to find its own path through these tight spaces, it would instantly jackknife, not ideal. Rather than spend 50+ hours refining the vehicle physics, I decided to pre-bake specific docking paths to each factory. It’s not a perfect solution visually, but it’s functional and gets the job done. I can always refine this for a post-launch update if needed. I’m still wrapping up the final details of the docking path system before moving on. Mines My next major task is implementing mine logic, which includes the excavator logic and ore detection and depletion. Aircraft After the mining logic I will add the last vital gameplay system the aircraft system which will be responsible trade and contracts with other villages. Release I’m currently deciding whether to push construction vehicle implementation to a post-beta update or delay the release by a week to include them. Construction vehicles aren’t vital to core gameplay, but they would add a lot of polish. I’m still on the fence about this one, it depends on how the mine logic implementation goes."}, {"post_id": 49170, "ts": "2026-08-17T20:13:08Z", "hours": 9.9731, "text": "Devlog 17: Factory placement I’ve built a system for placing factories in the world. Factory placement Turns out it’s an absolute pain in the ass to place objects that are multiple tiles big while also having them connect to multiple Godot terrains. So I had to write a whole system that places every tile separately and keeps track of which tiles are occupied. Roads I also had to rework how roads are placed. Originally, every road type was its own terrain, but that doesn’t work if you want them all to connect to factories and to each other. So now they’re all just one terrain, and a script gives each tile the correct color for its road type. This only works because all the road types are identical in shape just different colors. Aircraft sprites I’ve added several new aircraft sprites: the Bo 105, the Twin Otter, the PC-6, and the H225. I’m planning to add the Chinook and the A400M next, which will round out the aircraft lineup for the beta launch. Release It’s going to be close. I’m not sure I’ll hit my self-imposed deadline, since some things took a lot longer than expected but I might still make it. Either way, I’m not going to rush it. I’d rather ship a week late than release something that gets 5 SD/h because it isn’t polished."}, {"post_id": 47570, "ts": "2026-08-15T15:24:06Z", "hours": 9.8719, "text": "Devlog 16: Factorys and aircraft I’ve reworked the factory sprites and added aircraft. Factory sprites I have made new sprites for every factory execpt the concrete mixing plant. the sprites are now 2x2 or larger so vehicles can realisticly unload there. Aircraft I’ve decided to add aircraft, which will serve as a trading terminal so you can trade with other villages, get contracts, and earn money. Aircraft fit well for this since no other villages spawn in the world. they let you trade with other vilages without them needing to exist in the world. I still need to add alot to make this work but currently I have a working runway building mecanic Next: Factories Next, I still need to build out the factory logic. I plan to make them with custom resources, just like vehicles. I made the new sprites first because I needed to know where (un)loading would need to happen before I could design the logic around it."}, {"post_id": 46516, "ts": "2026-08-13T19:56:21Z", "hours": 10.2989, "text": "Devlog #15: Vehicle rework I’ve completely restructured how vehicles work under the hood. The main goal was to break down the code into readable, reusable pieces. Vehicle componentization The vehicle script had become too large to work with, so I split it into five scripts: vehicleBody.gd , drivetrainComponent.gd , path_movement_component.gd , CargoComponent.gd and attachment_component.gd . This makes the code easier to maintain and reduces the chance of bugs when adding new vehicle types. Vehicle data I have converted the nested Dictionaries into custom resources which makes it easier to add vehicles and less error prone. Pathfinding improvements I tweaked how the pathfinding works by chamfering the corners so vehicles navigate them more smoothly. It doesn’t look quite as I want yet, but combined with animations, it should look acceptable for now. This is something I’ll have to find a more permanent solution for later. Release I’m targeting version 1.0.0 for Saturday, August 22nd. There’s still quite a bit to do, but I think I can make it. I set this deadline because I’ll have less time once school starts."}, {"post_id": 45126, "ts": "2026-08-11T12:41:38Z", "hours": 9.745, "text": "Devlog #14.2: Route system The route system is now done Route sytem The route system turned out to be more complicated than initially expected. I restructured it so the route is calculated centrally in the Global script, and every instance using it reads from there. This keeps things synchronized and maintainable. For now, the system has one mode implemented: a ping-pong mode where vehicles travel back and forth between two set points. Vehicle physics There’s a persistent issue with vehicle physics where they cut corners and miss checkpoints, requiring them to turn around. I’ve set this aside for now to focus on other features, but it’s something I’ll need to fix down the line. I realy have no idea how though I cant seem to find the issue. Whats next The last major things before release are: Linking factories to vehicles so they can load and unload cargo Animating the excavators at the mine Building out the construction system"}, {"post_id": 43506, "ts": "2026-08-08T20:31:23Z", "hours": 10.0922, "text": "Devlog #14: Route UI and system I am currently working on the route ui and the route system. Route UI The route UI is almost done I only need to link it to the route system. Route system I am almost finished with the route system I only have to connect it to the vehicle and rewrite the factory system a bit so it works with the route system. there will be multiple modes distribution of one factory based on demand or a ping pong mode where it drives back and forward between 2 set points. You also will be able to assign vehicles to construction projects but this will come later. Trailer UI The trailer UI is finised you can connect trailers to vehicles via it."}, {"post_id": 41554, "ts": "2026-08-05T20:48:09Z", "hours": 9.8542, "text": "Devlog #13: Vehicles in the world I’ve connected the vehicle systems to the world and to the UI. Vehicle manager I’ve made a vehilce manager script. This manager stores and retrieves vehicle data efficiently by ID, making it easy for the UI and other systems to access vehicle information. Vehicle UI I’ve made a UI where you can see the fuel, total weigth, health and engine load of the vehicle by clicking on it. There are also 2 buttons 1 for selecting a route and the other for coupling a trailer. Spauwing When you buy a vehicle it gets assigned a base tile you now need a base tile per vehicle. Last things Next, I need to implement the route selection and trailer coupling buttons to complete the vehicle system integration as far as I can right now."}, {"post_id": 40212, "ts": "2026-08-03T16:52:56Z", "hours": 10.0389, "text": "Devlog #12: Planing I’ve put together a roadmap for the rest of development. Roadmap I’m planning to release the game in 3 weeks and have laid out a plan accordingly. Vehicle physics I’ve spent about half my time since the last devlog tweaking vehicle physics, and I’ve decided to compromise on a few things — for example, when the trailer jackknifes and gets stuck, it’ll just clip through the vehicle. Shop rework I am almost finished with reworking the shop it now displays all the stats that the vehicle uses"}, {"post_id": 38143, "ts": "2026-07-31T11:37:38Z", "hours": 9.9372, "text": "Devlog #11.2: Trailer Logic and Pathfinding I’ve almost finished all the vehicle logic. Pathfinding A working pathfinding system is now in place using AStarGrid2D . This system works with vehicles both with and without trailers, and handles both on-road and off-road navigation. Trailers Trailers can now couple to vehicles with the correct hitch and follow them around in a realistic manner. The coupling mechanics work as they would in real life. Finishing Touches The vehicle logic still needs some fine-tuning, and I haven’t tested it yet with every vehicle type. I still need to implement the articulation system for the articulated dump truck."}, {"post_id": 37056, "ts": "2026-07-29T15:06:21Z", "hours": 9.8997, "text": "Devlog #11: Vehicle logic I am currently working on the vehcile logic Vehicle logic There are alot of variables now that determain the behavier off the vehicles like engine and weight Sprite scaling I have fixed the scaling of the sprites. Last things for the vehicle logic I still need to implement the trailer logic and pathfinding."}, {"post_id": 35794, "ts": "2026-07-27T13:37:20Z", "hours": 8.4642, "text": "Devlog #10: Factory logic Just returnt from vacation, and i forgot to make a devlog before i went so i dont fully know anymore what i changed. Factory logic I have implemented the core factory system. Factories can now receive resources, process them and output the procesed resource. I haven’t fully tested the logic yet since the UI and vehicle systems ( needed for input/output) aren’t complete. More I have probebly done more but i dont know anymore because i have been a way for a week. What is next My next priority is implementing vehicle logic, but first i need to fix vehicle sprite scaling. Currently all vehicles are 11px wide, which makes a dump truck as wide as a car. I want to make everything a consistent scale (probably 5px = 1m) and update all sprites accordingly for a more realistic appearance."}, {"post_id": 29417, "ts": "2026-07-16T11:03:02Z", "hours": 10.1492, "text": "Devlog #9: Supplychain Been working on the supplychain structere last 2 days, including new sprites Factorys I have made new factory sprites. All sprites are new i am not realy happy with how the steel and wire mill look but the rest look prety good i think. Resources I have also added a couple new resources their are 4 resource types now: copper, coal, gold, iron. The resources spauwn in mixed vains on the map determent by a NoiseTexture2D . What next I am now gooing to work on the logic for the factorys and i want to take a nother look at shadows because the didnt work last time but i have found a otherway to do it i want to try."}, {"post_id": 28327, "ts": "2026-07-14T14:40:52Z", "hours": 9.6725, "text": "Devlog #8.1: UI and lighting Today i have been focesing on the inviorment UI I have now linked up the hole UI. In the last devlog I had already shown the ui but now it also linked up properly with the game. Day Night cycle I am currently implementation a dynamic day/night cycle. Right now, the timing and transitions aren’t lining up the way I want them to, so i still need to do some fine tuning . Shaders / shadows This is where I’ve been strugeling. I’ve been trying to figure out how to implement proper 2D shadows. The issue is that the built in directional shadows in Godot aren’t really designed for top-down games. They make the sun’s shadows look infinitely long and completely distort the perspective. Every custom solution I’ve tried so far looks terrible. I’ve easily spent about 5 hours making custom shaders making a static shadow, but I’m still stuck. If you have any experience with top down 2D lighting or custom shadow shaders in Godot, please let me know in the comments! I could really use some help right now. The biggest problem is that the fastNoiseLite texture doesnt calculate the same in the shader as via the cpu which is also the thing that is hindering me in the ovelays."}, {"post_id": 27357, "ts": "2026-07-12T21:00:50Z", "hours": 9.8522, "text": "Devlog #8: Made UI Been working on the UI this weekend. its nothing special yet but it is good enough for now. Garage menu I have made a menu where you can see all your vehicles. It is pretty simple but i need it for programming the vehicles. Shop UI I have made a shop ui where you can buy the actual vehicles. The are sorted by type. You can see the stats and capabilities and you can decide if you want to buy the vehicles or if you want to finance it. Exstended selected tile UI I have also made some improvments and additions to the selected tile ui, you can now choose a variant if the selceted tiles has them like the factory. You can also see what number is connected to what if you hover over the ui. Overlay I am also working on a overlay so you can see the height, temperature and humidity I am doing this with a shader but it is not working how i expected at the moment because the shader doesn’t line up with my terrain."}, {"post_id": 26555, "ts": "2026-07-11T13:18:41Z", "hours": 5.2389, "text": "Devlog #7: Fresh foundation As i mentioned in devlog #6, i am rebuilding the game in godot. I am almost done with the essentials and development has already almost doubled in speed. World generation I have build a biome system using three noise textures to determine temperature, altitude, and humidity. Each tile uses these values to determine which biome gets drawn. This means the world has natural variation and will hopefully look less boring. It also sets up the foundation for biome specific resources and mechanics down the line forcing players to make a bigger network. Road placement System You can now place roads this works with terrainSets which makes it easyer to draw roads. Roads are the only thing you can place for now. Vehicle Pathfinding I’ve also made a simple pathfinding script using the built-in NavigationAgent2D. The destinations are hardcoded for now. I’ve heard AStarGrid2D might be better suited for grid-based pathfinding in my case, so I’ll be researching how to implement that. What i still have to add Before I’m back where I was with the Greenfoot version, I still need to add: The factorys and their system The trailers physics The garage menu A couple small things"}, {"post_id": 25816, "ts": "2026-07-10T08:51:36Z", "hours": 9.5967, "text": "devlog #6.1 Terrain I am almost finnished with the prosidural generation of the map which is gooing to make for way more variation in the game and beter planing were to place youre base."}, {"post_id": 24611, "ts": "2026-07-08T10:10:39Z", "hours": 31.0889, "text": "Develog #6: switching engines Spent the last week trying to fix the UI and physics in Greenfoot, and honestly? It’s just not happening. Greenfoot wasn’t really built for games like this the UI support is basically non-existent, and getting clickable buttons to work properly is way more of a pain than it should be. And i decided it was no longer wordt fighting for. So I’m switching to Godot. I’ve made some prototypes in it before, so at least I know the basics, and it’s way better suited for what I’m trying to build. The downside is development is gonna be paused for about a week while I set everything back up and rewrite some stuff. But after that? Should be able to move way faster, which will hopefully make up for the lost time."}, {"post_id": 20941, "ts": "2026-07-02T17:53:03Z", "hours": 21.3453, "text": "Devlog #5: Major System Overhaul—Resource Economy & Vehicle Expansion it has been a bit since my last devlog i have some major changes this version. It is nowhere near done yet but it is almost playable. here is what changed: Added two new resources I have added sand and gravel that are used in multiple new recipes Changed the economy: from currency to resources I got rid of the money system because it gave the ability of players just focusing on one resource. Now players need to use all the resources like iron ore, copper ore, sulfer ore, sand, gravel and many more. You have to mine all resources and process them This forces the player to actually spent time making a supplychain with diffrent mines and factories. This way it feels less as a idle and more like a managing game. Added new factories I have added new factories using the factory system i made last time these factories all require two or more inputs. Some factories make concrete from gravel and sand, others make PCBs and other compilicated stuff. I plan to add more in the future but for now it is way beter than before. Added a bunch of vehicles I have added multiple new vehicles: Bulk carriers - Can move ore and loose materials Flatbed trucks - Move finished products (pallets ore IBCs) Trailers - These can attach to diffrent vehicles and extend capacity Concrete truck - Transports concrete Construction Vehicles Dozer - Removes the building Excavator - Now needed for quarries Asphalt Paver - Changes roads from gravel to asphalt I am planing to add more construction vehicles so that every building needs a construction vehicle to build instead of the building just appearing out of nowere. Rebuilt the UI The old ui didnt fit anymore there where to many tiles and the route tab did not support construction equipment, so i made a new tile ui that groupes the tiles in road, factory and mines. I have also made a new vehicle ui which i call the garage this shows The vehicles you own The vehicle shop The abilities of the vehicle: It can hook a trailer It can carry bulk cargo It can carry flatbed cargo It can go offroad It can destroy building It can pave roads It can mine it’s way better than before but you currently cant buy the vehicles yet Roads have levels now Roads can be upgraded: gravel -> cement -> asphalt. Gravel roads are cheap but slow, asphalt is fast but expensive. Upgrading is expensive but can speed up your production or reduce the number of vehicles required to keep the factory full. The road level doesnt effect offroad vehicles and some vehicles may get a max speed in the futer What i still need to do It is the same as last time because i had to many new ideas and no motivation to implent mutch backend stuff Levels / progresion - It is just a sand box now Beter end goal - There is not realy a endgoal A tutorial - The game becomes increasingly complicated so hard without any guidance"}, {"post_id": 13898, "ts": "2026-06-22T19:41:09Z", "hours": 3.8419, "text": "Devlog #4 Finised the factory system Finised the factory ui / recipie ui that now tracks input output and procesing time Added new sprites for the vehicles now have 2 types a dumptruck form the drill and a flatbed to the sellpoint Stil need to add Change detection system Levels / progresion Beter end goal A tutorial Known bugs When you edit the route it deletes it self When you delete a route it doesnt delete the vehicles"}, {"post_id": 12159, "ts": "2026-06-19T21:21:22Z", "hours": 3.4008, "text": "Devlog #3 Added a factory system it is not fully done but there is a basic factory system now so you cant just infinatly take recources from the factroy to the sell point"}, {"post_id": 7675, "ts": "2026-06-12T20:25:33Z", "hours": 12.4575, "text": "Devlog #2 Finshed the game I have finnished the main gameplay loop I still want to add: A tutorial Levels / Progresion More recources and factorys / recipes Better end goal there is nothing to save for right now failsave for when you delete the path with vehicle on it"}, {"post_id": 4420, "ts": "2026-06-07T18:55:50Z", "hours": 1.8458, "text": "Devlog #1 I have made some improvements on the game i am curently making in greenfoot (java engine) i am using this engine because i have used it before for school"}]...
|
Title: SupplyChains by @Thijmen | Stardance
Devlo Title: SupplyChains by @Thijmen | Stardance
Devlogs:
Devlog #1 I have made some improvements on the game i am curently making in greenfoot (java engine) i am using this engine because i have used it before for school
Devlog #2 Finshed the game I have finnished the main gameplay loop I still want to add: A tutorial Levels / Progresion More recources and factorys / recipes Better end goal there is nothing to save for right now failsave for when you delete the path with vehicle on it
Devlog #3 Added a factory system it is not fully done but there is a basic factory system now so you cant just infinatly take recources from the factroy to the sell point
Devlog #4 Finised the factory system Finised the factory ui / recipie ui that now tracks input output and procesing time Added new sprites for the vehicles now have 2 types a dumptruck form the drill and a flatbed to the sellpoint Stil need to add Change detection system Levels / progresion Beter end goal A tutorial Known bugs When you edit the route it deletes it self When you delete a route it doesnt delete the vehicles
Devlog #5: Major System Overhaul—Resource Economy & Vehicle Expansion it has been a bit since my last devlog i have some major changes this version. It is nowhere near done yet but it is almost playable. here is what changed: Added two new resources I have added sand and gravel that are used in multiple new recipes Changed the economy: from currency to resources I got rid of the money system because it gave the ability of players just focusing on one resource. Now players need to use all the resources like iron ore, copper ore, sulfer ore, sand, gravel and many more. You have to mine all resources and process them This forces the player to actually spent time making a supplychain with diffrent mines and factories. This way it feels less as a idle and more like a managing game. Added new factories I have added new factories using the factory system i made last time these factories all require two or more inputs. Some factories make concrete from gravel and sand, others make PCBs and other compilicated stuff. I plan to add more in the future but for now it is way beter than before. Added a bunch of vehicles I have added multiple new vehicles: Bulk carriers - Can move ore and loose materials Flatbed trucks - Move finished products (pallets ore IBCs) Trailers - These can attach to diffrent vehicles and extend capacity Concrete truck - Transports concrete Construction Vehicles Dozer - Removes the building Excavator - Now needed for quarries Asphalt Paver - Changes roads from gravel to asphalt I am planing to add more construction vehicles so that every building needs a construction vehicle to build instead of the building just appearing out of nowere. Rebuilt the UI The old ui didnt fit anymore there where to many tiles and the route tab did not support construction equipment, so i made a new tile ui that groupes the tiles in road, factory and mines. I have also made a new vehicle ui which i call the garage this shows The vehicles you own The vehicle shop The abilities of the vehicle: It can hook a trailer It can carry bulk cargo It can carry flatbed cargo It can go offroad It can destroy building It can pave roads It can mine it’s way better than before but you currently cant buy the vehicles yet Roads have levels now Roads can be upgraded: gravel -> cement -> asphalt. Gravel roads are cheap but slow, asphalt is fast but expensive. Upgrading is expensive but can speed up your production or reduce the number of vehicles required to keep the factory full. The road level doesnt effect offroad vehicles and some vehicles may get a max speed in the futer What i still need to do It is the same as last time because i had to many new ideas and no motivation to implent mutch backend stuff Levels / progresion - It is just a sand box now Beter end goal - There is not realy a endgoal A tutorial - The game becomes increasingly complicated so hard without any guidance
Develog #6: switching engines Spent the last week trying to fix the UI and physics in Greenfoot, and honestly? It’s just not happening. Greenfoot wasn’t really built for games like this the UI support is basically non-existent, and getting clickable buttons to work properly is way more of a pain than it should be. And i decided it was no longer wordt fighting for. So I’m switching to Godot. I’ve made some prototypes in it before, so at least I know the basics, and it’s way better suited for what I’m trying to build. The downside is development is gonna be paused for about a week while I set everything back up and rewrite some stuff. But after that? Should be able to move way faster, which will hopefully make up for the lost time.
devlog #6.1 Terrain I am almost finnished with the prosidural generation of the map which is gooing to make for way more variation in the game and beter planing were to place youre base.
Devlog #7: Fresh foundation As i mentioned in devlog #6, i am rebuilding the game in godot. I am almost done with the essentials and development has already almost doubled in speed. World generation I have build a biome system using three noise textures to determine temperature, altitude, and humidity. Each tile uses these values to determine which biome gets drawn. This means the world has natural variation and will hopefully look less boring. It also sets up the foundation for biome specific resources and mechanics down the line forcing players to make a bigger network. Road placement System You can now place roads this works with terrainSets which makes it easyer to draw roads. Roads are the only thing you can place for now. Vehicle Pathfinding I’ve also made a simple pathfinding script using the built-in NavigationAgent2D. The destinations are hardcoded for now. I’ve heard AStarGrid2D might be better suited for grid-based pathfinding in my case, so I’ll be researching how to implement that. What i still have to add Before I’m back where I was with the Greenfoot version, I still need to add: The factorys and their system The trailers physics The garage menu A couple small things
Devlog #8: Made UI Been working on the UI this weekend. its nothing special yet but it is good enough for now. Garage menu I have made a menu where you can see all your vehicles. It is pretty simple but i need it for programming the vehicles. Shop UI I have made a shop ui where you can buy the actual vehicles. The are sorted by type. You can see the stats and capabilities and you can decide if you want to buy the vehicles or if you want to finance it. Exstended selected tile UI I have also made some improvments and additions to the selected tile ui, you can now choose a variant if the selceted tiles has them like the factory. You can also see what number is connected to what if you hover over the ui. Overlay I am also working on a overlay so you can see the height, temperature and humidity I am doing this with a shader but it is not working how i expected at the moment because the shader doesn’t line up with my terrain.
Devlog #8.1: UI and lighting Today i have been focesing on the inviorment UI I have now linked up the hole UI. In the last devlog I had already shown the ui but now it also linked up properly with the game. Day Night cycle I am currently implementation a dynamic day/night cycle. Right now, the timing and transitions aren’t lining up the way I want them to, so i still need to do some fine tuning . Shaders / shadows This is where I’ve been strugeling. I’ve been trying to figure out how to implement proper 2D shadows. The issue is that the built in directional shadows in Godot aren’t really designed for top-down games. They make the sun’s shadows look infinitely long and completely distort the perspective. Every custom solution I’ve tried so far looks terrible. I’ve easily spent about 5 hours making custom shaders making a static shadow, but I’m still stuck. If you have any experience with top down 2D lighting or custom shadow shaders in Godot, please let me know in the comments! I could really use some help right now. The biggest problem is that the fastNoiseLite texture doesnt calculate the same in the shader as via the cpu which is also the thing that is hindering me in the ovelays.
Devlog #9: Supplychain Been working on the supplychain structere last 2 days, including new sprites Factorys I have made new factory sprites. All sprites are new i am not realy happy with how the steel and wire mill look but the rest look prety good i think. Resources I have also added a couple new resources their are 4 resource types now: copper, coal, gold, iron. The resources spauwn in mixed vains on the map determent by a NoiseTexture2D . What next I am now gooing to work on the logic for the factorys and i want to take a nother look at shadows because the didnt work last time but i have found a otherway to do it i want to try.
Devlog #10: Factory logic Just returnt from vacation, and i forgot to make a devlog before i went so i dont fully know anymore what i changed. Factory logic I have implemented the core factory system. Factories can now receive resources, process them and output the procesed resource. I haven’t fully tested the logic yet since the UI and vehicle systems ( needed for input/output) aren’t complete. More I have probebly done more but i dont know anymore because i have been a way for a week. What is next My next priority is implementing vehicle logic, but first i need to fix vehicle sprite scaling. Currently all vehicles are 11px wide, which makes a dump truck as wide as a car. I want to make everything a consistent scale (probably 5px = 1m) and update all sprites accordingly for a more realistic appearance.
Devlog #11: Vehicle logic I am currently working on the vehcile logic Vehicle logic There are alot of variables now that determain the behavier off the vehicles like engine and weight Sprite scaling I have fixed the scaling of the sprites. Last things for the vehicle logic I still need to implement the trailer logic and pathfinding.
Devlog #11.2: Trailer Logic and Pathfinding I’ve almost finished all the vehicle logic. Pathfinding A working pathfinding system is now in place using AStarGrid2D . This system works with vehicles both with and without trailers, and handles both on-road and off-road navigation. Trailers Trailers can now couple to vehicles with the correct hitch and follow them around in a realistic manner. The coupling mechanics work as they would in real life. Finishing Touches The vehicle logic still needs some fine-tuning, and I haven’t tested it yet with every vehicle type. I still need to implement the articulation system for the articulated dump truck.
Devlog #12: Planing I’ve put together a roadmap for the rest of development. Roadmap I’m planning to release the game in 3 weeks and have laid out a plan accordingly. Vehicle physics I’ve spent about half my time since the last devlog tweaking vehicle physics, and I’ve decided to compromise on a few things — for example, when the trailer jackknifes and gets stuck, it’ll just clip through the vehicle. Shop rework I am almost finished with reworking the shop it now displays all the stats that the vehicle uses
Devlog #13: Vehicles in the world I’ve connected the vehicle systems to the world and to the UI. Vehicle manager I’ve made a vehilce manager script. This manager stores and retrieves vehicle data efficiently by ID, making it easy for the UI and other systems to access vehicle information. Vehicle UI I’ve made a UI where you can see the fuel, total weigth, health and engine load of the vehicle by clicking on it. There are also 2 buttons 1 for selecting a route and the other for coupling a trailer. Spauwing When you buy a vehicle it gets assigned a base tile you now need a base tile per vehicle. Last things Next, I need to implement the route selection and trailer coupling buttons to complete the vehicle system integration as far as I can right now.
Devlog #14: Route UI and system I am currently working on the route ui and the route system. Route UI The route UI is almost done I only need to link it to the route system. Route system I am almost finished with the route system I only have to connect it to the vehicle and rewrite the factory system a bit so it works with the route system. there will be multiple modes distribution of one factory based on demand or a ping pong mode where it drives back and forward between 2 set points. You also will be able to assign vehicles to construction projects but this will come later. Trailer UI The trailer UI is finised you can connect trailers to vehicles via it.
Devlog #14.2: Route system The route system is now done Route sytem The route system turned out to be more complicated than initially expected. I restructured it so the route is calculated centrally in the Global script, and every instance using it reads from there. This keeps things synchronized and maintainable. For now, the system has one mode implemented: a ping-pong mode where vehicles travel back and forth between two set points. Vehicle physics There’s a persistent issue with vehicle physics where they cut corners and miss checkpoints, requiring them to turn around. I’ve set this aside for now to focus on other features, but it’s something I’ll need to fix down the line. I realy have no idea how though I cant seem to find the issue. Whats next The last major things before release are: Linking factories to vehicles so they can load and unload cargo Animating the excavators at the mine Building out the construction system
Devlog #15: Vehicle rework I’ve completely restructured how vehicles work under the hood. The main goal was to break down the code into readable, reusable pieces. Vehicle componentization The vehicle script had become too large to work with, so I split it into five scripts: vehicleBody.gd , drivetrainComponent.gd , path_movement_component.gd , CargoComponent.gd and attachment_component.gd . This makes the code easier to maintain and reduces the chance of bugs when adding new vehicle types. Vehicle data I have converted the nested Dictionaries into custom resources which makes it easier to add vehicles and less error prone. Pathfinding improvements I tweaked how the pathfinding works by chamfering the corners so vehicles navigate them more smoothly. It doesn’t look quite as I want yet, but combined with animations, it should look acceptable for now. This is something I’ll have to find a more permanent solution for later. Release I’m targeting version 1.0.0 for Saturday, August 22nd. There’s still quite a bit to do, but I think I can make it. I set this deadline because I’ll have less time once school starts.
Devlog 16: Factorys and aircraft I’ve reworked the factory sprites and added aircraft. Factory sprites I have made new sprites for every factory execpt the concrete mixing plant. the sprites are now 2x2 or larger so vehicles can realisticly unload there. Aircraft I’ve decided to add aircraft, which will serve as a trading terminal so you can trade with other villages, get contracts, and earn money. Aircraft fit well for this since no other villages spawn in the world. they let you trade with other vilages without them needing to exist in the world. I still need to add alot to make this work but currently I have a working runway building mecanic Next: Factories Next, I still need to build out the factory logic. I plan to make them with custom resources, just like vehicles. I made the new sprites first because I needed to know where (un)loading would need to happen before I could design the logic around it.
Devlog 17: Factory placement I’ve built a system for placing factories in the world. Factory placement Turns out it’s an absolute pain in the ass to place objects that are multiple tiles big while also having them connect to multiple Godot terrains. So I had to write a whole system that places every tile separately and keeps track of which tiles are occupied. Roads I also had to rework how roads are placed. Originally, every road type was its own terrain, but that doesn’t work if you want them all to connect to factories and to each other. So now they’re all just one terrain, and a script gives each tile the correct color for its road type. This only works because all the road types are identical in shape just different colors. Aircraft sprites I’ve added several new aircraft sprites: the Bo 105, the Twin Otter, the PC-6, and the H225. I’m planning to add the Chinook and the A400M next, which will round out the aircraft lineup for the beta launch. Release It’s going to be close. I’m not sure I’ll hit my self-imposed deadline, since some things took a lot longer than expected but I might still make it. Either way, I’m not going to rush it. I’d rather ship a week late than release something that gets 5 SD/h because it isn’t polished.
Devlog 18: Pre-baked docking paths I’ve implemented pre-baked docking paths for factory entrances to solve some pathfinding issues with vehicle physics. Pre-baked paths The A* pathfinding system was struggling to navigate the sharp corners around factory entrances. When the trailer tried to find its own path through these tight spaces, it would instantly jackknife, not ideal. Rather than spend 50+ hours refining the vehicle physics, I decided to pre-bake specific docking paths to each factory. It’s not a perfect solution visually, but it’s functional and gets the job done. I can always refine this for a post-launch update if needed. I’m still wrapping up the final details of the docking path system before moving on. Mines My next major task is implementing mine logic, which includes the excavator logic and ore detection and depletion. Aircraft After the mining logic I will add the last vital gameplay system the aircraft system which will be responsible trade and contracts with other villages. Release I’m currently deciding whether to push construction vehicle implementation to a post-beta update or delay the release by a week to include them. Construction vehicles aren’t vital to core gameplay, but they would add a lot of polish. I’m still on the fence about this one, it depends on how the mine logic implementation goes.
Devlog 19: Busy School has started again and I have been geting busy and my motivation is also not that high right now because things take alot longer and dont work like i want to. I think I will delay release to septembere 12th.
Devlog 20: UI and Trading Got the backend for the trading system done and overhauled the UI to go with it. Trading System I made a trading system. It generates contracts with the recipient’s name, the resource being traded, and the price. Basically the foundation for the aircraft system. UI Redesigned the time and date display because it looked kinda rough. Also switched the economy back to money instead of the resource, makes way more sense for trading. Oh, and vehicles now actually speed up when you speed up time, which is pretty cool. What’s Shipping vs Later I’m not including construction vehicles in the initial release because that’s like 40+ more hours of work and I want to actually finish this before Thirdspace starts (I’m gonna compete too). So yeah, that’s going to a post-launch update. Still gotta do: Get the excavators working (mines) ~5h Finish the trading system ~3h Fix vehicle physics again 😭~5h Random bugs and polish ~5h Hope I can get that done this week. Tryna hit at least 14sd/h so I can hopfuly buy that Framework 13 lol
Devlog 21: Trading Finished, but I’m Stuck I’ve finished the trading system! Trading System The trading system is done. Orders are generated, you can accept them, and accepted trades show up in the UI. The only thing left is adding the planes, but that depends on finishing the base-building system first. Base Building I’ve started working on base building. It’s pretty simple and mostly uses systems that already exist, so it should only take around an hour to fully implement. Stuck Development has been going way slower than I hoped because my codebase is currently a bunch of bandaids stacked on top of each other. I also need to ship this week since Thirdspace starts next week, which means I probably won’t have time to add much polish.So I need your opinion: is it worth delaying the game for another week? 😭 Or should I just ship it? Do you think I’ll still be able to afford the Framework 13 if I release it now? My current plan is to focus on getting the core systems working, fix any major bugs, and leave extra polish and construction vehicles for a post-launch update.
Devlog 22: Factory UI and Finished base building I’ve finished base building and am now working on the factory UI. Factory UI I’m working on the factory UI, where you can see the factory’s storage and change its recipe. It’s almost finished. Base building Base building is finished you can now make taxiways and build a warehouse. I’ve also put these into a UI like the factory’s, so it only takes one button. Vehicle physics/pathfinding I’ve spent yet another hour on vehicle physics/pathfinding, and I’ve narrowed it down to a bug in the handoff to the prebaked paths of the factories. Timeline I’m pretty sure I am gooing tho finish it this weekend. What’s left: Vehicle physics ~3h Mines/excavators ~5h Building construction (will reuse most of the factory logic) ~2h Random bugs and small things ~5h
Devlog 23: Vehicle pathfinding and construction I have fixed the vehicle pathfinding (mostly) and I have made the construction system. Vehicle pathfinding I have fixed the vehicle pathfinding and it works now mostly. I say mostly because it breaks when a trailer is equipped, but that is a way smaller thing to fix. Construction system It’s almost done. The system makes it so the resources actually have a function and you now need to deliver resources to a building site before the factory can get built. Still not done I know I said it would be done this weekend and it still isn’t, but it’s almost there. What I still have to do: The mine/excavator ~5h Finishing a couple of systems (like the construction and trade system) ~5h Make a savegame system ~5h Small things ~2h Documentation ~2h So 2 devlogs left, and otherwise I will just ship incomplete because I don’t have time anymore.
Devlog 24: Construction finished and start secunce made I’ve finished the construction system and made the start sequence actually playable by adding a resource box containing 10 iron bars needed to build a terminal. It’s been 2 weeks since my last devlog school and commitments to Third Space have kept me busier, so I’m not 100% certain I’ve captured everything that’s changed. Construction system The construction system now generates building routes that you can assign vehicles to. Resources must be delivered to a building site before construction begins, making the resource system meaningful in actual gameplay. Starting secunce The starting secunce now has a couple of steps: Place the resource box Place a runway Place a terminal Conect the runway with the terminal with a taxiway Place 4 base tiles for the vehicle to spawn on What has to be done: Mine/excavator system ~3h Finish trade system ~3h Save system ~2h Documentation ~2h
Devlog 25: Planes and saving! I’ve locked in over the last 2 days and finished the final 2 of the 3 major systems. I’ve completed the planes (which now spawn when you accept an order) and finished the saving system. Planes/order system I’ve finished the order system, when you accept an order, a plane now spawns a couple thousand pixels out. It flies to the airstrip, loads up at the end of the runway, turns around, and flies away. It doesn’t taxi all the way to the terminal because I just don’t have time for that, but it looks good enough for now. Saving You can now save 3 worlds in the game. Everything gets encrypted and saves all the world values. It was pretty difficult converting some of the arrays filled with instances into dictionaries and back again, but it works on both PC and on the web. whats left: The only things left are the excavator and some smaller things. I’m finishing that all tomorrow, and that will be the last devlog for my ship. The main gameplay loop should be finished by end of day tomorrow. If I can’t finish everything, so be it, I dont have time to work on it anymore if I also want to continu in third space, but I’m happy with how it works now and what I have learned along the way.
Devlog 26: Last devlog I’ve officially finished the game. It’s been an incredible journey, and I’m pretty happy with the end result. excavator The excavator is now fully functional. You can use it to create mines, which automatically convert into factories once placed. a lot of small things I have done a lot of small things to optimse the game and fix things i coudend test till now Release This is the last devlog I’ll be writing for this project. I want to thank you all for the support. I hope you enjoy playing the game.
Devlog 27: Tutorial: After feadback I have dicided to make a tutorial and made a couple quality of live updates that made the game easier to understand.
Ships:
Supply Chains Supply Chains is a game inspired by Transport Fever and Mindustry, centered around building road networks and logistics chains for construction and mining operations. Features Vehicles, trailers and a garage Route system: pick a source, a destination and a resource, then assign it to a vehicle Multi-step production chains Construction sites, trading, generated terrain, and A* pathfinding with road weights Controls: WASD camera, 1-5 build, right click remove, space pause. Everything else is in HELP.md . Known limitations I’m a solo dev, so some things aren’t finished. The full list is in the README. Hope you enjoy it!...
|
1793152284.614037
|
1793238684.614037
|
|
11172
|
worst ui design by @ttiramisu | Stardance
|
ttiramisu
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-09T11:32:15Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website that contains some of the cursed UI/UX designs that possibly exists out there with source code and examples!", "repo": "https://github.com/ttiramisu/mesuem-of-worst-ui", "demo": "https://muesum.netlify.app"}]...
|
[{"post_id": 5545, "ts": "2026 [{"post_id": 5545, "ts": "2026-06-09T11:13:13Z", "hours": 1.0986, "text": "added some css! tailwind to be exact…"}, {"post_id": 5513, "ts": "2026-06-09T10:07:43Z", "hours": 1.5347, "text": "imma start work on the ui of the main site itself now…"}, {"post_id": 4300, "ts": "2026-06-07T15:42:55Z", "hours": 0.6619, "text": "added some of the uis….."}]...
|
Title: worst ui design by @ttiramisu | Stardance
Title: worst ui design by @ttiramisu | Stardance
Devlogs:
added some of the uis…..
imma start work on the ui of the main site itself now…
added some css! tailwind to be exact…
Ships:
I made a website that contains some of the cursed UI/UX designs that possibly exists out there with source code and examples!...
|
1793263807.7879179
|
1793350207.7879179
|
|
11214
|
Retro Game Hub by @rishithc | Stardance
|
rishithc
|
1
|
13.0
|
98
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-27T07:37:59Z", "hours": 13.0, "multiplier": 7.4, "payout": 98, "blessing": "neutral", "text": "I finished my retro game hub. In the future I can add more games but at the moment I have 3. The physics still aren’t that good but I can still improve", "repo": "https://github.com/rishith-c/retro-games", "demo": "https://rishith-c.github.io/retro-games/"}]...
|
[{"post_id": 4735, "ts": "2026 [{"post_id": 4735, "ts": "2026-06-08T05:24:08Z", "hours": 4.9458, "text": "Polished full app experience added neon asthetic and colors."}, {"post_id": 4624, "ts": "2026-06-08T00:22:32Z", "hours": 8.2406, "text": "Fully finished and shipped a retrogame website where people can choose and play three retro games."}]...
|
Title: Retro Game Hub by @rishithc | Stardance
De Title: Retro Game Hub by @rishithc | Stardance
Devlogs:
Fully finished and shipped a retrogame website where people can choose and play three retro games.
Polished full app experience added neon asthetic and colors.
Ships:
I finished my retro game hub. In the future I can add more games but at the moment I have 3. The physics still aren’t that good but I can still improve...
|
1792878710.057412
|
1793742710.057412
|
|
11267
|
lift by @fabianbuthere | Stardance
|
fabianbuthere
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-13T13:07:44Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A simple CLI-tool to share data quickly, without needing to trust external servers with your data. I spend lots of time transferring video and audio files from my main PC to my or to my audio workstation PC. This meant uploading my file to some drive, just so I can download it again. And doing that on 20Mbit/s is less than great. After recently having learnt Rust’s async and networking functionalities, I thought, why not make a tool for that? So I wrote lift, which allows me to send files between my devices at atleast twice the speed of using a drive, because the files are never uploaded to anywhere. It’s also more secure, because you don’t have to trust Google, Microsoft, Dropbox, Limewire or anyone else with your files. It also makes your files accessible even from outside your network using your generated link with bore. But, if having an external server potentially knowing the route to your file already seems too sketchy for you, you can just configure another bore server. If you just need to share files within your own network you can use local mode, which will make the file accessible only on your LAN, stripping the need for a bore server. If you want to be 1000% sure, you can also encrypt the file using your own or a randomly generated passphrase, which the receiving device can decrypt with the age CLI utility.", "repo": "https://github.com/Fabian2611/lift", "demo": "https://crates.io/crates/lifter"}]...
|
[{"post_id": 27652, "ts": "202 [{"post_id": 27652, "ts": "2026-07-13T12:45:49Z", "hours": 1.3117, "text": "Implemented local and encrypted modes, ready for v1.4.0 which will be shipped! Lift can now: encrypt files using a custom or random passphrase using age open files only for access on the local network, if no outside communication is needed (also stripping the need for an external bore server)"}, {"post_id": 5056, "ts": "2026-06-08T18:37:36Z", "hours": 2.5522, "text": "v1.3.0 just shipped! I switched from warp to axum to use async streams, which ensure that the TCP stream is held until the download is finished - which enables sharing of bigger files, even on slow internet connections. I’m really proud of the small methods for optimisation I could find - and that I managed to build without a single clippy-all warning! The next step is encryption, to ward against man-in-the-middle attacks - although it’s already really difficult to get a hold of any data transmitted over lift. Install it now via cargo install lifter :3"}]...
|
Title: lift by @fabianbuthere | Stardance
Devlogs Title: lift by @fabianbuthere | Stardance
Devlogs:
v1.3.0 just shipped! I switched from warp to axum to use async streams, which ensure that the TCP stream is held until the download is finished - which enables sharing of bigger files, even on slow internet connections. I’m really proud of the small methods for optimisation I could find - and that I managed to build without a single clippy-all warning! The next step is encryption, to ward against man-in-the-middle attacks - although it’s already really difficult to get a hold of any data transmitted over lift. Install it now via cargo install lifter :3
Implemented local and encrypted modes, ready for v1.4.0 which will be shipped! Lift can now: encrypt files using a custom or random passphrase using age open files only for access on the local network, if no outside communication is needed (also stripping the need for an external bore server)
Ships:
A simple CLI-tool to share data quickly, without needing to trust external servers with your data. I spend lots of time transferring video and audio files from my main PC to my or to my audio workstation PC. This meant uploading my file to some drive, just so I can download it again. And doing that on 20Mbit/s is less than great. After recently having learnt Rust’s async and networking functionalities, I thought, why not make a tool for that? So I wrote lift, which allows me to send files between my devices at atleast twice the speed of using a drive, because the files are never uploaded to anywhere. It’s also more secure, because you don’t have to trust Google, Microsoft, Dropbox, Limewire or anyone else with your files. It also makes your files accessible even from outside your network using your generated link with bore. But, if having an external server potentially knowing the route to your file already seems too sketchy for you, you can just configure another bore server. If you just need to share files within your own network you can use local mode, which will make the file accessible only on your LAN, stripping the need for a bore server. If you want to be 1000% sure, you can also encrypt the file using your own or a randomly generated passphrase, which the receiving device can decrypt with the age CLI utility....
|
1793112497.1892767
|
1793198897.1892767
|
|
11298
|
Paper trail by @Siddak | Stardance
|
Siddak
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T18:47:47Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I vibe-coded my portfolio from scratch using Claude (no builder, no template) with HTML, CSS, and JS, plus a cursor-reactive Three.js 3D background, Lenis smooth scrolling, and GSAP scroll animations. The tricky part was getting the 3D to show through every section without wrecking the text, plus a deploy nightmare where GitHub flattened my folders and killed all the styling. I’m proud it’s all mine, looks expensive but runs on plain web code, and I built it at 16 by vibe-coding with Claude and learning the libraries as I went. The projects on it are real things I’ve shipped, and I’ll keep adding to it.", "repo": "https://github.com/Siddak-Puri/Potfolio", "demo": "https://potfolio-lake-pi.vercel.app/"}]...
|
[{"post_id": 11442, "ts": "202 [{"post_id": 11442, "ts": "2026-06-18T18:25:22Z", "hours": 0.3519, "text": "Just completed my Portoflio, It looks amazing with the webgl and I added everything i could."}, {"post_id": 5731, "ts": "2026-06-09T17:04:43Z", "hours": 1.3647, "text": "Paper trial, my portfolio. I have created the base project yet, still have to work on some webgl and stuff"}]...
|
Title: Paper trail by @Siddak | Stardance
Devlogs Title: Paper trail by @Siddak | Stardance
Devlogs:
Paper trial, my portfolio. I have created the base project yet, still have to work on some webgl and stuff
Just completed my Portoflio, It looks amazing with the webgl and I added everything i could.
Ships:
I vibe-coded my portfolio from scratch using Claude (no builder, no template) with HTML, CSS, and JS, plus a cursor-reactive Three.js 3D background, Lenis smooth scrolling, and GSAP scroll animations. The tricky part was getting the 3D to show through every section without wrecking the text, plus a deploy nightmare where GitHub flattened my folders and killed all the styling. I’m proud it’s all mine, looks expensive but runs on plain web code, and I built it at 16 by vibe-coding with Claude and learning the libraries as I went. The projects on it are real things I’ve shipped, and I’ll keep adding to it....
|
1793105659.944183
|
1793192059.944183
|
|
11315
|
Chip Factory by @heitordecarvalhopessoa | Stardanc Chip Factory by @heitordecarvalhopessoa | Stardance...
|
heitordecarvalhopessoa
|
1
|
22.45
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-26T20:42:20Z", "hours": 20.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "THE FINAL VERSION IS HERE", "repo": "https://github.com/heitordecarvalhopessoa-debug/Chip-Factory", "demo": "https://heitordecarvalhopessoa-debug.github.io/Chip-Factory/"}]...
|
[{"post_id": 17697, "ts": "202 [{"post_id": 17697, "ts": "2026-06-28T16:42:41Z", "hours": 2.4536, "text": "New hud, just this"}, {"post_id": 10313, "ts": "2026-06-16T23:39:43Z", "hours": 4.6467, "text": "New version 7 New chips: 1 Bridge 2 Analytics Bug Fixeds Prices changes New shop category (Neutral)"}, {"post_id": 8215, "ts": "2026-06-13T17:40:48Z", "hours": 3.68, "text": "New version 6 Animations Laboratory (level 5) 1 (NEW) Vault 2 Processor 3 Nexus Hud changes Bugs Fixed Shop Changes"}, {"post_id": 7150, "ts": "2026-06-11T22:49:28Z", "hours": 2.3283, "text": "New version 5 New prestige system Tutorial Mini Hud Changes Bugs Fixed"}, {"post_id": 6509, "ts": "2026-06-10T22:46:24Z", "hours": 1.4286, "text": "New version 4 New chips: 1 - Market 2 - Nexus 3 - Autosell Bugs Fixed Ctrl and Shift are shortcuts."}, {"post_id": 5241, "ts": "2026-06-08T23:02:28Z", "hours": 1.8894, "text": "New version 3 New chip (Processor) New data storage system Bugs Fixed Hud Changed"}, {"post_id": 4566, "ts": "2026-06-07T22:14:12Z", "hours": 1.5711, "text": "New version 2 New chip textures New chip (Battery) Overclock and miner changes"}, {"post_id": 4348, "ts": "2026-06-07T17:06:39Z", "hours": 4.4169, "text": "ChipFactory Version 1"}]...
|
Title: Chip Factory by @heitordecarvalhopessoa | S Title: Chip Factory by @heitordecarvalhopessoa | Stardance
Devlogs:
ChipFactory Version 1
New version 2 New chip textures New chip (Battery) Overclock and miner changes
New version 3 New chip (Processor) New data storage system Bugs Fixed Hud Changed
New version 4 New chips: 1 - Market 2 - Nexus 3 - Autosell Bugs Fixed Ctrl and Shift are shortcuts.
New version 5 New prestige system Tutorial Mini Hud Changes Bugs Fixed
New version 6 Animations Laboratory (level 5) 1 (NEW) Vault 2 Processor 3 Nexus Hud changes Bugs Fixed Shop Changes
New version 7 New chips: 1 Bridge 2 Analytics Bug Fixeds Prices changes New shop category (Neutral)
New hud, just this
Ships:
THE FINAL VERSION IS HERE...
|
1793123698.1417198
|
1793210098.1417198
|
|
11388
|
Enclave Messenger by @Pradhya | Stardance
|
Pradhya
|
1
|
54.05
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T12:15:31Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What it is A fully offline, peer-to-peer encrypted messenger that runs over Bluetooth (RFCOMM) and local network — zero internet required, zero servers. Messages are end-to-end encrypted, and the UI runs as a local web app in your browser. What was built Bluetooth node — discovers peers via SDP UUID, connects via RFCOMM Web UI — a polished chat interface with dark/light mode, animated splash screen, message bubbles, peer list with live scan End-to-end encryption — passphrase-based, messages show enc/decrypted badges Multi-transport system — send messages to phone numbers when Bluetooth and LAN isn't available Plugin system — extensible architecture with manifest-based permissions, security watchdog Signed update system — RSA-4096 signed manifests + SHA-256 file hashes so updates can be verified without internet What was challenging Bluetooth peer discovery without internet — SDP/RFCOMM is finicky, BlueZ on Linux requires careful pairing/trust setup Coordinating encryption across peers who may be offline — tokens stored locally, decrypted on-demand when passphrase is entered Plugin security in CPython — no real sandbox exists, so the security model relies on scoped PluginCore objects. What to be proud of The UI is genuinely polished — smooth animations, staggered reveals, real-time WebSocket updates The update system is cryptographically sound for an offline-first app To test it Requirements: Linux (BlueZ), Python 3.11+, Bluetooth adapter pip install -r requirements.txt Setup: python set.py — configure identity + passphrase python main.py — starts the node + web UI (visit localhost:5000) Enter your passphrase in the unlock modal to start the Bluetooth node Click scan network in the peers panel to find other Enclave instances nearby Open a chat, send a message — it'll show enc if stored encrypted, decrypted once unlocked Two-device test: Run on two Linux machines with Bluetooth, make sure they’re paired, both run main.py — they should discover each other automatically.", "repo": "https://github.com/Project-Enclave/Enclave-Messenger", "demo": "https://messenger.projectenclave.dev/"}]...
|
[{"post_id": 78709, "ts": "202 [{"post_id": 78709, "ts": "2026-10-11T11:25:29Z", "hours": 10.2472, "text": "Haiii again! Whats done! Security review of the messenger by Claude and fixes for what it found: the passphrase no longer goes in the URL (it used to end up in logs), it is sent in a header now running with –host lan now needs a one-time access code, and debug mode is forced off there plugins are not run until I explicitly trust them, and the trust is tied to the plugin’s file hash, so editing it cancels the trust addresses that other peers give us are checked before we connect UI/UX Changes Messages now have clear stats if they were delivered(directly), sent via a peer, or unsent/failed Failed messages now have a retry button to attempt to re send it. Settings menu has a copy user-id/enclave-id and a qr code too to add them to their peers User profiles can now be easily backed up and restored through the web ui Ive tried adding plugins, still need to test it and move everything to a plugin based system… Misc but important INSTALLATION: you can now use pip/pipx to install it, but youll need to use pipx install . because i want to fix some bugs before publishing it to pypi. DATA MIGRATION: the way that the messenger stores data and where it stores data has been changed so if the pe-em detects any data in the folders that the messenger prev used, then it will move it but not delete the data from the prev dir, which was ~/.enclave-messenger EXECUTABLES: the exeuatables for windows, linux and mac will still be built, but only the linux one will be properly tested because i only have a ubuntu install, i dont have a mac nor enough system resources to test windows or run a mac vm. CHECKS: Claude added like 200 checks and like a ci job that runs them all. BuGs The lan scanner was looking at the wrong port, ugh The windows executable did not start the bluetooth and sms plugins Profiles were broken on the windows executable. (Ugh i hate windows) set.py (the setup file) did the setup properly, but didnt save the profile stuff like name but that never got noticed because core.py fixed it when either web.py or tui.py was launched. QR Code doesnt render Website I still kinda have to redo it all, Update the info on the website. Etc"}, {"post_id": 73096, "ts": "2026-09-24T11:35:52Z", "hours": 4.8553, "text": "Im finally done with all of the PLANNED docs, i still have to add some docs for stuff like DHT, hosting, etc and i have to make plugins, remove in-built stuff stuff, etc"}, {"post_id": 67969, "ts": "2026-09-14T09:17:27Z", "hours": 1.4697, "text": "Added more stuff for future stuff and plans for the messenger Its sad that this challenge is ending soon…"}, {"post_id": 65316, "ts": "2026-09-10T11:55:12Z", "hours": 1.7658, "text": "So im still not done with all the docs, i have like 5 files left to complete. But, i managed to style my mkdocs site and it looks pretty similar to the messenger site… I like the installation one the most. Yay!"}, {"post_id": 63779, "ts": "2026-09-07T18:54:46Z", "hours": 0.9619, "text": "Yay! I got the guide up and reachable at https://messenger.docs.projectenclave.dev/ hosted on vercel The only issue is that its not complete D: And i cant add this to the projects details because its being reviewed :("}, {"post_id": 63533, "ts": "2026-09-07T13:28:12Z", "hours": 0.8214, "text": "Docs looking pretty good I still have to turn this into a site…."}, {"post_id": 61566, "ts": "2026-09-04T15:23:48Z", "hours": 1.4228, "text": "Got a LOT of assets to finallyyyy make the docs and guide! Yay!"}, {"post_id": 60417, "ts": "2026-09-02T18:35:48Z", "hours": 0.9247, "text": "I finally did the read meeeeee"}, {"post_id": 59750, "ts": "2026-09-01T17:58:49Z", "hours": 7.6833, "text": "I FINALLY GOT IT TO WORK!! i still have to fix the web ui… At least i got the router to get working and the tui HURRAY!"}, {"post_id": 27613, "ts": "2026-07-13T10:59:30Z", "hours": 10.3575, "text": "i somehow broke the web ui while trying to add profiles so im also adding a cli and a tui its not a good idea but its an idea The tui will probably look like this. So, the todo is now to fix the web ui, make the tui and add profiles so the reviewers can check it out The below screenshot is from noterooms cli by me!"}, {"post_id": 12577, "ts": "2026-06-20T15:19:07Z", "hours": 1.3519, "text": "I need to make these test better on my laptop… TADC ep9 kinda made me go off track but it was good. I think that was the most i cried while watching a movie. Well, leave that behind. Also, i think its all in one line because i can’t make a new line on mobile. And i think i messed up my ears. Ouch"}, {"post_id": 11910, "ts": "2026-06-19T12:26:36Z", "hours": 1.1892, "text": "Finally made the installation a one liner! Enclave Messenger"}, {"post_id": 11209, "ts": "2026-06-18T10:50:01Z", "hours": 8.7239, "text": "Dev-log 3 What has been done Made the settings look a bit better Added better plugin support Added a built-in Bluetooth support on Linux(Ubuntu) Fixed a security bug where if the host/core was already unlocked, any password was allowed Made the onbording process easier Added a reset file for development and to delete all chat, config, etc made by any files in the repo. Moved the web page to a file in ./templates from ./web.py . The entire file was just a string… Kinda fixed the message bubbles. Made a tool to verify if the files you have are by me for p2p updates What is in progress as of now Make a plugin manager Create documentations Add cross support for apps like blechat and silence Make the UI/UX better Etc also, for why im doing this, see this"}, {"post_id": 5573, "ts": "2026-06-09T12:19:44Z", "hours": 1.3175, "text": "i fixed the networking and transport and i also ditched the logo sorry for the poor quality. cant do higher without i3/ubuntu crashing."}, {"post_id": 4761, "ts": "2026-06-08T07:11:49Z", "hours": 0.5481, "text": "First devlog Almost done with crypto and networking and the UI Made whatever this is as the logo for now"}]...
|
Title: Enclave Messenger by @Pradhya | Stardance
Title: Enclave Messenger by @Pradhya | Stardance
Devlogs:
First devlog Almost done with crypto and networking and the UI Made whatever this is as the logo for now
i fixed the networking and transport and i also ditched the logo sorry for the poor quality. cant do higher without i3/ubuntu crashing.
Dev-log 3 What has been done Made the settings look a bit better Added better plugin support Added a built-in Bluetooth support on Linux(Ubuntu) Fixed a security bug where if the host/core was already unlocked, any password was allowed Made the onbording process easier Added a reset file for development and to delete all chat, config, etc made by any files in the repo. Moved the web page to a file in ./templates from ./web.py . The entire file was just a string… Kinda fixed the message bubbles. Made a tool to verify if the files you have are by me for p2p updates What is in progress as of now Make a plugin manager Create documentations Add cross support for apps like blechat and silence Make the UI/UX better Etc also, for why im doing this, see this
Finally made the installation a one liner! Enclave Messenger
I need to make these test better on my laptop… TADC ep9 kinda made me go off track but it was good. I think that was the most i cried while watching a movie. Well, leave that behind. Also, i think its all in one line because i can’t make a new line on mobile. And i think i messed up my ears. Ouch
i somehow broke the web ui while trying to add profiles so im also adding a cli and a tui its not a good idea but its an idea The tui will probably look like this. So, the todo is now to fix the web ui, make the tui and add profiles so the reviewers can check it out The below screenshot is from noterooms cli by me!
I FINALLY GOT IT TO WORK!! i still have to fix the web ui… At least i got the router to get working and the tui HURRAY!
I finally did the read meeeeee
Got a LOT of assets to finallyyyy make the docs and guide! Yay!
Docs looking pretty good I still have to turn this into a site….
Yay! I got the guide up and reachable at https://messenger.docs.projectenclave.dev/ hosted on vercel The only issue is that its not complete D: And i cant add this to the projects details because its being reviewed :(
So im still not done with all the docs, i have like 5 files left to complete. But, i managed to style my mkdocs site and it looks pretty similar to the messenger site… I like the installation one the most. Yay!
Added more stuff for future stuff and plans for the messenger Its sad that this challenge is ending soon…
Im finally done with all of the PLANNED docs, i still have to add some docs for stuff like DHT, hosting, etc and i have to make plugins, remove in-built stuff stuff, etc
Haiii again! Whats done! Security review of the messenger by Claude and fixes for what it found: the passphrase no longer goes in the URL (it used to end up in logs), it is sent in a header now running with –host lan now needs a one-time access code, and debug mode is forced off there plugins are not run until I explicitly trust them, and the trust is tied to the plugin’s file hash, so editing it cancels the trust addresses that other peers give us are checked before we connect UI/UX Changes Messages now have clear stats if they were delivered(directly), sent via a peer, or unsent/failed Failed messages now have a retry button to attempt to re send it. Settings menu has a copy user-id/enclave-id and a qr code too to add them to their peers User profiles can now be easily backed up and restored through the web ui Ive tried adding plugins, still need to test it and move everything to a plugin based system… Misc but important INSTALLATION: you can now use pip/pipx to install it, but youll need to use pipx install . because i want to fix some bugs before publishing it to pypi. DATA MIGRATION: the way that the messenger stores data and where it stores data has been changed so if the pe-em detects any data in the folders that the messenger prev used, then it will move it but not delete the data from the prev dir, which was ~/.enclave-messenger EXECUTABLES: the exeuatables for windows, linux and mac will still be built, but only the linux one will be properly tested because i only have a ubuntu install, i dont have a mac nor enough system resources to test windows or run a mac vm. CHECKS: Claude added like 200 checks and like a ci job that runs them all. BuGs The lan scanner was looking at the wrong port, ugh The windows executable did not start the bluetooth and sms plugins Profiles were broken on the windows executable. (Ugh i hate windows) set.py (the setup file) did the setup properly, but didnt save the profile stuff like name but that never got noticed because core.py fixed it when either web.py or tui.py was launched. QR Code doesnt render Website I still kinda have to redo it all, Update the info on the website. Etc
Ships:
What it is A fully offline, peer-to-peer encrypted messenger that runs over Bluetooth (RFCOMM) and local network — zero internet required, zero servers. Messages are end-to-end encrypted, and the UI runs as a local web app in your browser. What was built Bluetooth node — discovers peers via SDP UUID, connects via RFCOMM Web UI — a polished chat interface with dark/light mode, animated splash screen, message bubbles, peer list with live scan End-to-end encryption — passphrase-based, messages show enc/decrypted badges Multi-transport system — send messages to phone numbers when Bluetooth and LAN isn't available Plugin system — extensible architecture with manifest-based permissions, security watchdog Signed update system — RSA-4096 signed manifests + SHA-256 file hashes so updates can be verified without internet What was challenging Bluetooth peer discovery without internet — SDP/RFCOMM is finicky, BlueZ on Linux requires careful pairing/trust setup Coordinating encryption across peers who may be offline — tokens stored locally, decrypted on-demand when passphrase is entered Plugin security in CPython — no real sandbox exists, so the security model relies on scoped PluginCore objects. What to be proud of The UI is genuinely polished — smooth animations, staggered reveals, real-time WebSocket updates The update system is cryptographically sound for an offline-first app To test it Requirements: Linux (BlueZ), Python 3.11+, Bluetooth adapter pip install -r requirements.txt Setup: python set.py — configure identity + passphrase python main.py — starts the node + web UI (visit localhost:5000) Enter your passphrase in the unlock modal to start the Bluetooth node Click scan network in the peers panel to find other Enclave instances nearby Open a chat, send a message — it'll show enc if stored encrypted, decrypted once unlocked Two-device test: Run on two Linux machines with Bluetooth, make sure they’re paired, both run main.py — they should discover each other automatically....
|
1793105304.8366299
|
1793191704.8366299
|
|
11436
|
Reptra - Workout App by @xpski | Stardance
|
xpski
|
1
|
5.0
|
33
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-14T16:10:48Z", "hours": 5.0, "multiplier": 6.53, "payout": 33, "blessing": "neutral", "text": "This app is meant to track all of your workouts. From creating routines, to starting those same routines, or starting an empty workout, it has it all. You can easily choose a workout, add how many sets + reps you did, and track your workouts. You can even get milestones for working out.", "repo": "https://github.com/secretx09/reptra", "demo": "https://github.com/secretx09/reptra/releases/tag/v1.0.0"}]...
|
[{"post_id": 7216, "ts": "2026 [{"post_id": 7216, "ts": "2026-06-12T01:26:38Z", "hours": 3.4333, "text": "Workout app - Creating routines I worked on making it so that way you can create a routine, and start a preset routine whenever you want to workout. This makes it a lot easier so that way you don’t have to readd every single exercise before all of your workouts."}, {"post_id": 7118, "ts": "2026-06-11T21:49:53Z", "hours": 1.1667, "text": "I worked on making it so that way a user can track their reps and add different exercises to their workout log"}, {"post_id": 7029, "ts": "2026-06-11T19:48:09Z", "hours": 0.4606, "text": "Removed nutrition section"}]...
|
Title: Reptra - Workout App by @xpski | Stardance
Title: Reptra - Workout App by @xpski | Stardance
Devlogs:
Removed nutrition section
I worked on making it so that way a user can track their reps and add different exercises to their workout log
Workout app - Creating routines I worked on making it so that way you can create a routine, and start a preset routine whenever you want to workout. This makes it a lot easier so that way you don’t have to readd every single exercise before all of your workouts.
Ships:
This app is meant to track all of your workouts. From creating routines, to starting those same routines, or starting an empty workout, it has it all. You can easily choose a workout, add how many sets + reps you did, and track your workouts. You can even get milestones for working out....
|
1793112710.5798542
|
1793199110.5798542
|
|
11501
|
My first slack bot! by @MyNose | Stardance
|
MyNose
|
1
|
1.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T21:13:17Z", "hours": 1.0, "multiplier": 1.04, "payout": 2, "blessing": "neutral", "text": "I just made my first slack bot! This bot has three different commands which each allowed me to explore different ways of using the slack/bolt package The first command is /mk-quote [category] which responds with a random quote for a given category. This command utilizes different quotes APIs and chooses the API based on the category given. This route allowed me to explore working with Axios and sending the data as a response. The second command is /mk-animal-photo which returns an image of a random animal (cat, duck, or dog). This route also takes advantage of different APIs (with Axios), but the main thing is that it is able to send an image as an output. Through this command, I learned how to use the blocks argument for the respond method, allowing me to send images as outputs. Finally, I created the /mk-latest-announcement command which simply reads the latest message from the announcements channel and returns that as the output. This may seem simple at first, but I ran into multiple issues with scopes with this command, allowing me to better understand the level of the scopes and what scopes are used with reading the public channel v.s direct DMs. I am very proud of having built my first ever slack bot and creating these pretty cool commands with it. I am excited to see if this can inspire others in any way to explore more creative and fun ways to use the slack/bolt package :) All details about using the bot are listed in the github README.", "repo": "https://github.com/mkmkaksl/StarDance-SlackBot", "demo": "https://hackclub.enterprise.slack.com/archives/C0B90T7NJ5Q"}]...
|
[{"post_id": 4512, "ts": "2026 [{"post_id": 4512, "ts": "2026-06-07T21:01:47Z", "hours": 1.4889, "text": "Just finished my first slack bot! I added three different commands into the bot, which allowed me to explore a few different capabilities of the slack bolt api. /mk-quote [category]: allows you to get random quote for a category. This allowed me to try out different quotes apis and work with axios /mk-animal-photo: allows you to get random photo/gif of a random animal (dog, duck, cat). This allowed me to learn about blocks as an argument for respond, allowing me to send images in a chat /mk-latest-announcement: reads the latest announcement in the announcements channel and reports it to you. This allowed me to learn about chat reading capabilities and more about the importance of scopes"}]...
|
Title: My first slack bot! by @MyNose | Stardance
Title: My first slack bot! by @MyNose | Stardance
Devlogs:
Just finished my first slack bot! I added three different commands into the bot, which allowed me to explore a few different capabilities of the slack bolt api. /mk-quote [category]: allows you to get random quote for a category. This allowed me to try out different quotes apis and work with axios /mk-animal-photo: allows you to get random photo/gif of a random animal (dog, duck, cat). This allowed me to learn about blocks as an argument for respond, allowing me to send images in a chat /mk-latest-announcement: reads the latest announcement in the announcements channel and reports it to you. This allowed me to learn about chat reading capabilities and more about the importance of scopes
Ships:
I just made my first slack bot! This bot has three different commands which each allowed me to explore different ways of using the slack/bolt package The first command is /mk-quote [category] which responds with a random quote for a given category. This command utilizes different quotes APIs and chooses the API based on the category given. This route allowed me to explore working with Axios and sending the data as a response. The second command is /mk-animal-photo which returns an image of a random animal (cat, duck, or dog). This route also takes advantage of different APIs (with Axios), but the main thing is that it is able to send an image as an output. Through this command, I learned how to use the blocks argument for the respond method, allowing me to send images as outputs. Finally, I created the /mk-latest-announcement command which simply reads the latest message from the announcements channel and returns that as the output. This may seem simple at first, but I ran into multiple issues with scopes with this command, allowing me to better understand the level of the scopes and what scopes are used with reading the public channel v.s direct DMs. I am very proud of having built my first ever slack bot and creating these pretty cool commands with it. I am excited to see if this can inspire others in any way to explore more creative and fun ways to use the slack/bolt package :) All details about using the bot are listed in the github README....
|
1793252957.2263467
|
1793339357.2263467
|
|
11586
|
My awesome macropad! by @nouxinf | Stardance
|
nouxinf
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-12T13:39:49Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is my submission for the hackpad mission! This is my first time doing hardware design, so I’m not very experienced. Decided to make this because I wanted to speed up some things on my PC and this macropad is configured to use keys F13-F19, which are not present on a normal keyboard but can be used. It features: 7 keys An OLED 0.91” display A bongo cat animation to go with it The BOM is available in the readme or in bom.csv", "repo": "https://github.com/nouxinf/hackpad", "demo": ""}]...
|
[{"post_id": 7441, "ts": "2026 [{"post_id": 7441, "ts": "2026-06-12T12:00:38Z", "hours": 1.1294, "text": "I’ve been working on my hackpad project lately, and I’m finally finished with it now! I’ve never made any PCB or 3D printed project before, so this is a massive leap for me when it comes to skill. First step was designing in KiCad. I kept it simple by adding 7 switches, and an OLED display to show bongo cat. Then made the PCB, which is a pretty fun part of the process, as its basically just wiring stuff together as it tells you to. Third step was designing the case which was probably the hardest, getting everything aligned and all. Fourth step was writing the firmware, this part was fairly easy, and I put some code into that which I found on github to add a bongo cat animation, that makes the cat use the bongo drums when pressing a key on it. The keys are set to F13-F19, keys that are unbound by default."}]...
|
Title: My awesome macropad! by @nouxinf | Stardanc Title: My awesome macropad! by @nouxinf | Stardance
Devlogs:
I’ve been working on my hackpad project lately, and I’m finally finished with it now! I’ve never made any PCB or 3D printed project before, so this is a massive leap for me when it comes to skill. First step was designing in KiCad. I kept it simple by adding 7 switches, and an OLED display to show bongo cat. Then made the PCB, which is a pretty fun part of the process, as its basically just wiring stuff together as it tells you to. Third step was designing the case which was probably the hardest, getting everything aligned and all. Fourth step was writing the firmware, this part was fairly easy, and I put some code into that which I found on github to add a bongo cat animation, that makes the cat use the bongo drums when pressing a key on it. The keys are set to F13-F19, keys that are unbound by default.
Ships:
This is my submission for the hackpad mission! This is my first time doing hardware design, so I’m not very experienced. Decided to make this because I wanted to speed up some things on my PC and this macropad is configured to use keys F13-F19, which are not present on a normal keyboard but can be used. It features: 7 keys An OLED 0.91” display A bongo cat animation to go with it The BOM is available in the readme or in bom.csv...
|
1793108942.969119
|
1793195342.969119
|
|
11617
|
Music Controller Macropad by @I_Winters | Stardanc Music Controller Macropad by @I_Winters | Stardance...
|
I_Winters
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T14:14:16Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I designed a three-button macropad for controlling music! It also has a rotary encoder (for controlling volume) and an OLED screen (for showing a “now playing” view).", "repo": "https://github.com/imhwinters/MusicController", "demo": ""}]...
|
[{"post_id": 7646, "ts": "2026 [{"post_id": 7646, "ts": "2026-06-12T19:39:14Z", "hours": 1.1992, "text": "I cadded the case and wrote the firmware (I decided not to code my own firmware instead of using ZMK because I want my project to use the Xiao esp32c3 for its bluetooth functionality)."}, {"post_id": 5370, "ts": "2026-06-09T03:39:02Z", "hours": 0.8817, "text": "So far I’ve made the case, the schematic + PCB, and the firmware. Before I finish up the project design, I’m going to make sure the case is accurate and write a readme. I also want to make the case a little more interesting-looking :)"}, {"post_id": 4446, "ts": "2026-06-07T19:28:21Z", "hours": 3.1853, "text": "I’ve created the schematic, the PCB, and cadded the case so far."}]...
|
Title: Music Controller Macropad by @I_Winters | S Title: Music Controller Macropad by @I_Winters | Stardance
Devlogs:
I’ve created the schematic, the PCB, and cadded the case so far.
So far I’ve made the case, the schematic + PCB, and the firmware. Before I finish up the project design, I’m going to make sure the case is accurate and write a readme. I also want to make the case a little more interesting-looking :)
I cadded the case and wrote the firmware (I decided not to code my own firmware instead of using ZMK because I want my project to use the Xiao esp32c3 for its bluetooth functionality).
Ships:
I designed a three-button macropad for controlling music! It also has a rotary encoder (for controlling volume) and an OLED screen (for showing a “now playing” view)....
|
1793109130.1201904
|
1793195530.1201904
|
|
11636
|
Simple 2D game by @EndLess9 | Stardance
|
EndLess9
|
1
|
5.0
|
22
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T00:35:38Z", "hours": 5.0, "multiplier": 4.04, "payout": 22, "blessing": "neutral", "text": "I’m very proud to present my first ever video game! I made this game on Godot, its a basic platformer game where a knight parkours his way through the map to collect coins and avoids enemy’s that can reset the game. Even though this game is very basic, I’m still proud of it since I learned a lot from it and I can use the skills I learned in this for the future.", "repo": "https://github.com/EndLessDude/Simple-2D-Game", "demo": "https://endlessdude.itch.io/simple-2d-game"}]...
|
[{"post_id": 8397, "ts": "2026 [{"post_id": 8397, "ts": "2026-06-13T23:28:06Z", "hours": 0.4389, "text": "New Changes: Added background music to the game Made the background music as a scene so it doesn’t reset if the player dies"}, {"post_id": 8387, "ts": "2026-06-13T22:58:44Z", "hours": 0.8667, "text": "New Changes: Text added to give directions At the end the game tells you how many coins you collected."}, {"post_id": 8300, "ts": "2026-06-13T19:57:38Z", "hours": 0.3536, "text": "New changes: I removed the original default key map Added my own keymap Player can be controlled using WAD and arrow keys. When the player moves left, the sprite’s h-axis flips to make it look like it’s actually walking left."}, {"post_id": 8219, "ts": "2026-06-13T17:49:57Z", "hours": 0.8106, "text": "Added a Dying Effect: When the player collides with the slime , it falls off the map and dies."}, {"post_id": 7854, "ts": "2026-06-13T03:08:13Z", "hours": 1.2908, "text": "I added an enemy that looks like a slime. It goes right to left in a certain area bouncing off of walls. If the slime collides with the player the player’s dies and their game resets."}, {"post_id": 5163, "ts": "2026-06-08T20:56:39Z", "hours": 0.73, "text": "I expanded the map and made a background"}, {"post_id": 4561, "ts": "2026-06-07T22:06:42Z", "hours": 0.8792, "text": "Now the Player can collect coins!"}]...
|
Title: Simple 2D game by @EndLess9 | Stardance
De Title: Simple 2D game by @EndLess9 | Stardance
Devlogs:
Now the Player can collect coins!
I expanded the map and made a background
I added an enemy that looks like a slime. It goes right to left in a certain area bouncing off of walls. If the slime collides with the player the player’s dies and their game resets.
Added a Dying Effect: When the player collides with the slime , it falls off the map and dies.
New changes: I removed the original default key map Added my own keymap Player can be controlled using WAD and arrow keys. When the player moves left, the sprite’s h-axis flips to make it look like it’s actually walking left.
New Changes: Text added to give directions At the end the game tells you how many coins you collected.
New Changes: Added background music to the game Made the background music as a scene so it doesn’t reset if the player dies
Ships:
I’m very proud to present my first ever video game! I made this game on Godot, its a basic platformer game where a knight parkours his way through the map to collect coins and avoids enemy’s that can reset the game. Even though this game is very basic, I’m still proud of it since I learned a lot from it and I can use the skills I learned in this for the future....
|
1793141378.641255
|
1793227778.641255
|
|
11696
|
FlatCraft by @Blxm | Stardance
|
Blxm
|
1
|
115.21
|
1405
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T23:31:01Z", "hours": 113.0, "multiplier": 12.47, "payout": 1405, "blessing": "neutral", "text": "FlatCraft Basic Info FlatCraft is an open source, MIT licensed 2d Minecraft inspired game. It uses LittleJS for the rendering, and vanilla HTML/CSS/JavaScript for the UI. All the rest was written by me. Challenges: One of the biggest challenge was world generation. The idea was to use simplex noise to make terrain, but there was one problem: It’s uncontrolability. I wanted real biomes, but that coudn’t happen because I didn’t know how to control simplex noise. Nor did I know how to make mountains. I solved it by realizing that this is just a silly 2d Minecraft game for a program designed to get teens to make something, not for teens to make some complex minecraft like game, so I decided to bite the bullet and to just make an array for each biome, and have that array contain the y level of the highest block, and use that array to make the terrain. It’s basically like [1,1,2,2,3,3]. Nothing complicated, and if you played this game long enough you’ll see that each biomes are litterally the same. Most Proud of: I’m actually most proud of the custom skins part of flatcraft. It’s really not that complex, but it took a mesruable amount of time to get it working. I had to learn node.js, finally had a use for a server! and used my old chromebook as my server. I made the precaution of adding a ratelimiter just in case someone tried to take it down or whatever, but yeah. That’s what I’m most proud of. What I learned: Making classes in js NodeJS LittleJS engine Stuff that didnt make it into the game: Game music Mobs Credits Art: Me, mostly me, My little brother Inspired by https://www.planetminecraft.com/texture-pack/digs-simple-pack-1-15-100-complete/ , and https://bloxd.io Programming: Me Libraries used: LittleJS", "repo": "https://github.com/BlxCode/FlatCraft", "demo": "https://flatcraft.blxm.me"}]...
|
[{"post_id": 72489, "ts": "202 [{"post_id": 72489, "ts": "2026-09-23T02:15:22Z", "hours": 0.3167, "text": "FIxed bug where jumping wasn’t scaled to your fps Simple really! it’s on the title Changes & Bug Fixes fixed bug where jumping wasn’t scaled to your fps that bug would have made high fps players not able to jump high, and low fps players to jump SUPER high"}, {"post_id": 71071, "ts": "2026-09-20T08:19:33Z", "hours": 1.8978, "text": "Fixed some issues regarding prod (wont get paied for this 😭) ALright, even though i just shipped, there were stuff that were broken, first of all i realized that if you have a expensive 4k 240 hz ahh monitor, the game would get very fast due to the fact that I didn’t introduce deltat time, so i introduced delta time. Bug fixes Fixed bug when you were very fast on a 60hz+ monitor Fixed glitch where the animation state changes between falling and breaking a block while breaking a block while falling"}, {"post_id": 70883, "ts": "2026-09-19T23:01:44Z", "hours": 5.6633, "text": "Sprinting this will be my last ever devlog! New Features: FULL Random world generation: It works like this: Seeds: Seeds are not that important, though they do play a part for terrain generation. Terrain: The terrain is basically just a huge array with preset Y levels depending on the terrain type, ie: mountianus, hilly, flat. Ores: Ores are truly random. It dosn’t depend on the seed. Trees: Trees are also truly random Sprinting: Double press the key in the direction you want to go to sprint that’s it! plz rate it well"}, {"post_id": 69200, "ts": "2026-09-16T16:09:37Z", "hours": 6.2003, "text": "Saving worlds… I hope Honsetly, school has been removing litterally half of the day I would have used to do flatcraft, so… yeah. im also writing this at school cuz i needed to sleep. dont tell anyone lol New Features: Saving It’s quite simple actually. Just saving an object with some world data to local storage. Honestly, that’s it. Flower flower. very cool Terrain generation Terrain generation, no ore generation lol"}, {"post_id": 66474, "ts": "2026-09-12T09:52:21Z", "hours": 5.9692, "text": "Tools Update!!!!111 3 more hard gh issues to go! yay it’s like 2:30 on a friday. not bad, but considering school is back, not good either. Honestly, i swear Idk if i can actually finish this before sep 20th, so if i can’t i’ll actually do 100 pushups. and it WILL be on a devlog. so uhh… yeh. idk why but you can see me do 100 pushups. defenatly not in a row tho my arms are actually twigs bro. ok enough yapping, let’s actually get into this. New Features: Tools!!111 tools. the final implementaiton was quite simple actually. I just added tools to the textures, and added them to the metadata, added a few bits of code for the speeding up of breaking blocks and boom! tools. Changes & Bugfixes: Compleated Metadata Drops now produce 80% less lag (by making sure that only 1 shadow per x coord can exist)"}, {"post_id": 62583, "ts": "2026-09-06T01:30:40Z", "hours": 8.5536, "text": "Lighting & Dropping stuff i’ve been slacking off recently, and I mean it. I’ve coded less, and played more games due to the uhhh looming school season starting again but like… i’ve still managed to make things like lighting, dropping stuff, and shuffeling stuff in ur inventory by using the number keys. Features Lighting At first, this was one of the reasons why I decided to switch to little js, but like their system is not designed for 2d minecraft use, so I had to improvise. The lighting system consists of two basic things. One is the ambient lighting, which basically fills the whole screen with light / filling the whole screen without light, and the second thing is like “light objects” by that, I mean like point lights, which are like round lightbulbs per say, and they emit light. Those would be used for stuff like torches. Q Dropping things with q didn’t exist in the 2 part drops update, cuz i was too lazy to implement that. But now, I added that. It’s simple really, it just creates a new droppped item every time u press q. and if u press q with control, then it drops everything in the hotbar slot hovered, and u can drop things in ur inven by hovering over it. Moving things around in ur inventory with the top number keys I added that cuz im just used to that in uhhh…. bloxd.io so yeah, i just added that. Attack anim press mouse button 0 to attack. currently just attack animation for now Changes & Bug fixes Random tick events for stuff like grass turning into dirt or vice versa *greijodkmgrfd idk, it was in my commits smth to do with promises"}, {"post_id": 58560, "ts": "2026-08-31T00:30:24Z", "hours": 1.4617, "text": "Custom Skins Settings Front End Uhhhh it’s in the title… nothing interesting. https://github.com/users/BlxCode/projects/5 New Features Custom Skins are now FULLY 100% Out! custom skins. How it works: A gallery with a bunch of skins and their ids a textbox for the skin ids reload Changes & Bug Fixes None lol"}, {"post_id": 57793, "ts": "2026-08-30T02:50:18Z", "hours": 8.83, "text": "Inventory Ok so i’ve basically just coded the inventory system. uhhh New Features Inventory System Ok so this is how it works: There is an object that has all the invetory data There is a function that renders it it works like that so u dont render the inventory every frame. that would cause SOO MUCH LAG Place blocks Uhhh… place blocks and it also checks if the block u placed collides with any blocks or players and if it is next to a block Changes & Bug Fixes Fixed some weird crouching behavior that I cant really explain cuz it’s like weird. Dont mind the fact that the game bugged out… it’s cuz i forgot to add metadata to the pine logs and rickroll block thingy"}, {"post_id": 54123, "ts": "2026-08-24T22:58:00Z", "hours": 8.3086, "text": "Drops Part 2 Last devlog, I finished the drop part of drops! This time, I finished the pickup part of drops, and the hold part, though I feel like I do need to tweak the values, I just don’t know by how much. New Features Pick up: The pickup part of drops is basically just an if statement that runs like every frame to see whether or not the player is near enough to a dropped item for them to pick it up. It’s quite simple. Hotbar: I feel like I finished the hotbar, not the inventory system yet, just the hotbar. I finished the “rendering” part, by that I mean like viewing the inventory object and rendering the stuff that is on the hotbar. Changes: Renamed the id of the Inventory div to the Hotbar Readded the FPS counter, and gave it an overhaul The lower arm animation actually plays now"}, {"post_id": 50200, "ts": "2026-08-19T10:30:30Z", "hours": 8.8847, "text": "Drops Part 1 Drops! Though… you can’t pick them up yet… uhhh, and I’m nearing the 10-hour mark, so… yeah. I also completely rewrote the movement code and tweaked the values in collision detection, so that’s like half of the time. Also, it turns out I am not an engineer, as I rewrote my own drops code TWICE in the span of TWO HOURS because of chatgippity roasting me and me roasting myself, respectively. (Also, new dev log format, yay!) New Features Drops (partially) Drops were annoying to implement, partially because I’m a skill issue, and also because I had to learn new things like making classes and stuff like that. Changes & Bug Fixes Collision system revamp The old system was weird and also sometimes inconsistent, so I rewrote the movement system and tweaked the collision system. Overall, a bit of a smaller update if you ask me, and its ONE AND ONLY FEATURE wasn’t complete. Oh well… looks like we’re going to get the next dev log soon."}, {"post_id": 46768, "ts": "2026-08-14T08:07:02Z", "hours": 8.0811, "text": "Block Breaking and Particles! half of the time was spent fixing bugs uhh… ignore that youtube video… New Features: Shadow Particles when touching ground after falling, walking, and after breaking a block Block Breaking Changes & Fixes: Added more things to the block metadata object Fixed collisions not colliding"}, {"post_id": 43802, "ts": "2026-08-09T07:19:22Z", "hours": 0.2828, "text": "Bug Fix: I didn’t include the no falling if you are crouching in the last update so i just quickly added an if statement to include that feature."}, {"post_id": 43193, "ts": "2026-08-08T09:59:34Z", "hours": 1.7314, "text": "Players! Players are finally out. After what? 2 progress updates? Wow, that was harder than I imagined. Especially the physics. I had to think creatively and outside of the box for this. Also, this devlog continues from the last one. Just pretend that the progress updates like didn’t exist or just aren’t canon. Finished Features: Players: Player Physics Player Animations Changes: Slightly adjusted dirt texture Increased label elements’ font size Patched weird css border glitch Deleted unnecessary assets (like the custom cursor that only existed for like 5 minutes, 2 months ago) What’s Next (In order): Crouching, and not falling ✅ Drawing tools (hardest one, btw) ✅ Breaking blocks with tools and fists Custom Skins (it’s literally 90 % complete now, but my server is down due to some real life events so have to wait) ✅ Sandbox world Mobs if i have time ship ps. if you are wondering why the screen recording has some static noise, it’s because i have a small desktop fan running like really close, because it’s kinda hot indoors. I don’t know why it’s making tha t sound, it dosnt make that sound irl to be clear. I think it’s because i accidently turned on my mic and my mic is currently my crappy very quiet laptop mic"}, {"post_id": 41831, "ts": "2026-08-06T09:09:42Z", "hours": 8.1389, "text": "Progress Update #3 I’m too stupid to do physics. I should have made everything with Box2D. I’m currently fiddling with side collisions, as all other collisions (I hope) are done. I’ve also finished jumping and falling physics. Also, I’ve spent another 8 hours, and I want every minute to be for my new 3d printer. Finished Features Jumping My Jumping physics thingy is like the poor and stupid man’s way to do it, but hey… at least it works. It kinda just has a jump multiplyer and it goes down every frame and every frame the player goes up something like 0.05 block units multiplied by the jump multiplier Falling Falling is basically the same as the jumping one. i added sky yes, its a sky :D only a gradient. ill add sun and moon soon prob hopefully idk if there will be night, idk if i can create a night in time. Unfinished Features Side collisions This is stupidlly harder cuz my blocks’ x center is at 0, not 0.5. this means that a block spans from like -0.5 to 0.5. My brain cant handle this… thing."}, {"post_id": 39389, "ts": "2026-08-02T10:30:17Z", "hours": 10.1594, "text": "Progress Update #2: Why, you may ask, do I do progress updates? It’s because only 10 hours MAX can be logged per dev log, and uhh… I think you get the picture. So, without further adieu, this is what I’ve been working on. Unfinished Features: Players (85% Complete) That’s a huge jump from the last time I’ve updated you on the progress on players. Now the thing is, physics is annoying. And I’m not old enough to study calculus at my high school. Which is a shame, as I really like the idea of calculating values based off of differentiating values. I’ve literally just been playing around with the physics at 3 am!??!? Wow! It’s literally 3:30 in the morning. I should go get some sleep. The jumping and crouching are a bit finicky, but I’ll fix them sometime later. Closing Remarks: First of all, a lot of the 10 hours in this progress update have been miscellaneous things like bug fixes or just general tweaks. I’ve also been realizing that this project is big. But the end of the tunnel is still nowhere in sight. Yet, if I can stop sitting around and start sprinting towards, uhh… any direction, there will be light at the end of the tunnel. I hope I can finish this project before school starts. I’ll have to grind like a lot, and especially at night because my siblings are quite brain-rotted, annoying, and loud."}, {"post_id": 33370, "ts": "2026-07-23T07:19:45Z", "hours": 2.5872, "text": "Custom Skins! After a lot of time getting the back-end setup (with some help from ChatGPT, I’d have to admit), custom skins are here! (Granted… players aren’t here yet so you can’t really try them out lol.) New Features New page ( https://blxcode.github.io/FlatCraft/upload-skin/ ) Think of it like skindex but with a worse ui Searching for skins Skin Uploading Changes & Bug-Fixes Grass Retexture Dirt Retexture"}, {"post_id": 32173, "ts": "2026-07-21T04:55:32Z", "hours": 8.2811, "text": "Progress report: I have been grinding this, and I haven’t posted a dev log in a while because I haven’t really finished anything, so this will be a progress report. Finished Features: New dirt, and grass textures The old textures suck, because in between blocks there would be like a small section where there is like no detail, so I added those details and recolored the grass bit of the grass texture because the old one was too “limy.” Added bedrock Self-explanatory; no interesting thing happened that I would want to yap about Updated Game rendering Last devlog, I ported my rendering side of the game to LittleJS, a browser game engine. Why? Because I realized that I wouldn’t have the time and effort to manually do advanced stuff like lighting and particles. Hence, I ported to LittleJS. Now, in the days after the port, I had to fix a lot of things and bugs. Originally, the game would render everything, even if it wasn’t on screen, so I fixed that. I made it so that if you couldn’t see the blocks in the camera, they wouldn’t be rendered. Unfinished Features: Flat Game Mode (90% Done): I decided that tinkering with sandbox mode first would be stupid, as I would still have to make players, inventory system, etc. I feel like I’ve finished everything, but there is something missing. The sky. I still need to make the sky. I don’t know if it should be an image or something else. Players (10% Done): All I have done for players is literally a goffy ahh skin (which I should make better) and a player variable. I think you would be able to piece together what I want for this. Custom skins (60% Done): I want to make custom skins. I have completed the UI, the security part of the server-side (aka my old broken ahh Chromebook) code, and a simple UI for it. All I need to make now is server-side code to store the custom skin and deliver it to the client."}, {"post_id": 22640, "ts": "2026-07-05T06:00:35Z", "hours": 5.6808, "text": "The LittleJS Update Yes, this doesn’t look like much, but it took 5 hours over the span of multiple days and a LOT of trial and error to get to this point! I had to learn so many things, like Promises, async and await, how to make new classes, and LittleJS. But why? Why go through so much trouble? That’s because I’ve realized that I would not, in my current state, be capable of making a full Minecraft clone using only the vanilla HTML Canvas. I chose littleJS because of the promise of fast and lean, and I had already tried it before but failed; I wanted to redeem myself. New Features The rendering part of the game is now done with LittleJS Popups now have minimum width and heights Create new world form now has placeholder text for those who are lazy to type stuff Fixes Renamed Ebony to Cedar because Ebony trees are not pine trees Removed the useless pausing system Removed all of the old rendering system (NEXT UPDATE: Create worlds from seeds 😭 i need help with this)"}, {"post_id": 14909, "ts": "2026-06-24T06:37:35Z", "hours": 4.1328, "text": "The Terrain Preparation Update This is a BIG UI update, and in the next update I’ll add scripting to most of the world menu UI, which has not yet been scripted. New Features: Play Button (shows after the loading screen is finished (in order to get the main menu audio to play)) Main menu music (from opengameart.org) World Menus UI World Creation UI Temporary Gradient Background (To be replaced by game screenshots) Scrollable Credits Fixes Fixed some spelling mistakes in the code"}, {"post_id": 10957, "ts": "2026-06-17T23:33:42Z", "hours": 2.9889, "text": "The Loading Screen Update Added a loading screen which goes to 90% and then waits for the CrazyGames SDK. Removed all NPM dependancies and replaced them with CDNs Added a squeeze in animation when closing Loading screen and Main Menu And much more! (NEXT UPDATE: Create worlds frm seeds with basic terrein 😭 i need help with this)"}, {"post_id": 8555, "ts": "2026-06-14T06:57:09Z", "hours": 1.3439, "text": "The Backdrop Update Added Backdrops to all popups Added a “pausing” system (just disabling keyboard input for now) Added Animations like popup to the main menu elements Added some NPM packages"}, {"post_id": 7631, "ts": "2026-06-12T19:08:43Z", "hours": 2.4183, "text": "main menu, new cursor"}, {"post_id": 5344, "ts": "2026-06-09T02:33:51Z", "hours": 0.4506, "text": "re-done block rendering, adding a function instead of just drawing it onto the canvas, added more textures (gems in block form) and redid dirt texture. Also added movement (only canvas movemnt)"}, {"post_id": 4754, "ts": "2026-06-08T06:28:44Z", "hours": 0.9686, "text": "maple (oak) trees and fps counter"}, {"post_id": 4657, "ts": "2026-06-08T02:00:46Z", "hours": 1.7033, "text": "Inventory UI, Block Creation, some textures"}]...
|
Title: FlatCraft by @Blxm | Stardance
Devlogs:
In Title: FlatCraft by @Blxm | Stardance
Devlogs:
Inventory UI, Block Creation, some textures
maple (oak) trees and fps counter
re-done block rendering, adding a function instead of just drawing it onto the canvas, added more textures (gems in block form) and redid dirt texture. Also added movement (only canvas movemnt)
main menu, new cursor
The Backdrop Update Added Backdrops to all popups Added a “pausing” system (just disabling keyboard input for now) Added Animations like popup to the main menu elements Added some NPM packages
The Loading Screen Update Added a loading screen which goes to 90% and then waits for the CrazyGames SDK. Removed all NPM dependancies and replaced them with CDNs Added a squeeze in animation when closing Loading screen and Main Menu And much more! (NEXT UPDATE: Create worlds frm seeds with basic terrein 😭 i need help with this)
The Terrain Preparation Update This is a BIG UI update, and in the next update I’ll add scripting to most of the world menu UI, which has not yet been scripted. New Features: Play Button (shows after the loading screen is finished (in order to get the main menu audio to play)) Main menu music (from opengameart.org) World Menus UI World Creation UI Temporary Gradient Background (To be replaced by game screenshots) Scrollable Credits Fixes Fixed some spelling mistakes in the code
The LittleJS Update Yes, this doesn’t look like much, but it took 5 hours over the span of multiple days and a LOT of trial and error to get to this point! I had to learn so many things, like Promises, async and await, how to make new classes, and LittleJS. But why? Why go through so much trouble? That’s because I’ve realized that I would not, in my current state, be capable of making a full Minecraft clone using only the vanilla HTML Canvas. I chose littleJS because of the promise of fast and lean, and I had already tried it before but failed; I wanted to redeem myself. New Features The rendering part of the game is now done with LittleJS Popups now have minimum width and heights Create new world form now has placeholder text for those who are lazy to type stuff Fixes Renamed Ebony to Cedar because Ebony trees are not pine trees Removed the useless pausing system Removed all of the old rendering system (NEXT UPDATE: Create worlds from seeds 😭 i need help with this)
Progress report: I have been grinding this, and I haven’t posted a dev log in a while because I haven’t really finished anything, so this will be a progress report. Finished Features: New dirt, and grass textures The old textures suck, because in between blocks there would be like a small section where there is like no detail, so I added those details and recolored the grass bit of the grass texture because the old one was too “limy.” Added bedrock Self-explanatory; no interesting thing happened that I would want to yap about Updated Game rendering Last devlog, I ported my rendering side of the game to LittleJS, a browser game engine. Why? Because I realized that I wouldn’t have the time and effort to manually do advanced stuff like lighting and particles. Hence, I ported to LittleJS. Now, in the days after the port, I had to fix a lot of things and bugs. Originally, the game would render everything, even if it wasn’t on screen, so I fixed that. I made it so that if you couldn’t see the blocks in the camera, they wouldn’t be rendered. Unfinished Features: Flat Game Mode (90% Done): I decided that tinkering with sandbox mode first would be stupid, as I would still have to make players, inventory system, etc. I feel like I’ve finished everything, but there is something missing. The sky. I still need to make the sky. I don’t know if it should be an image or something else. Players (10% Done): All I have done for players is literally a goffy ahh skin (which I should make better) and a player variable. I think you would be able to piece together what I want for this. Custom skins (60% Done): I want to make custom skins. I have completed the UI, the security part of the server-side (aka my old broken ahh Chromebook) code, and a simple UI for it. All I need to make now is server-side code to store the custom skin and deliver it to the client.
Custom Skins! After a lot of time getting the back-end setup (with some help from ChatGPT, I’d have to admit), custom skins are here! (Granted… players aren’t here yet so you can’t really try them out lol.) New Features New page ( https://blxcode.github.io/FlatCraft/upload-skin/ ) Think of it like skindex but with a worse ui Searching for skins Skin Uploading Changes & Bug-Fixes Grass Retexture Dirt Retexture
Progress Update #2: Why, you may ask, do I do progress updates? It’s because only 10 hours MAX can be logged per dev log, and uhh… I think you get the picture. So, without further adieu, this is what I’ve been working on. Unfinished Features: Players (85% Complete) That’s a huge jump from the last time I’ve updated you on the progress on players. Now the thing is, physics is annoying. And I’m not old enough to study calculus at my high school. Which is a shame, as I really like the idea of calculating values based off of differentiating values. I’ve literally just been playing around with the physics at 3 am!??!? Wow! It’s literally 3:30 in the morning. I should go get some sleep. The jumping and crouching are a bit finicky, but I’ll fix them sometime later. Closing Remarks: First of all, a lot of the 10 hours in this progress update have been miscellaneous things like bug fixes or just general tweaks. I’ve also been realizing that this project is big. But the end of the tunnel is still nowhere in sight. Yet, if I can stop sitting around and start sprinting towards, uhh… any direction, there will be light at the end of the tunnel. I hope I can finish this project before school starts. I’ll have to grind like a lot, and especially at night because my siblings are quite brain-rotted, annoying, and loud.
Progress Update #3 I’m too stupid to do physics. I should have made everything with Box2D. I’m currently fiddling with side collisions, as all other collisions (I hope) are done. I’ve also finished jumping and falling physics. Also, I’ve spent another 8 hours, and I want every minute to be for my new 3d printer. Finished Features Jumping My Jumping physics thingy is like the poor and stupid man’s way to do it, but hey… at least it works. It kinda just has a jump multiplyer and it goes down every frame and every frame the player goes up something like 0.05 block units multiplied by the jump multiplier Falling Falling is basically the same as the jumping one. i added sky yes, its a sky :D only a gradient. ill add sun and moon soon prob hopefully idk if there will be night, idk if i can create a night in time. Unfinished Features Side collisions This is stupidlly harder cuz my blocks’ x center is at 0, not 0.5. this means that a block spans from like -0.5 to 0.5. My brain cant handle this… thing.
Players! Players are finally out. After what? 2 progress updates? Wow, that was harder than I imagined. Especially the physics. I had to think creatively and outside of the box for this. Also, this devlog continues from the last one. Just pretend that the progress updates like didn’t exist or just aren’t canon. Finished Features: Players: Player Physics Player Animations Changes: Slightly adjusted dirt texture Increased label elements’ font size Patched weird css border glitch Deleted unnecessary assets (like the custom cursor that only existed for like 5 minutes, 2 months ago) What’s Next (In order): Crouching, and not falling ✅ Drawing tools (hardest one, btw) ✅ Breaking blocks with tools and fists Custom Skins (it’s literally 90 % complete now, but my server is down due to some real life events so have to wait) ✅ Sandbox world Mobs if i have time ship ps. if you are wondering why the screen recording has some static noise, it’s because i have a small desktop fan running like really close, because it’s kinda hot indoors. I don’t know why it’s making tha t sound, it dosnt make that sound irl to be clear. I think it’s because i accidently turned on my mic and my mic is currently my crappy very quiet laptop mic
Bug Fix: I didn’t include the no falling if you are crouching in the last update so i just quickly added an if statement to include that feature.
Block Breaking and Particles! half of the time was spent fixing bugs uhh… ignore that youtube video… New Features: Shadow Particles when touching ground after falling, walking, and after breaking a block Block Breaking Changes & Fixes: Added more things to the block metadata object Fixed collisions not colliding
Drops Part 1 Drops! Though… you can’t pick them up yet… uhhh, and I’m nearing the 10-hour mark, so… yeah. I also completely rewrote the movement code and tweaked the values in collision detection, so that’s like half of the time. Also, it turns out I am not an engineer, as I rewrote my own drops code TWICE in the span of TWO HOURS because of chatgippity roasting me and me roasting myself, respectively. (Also, new dev log format, yay!) New Features Drops (partially) Drops were annoying to implement, partially because I’m a skill issue, and also because I had to learn new things like making classes and stuff like that. Changes & Bug Fixes Collision system revamp The old system was weird and also sometimes inconsistent, so I rewrote the movement system and tweaked the collision system. Overall, a bit of a smaller update if you ask me, and its ONE AND ONLY FEATURE wasn’t complete. Oh well… looks like we’re going to get the next dev log soon.
Drops Part 2 Last devlog, I finished the drop part of drops! This time, I finished the pickup part of drops, and the hold part, though I feel like I do need to tweak the values, I just don’t know by how much. New Features Pick up: The pickup part of drops is basically just an if statement that runs like every frame to see whether or not the player is near enough to a dropped item for them to pick it up. It’s quite simple. Hotbar: I feel like I finished the hotbar, not the inventory system yet, just the hotbar. I finished the “rendering” part, by that I mean like viewing the inventory object and rendering the stuff that is on the hotbar. Changes: Renamed the id of the Inventory div to the Hotbar Readded the FPS counter, and gave it an overhaul The lower arm animation actually plays now
Inventory Ok so i’ve basically just coded the inventory system. uhhh New Features Inventory System Ok so this is how it works: There is an object that has all the invetory data There is a function that renders it it works like that so u dont render the inventory every frame. that would cause SOO MUCH LAG Place blocks Uhhh… place blocks and it also checks if the block u placed collides with any blocks or players and if it is next to a block Changes & Bug Fixes Fixed some weird crouching behavior that I cant really explain cuz it’s like weird. Dont mind the fact that the game bugged out… it’s cuz i forgot to add metadata to the pine logs and rickroll block thingy
Custom Skins Settings Front End Uhhhh it’s in the title… nothing interesting. https://github.com/users/BlxCode/projects/5 New Features Custom Skins are now FULLY 100% Out! custom skins. How it works: A gallery with a bunch of skins and their ids a textbox for the skin ids reload Changes & Bug Fixes None lol
Lighting & Dropping stuff i’ve been slacking off recently, and I mean it. I’ve coded less, and played more games due to the uhhh looming school season starting again but like… i’ve still managed to make things like lighting, dropping stuff, and shuffeling stuff in ur inventory by using the number keys. Features Lighting At first, this was one of the reasons why I decided to switch to little js, but like their system is not designed for 2d minecraft use, so I had to improvise. The lighting system consists of two basic things. One is the ambient lighting, which basically fills the whole screen with light / filling the whole screen without light, and the second thing is like “light objects” by that, I mean like point lights, which are like round lightbulbs per say, and they emit light. Those would be used for stuff like torches. Q Dropping things with q didn’t exist in the 2 part drops update, cuz i was too lazy to implement that. But now, I added that. It’s simple really, it just creates a new droppped item every time u press q. and if u press q with control, then it drops everything in the hotbar slot hovered, and u can drop things in ur inven by hovering over it. Moving things around in ur inventory with the top number keys I added that cuz im just used to that in uhhh…. bloxd.io so yeah, i just added that. Attack anim press mouse button 0 to attack. currently just attack animation for now Changes & Bug fixes Random tick events for stuff like grass turning into dirt or vice versa *greijodkmgrfd idk, it was in my commits smth to do with promises
Tools Update!!!!111 3 more hard gh issues to go! yay it’s like 2:30 on a friday. not bad, but considering school is back, not good either. Honestly, i swear Idk if i can actually finish this before sep 20th, so if i can’t i’ll actually do 100 pushups. and it WILL be on a devlog. so uhh… yeh. idk why but you can see me do 100 pushups. defenatly not in a row tho my arms are actually twigs bro. ok enough yapping, let’s actually get into this. New Features: Tools!!111 tools. the final implementaiton was quite simple actually. I just added tools to the textures, and added them to the metadata, added a few bits of code for the speeding up of breaking blocks and boom! tools. Changes & Bugfixes: Compleated Metadata Drops now produce 80% less lag (by making sure that only 1 shadow per x coord can exist)
Saving worlds… I hope Honsetly, school has been removing litterally half of the day I would have used to do flatcraft, so… yeah. im also writing this at school cuz i needed to sleep. dont tell anyone lol New Features: Saving It’s quite simple actually. Just saving an object with some world data to local storage. Honestly, that’s it. Flower flower. very cool Terrain generation Terrain generation, no ore generation lol
Sprinting this will be my last ever devlog! New Features: FULL Random world generation: It works like this: Seeds: Seeds are not that important, though they do play a part for terrain generation. Terrain: The terrain is basically just a huge array with preset Y levels depending on the terrain type, ie: mountianus, hilly, flat. Ores: Ores are truly random. It dosn’t depend on the seed. Trees: Trees are also truly random Sprinting: Double press the key in the direction you want to go to sprint that’s it! plz rate it well
Fixed some issues regarding prod (wont get paied for this 😭) ALright, even though i just shipped, there were stuff that were broken, first of all i realized that if you have a expensive 4k 240 hz ahh monitor, the game would get very fast due to the fact that I didn’t introduce deltat time, so i introduced delta time. Bug fixes Fixed bug when you were very fast on a 60hz+ monitor Fixed glitch where the animation state changes between falling and breaking a block while breaking a block while falling
FIxed bug where jumping wasn’t scaled to your fps Simple really! it’s on the title Changes & Bug Fixes fixed bug where jumping wasn’t scaled to your fps that bug would have made high fps players not able to jump high, and low fps players to jump SUPER high
Ships:
FlatCraft Basic Info FlatCraft is an open source, MIT licensed 2d Minecraft inspired game. It uses LittleJS for the rendering, and vanilla HTML/CSS/JavaScript for the UI. All the rest was written by me. Challenges: One of the biggest challenge was world generation. The idea was to use simplex noise to make terrain, but there was one problem: It’s uncontrolability. I wanted real biomes, but that coudn’t happen because I didn’t know how to control simplex noise. Nor did I know how to make mountains. I solved it by realizing that this is just a silly 2d Minecraft game for a program designed to get teens to make something, not for teens to make some complex minecraft like game, so I decided to bite the bullet and to just make an array for each biome, and have that array contain the y level of the highest block, and use that array to make the terrain. It’s basically like [1,1,2,2,3,3]. Nothing complicated, and if you played this game long enough you’ll see that each biomes are litterally the same. Most Proud of: I’m actually most proud of the custom skins part of flatcraft. It’s really not that complex, but it took a mesruable amount of time to get it working. I had to learn node.js, finally had a use for a server! and used my old chromebook as my server. I made the precaution of adding a ratelimiter just in case someone tried to take it down or whatever, but yeah. That’s what I’m most proud of. What I learned: Making classes in js NodeJS LittleJS engine Stuff that didnt make it into the game: Game music Mobs Credits Art: Me, mostly me, My little brother Inspired by https://www.planetminecraft.com/texture-pack/digs-simple-pack-1-15-100-complete/ , and https://bloxd.io Programming: Me Libraries used: LittleJS...
|
1793152083.956067
|
1793238483.956067
|
|
11699
|
albumFinder by @maruscarebecca | Stardance
|
maruscarebecca
|
1
|
2.29
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-09T17:39:46Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Today I’ve worked on my first ever website! After following some really entertaining, interactive (and sometimes hard) lessons and tutorials from CodeDex, I’ve finally put my (beginner) web dev skills to use and made a website. Of course, out of my own stubborness, I jumped into a harder tutorial than needed, and just slightly lost my mind a couple of times from confusion, but I made it nevertheless. It was fun working with the Spotify Web API, and it was a really special and unique experience for me to use it for my first ever website, since music is such a big part of my life and identity:)) My final goal is building a more complex and interactive app with music using Spotify’s APIs, so stay tuned for that, but this was certainly a fun stepping stone :)", "repo": "https://github.com/rebecca-marusca/albumFinder", "demo": "https://album-finder-ten.vercel.app/"}]...
|
[{"post_id": 9471, "ts": "2026 [{"post_id": 9471, "ts": "2026-06-15T20:31:20Z", "hours": 0.2897, "text": "Changed parts of the UI so my eyes stopped hurting from the white album covers:))"}, {"post_id": 5757, "ts": "2026-06-09T17:35:06Z", "hours": 2.4564, "text": "🎵 Wrapped up work on my first ever web project!! It was a fun and rewarding (and frustrating) experience, as it always is with coding, and I enjoyed (and hated) every second:) Still looooots to improve, and will surely do so :))"}]...
|
Title: albumFinder by @maruscarebecca | Stardance
Title: albumFinder by @maruscarebecca | Stardance
Devlogs:
🎵 Wrapped up work on my first ever web project!! It was a fun and rewarding (and frustrating) experience, as it always is with coding, and I enjoyed (and hated) every second:) Still looooots to improve, and will surely do so :))
Changed parts of the UI so my eyes stopped hurting from the white album covers:))
Ships:
Today I’ve worked on my first ever website! After following some really entertaining, interactive (and sometimes hard) lessons and tutorials from CodeDex, I’ve finally put my (beginner) web dev skills to use and made a website. Of course, out of my own stubborness, I jumped into a harder tutorial than needed, and just slightly lost my mind a couple of times from confusion, but I made it nevertheless. It was fun working with the Spotify Web API, and it was a really special and unique experience for me to use it for my first ever website, since music is such a big part of my life and identity:)) My final goal is building a more complex and interactive app with music using Spotify’s APIs, so stay tuned for that, but this was certainly a fun stepping stone :)...
|
1793134430.211086
|
1793220830.211086
|
|
11743
|
Simple 2-Tone Hackpad by @james2009329 | Stardance
|
james2009329
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T00:40:14Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "The 2 main special features of this hackpad is how the lid is slid in place and then screwed, and how it is on a 10 degree angle. I wanted to make the lid slide-in-place, so the front would be a single uniform piece of 3D printed plastic, which i thought would be more comfortable. The angle is for better ergonomics (and it matches my current keyboard angle). Using a new software (KiCAD) was challenging, as it took a lot to get used to. I’m happy with how everything came out. I’ve attached a ss of a section view of the case. You can see the lip and the chamfer that helps it slide in.", "repo": "https://github.com/james2009329/Simple-Hackpad", "demo": ""}]...
|
[{"post_id": 9609, "ts": "2026 [{"post_id": 9609, "ts": "2026-06-16T00:27:49Z", "hours": 0.3503, "text": "Just finished up the documentation for the hackpad!"}, {"post_id": 6299, "ts": "2026-06-10T16:26:13Z", "hours": 2.4817, "text": "Just about finished the CAD for my hackpad! My idea for it is for the entire lid to be slid in place like a shelf. Heres a picture of the assembly and a section view!"}]...
|
Title: Simple 2-Tone Hackpad by @james2009329 | St Title: Simple 2-Tone Hackpad by @james2009329 | Stardance
Devlogs:
Just about finished the CAD for my hackpad! My idea for it is for the entire lid to be slid in place like a shelf. Heres a picture of the assembly and a section view!
Just finished up the documentation for the hackpad!
Ships:
The 2 main special features of this hackpad is how the lid is slid in place and then screwed, and how it is on a 10 degree angle. I wanted to make the lid slide-in-place, so the front would be a single uniform piece of 3D printed plastic, which i thought would be more comfortable. The angle is for better ergonomics (and it matches my current keyboard angle). Using a new software (KiCAD) was challenging, as it took a lot to get used to. I’m happy with how everything came out. I’ve attached a ss of a section view of the case. You can see the lip and the chamfer that helps it slide in....
|
1793112786.1051512
|
1793199186.1051512
|
|
11779
|
Image Math by @titanstar | Stardance
|
titanstar
|
1
|
10.0
|
71
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-09T10:18:46Z", "hours": 10.0, "multiplier": 7.23, "payout": 71, "blessing": "neutral", "text": "What if you could do math on an image? Inspired by 3Blue1Brown’s video , where he took the logarithm of a Droste art piece to convert it into Escher-style art, I generalised it to any function. Every point on an image is corresponded with a complex number in the complex plane. Applying a function on every point on an initial image gives a new complex number, cooresponding to its position in the new image. I was able to recreate Escher’s effect and more! Check out the readme for some awesome results I got, how to use your own custom math function, and a quick guide on creating your own escher art.", "repo": "https://github.com/TitanStar73/image-math", "demo": "https://pypi.org/project/image-math/"}]...
|
[{"post_id": 5255, "ts": "2026 [{"post_id": 5255, "ts": "2026-06-08T23:32:57Z", "hours": 9.8128, "text": "What if you could do math on an image? I was inspired by 3Blue1Brown’s video where he took the logarithm of a Droste art piece to convert it into an Escher-style artwork. Every point on an image is corresponded with a complex number in the complex plane. Applying a function on every point on an initial image gives a new complex number, cooresponding to its position in the new image. I was able to recreate Escher’s effect and more!"}]...
|
Title: Image Math by @titanstar | Stardance
Devlo Title: Image Math by @titanstar | Stardance
Devlogs:
What if you could do math on an image? I was inspired by 3Blue1Brown’s video where he took the logarithm of a Droste art piece to convert it into an Escher-style artwork. Every point on an image is corresponded with a complex number in the complex plane. Applying a function on every point on an initial image gives a new complex number, cooresponding to its position in the new image. I was able to recreate Escher’s effect and more!
Ships:
What if you could do math on an image? Inspired by 3Blue1Brown’s video , where he took the logarithm of a Droste art piece to convert it into Escher-style art, I generalised it to any function. Every point on an image is corresponded with a complex number in the complex plane. Applying a function on every point on an initial image gives a new complex number, cooresponding to its position in the new image. I was able to recreate Escher’s effect and more! Check out the readme for some awesome results I got, how to use your own custom math function, and a quick guide on creating your own escher art....
|
1793246026.0006764
|
1793332426.0006764
|
|
11794
|
Temperature Converter by @B754a | Stardance
|
B754a
|
1
|
1.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T22:44:58Z", "hours": 1.0, "multiplier": 1.1, "payout": 1, "blessing": "neutral", "text": "This is a simple temperature converter I used java script converts Celsius to Fahrenheit and Fahrenheit to Celsius second project I have made I had some errors such as the number not updating but I fixed it", "repo": "https://github.com/B754a-Dev/Temperature-Converter", "demo": "https://b754a-dev.github.io/Temp-Converter/"}]...
|
[{"post_id": 4576, "ts": "2026 [{"post_id": 4576, "ts": "2026-06-07T22:25:48Z", "hours": 1.1136, "text": "this is a simple temperature convertor converts Celsius to Fahrenheit and Fahrenheit to Celsius very easy to use, hope you like it"}]...
|
Title: Temperature Converter by @B754a | Stardance Title: Temperature Converter by @B754a | Stardance
Devlogs:
this is a simple temperature convertor converts Celsius to Fahrenheit and Fahrenheit to Celsius very easy to use, hope you like it
Ships:
This is a simple temperature converter I used java script converts Celsius to Fahrenheit and Fahrenheit to Celsius second project I have made I had some errors such as the number not updating but I fixed it...
|
1793109256.61879
|
1793195656.61879
|
|
11806
|
vsprocessing by @ilovesilverwolf | Stardance
|
ilovesilverwolf
|
1
|
45.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-16T07:06:26Z", "hours": 45.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "VS Processing is a fork of Code - OSS customized to deliver a near-native browser-based development experience. It adds support for writing, compiling, and running Processing & Java code directly in the browser, plus IntelliSense for all supported languages, a virtual file system, and GitHub integration (pull & push directly to GitHub!) VS Processing is designed specifically for Advanced Placement Computer Science A (AP CSA) classrooms to enable students to develop and run Java/Processing programs without installing any local software. We also found it useful in teaching Java to new members of our FIRST robotics team.", "repo": "https://github.com/CloudTronUSA/vsprocessing", "demo": "https://vsp.cloudtron.us/"}]...
|
[{"post_id": 80098, "ts": "202 [{"post_id": 80098, "ts": "2026-10-16T06:56:42Z", "hours": 6.8725, "text": "added github support - experimental"}, {"post_id": 8687, "ts": "2026-06-14T13:06:32Z", "hours": 2.0592, "text": "added online assignment fetching"}, {"post_id": 7820, "ts": "2026-06-13T01:44:38Z", "hours": 7.47, "text": "added assignments; updated java runtime to support more features, fixed mismatch between official java and our implementation; updated language server; updated vsp ui."}, {"post_id": 7199, "ts": "2026-06-12T00:47:01Z", "hours": 8.7086, "text": "implemented a filesystem that can read and write files from vscode and other places using fetch and java coroutine; fixed processing graphics implementation."}, {"post_id": 6143, "ts": "2026-06-10T10:21:05Z", "hours": 1.4119, "text": "fixed minor issues."}, {"post_id": 6102, "ts": "2026-06-10T08:13:23Z", "hours": 4.5678, "text": "added reference guides; worked on buildding system; deployed to vercel"}, {"post_id": 5463, "ts": "2026-06-09T08:08:26Z", "hours": 8.2408, "text": "added linting, fixed EVIL SAFARI stuff."}, {"post_id": 4645, "ts": "2026-06-08T01:35:19Z", "hours": 5.4681, "text": "optimizing error trace"}]...
|
Title: vsprocessing by @ilovesilverwolf | Stardanc Title: vsprocessing by @ilovesilverwolf | Stardance
Devlogs:
optimizing error trace
added linting, fixed EVIL SAFARI stuff.
added reference guides; worked on buildding system; deployed to vercel
fixed minor issues.
implemented a filesystem that can read and write files from vscode and other places using fetch and java coroutine; fixed processing graphics implementation.
added assignments; updated java runtime to support more features, fixed mismatch between official java and our implementation; updated language server; updated vsp ui.
added online assignment fetching
added github support - experimental
Ships:
VS Processing is a fork of Code - OSS customized to deliver a near-native browser-based development experience. It adds support for writing, compiling, and running Processing & Java code directly in the browser, plus IntelliSense for all supported languages, a virtual file system, and GitHub integration (pull & push directly to GitHub!) VS Processing is designed specifically for Advanced Placement Computer Science A (AP CSA) classrooms to enable students to develop and run Java/Processing programs without installing any local software. We also found it useful in teaching Java to new members of our FIRST robotics team....
|
1793199099.0384219
|
1793285499.0384219
|
|
11826
|
Board Game Bank Teller by @ackl510 | Stardance
|
ackl510
|
1
|
3.81
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-12T01:40:09Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have made a simple monopoly digital bank for 4 players with simple / commands similar to Minecraft.", "repo": "https://github.com/ackl510/Monopoly-Teller-System", "demo": "https://trinket.io/python/1e81d46a9abc?outputOnly=true&showInstructions=true"}]...
|
[{"post_id": 14735, "ts": "202 [{"post_id": 14735, "ts": "2026-06-23T22:56:33Z", "hours": 0.9461, "text": "Added Custom Player names and bankruptcy"}, {"post_id": 8738, "ts": "2026-06-14T15:15:51Z", "hours": 0.8617, "text": "Introduced an introduction and let users select player amount. Custom player names coming in next installment"}, {"post_id": 7207, "ts": "2026-06-12T01:12:03Z", "hours": 0.7572, "text": "Added /roll, /transfer, /help and other commands"}, {"post_id": 6436, "ts": "2026-06-10T20:25:29Z", "hours": 0.9183, "text": "Made basic commands such as take and give money"}]...
|
Title: Board Game Bank Teller by @ackl510 | Starda Title: Board Game Bank Teller by @ackl510 | Stardance
Devlogs:
Made basic commands such as take and give money
Added /roll, /transfer, /help and other commands
Introduced an introduction and let users select player amount. Custom player names coming in next installment
Added Custom Player names and bankruptcy
Ships:
I have made a simple monopoly digital bank for 4 players with simple / commands similar to Minecraft....
|
1793127219.7754114
|
1793213619.7754114
|
|
11828
|
Upcycler by @leroyl6420 | Stardance
|
leroyl6420
|
1
|
20.0
|
69
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-27T20:18:47Z", "hours": 20.0, "multiplier": 5.0, "payout": 69, "blessing": "neutral", "text": "I made a simple, affordable, and reliable take on the Petamentor. The Upcycler is a machine that turns plastic water bottles into 3D printing filament. The process is as follows: smooth out any bumps and ridges on a 2L PET soda bottle using a heat gun. Use a bottle cutter to cut the bottle into a long 7mm wide strip. Cut down one end to a long point, and feed that point through the nozzle of the heat block. Plug in the Upcycler’s 12V 5A power supply and make any changes to the settings you would like in the menu. However, the default settings are what I would personally recommend from extensive testing. Test to make sure that the thermistor is operational by pressing your finger onto the heat block. There should be a change by a degree or two. Select the “motor status” option to put the Upcycler into Running mode. CAUTION: the Upcycler’s heat block will get very hot! DO NOT TOUCH IT!!!!! Wait until the heat block reaches 180 degrees C. Use a pair of pliers to begin pulling the plastic. You only need to pull until the plastic reaches the spool. Weave the plastic through one of the slots on the side of the spool. You may then leave the Upcycler to work on its own. Processing a full 2L soda bottle may take several hours. Using the pulled PET in your 3D printer will require custom settings from normal PET. Since each 3D printer and brand of bottle will make the settings vary, I cannot give much advice. However, I can recommend making the nozzle hotter, as that seems to be a general theme for homemade PET. Wow, that was quite the user’s manual! A challenge that I faced while making the Upcycler was the budget. I knew from the start that I wanted something for less than $100. The closest kits I could find online cost $150. However, as development went on, I managed to get the cost down to a mere $48.43! One big milestone I achieved in budgeting was the motor. The standard Petamentor uses a high-torque 12V 3RPM DC motor, with the cheapest one I could find being $10. However, using smart engineering, I made a diabolical 30:1 gear ratio, allowing me to use much cheaper 28BYJ-48 stepper motors (which only cost $3 each!) Additionally, using the DC motors would have forced me to buy expensive 12V power modules, which generally cost $15 dollars each. Avoiding that constraint, I could use simpler 12V 5A power supplies that cost only $8. Something that I am proud of in the Upcycler is its dual-mode UI. While you use the Upcycler in its Running mode, you may hear periodical pauses in the motor’s humming. Those pauses are caused when the Arduino Uno R3 switches from outputting commands to reading information from the thermistor. It does not have the capability to do both at the same time. Even worse was the joystick. With the constant updates the Arduino needs from the joystick to make navigation smooth, the motor would hardly run at all! To fix this problem, I cleverly separated the code into two parts: a menu mode and a Running mode. In the menu mode, all the Arduino does is read info. It can check the thermistor much faster than in the Running mode, and you can use the Joystick freely. However, when you switch over to Running mode, the joystick is mostly disabled. Instead, the Arduino can focus on outputs, like the motor and the MOSFET powering the heater. However, there are still occasional pauses to check the heat block’s temperature (hence the periodical pauses). I also integrated the exit feature into that pause, so if you are holding the joystick down at the moment of the reading, you will exit back into menu mode. I am proud of this workaround I made in the code because I would have had to use a more powerful chip (or two Arduinos!) without it. I managed to fully capitalize on the power of a weak chip to fulfill my criteria.", "repo": "https://github.com/leroyl6420-boop/Upcycler", "demo": ""}]...
|
[{"post_id": 16676, "ts": "202 [{"post_id": 16676, "ts": "2026-06-27T03:25:38Z", "hours": 1.0333, "text": "I finished the Upcycler V3 today! YAY! I started printing the new models I made yesterday this morning. There were only two parts (the main body and the short body) but they still took all day lol . I also had to fix my 3D printer in between the two prints because it started leaking filament out of its throat and the melted filament dripped onto the prints and left these weird brown streaks. After the parts were finished I replaced the old parts with the new. That took a whole hour because all the smaller parts are built onto these two biggest parts, and I use very fine mechanical screws (which take a long time to install/remove). The new parts work really well, tho! They solved the old problem of the bases cracking when you screwed in their screws too tight. Anyway, this is it! I tested the Upcycler V3 and it worked well! Just like its previous versions, you cut PET filament from 2L soda bottles into 7mm wide strips and feed them through the nozzle at 210 C at 150 steps/s. Check out my GitHub repo if you want to build this yourself! YIPPIEEEEE!"}, {"post_id": 15785, "ts": "2026-06-25T17:39:13Z", "hours": 0.7986, "text": "I finished updating the CAD files for my Upcycler project today! I fixed the problem of the bodies’ legs always cracking when you screw in their screws too tight. I did that by creating notches for their caps to settle in. This should also keep the legs sturdy over long-term wear. Another problem I’ve had for a while was the bodies not lining up in the assemblies for some reason. I found the root of that problem while improving the legs. The legs were actually slightly offset on the bodies on the x-axis for some reason. I was able to fix that easily when reattaching the legs. Redoing the base to fit this change was more difficult, but a bit of brute force did the trick ;) I’ll be printing these new parts out now. After replacing the old ones, the Upcycler V3 will be done!"}, {"post_id": 15424, "ts": "2026-06-25T02:09:33Z", "hours": 1.3292, "text": "I finished updating the code for my Upcycler project! I already knew the jist of the things I needed from the AI-generated code I used to use, so I was able to finish everything in just one session. The biggest change I made was adding a safety feature for the heating component. If the 6x20mm 12V 40W ceramic heating components I use get too hot, they pose a fire hazard, not to mention the fact that they can damage themselves, the parts around them, and the electrical components they connect to. They can only go up to 350 degrees Celsius before those things start to happen, and my old code allowed operation up to 360 degrees, so I updated the max to be 340 (meaning there’s a 10 degree margin of safety). I also made a few quality of life changes in the UI. I listed the current code version and model next to the title I labeled the temperature readings in both the main menu and the operating menu with “C” (to clarify that the readings are in degrees Celsius) I more clearly labeled the temperature readings in both the main menu and the operating menu as “Current_Temp” to avoid confusion -I more clearly labeled the target temperature readings in both the main menu and the operating menu as “Target_Temp” to avoid confusion I more clearly labeled the motor reading in the main menu as “Motor_Status” to avoid confusion I more clearly labeled the speed reading in the main menu as “Steps/s” to avoid confusion I reset the default steps per second to 150 to make usage more convenient I reset the default temperature to 210 degrees Celsius to make usage more convenient I added notes to the .ino file to guide users when reconstructing the Upcycler That was all for the code! I can get back to the good hardware stuff now!"}, {"post_id": 15279, "ts": "2026-06-24T20:23:50Z", "hours": 0.6333, "text": "I finished building the heating component for the Upcycler today! I connected the ceramic heater to the MOSFET module, and I inserted both the heater and the thermistor into the heat block. I secured the heat block onto the L-Bracket using an adapted 0.4mm nozzle (I expanded it to 1/16in). The entire physical build for the Upcycler is complete! I will work on an improved code now!"}, {"post_id": 14848, "ts": "2026-06-24T03:28:00Z", "hours": 15.8222, "text": "Hi! This is the first devlog for my Upcycler project on Stardance! I started this project in Horizons, but I decided to move over to Stardance after 15 hours of work after seeing how Stardance is more hardware-oriented. To recap the work I did in Horizons, I found a set of 3D files for a body of a Petamentor and adapted them to use a 28BYJ-48 stepper motor. I chose a lot of parts to heat up 7mm strips of PET and control the motor, modeled them on Onshape, bought them in real life, and assembled part of the Upcycler. For this first devlog in Stardance, I started assembling the heating component. I drilled holes in the base to fit the L-bracket that will hold the heat block, and I attached two two-way WAGOs to incorporate a thermistor to track the temperature of the heat block. I added all of the electrical components the thermistor will need. Of course, there is a lot more to my journey than I wrote here. Check out my Github repo to see the entire process (including my work in Horizons!)"}]...
|
Title: Upcycler by @leroyl6420 | Stardance
Devlog Title: Upcycler by @leroyl6420 | Stardance
Devlogs:
Hi! This is the first devlog for my Upcycler project on Stardance! I started this project in Horizons, but I decided to move over to Stardance after 15 hours of work after seeing how Stardance is more hardware-oriented. To recap the work I did in Horizons, I found a set of 3D files for a body of a Petamentor and adapted them to use a 28BYJ-48 stepper motor. I chose a lot of parts to heat up 7mm strips of PET and control the motor, modeled them on Onshape, bought them in real life, and assembled part of the Upcycler. For this first devlog in Stardance, I started assembling the heating component. I drilled holes in the base to fit the L-bracket that will hold the heat block, and I attached two two-way WAGOs to incorporate a thermistor to track the temperature of the heat block. I added all of the electrical components the thermistor will need. Of course, there is a lot more to my journey than I wrote here. Check out my Github repo to see the entire process (including my work in Horizons!)
I finished building the heating component for the Upcycler today! I connected the ceramic heater to the MOSFET module, and I inserted both the heater and the thermistor into the heat block. I secured the heat block onto the L-Bracket using an adapted 0.4mm nozzle (I expanded it to 1/16in). The entire physical build for the Upcycler is complete! I will work on an improved code now!
I finished updating the code for my Upcycler project! I already knew the jist of the things I needed from the AI-generated code I used to use, so I was able to finish everything in just one session. The biggest change I made was adding a safety feature for the heating component. If the 6x20mm 12V 40W ceramic heating components I use get too hot, they pose a fire hazard, not to mention the fact that they can damage themselves, the parts around them, and the electrical components they connect to. They can only go up to 350 degrees Celsius before those things start to happen, and my old code allowed operation up to 360 degrees, so I updated the max to be 340 (meaning there’s a 10 degree margin of safety). I also made a few quality of life changes in the UI. I listed the current code version and model next to the title I labeled the temperature readings in both the main menu and the operating menu with “C” (to clarify that the readings are in degrees Celsius) I more clearly labeled the temperature readings in both the main menu and the operating menu as “Current_Temp” to avoid confusion -I more clearly labeled the target temperature readings in both the main menu and the operating menu as “Target_Temp” to avoid confusion I more clearly labeled the motor reading in the main menu as “Motor_Status” to avoid confusion I more clearly labeled the speed reading in the main menu as “Steps/s” to avoid confusion I reset the default steps per second to 150 to make usage more convenient I reset the default temperature to 210 degrees Celsius to make usage more convenient I added notes to the .ino file to guide users when reconstructing the Upcycler That was all for the code! I can get back to the good hardware stuff now!
I finished updating the CAD files for my Upcycler project today! I fixed the problem of the bodies’ legs always cracking when you screw in their screws too tight. I did that by creating notches for their caps to settle in. This should also keep the legs sturdy over long-term wear. Another problem I’ve had for a while was the bodies not lining up in the assemblies for some reason. I found the root of that problem while improving the legs. The legs were actually slightly offset on the bodies on the x-axis for some reason. I was able to fix that easily when reattaching the legs. Redoing the base to fit this change was more difficult, but a bit of brute force did the trick ;) I’ll be printing these new parts out now. After replacing the old ones, the Upcycler V3 will be done!
I finished the Upcycler V3 today! YAY! I started printing the new models I made yesterday this morning. There were only two parts (the main body and the short body) but they still took all day lol . I also had to fix my 3D printer in between the two prints because it started leaking filament out of its throat and the melted filament dripped onto the prints and left these weird brown streaks. After the parts were finished I replaced the old parts with the new. That took a whole hour because all the smaller parts are built onto these two biggest parts, and I use very fine mechanical screws (which take a long time to install/remove). The new parts work really well, tho! They solved the old problem of the bases cracking when you screwed in their screws too tight. Anyway, this is it! I tested the Upcycler V3 and it worked well! Just like its previous versions, you cut PET filament from 2L soda bottles into 7mm wide strips and feed them through the nozzle at 210 C at 150 steps/s. Check out my GitHub repo if you want to build this yourself! YIPPIEEEEE!
Ships:
I made a simple, affordable, and reliable take on the Petamentor. The Upcycler is a machine that turns plastic water bottles into 3D printing filament. The process is as follows: smooth out any bumps and ridges on a 2L PET soda bottle using a heat gun. Use a bottle cutter to cut the bottle into a long 7mm wide strip. Cut down one end to a long point, and feed that point through the nozzle of the heat block. Plug in the Upcycler’s 12V 5A power supply and make any changes to the settings you would like in the menu. However, the default settings are what I would personally recommend from extensive testing. Test to make sure that the thermistor is operational by pressing your finger onto the heat block. There should be a change by a degree or two. Select the “motor status” option to put the Upcycler into Running mode. CAUTION: the Upcycler’s heat block will get very hot! DO NOT TOUCH IT!!!!! Wait until the heat block reaches 180 degrees C. Use a pair of pliers to begin pulling the plastic. You only need to pull until the plastic reaches the spool. Weave the plastic through one of the slots on the side of the spool. You may then leave the Upcycler to work on its own. Processing a full 2L soda bottle may take several hours. Using the pulled PET in your 3D printer will require custom settings from normal PET. Since each 3D printer and brand of bottle will make the settings vary, I cannot give much advice. However, I can recommend making the nozzle hotter, as that seems to be a general theme for homemade PET. Wow, that was quite the user’s manual! A challenge that I faced while making the Upcycler was the budget. I knew from the start that I wanted something for less than $100. The closest kits I could find online cost $150. However, as development went on, I managed to get the cost down to a mere $48.43! One big milestone I achieved in budgeting was the motor. The standard Petamentor uses a high-torque 12V 3RPM DC motor, with the cheapest one I could find being $10. However, using smart engineering, I made a diabolical 30:1 gear ratio, allowing me to use much cheaper 28BYJ-48 stepper motors (which only cost $3 each!) Additionally, using the DC motors would have forced me to buy expensive 12V power modules, which generally cost $15 dollars each. Avoiding that constraint, I could use simpler 12V 5A power supplies that cost only $8. Something that I am proud of in the Upcycler is its dual-mode UI. While you use the Upcycler in its Running mode, you may hear periodical pauses in the motor’s humming. Those pauses are caused when the Arduino Uno R3 switches from outputting commands to reading information from the thermistor. It does not have the capability to do both at the same time. Even worse was the joystick. With the constant updates the Arduino needs from the joystick to make navigation smooth, the motor would hardly run at all! To fix this problem, I cleverly separated the code into two parts: a menu mode and a Running mode. In the menu mode, all the Arduino does is read info. It can check the thermistor much faster than in the Running mode, and you can use the Joystick freely. However, when you switch over to Running mode, the joystick is mostly disabled. Instead, the Arduino can focus on outputs, like the motor and the MOSFET powering the heater. However, there are still occasional pauses to check the heat block’s temperature (hence the periodical pauses). I also integrated the exit feature into that pause, so if you are holding the joystick down at the moment of the reading, you will exit back into menu mode. I am proud of this workaround I made in the code because I would have had to use a more powerful chip (or two Arduinos!) without it. I managed to fully capitalize on the power of a weak chip to fulfill my criteria....
|
1793246014.4886475
|
1793332414.4886475
|
|
11914
|
PixelSwerve by @pxverkso | Stardance
|
pxverkso
|
1
|
13.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-09T17:53:13Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "PXLSWRV is a Swerve Drive module powered by REV-A301 Motors. Swerve Drive is also called an independent wheel steering system. It works by having 2 independent motors for steering and driving. Overall, the most challenging part during this project was figuring out how to package everything into a small form factor. The reason I wanted a small form factor was so it could actually have an advantage over other compact holonomic drivetrain systems (i.e. mecanum). I think the thing I’m most proud of (and the significance of the project) was that I failed numerous times to design a swerve drive in the past 2 years. This was my 3rd attempt at a swerve drive and I was able to learn so much about coaxial effects, packaging, and what it takes to create a clean design. All the parts used in this project are in the CAD Link, accessible through the ReadMe in the source code or accessed through the Try Project button. Unfortunately, this project will not be able to be built as of 6/9/26 due to the REV-A301 Motor being officially released in 2027. Thank you for taking interest in my project!", "repo": "https://github.com/pxverkso/pxlswrv-a301-", "demo": ""}]...
|
[{"post_id": 5717, "ts": "2026 [{"post_id": 5717, "ts": "2026-06-09T16:45:32Z", "hours": 1.43, "text": "Devlog #4 PxlSwrv using A301 Motors I’m now basically done with this project. Today I just inverted the master module so I could create a beautiful 4 wheel configuration. Everything is sorted and awesome so it’s ready to be shipped now!"}, {"post_id": 5346, "ts": "2026-06-09T02:38:26Z", "hours": 3.2836, "text": "Devlog #3 PxlSwrv Using A301 Motors So I’m posting this on the same day as DevLog #2 since I was bored and just decided to get the rendering and finishing touches out of the way. I spent most of my time refining the details in the model to make it look presentable. I also did more organizing on the files so you can now sort through screws, hardware, and custom made parts. Check it out on the Onshape link! Also this is my first time really putting in effort on a render so I hope yall like it :)"}, {"post_id": 5227, "ts": "2026-06-08T22:47:33Z", "hours": 4.8547, "text": "Devlog #2 PxlSwrv Using A301 Motors I got a lot more done today than I was expecting to get done. I finished the full v1 assembly and every part lines up and works perfectly. I also organized all the parts neatly into folder so now it’s ready for public access! Tomorrow, I’ll work on the promotion component and render it using Fusion 360 to make it look extra nice :) Don’t expect this to be the last version as I want to keep creating new and more innovative drivetrains in the future!"}, {"post_id": 4720, "ts": "2026-06-08T04:42:54Z", "hours": 2.9647, "text": "Devlog #1 PxlSwrv using A301 Motors Today I was able to get used to the new First Tech Challenge A301 Motors which will soon be releasing in 2027. I first started by making an adapter from the A301’s 15T Spine to the Gobilda 8mm REX Shaft, a shaft collar, and a basic axle. Then I sketched up a nice base for the swerve drive to take form on. I attached motors and a bearing. I finally created the spinning pod’s base, wheel, and tires. Tomorrow I’ll be working on creating a way for the wheel to move using one of the motors attached on the base."}]...
|
Title: PixelSwerve by @pxverkso | Stardance
Devlo Title: PixelSwerve by @pxverkso | Stardance
Devlogs:
Devlog #1 PxlSwrv using A301 Motors Today I was able to get used to the new First Tech Challenge A301 Motors which will soon be releasing in 2027. I first started by making an adapter from the A301’s 15T Spine to the Gobilda 8mm REX Shaft, a shaft collar, and a basic axle. Then I sketched up a nice base for the swerve drive to take form on. I attached motors and a bearing. I finally created the spinning pod’s base, wheel, and tires. Tomorrow I’ll be working on creating a way for the wheel to move using one of the motors attached on the base.
Devlog #2 PxlSwrv Using A301 Motors I got a lot more done today than I was expecting to get done. I finished the full v1 assembly and every part lines up and works perfectly. I also organized all the parts neatly into folder so now it’s ready for public access! Tomorrow, I’ll work on the promotion component and render it using Fusion 360 to make it look extra nice :) Don’t expect this to be the last version as I want to keep creating new and more innovative drivetrains in the future!
Devlog #3 PxlSwrv Using A301 Motors So I’m posting this on the same day as DevLog #2 since I was bored and just decided to get the rendering and finishing touches out of the way. I spent most of my time refining the details in the model to make it look presentable. I also did more organizing on the files so you can now sort through screws, hardware, and custom made parts. Check it out on the Onshape link! Also this is my first time really putting in effort on a render so I hope yall like it :)
Devlog #4 PxlSwrv using A301 Motors I’m now basically done with this project. Today I just inverted the master module so I could create a beautiful 4 wheel configuration. Everything is sorted and awesome so it’s ready to be shipped now!
Ships:
PXLSWRV is a Swerve Drive module powered by REV-A301 Motors. Swerve Drive is also called an independent wheel steering system. It works by having 2 independent motors for steering and driving. Overall, the most challenging part during this project was figuring out how to package everything into a small form factor. The reason I wanted a small form factor was so it could actually have an advantage over other compact holonomic drivetrain systems (i.e. mecanum). I think the thing I’m most proud of (and the significance of the project) was that I failed numerous times to design a swerve drive in the past 2 years. This was my 3rd attempt at a swerve drive and I was able to learn so much about coaxial effects, packaging, and what it takes to create a clean design. All the parts used in this project are in the CAD Link, accessible through the ReadMe in the source code or accessed through the Try Project button. Unfortunately, this project will not be able to be built as of 6/9/26 due to the REV-A301 Motor being officially released in 2027. Thank you for taking interest in my project!...
|
1793141318.598379
|
1793227718.598379
|
|
11950
|
Assembly os x64 custom kernel and bootloader by @s Assembly os x64 custom kernel and bootloader by @scrt401 | Stardance...
|
scrt401
|
1
|
415.3
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-17T10:02:38Z", "hours": 415.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Simple os with access to Ring 0 stuff the ai no work sadly", "repo": "https://github.com/majster0su0lin/SofaOs/tree/SofaOs-x86/x64", "demo": "https://github.com/majster0su0lin/SofaOs/releases/tag/V1"}]...
|
[{"post_id": 69772, "ts": "202 [{"post_id": 69772, "ts": "2026-09-17T19:19:09Z", "hours": 0.3047, "text": "ok so let me defend originality : it is a ring 0 os made for hardvare inspection while i saw others did os stuff to before me on stardance i already made an os before stardance in arm , technicality : assembly ,usability : it is meant to inspect pcs when something goes wrong hardvare level not daily driver, you decide storitelyng i pored my heart into those devlogs"}, {"post_id": 69042, "ts": "2026-09-16T08:32:04Z", "hours": 9.0064, "text": "Ok so refined devlogs polished sofaos and GitHub couldn’t ship because rhe whole kernel inflated from 52 to 838 sectors by some miracle, destroyed interrupt table, tensor hard coded stuff and other stuff it ruined my day also ok so let me defend originality : it is a ring 0 os made for hardvare inspection while i saw others did os stuff to before me on stardance i already made an os before stardance in arm , technicality : assembly ,usability : it is meant to inspect pcs when something goes wrong hardvare level not daily driver, you decide storitelyng i pored my heart into those devlogs"}, {"post_id": 68695, "ts": "2026-09-15T15:39:08Z", "hours": 3.1717, "text": "So today i finished argmax which finds closest token to response, now i have everything but it still has some errors it prints 0 every time so meybie some register colision but the good thing is that it doesn’t crash."}, {"post_id": 66064, "ts": "2026-09-11T17:07:16Z", "hours": 6.7411, "text": "Ok i have successfully made detokenizator which goes trough the token id book that many times as a token because token id =id book entries untill the token, and also i have made matrix–vector dot product calculator which goes through all token ids and translates them into a big amount of vectors which then in another step i will be doing comparison hbuf with all these vectors to find a token with lovest diff and that will be our output token, but big but it still isn’t tested i will be testing it when i will have the full command done for now i just want to live in an illusion that my code is error free"}, {"post_id": 65678, "ts": "2026-09-11T00:04:31Z", "hours": 7.4689, "text": "There was a problem with pointers in rnsm found it when i did double check and from there errors just piled up but at least its fixed now"}, {"post_id": 65088, "ts": "2026-09-09T23:44:59Z", "hours": 10.7261, "text": "Today i got help from my great teacher and was able to do more than usual, today i did hbuf setuper it basically just calls fcon 576 times to translate the values from 16 bit quantization to 32 then i have written a function RMSNorm which uses hbuf and weights you give it and calculates rescaled feuture vector"}, {"post_id": 64514, "ts": "2026-09-08T23:45:58Z", "hours": 4.1469, "text": "I have no idea how to fix it so i retreated ro the ol reliable method by first hardcoding it and after some time actually fixing it"}, {"post_id": 64041, "ts": "2026-09-08T05:17:04Z", "hours": 9.4239, "text": "Today i am a bit better so i did the harder part that is needed to be done, i have made tensor info gatherer, basically each layer has 9 tensor info, so for my model 9*30 tensor infos, also the string i am comparing in the function needs to be like [blk.][number of current layer in decimal(use bintrn)][specification string], it still doesn’t work but it will be something like infinite inc loop to memory or division basically smth that generates general protection, also because I was smart i saved my previous error where i used tensor info praser so i didn’t Neded to reerite it."}, {"post_id": 63041, "ts": "2026-09-06T16:40:58Z", "hours": 13.9978, "text": "Ok so uuh those 5l of Kofola wasn’t a great ide today i got a fever or flu or whatever the thing that makes you feel hot but i made some progress even though it was hard cuz i had a headache and couldn’t do anything so what i did i made a f16 to 32 translation and you might say hmm but this doesn’t seem too vomplex first of all i had to split registers inro 3 sections do calculation on them and the glue them together to xmm0 but what you might not know is if you don’t allow xmm is 32 bit mode it will throw gp an the whole code and you cant know why it crashed because whole runtime in crash log looks absolutely normal for some reason also I don’t actually care about the time anymore i just want to get this working so i can get a laptop to not code on my phone"}, {"post_id": 62412, "ts": "2026-09-05T19:08:49Z", "hours": 4.2733, "text": "Ok bad News today i drank 5l of Kofola and now me attention me hyperactive me cant concentrate but did token and bos token enumetion there was a problem with division because of no xor rdx,rdx but ez fix if boestoken add 1 it adds tokwn"}, {"post_id": 61794, "ts": "2026-09-04T21:32:05Z", "hours": 9.7972, "text": "Made the metadata praser work i was using tensor format and nkt metadata Format also verifyed it works on pc"}, {"post_id": 61430, "ts": "2026-09-04T10:41:02Z", "hours": 10.1667, "text": "Tokenizer done now for vector context calculator . The tokenizer was somwhat refusing to work but one rewrite later it subdued to my power it is split into teo parts the text decoder and encoder decoder formats the words for encoder and encoder finds tokens for the words"}, {"post_id": 61031, "ts": "2026-09-03T18:48:37Z", "hours": 9.1417, "text": "Ok i gave lost the war against the matadata praser i will not fight it now i will fix it in second ship for now i have hard coded the data needed and also made the core of the tokenizer which was relatively easy compared to the praser"}, {"post_id": 60700, "ts": "2026-09-03T07:49:19Z", "hours": 9.9789, "text": "Ok all metadata entry data prased but when i delete the print at the bottom it for some reason triple faults going to report every ±9 hrs because i need to speedrun this because the stardance is ending soon now onto tensor data praser"}, {"post_id": 60330, "ts": "2026-09-02T16:41:32Z", "hours": 9.3447, "text": "Ok bigg devlog todat i decided to speedrun this so i can ship this project as fast as possible also changed the model to a smaller native f16 quantization and It works which is a proof that anyone can put their model into sofaos and run it rn it just loops troug metadata to find general architecture"}, {"post_id": 59645, "ts": "2026-09-01T15:49:30Z", "hours": 5.2714, "text": "Hello good news today have started on setting up the data from GGUF rn it is just getting version metadata entryes and tensor entry, I Also started a loop for the metadata entryes but just started this one was easy cuz it has prefixed everything 4 bytes gguf magic 4 version 8 metadata entryes and 8 tensor info entry which makes 24 bytes in total"}, {"post_id": 58380, "ts": "2026-08-30T19:52:10Z", "hours": 6.5333, "text": "I have successfully loaded whole LLM problem was that It was loading 1 gb by 512 bytes and that takes very long and thats why it seemed it hanged I fixed it by giving it a counter so you can see that it doesn’t hang"}, {"post_id": 57573, "ts": "2026-08-29T19:16:39Z", "hours": 6.3667, "text": "Ok sooo I made the code buuut it hangs when I do the loading idk what happening will have to debug"}, {"post_id": 55739, "ts": "2026-08-27T18:30:20Z", "hours": 6.9333, "text": "Ok I give up on writing it, cuz GGUF file structure is ass and I can’t write it in the way it should be I am going to pull a cheap trick by putting a control string at the end of the file to know when the file is ending below is structure of how the whole file should look like"}, {"post_id": 54996, "ts": "2026-08-26T12:56:49Z", "hours": 8.4742, "text": "Ok I was figuring out how to load the gguf file which I think I got right but I can’t find a way to know how many sectors to pull out of disk because the metadata in gguf aren’t always the same nor size of the entries are the same so there is now way to know when they end and I need them to find the size of the file in picture you can see how the metadata is structured"}, {"post_id": 54059, "ts": "2026-08-24T20:31:14Z", "hours": 2.0172, "text": "Ok I have made a new command inout it let’s user chose number port in and port to listen from and it spits out response from the port as you can see I tried corrupting time register and it worked"}, {"post_id": 53159, "ts": "2026-08-23T16:30:52Z", "hours": 4.3508, "text": "Ok so I half rewritten the code for sector read I had to drop hard coded 0 and look for actuall devices to get the data from as you can see it works still"}, {"post_id": 52420, "ts": "2026-08-22T15:26:25Z", "hours": 4.1333, "text": "Ok so I was working on gluing gguf file at the end of my iso you can see image it was successful also needed to generalize ahci driver to work on all PCs now writing the gguf retrieve from disk code"}, {"post_id": 51949, "ts": "2026-08-21T22:06:31Z", "hours": 6.9186, "text": "Ok so uuuh….. Somehow secr destroyditself up and I had to fix it the thing is that from 0xffffff… Somehow one of the f magically dissapeared and I had to basically trace whole Drs sector to find what was wrong also waking aps for some reason isn’t working even I am using textbook code to wake it up I now have no idea why is it not working mameybie I will gat back to it at the end and now do the special function because everyone on stardance for some reason started doing X64 os so I had to come up with something radical, I am going to make a full local assembly llm chat engine like llama.cpp fully in assembly for sofaos all things from scratch tokenizer network loading calculation and other stuff I have nothing really to show so just enjoy some random pic from my gallery"}, {"post_id": 50626, "ts": "2026-08-19T21:25:41Z", "hours": 1.5097, "text": "Aps not responding should put 67 to px67 but aps not doing idk if because of qemu or whatever I don’t want to debug this piece of shi"}, {"post_id": 48801, "ts": "2026-08-17T10:37:03Z", "hours": 9.8594, "text": "Spent I don’t even know how much time I lost track of time doing this shit I did it whole night I am happy that I am going to sleep at 12:33 the error was that I wasn’t sending enough sipis so the aps didn’t actually wake up but I didn’t knew that so I was tracing the whole os to find the error then I actually checked on internet how should it be done and that’s when I was finally able to fix this simple ass problem"}, {"post_id": 46606, "ts": "2026-08-13T23:28:04Z", "hours": 9.4331, "text": "Finished the core wakeup now I can wakeup any numver of cores that I have and now I am going to make some serious multitasking i still need to do the trampoline to launch the cores to 64 bit mode but they will be fast also the limit of cores for legacy PCs is 255 but it is still engouh to wake up amd epyc"}, {"post_id": 45351, "ts": "2026-08-11T19:00:05Z", "hours": 7.7386, "text": "Ok I have found the number of cores which is a huge milestone now I need to find what is the bsp to not wakeup already woken up core number of cores is in a memory buffer 256 bytes big cous the CPU doesn’t have enough IDs for more than 255 cores so even In future it will be ok"}, {"post_id": 42209, "ts": "2026-08-06T20:25:10Z", "hours": 6.2731, "text": "Found Madt table finally going to get number of cores to wakeup"}, {"post_id": 41610, "ts": "2026-08-05T22:27:33Z", "hours": 7.7322, "text": "I did some preparations for init sipi sipi trampoline to wake up more cores for multitasking it just finds acpi rsdp in memory I also want to be able for user to chose how many cores to wakeup"}, {"post_id": 39343, "ts": "2026-08-02T08:01:35Z", "hours": 9.4314, "text": "Added the ability to read what’s on the disk there was a problem with R14 cuz one function that I called used it but push and pop fixed it after I traced the problem without it would print 20 endlessly till it crashed"}, {"post_id": 36740, "ts": "2026-07-29T00:11:34Z", "hours": 4.6686, "text": "Ok I have found the solution instead of looking trough all ports it stops on the firt found idk how it works but it works now I can extract data from disk"}, {"post_id": 35588, "ts": "2026-07-27T03:43:28Z", "hours": 9.2492, "text": "Something is very wrong here. Every debug marker along the boot/init path prints exactly like it should, and it still never makes it to the shell. Going to need a proper trace through this instead of guessing."}, {"post_id": 32921, "ts": "2026-07-22T12:09:35Z", "hours": 8.0367, "text": "PCI bus enumeration, done by brute-force, but like every os does it this way loop over every bus, device, and function number, write a config address to IO port 0xCF8 , read whatever comes back from 0xCFC . All ones means nothing’s there; anything else gets recorded. Once every device on the bus is found, it scans the results for a class code matching AHCI (SATA storage), grabs that device’s BAR5, and starts bringing the controller up — reset bit set, poll until it clears, enable global host control. This is what opens up actual disk read/write instead of relying on BIOS"}, {"post_id": 29065, "ts": "2026-07-15T18:30:38Z", "hours": 0.2567, "text": "Added whatindr just copied function whatincr and changed registers from control to debug"}, {"post_id": 28980, "ts": "2026-07-15T16:38:29Z", "hours": 12.4869, "text": "I added so when the user types it automatically moves screen to VGA buffer so it doesn’t overwrite bad memmory and implemented this thing for cpritn too so if you are near end of the screen it automatically moves up (number of rewrites this function took 3) in pic you can see how cpritn automatically moved up"}, {"post_id": 26737, "ts": "2026-07-11T18:16:27Z", "hours": 9.8742, "text": "Added translate which translates number from hex to dec and also the other way and command to see what in memory I had to make a new function to accept hex and Dec and figure out which one is which than grab byte from memory not 8 bytes was stuck on that then output which was easy cus I already have function for that then added translate which just uses hexbin function for Dec and bin for hex and outputs in the other format also I don’t have much time to code because I am a slave on a construction now and I get paid absolute minimum"}, {"post_id": 20804, "ts": "2026-07-02T14:45:38Z", "hours": 7.6444, "text": "Ok so today I have made saythis command which is basically echo (system says what you tell it to) and whatincr which basically spits out what is in control registers which might be useful for some repairman or whatever but I had to make new functions like bintrn which turns normal pc number into decimal ASCII string but I had the loop wrong it started at wrong point but now it should work"}, {"post_id": 18754, "ts": "2026-06-29T23:04:10Z", "hours": 7.3631, "text": "Added scroll up, just the reverse of scroll down — but still needed its own direction logic and its own set of variables reset correctly, and the first version was so badly written that i just rewrote the thing"}, {"post_id": 16826, "ts": "2026-06-27T10:08:25Z", "hours": 14.0714, "text": "Limited coding time cuz i am on vacation in Berlin but made progress on scrolling the screen now scrolls down good text overflows the bottom. Scroll up still doesn’t exist the first attempt was so tangled it wasn’t worth saving, so that one got scrapped rather than patched."}, {"post_id": 14559, "ts": "2026-06-23T18:40:49Z", "hours": 15.5939, "text": "Added more text commands and started on ones that actually do something, like echo. Also started work on moving text up and down the screen, which is lowk hard"}, {"post_id": 12479, "ts": "2026-06-20T11:33:22Z", "hours": 9.3064, "text": "Completed the command system — a compare routine ( cmper ) checks whatever’s typed against a table of known command strings and jumps straight to that command’s handler on a match. First command wired up was cls , mostly because the screen clearer routine already existed. Everything else gets added the same way from here."}, {"post_id": 11616, "ts": "2026-06-18T22:21:16Z", "hours": 5.1686, "text": "Terminal UI is functional now — Enter does something, and extended interrupts (arrow keys) get decoded properly instead of coming through as garbage. Also added a distinct sys response visual state vs just characters The color choices right now are not best need to actually look into color theory."}, {"post_id": 11321, "ts": "2026-06-18T15:03:42Z", "hours": 3.1789, "text": "Forgot to say this last time, but there’s now a basic (not working) concept of user input reaching the system layer — just the shape of how it should work, not the real thing yet. Finishing that up next so it actually looks like a terminal. Worth sayi the cursor ( curzor ) tracking and the cls screen-clear command both went in a little earlier and are what everything since has been built on top of."}, {"post_id": 11192, "ts": "2026-06-18T09:50:01Z", "hours": 8.1875, "text": "Text now behaves like a normal shell — typing lands where it should, and added a working delete/backspace key plus some general UI cleanup. Starting to lok like an actual terminal instead of a proof of concept."}, {"post_id": 10930, "ts": "2026-06-17T22:14:13Z", "hours": 4.3675, "text": "Keyboard handler is fixed. Can freely type now. thought: there’s currently nothing stopping unrestricted writes from going past where they should, which means someone could in theory type their way into overwriting parts of the running system. Needs boundaries before this goes further."}, {"post_id": 10672, "ts": "2026-06-17T15:09:06Z", "hours": 4.9003, "text": "Fixed yesterday’s error. Now testing on real hardware to check whether the machine actually virtualizes PS2 keyboard controller the same way QEMU does, since the handler logic depends on that"}, {"post_id": 10316, "ts": "2026-06-16T23:51:15Z", "hours": 8.5125, "text": "Tried implementing a keyboard press handler. Sadly, it does not work. Something in the interrupt handling isn’t right — more debugging needed before typing does anything useful."}, {"post_id": 9785, "ts": "2026-06-16T07:03:14Z", "hours": 6.5003, "text": "Finally transitioned into 64-bit mode, so the actual OS can start getting written now. Not going to explain every step in detail since it’s always the same , but simple: built page tables using 2MB pages so the fourth paging level (the 4KB page table) could be skipped entirely, set up the stack, and did the rest of the long-mode setup (PAE, the EFER long-mode-enable bit, then paging itself) before the far jump into 64-bit code."}, {"post_id": 9416, "ts": "2026-06-15T19:29:46Z", "hours": 6.1778, "text": "Big milestone got it running on an actual my pc instead of just QEMU. Had to go back into stage 1 real BIOSes are pickier than QEMU’s about a few things. Nothing structural changed, just les forgiving to handle."}, {"post_id": 9090, "ts": "2026-06-15T05:59:09Z", "hours": 5.4553, "text": "Ok found the bug it was bad cmp flag check still a bad Habit I have from arm to instead of je is Zero try to do arm syntax and do jz, (BZ branch if zero) but now it works ok"}, {"post_id": 8967, "ts": "2026-06-14T22:37:16Z", "hours": 14.9994, "text": "Pulled an all-nighter and finally got a boot working — turned out QEMU was set to -nographic, so my VGA output was being generated correctly but never actually displayed. Once I fixed that, i found a new problem up: once in 32-bit mode, my code started printing from the top of the screen and overwriting text the BIOS had already written. Progress, but a new bug was right behind the old one. Still it doesn’t want to move forward it should print k at the end so something is wrong I am going to investigate It."}, {"post_id": 8362, "ts": "2026-06-13T22:01:15Z", "hours": 16.1964, "text": "I hate this stupid code , literally the only thing I do is find an error, find what could possibly cause it, fix it, and it still doesn’t work. Do that a hundred times, and it turns out the BIOS — which promises not to touch DL — corrupts it anyway during interrupt 0x16. Whatever. Still not fully working, but at least I’ve got the core structure for moving into 32-bit mode. I hate this — why do all x64 processors have to wake up going “uhm I think I’m an IBM processor from 1967” instead of just dropping into 64-bit like ARM does? Also my PC screen broke, so now I’m SSH’d in through Termux to code this thing. I hate assembly but low-key need a new PC — that old Compaq 6510b with 2GHz and two cores isn’t cutting it anymore."}, {"post_id": 7061, "ts": "2026-06-11T20:39:29Z", "hours": 3.8658, "text": "Getting close to 32-bit mode. Added a memory tester using INT 0x15, EAX=0xE820 so the OS actually knows how much RAM exists and where, instead of assuming. Also built two different A20 gate openers — the fast method through port 0x92 first, and a manual read/write test on mirrored addresses as a fallback if that doesn’t take. If one fails, the other starts"}, {"post_id": 6770, "ts": "2026-06-11T10:43:03Z", "hours": 5.9658, "text": "Went back and leaned stage 1 more heavily on the print funtion ( cpritn ) instead of duplicating printing logic, and tightened up the handoff into stage 2. Stage 2 now loads the kernel using a preset Disk Address Packet instead of recalculating the sector count and offset from scratch every single time it runs."}, {"post_id": 5895, "ts": "2026-06-09T21:12:59Z", "hours": 2.0008, "text": "Added LBA (logical block addressing) table implementation — sadly no support hard drives that don’t support it. Also added a test so if the computer’s too old to do extended reads, it just refuses to boot instead of silently corrupting stuff. Auto-retry if something goes wrong, and it jumps to address 0x7E00, where the end of the 2# stage starts."}, {"post_id": 5202, "ts": "2026-06-08T21:59:31Z", "hours": 0.3206, "text": "Did some testing on the 1# stage bootloader today. Now I need to link it up to the 2# stage and then to the actual OS — right now the 1# stage basically just saves what the BIOS hands us (bios present) and tells the system where the 2# stage lives."}]...
|
Title: Assembly os x64 custom kernel and bootloade Title: Assembly os x64 custom kernel and bootloader by @scrt401 | Stardance
Devlogs:
Did some testing on the 1# stage bootloader today. Now I need to link it up to the 2# stage and then to the actual OS — right now the 1# stage basically just saves what the BIOS hands us (bios present) and tells the system where the 2# stage lives.
Added LBA (logical block addressing) table implementation — sadly no support hard drives that don’t support it. Also added a test so if the computer’s too old to do extended reads, it just refuses to boot instead of silently corrupting stuff. Auto-retry if something goes wrong, and it jumps to address 0x7E00, where the end of the 2# stage starts.
Went back and leaned stage 1 more heavily on the print funtion ( cpritn ) instead of duplicating printing logic, and tightened up the handoff into stage 2. Stage 2 now loads the kernel using a preset Disk Address Packet instead of recalculating the sector count and offset from scratch every single time it runs.
Getting close to 32-bit mode. Added a memory tester using INT 0x15, EAX=0xE820 so the OS actually knows how much RAM exists and where, instead of assuming. Also built two different A20 gate openers — the fast method through port 0x92 first, and a manual read/write test on mirrored addresses as a fallback if that doesn’t take. If one fails, the other starts
I hate this stupid code , literally the only thing I do is find an error, find what could possibly cause it, fix it, and it still doesn’t work. Do that a hundred times, and it turns out the BIOS — which promises not to touch DL — corrupts it anyway during interrupt 0x16. Whatever. Still not fully working, but at least I’ve got the core structure for moving into 32-bit mode. I hate this — why do all x64 processors have to wake up going “uhm I think I’m an IBM processor from 1967” instead of just dropping into 64-bit like ARM does? Also my PC screen broke, so now I’m SSH’d in through Termux to code this thing. I hate assembly but low-key need a new PC — that old Compaq 6510b with 2GHz and two cores isn’t cutting it anymore.
Pulled an all-nighter and finally got a boot working — turned out QEMU was set to -nographic, so my VGA output was being generated correctly but never actually displayed. Once I fixed that, i found a new problem up: once in 32-bit mode, my code started printing from the top of the screen and overwriting text the BIOS had already written. Progress, but a new bug was right behind the old one. Still it doesn’t want to move forward it should print k at the end so something is wrong I am going to investigate It.
Ok found the bug it was bad cmp flag check still a bad Habit I have from arm to instead of je is Zero try to do arm syntax and do jz, (BZ branch if zero) but now it works ok
Big milestone got it running on an actual my pc instead of just QEMU. Had to go back into stage 1 real BIOSes are pickier than QEMU’s about a few things. Nothing structural changed, just les forgiving to handle.
Finally transitioned into 64-bit mode, so the actual OS can start getting written now. Not going to explain every step in detail since it’s always the same , but simple: built page tables using 2MB pages so the fourth paging level (the 4KB page table) could be skipped entirely, set up the stack, and did the rest of the long-mode setup (PAE, the EFER long-mode-enable bit, then paging itself) before the far jump into 64-bit code.
Tried implementing a keyboard press handler. Sadly, it does not work. Something in the interrupt handling isn’t right — more debugging needed before typing does anything useful.
Fixed yesterday’s error. Now testing on real hardware to check whether the machine actually virtualizes PS2 keyboard controller the same way QEMU does, since the handler logic depends on that
Keyboard handler is fixed. Can freely type now. thought: there’s currently nothing stopping unrestricted writes from going past where they should, which means someone could in theory type their way into overwriting parts of the running system. Needs boundaries before this goes further.
Text now behaves like a normal shell — typing lands where it should, and added a working delete/backspace key plus some general UI cleanup. Starting to lok like an actual terminal instead of a proof of concept.
Forgot to say this last time, but there’s now a basic (not working) concept of user input reaching the system layer — just the shape of how it should work, not the real thing yet. Finishing that up next so it actually looks like a terminal. Worth sayi the cursor ( curzor ) tracking and the cls screen-clear command both went in a little earlier and are what everything since has been built on top of.
Terminal UI is functional now — Enter does something, and extended interrupts (arrow keys) get decoded properly instead of coming through as garbage. Also added a distinct sys response visual state vs just characters The color choices right now are not best need to actually look into color theory.
Completed the command system — a compare routine ( cmper ) checks whatever’s typed against a table of known command strings and jumps straight to that command’s handler on a match. First command wired up was cls , mostly because the screen clearer routine already existed. Everything else gets added the same way from here.
Added more text commands and started on ones that actually do something, like echo. Also started work on moving text up and down the screen, which is lowk hard
Limited coding time cuz i am on vacation in Berlin but made progress on scrolling the screen now scrolls down good text overflows the bottom. Scroll up still doesn’t exist the first attempt was so tangled it wasn’t worth saving, so that one got scrapped rather than patched.
Added scroll up, just the reverse of scroll down — but still needed its own direction logic and its own set of variables reset correctly, and the first version was so badly written that i just rewrote the thing
Ok so today I have made saythis command which is basically echo (system says what you tell it to) and whatincr which basically spits out what is in control registers which might be useful for some repairman or whatever but I had to make new functions like bintrn which turns normal pc number into decimal ASCII string but I had the loop wrong it started at wrong point but now it should work
Added translate which translates number from hex to dec and also the other way and command to see what in memory I had to make a new function to accept hex and Dec and figure out which one is which than grab byte from memory not 8 bytes was stuck on that then output which was easy cus I already have function for that then added translate which just uses hexbin function for Dec and bin for hex and outputs in the other format also I don’t have much time to code because I am a slave on a construction now and I get paid absolute minimum
I added so when the user types it automatically moves screen to VGA buffer so it doesn’t overwrite bad memmory and implemented this thing for cpritn too so if you are near end of the screen it automatically moves up (number of rewrites this function took 3) in pic you can see how cpritn automatically moved up
Added whatindr just copied function whatincr and changed registers from control to debug
PCI bus enumeration, done by brute-force, but like every os does it this way loop over every bus, device, and function number, write a config address to IO port 0xCF8 , read whatever comes back from 0xCFC . All ones means nothing’s there; anything else gets recorded. Once every device on the bus is found, it scans the results for a class code matching AHCI (SATA storage), grabs that device’s BAR5, and starts bringing the controller up — reset bit set, poll until it clears, enable global host control. This is what opens up actual disk read/write instead of relying on BIOS
Something is very wrong here. Every debug marker along the boot/init path prints exactly like it should, and it still never makes it to the shell. Going to need a proper trace through this instead of guessing.
Ok I have found the solution instead of looking trough all ports it stops on the firt found idk how it works but it works now I can extract data from disk
Added the ability to read what’s on the disk there was a problem with R14 cuz one function that I called used it but push and pop fixed it after I traced the problem without it would print 20 endlessly till it crashed
I did some preparations for init sipi sipi trampoline to wake up more cores for multitasking it just finds acpi rsdp in memory I also want to be able for user to chose how many cores to wakeup
Found Madt table finally going to get number of cores to wakeup
Ok I have found the number of cores which is a huge milestone now I need to find what is the bsp to not wakeup already woken up core number of cores is in a memory buffer 256 bytes big cous the CPU doesn’t have enough IDs for more than 255 cores so even In future it will be ok
Finished the core wakeup now I can wakeup any numver of cores that I have and now I am going to make some serious multitasking i still need to do the trampoline to launch the cores to 64 bit mode but they will be fast also the limit of cores for legacy PCs is 255 but it is still engouh to wake up amd epyc
Spent I don’t even know how much time I lost track of time doing this shit I did it whole night I am happy that I am going to sleep at 12:33 the error was that I wasn’t sending enough sipis so the aps didn’t actually wake up but I didn’t knew that so I was tracing the whole os to find the error then I actually checked on internet how should it be done and that’s when I was finally able to fix this simple ass problem
Aps not responding should put 67 to px67 but aps not doing idk if because of qemu or whatever I don’t want to debug this piece of shi
Ok so uuuh….. Somehow secr destroyditself up and I had to fix it the thing is that from 0xffffff… Somehow one of the f magically dissapeared and I had to basically trace whole Drs sector to find what was wrong also waking aps for some reason isn’t working even I am using textbook code to wake it up I now have no idea why is it not working mameybie I will gat back to it at the end and now do the special function because everyone on stardance for some reason started doing X64 os so I had to come up with something radical, I am going to make a full local assembly llm chat engine like llama.cpp fully in assembly for sofaos all things from scratch tokenizer network loading calculation and other stuff I have nothing really to show so just enjoy some random pic from my gallery
Ok so I was working on gluing gguf file at the end of my iso you can see image it was successful also needed to generalize ahci driver to work on all PCs now writing the gguf retrieve from disk code
Ok so I half rewritten the code for sector read I had to drop hard coded 0 and look for actuall devices to get the data from as you can see it works still
Ok I have made a new command inout it let’s user chose number port in and port to listen from and it spits out response from the port as you can see I tried corrupting time register and it worked
Ok I was figuring out how to load the gguf file which I think I got right but I can’t find a way to know how many sectors to pull out of disk because the metadata in gguf aren’t always the same nor size of the entries are the same so there is now way to know when they end and I need them to find the size of the file in picture you can see how the metadata is structured
Ok I give up on writing it, cuz GGUF file structure is ass and I can’t write it in the way it should be I am going to pull a cheap trick by putting a control string at the end of the file to know when the file is ending below is structure of how the whole file should look like
Ok sooo I made the code buuut it hangs when I do the loading idk what happening will have to debug
I have successfully loaded whole LLM problem was that It was loading 1 gb by 512 bytes and that takes very long and thats why it seemed it hanged I fixed it by giving it a counter so you can see that it doesn’t hang
Hello good news today have started on setting up the data from GGUF rn it is just getting version metadata entryes and tensor entry, I Also started a loop for the metadata entryes but just started this one was easy cuz it has prefixed everything 4 bytes gguf magic 4 version 8 metadata entryes and 8 tensor info entry which makes 24 bytes in total
Ok bigg devlog todat i decided to speedrun this so i can ship this project as fast as possible also changed the model to a smaller native f16 quantization and It works which is a proof that anyone can put their model into sofaos and run it rn it just loops troug metadata to find general architecture
Ok all metadata entry data prased but when i delete the print at the bottom it for some reason triple faults going to report every ±9 hrs because i need to speedrun this because the stardance is ending soon now onto tensor data praser
Ok i gave lost the war against the matadata praser i will not fight it now i will fix it in second ship for now i have hard coded the data needed and also made the core of the tokenizer which was relatively easy compared to the praser
Tokenizer done now for vector context calculator . The tokenizer was somwhat refusing to work but one rewrite later it subdued to my power it is split into teo parts the text decoder and encoder decoder formats the words for encoder and encoder finds tokens for the words
Made the metadata praser work i was using tensor format and nkt metadata Format also verifyed it works on pc
Ok bad News today i drank 5l of Kofola and now me attention me hyperactive me cant concentrate but did token and bos token enumetion there was a problem with division because of no xor rdx,rdx but ez fix if boestoken add 1 it adds tokwn
Ok so uuh those 5l of Kofola wasn’t a great ide today i got a fever or flu or whatever the thing that makes you feel hot but i made some progress even though it was hard cuz i had a headache and couldn’t do anything so what i did i made a f16 to 32 translation and you might say hmm but this doesn’t seem too vomplex first of all i had to split registers inro 3 sections do calculation on them and the glue them together to xmm0 but what you might not know is if you don’t allow xmm is 32 bit mode it will throw gp an the whole code and you cant know why it crashed because whole runtime in crash log looks absolutely normal for some reason also I don’t actually care about the time anymore i just want to get this working so i can get a laptop to not code on my phone
Today i am a bit better so i did the harder part that is needed to be done, i have made tensor info gatherer, basically each layer has 9 tensor info, so for my model 9*30 tensor infos, also the string i am comparing in the function needs to be like [blk.][number of current layer in decimal(use bintrn)][specification string], it still doesn’t work but it will be something like infinite inc loop to memory or division basically smth that generates general protection, also because I was smart i saved my previous error where i used tensor info praser so i didn’t Neded to reerite it.
I have no idea how to fix it so i retreated ro the ol reliable method by first hardcoding it and after some time actually fixing it
Today i got help from my great teacher and was able to do more than usual, today i did hbuf setuper it basically just calls fcon 576 times to translate the values from 16 bit quantization to 32 then i have written a function RMSNorm which uses hbuf and weights you give it and calculates rescaled feuture vector
There was a problem with pointers in rnsm found it when i did double check and from there errors just piled up but at least its fixed now
Ok i have successfully made detokenizator which goes trough the token id book that many times as a token because token id =id book entries untill the token, and also i have made matrix–vector dot product calculator which goes through all token ids and translates them into a big amount of vectors which then in another step i will be doing comparison hbuf with all these vectors to find a token with lovest diff and that will be our output token, but big but it still isn’t tested i will be testing it when i will have the full command done for now i just want to live in an illusion that my code is error free
So today i finished argmax which finds closest token to response, now i have everything but it still has some errors it prints 0 every time so meybie some register colision but the good thing is that it doesn’t crash.
Ok so refined devlogs polished sofaos and GitHub couldn’t ship because rhe whole kernel inflated from 52 to 838 sectors by some miracle, destroyed interrupt table, tensor hard coded stuff and other stuff it ruined my day also ok so let me defend originality : it is a ring 0 os made for hardvare inspection while i saw others did os stuff to before me on stardance i already made an os before stardance in arm , technicality : assembly ,usability : it is meant to inspect pcs when something goes wrong hardvare level not daily driver, you decide storitelyng i pored my heart into those devlogs
ok so let me defend originality : it is a ring 0 os made for hardvare inspection while i saw others did os stuff to before me on stardance i already made an os before stardance in arm , technicality : assembly ,usability : it is meant to inspect pcs when something goes wrong hardvare level not daily driver, you decide storitelyng i pored my heart into those devlogs
Ships:
Simple os with access to Ring 0 stuff the ai no work sadly...
|
1793008448.7407556
|
1793872448.7407556
|
|
11983
|
Stardance Shooter by @SplatTab | Stardance
|
SplatTab
|
1
|
9.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T20:02:27Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Multiplayer 2d top down arena shooter made with Godot and WEBRTC. Figuring out multiplayer was challenging and migrating host for auto matchmaking to work properly. I’m proud of how simple the game is but complete. If you want to test the project hit up a friend to 1v1 since there most likely won’t be any players or DM me on discord(splattab)", "repo": "https://github.com/SplatTab/star-shooter", "demo": "https://splattab.itch.io/starshooter-demo"}]...
|
[{"post_id": 10180, "ts": "202 [{"post_id": 10180, "ts": "2026-06-16T19:53:05Z", "hours": 1.3317, "text": "Getting ready to ship got a health bar and some damage labels so that you actually know how much damage you’re doing to other players Also added damage fall off to the bullets given that it’s a shotgun it should do more damage close up rewarding more risky game play pushing other players The formula for that is actually pretty simple we can get a falloff factor is multiply by damage using a range end minus start we then get the excess distance from the start min(distance-start, falloff_range) and use that to get a factor we can multiply our damage by"}, {"post_id": 9727, "ts": "2026-06-16T04:44:25Z", "hours": 1.6511, "text": "For the server pointed server to an IP via noip and reverse-proxy with caddy for secure wss now too! For the client built out an arena map and added random spawn points Look at this beautiful map i’ve designed wowww"}, {"post_id": 5184, "ts": "2026-06-08T21:37:27Z", "hours": 3.7397, "text": "Host Migration… Godot hard codes remote ID 1 to be the server so whenever the signalling server detects that the host leaves it can just send a packet with a new lobby id to switch to Now a good host migration system might find an optimal new host butttt, we can send this packet to everyone and they will all close their connection and re open to the new server the first player to restart their connection becomes the host! (which would also be the oldest peer connected unless there computer is extremely slow) Okay cool everyone’s reconnected to the new server with a host and the old lobby is deleted since everyone closed their connection but now they all have different remote id’s… But this is luckily a simple fix as long as we delete all other players but keep our own everyone will reconnect anyway and have their played re-added Once the client gets back into the server we can find their old player and reassign it to them instead of adding a new player for local client and then the multiplayer synchronizer will do the heavy lifting and update everyone’s players to their old positions etc."}, {"post_id": 4573, "ts": "2026-06-07T22:23:09Z", "hours": 1.8358, "text": "Got two players with guns equipped and implemented in multiplayer with node.js WebRTC server Features implemented so far: Player has hit effects, stunning, movement and animation all synced to multiplayer Shotgun with shoot sound, muzzle flash and customizable fire rate and kickback Bullets have impact effects, knockback, and damage dealt RPCs for spawning projectiles bullets ray cast in front of bullet for accurate hit detection Multiplayer lets you either host a lobby or finds the first open lobby if none available then hosts one."}]...
|
Title: Stardance Shooter by @SplatTab | Stardance
Title: Stardance Shooter by @SplatTab | Stardance
Devlogs:
Got two players with guns equipped and implemented in multiplayer with node.js WebRTC server Features implemented so far: Player has hit effects, stunning, movement and animation all synced to multiplayer Shotgun with shoot sound, muzzle flash and customizable fire rate and kickback Bullets have impact effects, knockback, and damage dealt RPCs for spawning projectiles bullets ray cast in front of bullet for accurate hit detection Multiplayer lets you either host a lobby or finds the first open lobby if none available then hosts one.
Host Migration… Godot hard codes remote ID 1 to be the server so whenever the signalling server detects that the host leaves it can just send a packet with a new lobby id to switch to Now a good host migration system might find an optimal new host butttt, we can send this packet to everyone and they will all close their connection and re open to the new server the first player to restart their connection becomes the host! (which would also be the oldest peer connected unless there computer is extremely slow) Okay cool everyone’s reconnected to the new server with a host and the old lobby is deleted since everyone closed their connection but now they all have different remote id’s… But this is luckily a simple fix as long as we delete all other players but keep our own everyone will reconnect anyway and have their played re-added Once the client gets back into the server we can find their old player and reassign it to them instead of adding a new player for local client and then the multiplayer synchronizer will do the heavy lifting and update everyone’s players to their old positions etc.
For the server pointed server to an IP via noip and reverse-proxy with caddy for secure wss now too! For the client built out an arena map and added random spawn points Look at this beautiful map i’ve designed wowww
Getting ready to ship got a health bar and some damage labels so that you actually know how much damage you’re doing to other players Also added damage fall off to the bullets given that it’s a shotgun it should do more damage close up rewarding more risky game play pushing other players The formula for that is actually pretty simple we can get a falloff factor is multiply by damage using a range end minus start we then get the excess distance from the start min(distance-start, falloff_range) and use that to get a factor we can multiply our damage by
Ships:
I made a Multiplayer 2d top down arena shooter made with Godot and WEBRTC. Figuring out multiplayer was challenging and migrating host for auto matchmaking to work properly. I’m proud of how simple the game is but complete. If you want to test the project hit up a friend to 1v1 since there most likely won’t be any players or DM me on discord(splattab)...
|
1793249649.775288
|
1793336049.775288
|
|
11988
|
Simple Text Editor by @Blxm | Stardance
|
Blxm
|
1
|
1.97
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T22:27:45Z", "hours": 0.0, "multiplier": 1.05, "payout": 0, "blessing": "neutral", "text": "The most simple, yet practical of my creations. This is a simple text editor meaning that there are no jazzy fetures. But it inclues localstorage saving, light / dark themes, and over 10 fonts for customization .", "repo": "https://github.com/BlxCode/TextEditorSimple", "demo": "https://texteditorsimple.vercel.app/"}]...
|
[{"post_id": 32189, "ts": "202 [{"post_id": 32189, "ts": "2026-07-21T05:58:50Z", "hours": 1.6925, "text": "Downloading and Uploading TXT FILES, and font size"}, {"post_id": 25168, "ts": "2026-07-09T06:49:39Z", "hours": 0.2728, "text": "No More TextArea Update No More text area Replaced with div with content editable"}, {"post_id": 4575, "ts": "2026-06-07T22:24:48Z", "hours": 0.4178, "text": "Worked on light theme, local storage, font selector, and everything else"}]...
|
Title: Simple Text Editor by @Blxm | Stardance
De Title: Simple Text Editor by @Blxm | Stardance
Devlogs:
Worked on light theme, local storage, font selector, and everything else
No More TextArea Update No More text area Replaced with div with content editable
Downloading and Uploading TXT FILES, and font size
Ships:
The most simple, yet practical of my creations. This is a simple text editor meaning that there are no jazzy fetures. But it inclues localstorage saving, light / dark themes, and over 10 fonts for customization ....
|
1793130849.509742
|
1793217249.509742
|
|
12006
|
Sh’elah by @akiva_yevdayev | Stardance
|
akiva_yevdayev
|
1
|
96.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-27T04:13:30Z", "hours": 96.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did I make? I made Sh’elah (shelah.org) — the Torah Encyclopedia, literally. a searchable library of Torah and judaic texts and commentary (all powered by Sefaria’s texts and made to feel easy to use), an AI assistant that answers questions on Jewish law (halachah) by pulling information from primary sources like the Torah and judaic texts instead of just guessing, and the practical stuff people actually need everyday — live prayer times (zmanim), a Hebrew calendar, and how different communities observe different customs. The AI is built to always point you back to your own rabbi for anything that’s actually a different based on community and needs a ruling, and it steps out of the way entirely for anything medical or safety-related, and has safeguards to protect it from answering strange or unrelated questions or from being prompt injected (because we don’t want our site to get hacked lol). The prayer-times/calendar run off of your exact location, and the calendar shows the weekly Torah portion and candle lighting times too. What was challenging for me? Getting the AI to have safeguards, not hallucinate, follow judaic law and texts, and all set up took way longer than I had originally expected. It’s easy to make a chatbot that sounds confident; it’s much harder to make one that cites where an answer actually comes from, doesn’t quietly make things up, and knows when to deflect a question or malicious prompt. I also spent a lot of time on things nobody will ever see directly — locking down who can access what in the database, making sure a runaway request can’t rack up a huge AI bill (because this site is made for the public to be free, and not to make me go broke °~°), keeping the site fast and not-broken in English and Hebrew, light and dark mode, and working/looking well on phone or tablet-sized screens. Giving the AI real tool-use so it reaches for live prayer times/calendar/texts itself was its own project, and I found out at one point my login system and database weren’t even linked correctly, silently breaking database reads/writes (was a pain to fix…). There’s also a bug where the page jumped up by 5-10 chapters at once which I fixed (and have been trying to fix that issue for MONTHS!) What am I proud of? That it actually exists as an actual product and as a solution instead of just an idea living inside someone’s head. Every page has a real link you can share — a specific judaic text, an AI answer, a specific calendar day— and it opens back up exactly the way you left it. The commentary and translations are genuinely fast now (they were super buggy and slow before), the calendar actually gives candle-lighting times and areas in my app where the torah portions are and had a huge glow-up. I also went from 60% test coverage to over 99%, with nearly 4,000 tests passing cleanly. Keep in mind the whole thing was built by myself (yes ofc was built using ai but without that it would’ve taken years to make), end to end, including a real test suite, real security practices, accessibility support, and full legal documentation and copyright license, and not just a prototype held together by hopes and prayers. What should people know so they can test it? Try asking it an actual halacha question (but since most of you guys aren’t Jewish ask it a question you’ve had on the old testament or on Judaism maybe) that you may have wondered about and see if it gives you a real answer with sources instead of a vague and incorrect answer. Open a Torah portion and look at commentaries or a translation of a specific word. Switch it into Hebrew and make sure nothing breaks. Try it on your phone. See the prayer times based on location. Look at the calendar. Go bananas! Just know that if there is any issue at all, contact me through my email [email protected] and I’ll try my best to fix it as soon as I can.", "repo": "https://github.com/akivayevdayev-debug/Shelah", "demo": "https://shelah.org"}]...
|
[{"post_id": 74270, "ts": "202 [{"post_id": 74270, "ts": "2026-09-27T03:25:18Z", "hours": 4.7697, "text": "Sh’elah — Devlog 8 WE FINALLY SHIP TODAY!!!!!!!!!!!!!!!!!!!!!!!! Over the past week or so, I had… Redesigned parts of the ai look again so that it doesn’t look like ai slop :) Gave the whole site links and web addresses whic h means any page or ai chat or settings u have and wanna give someone the link they can open to the same place as you (major issue fixed!). Added /signin and /profile as real pages that layer on top of whatever you’re looking at, so signing in from a legal or help page brings you right back where you started. Found and fixed why the AI sometimes gave no answer at all: the sign-in check between the site and the database was rejecting valid logins, which quietly broke saving your conversations and preferences. (YAY MORE BUGS FIXED) Sped up word/translation lookups. A word Sefaria didn’t recognize used to try several spellings against the dictionary and then several more against translation, one at a time — now it takes a second (maybe 2 if needs more sources). Fixed animation and fading issues, as well as issues when switching reading layout, switching commentary verses, and jumping to a cited passage (which, it turned out, didn’t actually highlight anything yet). Fixed the reader losing its place. Scrolling to load more text, or loading a previous chapter, could silently jump the page’s address to the wrong chapter. It now tracks what you’re actually reading, not just whichever paragraph happened to load first. (I’VE BEEN TRYNA FIX THAT ISSUE FOR MONTHS!) Cleaned up account and privacy details: a smaller profile menu, a delete-account warning that isn’t half-pink in dark mode, and your data export now actually includes your AI chats. Fixed a leftover database error that had been showing up in the logs from a migrations table that never existed — it’s created properly now, with the right access rules attached. WE SHIP!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"}, {"post_id": 73745, "ts": "2026-09-25T20:42:53Z", "hours": 12.4672, "text": "Sh’elah — Devlog 7 — WE SHIP THIS WEEK!!!!! Over the past week or so, I had… Gave every page of the site its own real address. Any text, prayer, calendar day or AI answer now has its own link that opens straight to that page, even on a refresh. Old-style links still work too. Made AI answers shareable. Anyone can hit Copy Link to send a specific answer, or open it as its own page, and it stays out of search engines unless it’s meant to be public. Went through a 15-item punch list end to end: infinite scroll no longer jumps around, the commentary sidebar loads way faster and lighter, various calendar issues are fixed, parashah and commentary names are now accurate and properly ranked, community pages have full Hebrew translations, the header date now follows your actual location, loading spinners recover on their own when a connection drops, and implemented a bunch of Hebrew translate and bolding fixes. Completely Redid EVERYTHING about the AI: Redid the AI window’s entrance animation so it grows out of the Ask button on desktop instead of just popping in, and rises as a proper sheet on phones. Moved the Ask button onto the phone’s top bar instead of hiding it behind a Search tap, and gave the bottom tabs real icons above their labels with even spacing. Added a new ai small window, new ai fullscreen window, and new ai chat sharing links that legitimately work. Polished motion sitewide: screens fade up, buttons get a proper hover/press/focus feel, every emoji became a matching icon, and calendar hover states got fixed instead of going backwards (the close button used to lighten on hover, now it darkens like everything else). Built a real holiday detail card for the calendar, with accurate clock times and links straight into the reader. Fixed prayer and reader text losing its bold and italic formatting when pulled from the source library. Fixed the reader jumping around when loading earlier text, and gave it a slimmer bar with commentary that preloads before you tap it. Locked down the AI’s spending: the plain (non-agentic) chat route was quietly skipping the budget check, and a bug in the model-calling code could leak the API key. Both are fixed, and every path now respects the daily budget. Added a circuit breaker to the rate limiter so a database lag can’t take the whole site down with it, and made sure static files are never rate-limited. Cleared out SonarCloud’s entire backlog again: dead code removed, regexes hardened against slowdowns, and a chunk of new tests written along the way. Made Turnstile (the invisible spam check) actually invisible instead of showing its widget. Reconciled a stack of parallel work — calendar icons, i18n, reader fixes, security fixes — that had drifted across a few branches, merged clean. Let me know if there is anything y’all wanna see on my site in the future p.s. WE ARE ALMOST SHIPPED, but i still want those hours to count so this is not the last devlog."}, {"post_id": 70879, "ts": "2026-09-19T22:38:15Z", "hours": 11.8378, "text": "Sh’elah — Devlog 6 Over the past week or so, I had… Fixed certain dark mode values so they match the overall theme of the site. Added an ai symbol in the shape of a star and added animations to the searchbar when the ai is thinking, adding an ai feedback button, and fixed spacing and other issues with the ai answers. Added a commentary button to the reader’s top bar to show people how to use it Fixed zmanim (prayer/holiday times) on Holidays and fast days, added fast start and end times, and gave the AI Hebrew-date math tools. Finalized the legal pages with real operator info, registered a DMCA agent, and added an age confirmation. Went through every SonarCloud finding and the quality gate now passes, with the security and reliability ratings both at A. Wrote a big batch of new tests. Coverage went from 60% to about 84% overall, and all 3517 tests (yes ik its a lot of tests) pass cleanly. (yes somehow it was 60% before when I explicitly added tests for 93% coverage · ~ ·) Rotated the leaked Gemini key and cleaned it out of the repo history. (correcty this time), and merged two drifting copies of the code, so shared pieces like the AI answer builder now live in one place. Rewrote the README, added a changelog, documented every environment variable, and regenerated the database docs from the live schema. Let me know if there is anything y’all wanna see on my site in the future p.s. shipping v1.00 in a day or two!!!!!! FINALLY!!!!! (This may take longer than two days but hopefully not!)"}, {"post_id": 68421, "ts": "2026-09-15T02:54:39Z", "hours": 14.2753, "text": "Sh’elah — Devlog 5 Over the past week or so, I had… Gave the AI real tool-use, allowing it to get live prayer times, calendar dates, and texts as it needs them, instead of having everything be pre-loaded at each request. Finalized the legal pages and filed my site for DMCA Copyright protection for 3 years. Added self-serve privacy controls, where you can now export or delete your own account and data yourself. Added a feedback button on AI answers so people can flag bad ones directly. Added accessibility keyboard/screen-reader support along with their appropriate tests in CI. Fixed a security issue where a malicious AI-cited link could execute code, and added a bot-check in front of the AI endpoint to cut down on abuse. Fixed the caching bug from last devlog this time; pages get served from cache properly now instead of requesting from the server on every load. Fixed a bunch of small little annoying bugs like the page jumping back while scrolling, the wrong section getting highlighted, calendar color glitches, and animations not loading. Fixed a security-check script that had quietly been failing every single scheduled run for over a week. Spent alot of time simplifying complex functions across the codebase to make it more reliable. Let me know if there is anything y’all wanna see on my site in the future p.s. getting closer to that v1.00 site goal every day — planning on achieving it next week!"}, {"post_id": 61981, "ts": "2026-09-05T05:45:36Z", "hours": 10.3361, "text": "Sh’elah — Devlog 4 Over the past week or so, I had… Fixed an issue with RLS in Supabase so that one user doesn’t see another user’s personal info, as well as security issues with Vercel and Clerk (Which was a pain to fix :<) Found out my login system and database weren’t linked to each other correctly, which was breaking authenticated reads/writes, and fixed it Added an ai usage tracker and fixed old usage records so the spending log is correct, and so I don’t go broke when other people use my site’s ai My webhook (discord error bot) was malfunctioning (and still kinda is in clerk :<) and no longer is! YAY MORE ERRORS FOR ME! (at least I’ll know why they happen :|) Fixed a bug where the site was incorrectly caching files in browsers, making things slower and more expensive (yay less money to spend!!!!!) Ran accessibility tests and fixed any issues they found, and made my site more ready for releasing v1.00! Removed old files Fixed some legal documentation issues (like my Privacy Policy and ToS) so I don’t get sued!!! Let me know if there is anything y’all wanna see on my site in the future p.s. I’m planning a huge commit soon announcing version 1.00 of my website so if you haven’t seen my first devlog announcing that, go check it out."}, {"post_id": 55408, "ts": "2026-08-27T06:56:47Z", "hours": 10.6378, "text": "Sh’elah — Devlog 3 Over the past week or so, I had… Fixed a bug where a malformed cache config could crash the whole app on startup. Split a file that handled AI question-answering into smaller, cleaner, more compact files, and added tests to make sure that both versions (one for gemini and one for claude) always answered the same way with the same guardrails. Sped up busy/resource heavy pages (library, prayers, texts, daily study, and the calendar lookup) by adding a shared caching layer, so they don’t request the database on every single request anymore. Added rate limiting across the whole site instead of having it scattered in different places. Cleaned up a batch of files that were referenced in the code which was uncommitted and caused boot errors. Simplified a few functions that had been made too complex to safely maintain. Sped up cold starts by delaying AI library imports until they’re actually needed. Let me know if there is anything y’all wanna see on my site in the future p.s. I’m planning a huge commit soon announcing version 1.00 of my website so if you haven’t seen my first devlog announcing that, go check it out."}, {"post_id": 51996, "ts": "2026-08-22T00:35:52Z", "hours": 9.3681, "text": "Sh’elah — Devlog 2 Over the past 9 hours or so, I had… Removed a leftover routing rule in Vercel that was returning a 404 error in my production site. Added a server-side daily budget per user, so if someone goes past it and heavily uses the AI past what’s normal, they get rate limited and can’t spam multiple requests at once. Also fixed an issue where AI usage was being reported as $0 when it wasn’t. Updated my site’s README.md on GitHub, fixed a license mismatch, and added a CONTRIBUTING.md and a code of conduct. Old logs and history get deleted on a schedule now, so trash doesn’t build up over time. Built a dark-mode accessibility checker and fixed contrast issues. Also integrated circuit breakers so when an external resource fails the site doesn’t crash. Added About/Help/glossary pages, a sitemap, a feedback widget, and analytics that you can opt into. Added CI checks and Vercel Speed Insights to track loading times. Swapped the GPS permission for zmanim (prayer times) based on location to cookie/IP-based location instead. Let me know if there is anything y’all wanna see on my site in the future p.s. I’m planning a huge commit soon announcing version 1.00 of my website so if you haven’t seen my first devlog announcing that, go check it out."}, {"post_id": 49112, "ts": "2026-08-17T18:53:44Z", "hours": 22.1481, "text": "Sh’elah — First Devlog: I’ve been working on Sh’elah for a while now and finally uploaded it here. It’s a Jewish learning app that combines a searchable Torah library (similar to Sefaria) with an AI tool designed to actually answer your halacha questions. Instead of just throwing related sources at you that don’t end up answering the question, it walks you through the actual answer, explains the reasoning, cites the sources, and tailors everything based on your community’s specific customs. What it does today Answers questions across any area of Jewish law using primary sources rather than generic guesses. Allows you to search the library with customs broken out by community (Ashkenazi, Sefardi, Teimani, and others). Calculates live zmanim (prayer times) and a Hebrew calendar based on your exact location. Ends every answer with a clear reminder: this is for learning purposes, not an official ruling, and real questions should always go to your rabbi. It works right now, but it’s still in the early stages, so I want to be upfront about what still needs work before calling it a complete release. Making the AI reach for things, not just recite them Right now, the AI only knows what gets put into the prompt ahead of time. I am working on moving it toward real tool use so it can pull zmanim, calendar dates, commentaries, and community customs dynamically as needed. Judaic texts and laws will always remain the main priority, with web searching kept strictly as a last resort. Getting the safety layer right (in progress) Halacha touches sensitive material, and I want to make sure a younger user doesn’t receive graphic content when the real answer should simply be “ask your rabbi for details.” Any queries related to medical issues, mental health, or abuse will automatically route to real professional resources rather than generating an AI ruling. Behind-the-scenes technical updates Breaking down a backend file that got way too large so the code is easier to maintain and debug. Securing the caching layer so it handles concurrent load safely. Adding circuit breakers to prevent a third-party outage from crashing the whole platform. What needs to happen before full launch Verifying every feature works properly while keeping the user experience smooth and simple. Completing a thorough security review (already finished). Setting up error tracking and rate limiting to protect the site from abuse. Performing a full accessibility audit. Building this isn’t going to be easy, and the order of these steps will probably shift around. However, this is the general direction of the project, and I’ll share more updates as new features roll out."}]...
|
Title: Sh’elah by @akiva_yevdayev | Stardance
Dev Title: Sh’elah by @akiva_yevdayev | Stardance
Devlogs:
Sh’elah — First Devlog: I’ve been working on Sh’elah for a while now and finally uploaded it here. It’s a Jewish learning app that combines a searchable Torah library (similar to Sefaria) with an AI tool designed to actually answer your halacha questions. Instead of just throwing related sources at you that don’t end up answering the question, it walks you through the actual answer, explains the reasoning, cites the sources, and tailors everything based on your community’s specific customs. What it does today Answers questions across any area of Jewish law using primary sources rather than generic guesses. Allows you to search the library with customs broken out by community (Ashkenazi, Sefardi, Teimani, and others). Calculates live zmanim (prayer times) and a Hebrew calendar based on your exact location. Ends every answer with a clear reminder: this is for learning purposes, not an official ruling, and real questions should always go to your rabbi. It works right now, but it’s still in the early stages, so I want to be upfront about what still needs work before calling it a complete release. Making the AI reach for things, not just recite them Right now, the AI only knows what gets put into the prompt ahead of time. I am working on moving it toward real tool use so it can pull zmanim, calendar dates, commentaries, and community customs dynamically as needed. Judaic texts and laws will always remain the main priority, with web searching kept strictly as a last resort. Getting the safety layer right (in progress) Halacha touches sensitive material, and I want to make sure a younger user doesn’t receive graphic content when the real answer should simply be “ask your rabbi for details.” Any queries related to medical issues, mental health, or abuse will automatically route to real professional resources rather than generating an AI ruling. Behind-the-scenes technical updates Breaking down a backend file that got way too large so the code is easier to maintain and debug. Securing the caching layer so it handles concurrent load safely. Adding circuit breakers to prevent a third-party outage from crashing the whole platform. What needs to happen before full launch Verifying every feature works properly while keeping the user experience smooth and simple. Completing a thorough security review (already finished). Setting up error tracking and rate limiting to protect the site from abuse. Performing a full accessibility audit. Building this isn’t going to be easy, and the order of these steps will probably shift around. However, this is the general direction of the project, and I’ll share more updates as new features roll out.
Sh’elah — Devlog 2 Over the past 9 hours or so, I had… Removed a leftover routing rule in Vercel that was returning a 404 error in my production site. Added a server-side daily budget per user, so if someone goes past it and heavily uses the AI past what’s normal, they get rate limited and can’t spam multiple requests at once. Also fixed an issue where AI usage was being reported as $0 when it wasn’t. Updated my site’s README.md on GitHub, fixed a license mismatch, and added a CONTRIBUTING.md and a code of conduct. Old logs and history get deleted on a schedule now, so trash doesn’t build up over time. Built a dark-mode accessibility checker and fixed contrast issues. Also integrated circuit breakers so when an external resource fails the site doesn’t crash. Added About/Help/glossary pages, a sitemap, a feedback widget, and analytics that you can opt into. Added CI checks and Vercel Speed Insights to track loading times. Swapped the GPS permission for zmanim (prayer times) based on location to cookie/IP-based location instead. Let me know if there is anything y’all wanna see on my site in the future p.s. I’m planning a huge commit soon announcing version 1.00 of my website so if you haven’t seen my first devlog announcing that, go check it out.
Sh’elah — Devlog 3 Over the past week or so, I had… Fixed a bug where a malformed cache config could crash the whole app on startup. Split a file that handled AI question-answering into smaller, cleaner, more compact files, and added tests to make sure that both versions (one for gemini and one for claude) always answered the same way with the same guardrails. Sped up busy/resource heavy pages (library, prayers, texts, daily study, and the calendar lookup) by adding a shared caching layer, so they don’t request the database on every single request anymore. Added rate limiting across the whole site instead of having it scattered in different places. Cleaned up a batch of files that were referenced in the code which was uncommitted and caused boot errors. Simplified a few functions that had been made too complex to safely maintain. Sped up cold starts by delaying AI library imports until they’re actually needed. Let me know if there is anything y’all wanna see on my site in the future p.s. I’m planning a huge commit soon announcing version 1.00 of my website so if you haven’t seen my first devlog announcing that, go check it out.
Sh’elah — Devlog 4 Over the past week or so, I had… Fixed an issue with RLS in Supabase so that one user doesn’t see another user’s personal info, as well as security issues with Vercel and Clerk (Which was a pain to fix :<) Found out my login system and database weren’t linked to each other correctly, which was breaking authenticated reads/writes, and fixed it Added an ai usage tracker and fixed old usage records so the spending log is correct, and so I don’t go broke when other people use my site’s ai My webhook (discord error bot) was malfunctioning (and still kinda is in clerk :<) and no longer is! YAY MORE ERRORS FOR ME! (at least I’ll know why they happen :|) Fixed a bug where the site was incorrectly caching files in browsers, making things slower and more expensive (yay less money to spend!!!!!) Ran accessibility tests and fixed any issues they found, and made my site more ready for releasing v1.00! Removed old files Fixed some legal documentation issues (like my Privacy Policy and ToS) so I don’t get sued!!! Let me know if there is anything y’all wanna see on my site in the future p.s. I’m planning a huge commit soon announcing version 1.00 of my website so if you haven’t seen my first devlog announcing that, go check it out.
Sh’elah — Devlog 5 Over the past week or so, I had… Gave the AI real tool-use, allowing it to get live prayer times, calendar dates, and texts as it needs them, instead of having everything be pre-loaded at each request. Finalized the legal pages and filed my site for DMCA Copyright protection for 3 years. Added self-serve privacy controls, where you can now export or delete your own account and data yourself. Added a feedback button on AI answers so people can flag bad ones directly. Added accessibility keyboard/screen-reader support along with their appropriate tests in CI. Fixed a security issue where a malicious AI-cited link could execute code, and added a bot-check in front of the AI endpoint to cut down on abuse. Fixed the caching bug from last devlog this time; pages get served from cache properly now instead of requesting from the server on every load. Fixed a bunch of small little annoying bugs like the page jumping back while scrolling, the wrong section getting highlighted, calendar color glitches, and animations not loading. Fixed a security-check script that had quietly been failing every single scheduled run for over a week. Spent alot of time simplifying complex functions across the codebase to make it more reliable. Let me know if there is anything y’all wanna see on my site in the future p.s. getting closer to that v1.00 site goal every day — planning on achieving it next week!
Sh’elah — Devlog 6 Over the past week or so, I had… Fixed certain dark mode values so they match the overall theme of the site. Added an ai symbol in the shape of a star and added animations to the searchbar when the ai is thinking, adding an ai feedback button, and fixed spacing and other issues with the ai answers. Added a commentary button to the reader’s top bar to show people how to use it Fixed zmanim (prayer/holiday times) on Holidays and fast days, added fast start and end times, and gave the AI Hebrew-date math tools. Finalized the legal pages with real operator info, registered a DMCA agent, and added an age confirmation. Went through every SonarCloud finding and the quality gate now passes, with the security and reliability ratings both at A. Wrote a big batch of new tests. Coverage went from 60% to about 84% overall, and all 3517 tests (yes ik its a lot of tests) pass cleanly. (yes somehow it was 60% before when I explicitly added tests for 93% coverage · ~ ·) Rotated the leaked Gemini key and cleaned it out of the repo history. (correcty this time), and merged two drifting copies of the code, so shared pieces like the AI answer builder now live in one place. Rewrote the README, added a changelog, documented every environment variable, and regenerated the database docs from the live schema. Let me know if there is anything y’all wanna see on my site in the future p.s. shipping v1.00 in a day or two!!!!!! FINALLY!!!!! (This may take longer than two days but hopefully not!)
Sh’elah — Devlog 7 — WE SHIP THIS WEEK!!!!! Over the past week or so, I had… Gave every page of the site its own real address. Any text, prayer, calendar day or AI answer now has its own link that opens straight to that page, even on a refresh. Old-style links still work too. Made AI answers shareable. Anyone can hit Copy Link to send a specific answer, or open it as its own page, and it stays out of search engines unless it’s meant to be public. Went through a 15-item punch list end to end: infinite scroll no longer jumps around, the commentary sidebar loads way faster and lighter, various calendar issues are fixed, parashah and commentary names are now accurate and properly ranked, community pages have full Hebrew translations, the header date now follows your actual location, loading spinners recover on their own when a connection drops, and implemented a bunch of Hebrew translate and bolding fixes. Completely Redid EVERYTHING about the AI: Redid the AI window’s entrance animation so it grows out of the Ask button on desktop instead of just popping in, and rises as a proper sheet on phones. Moved the Ask button onto the phone’s top bar instead of hiding it behind a Search tap, and gave the bottom tabs real icons above their labels with even spacing. Added a new ai small window, new ai fullscreen window, and new ai chat sharing links that legitimately work. Polished motion sitewide: screens fade up, buttons get a proper hover/press/focus feel, every emoji became a matching icon, and calendar hover states got fixed instead of going backwards (the close button used to lighten on hover, now it darkens like everything else). Built a real holiday detail card for the calendar, with accurate clock times and links straight into the reader. Fixed prayer and reader text losing its bold and italic formatting when pulled from the source library. Fixed the reader jumping around when loading earlier text, and gave it a slimmer bar with commentary that preloads before you tap it. Locked down the AI’s spending: the plain (non-agentic) chat route was quietly skipping the budget check, and a bug in the model-calling code could leak the API key. Both are fixed, and every path now respects the daily budget. Added a circuit breaker to the rate limiter so a database lag can’t take the whole site down with it, and made sure static files are never rate-limited. Cleared out SonarCloud’s entire backlog again: dead code removed, regexes hardened against slowdowns, and a chunk of new tests written along the way. Made Turnstile (the invisible spam check) actually invisible instead of showing its widget. Reconciled a stack of parallel work — calendar icons, i18n, reader fixes, security fixes — that had drifted across a few branches, merged clean. Let me know if there is anything y’all wanna see on my site in the future p.s. WE ARE ALMOST SHIPPED, but i still want those hours to count so this is not the last devlog.
Sh’elah — Devlog 8 WE FINALLY SHIP TODAY!!!!!!!!!!!!!!!!!!!!!!!! Over the past week or so, I had… Redesigned parts of the ai look again so that it doesn’t look like ai slop :) Gave the whole site links and web addresses whic h means any page or ai chat or settings u have and wanna give someone the link they can open to the same place as you (major issue fixed!). Added /signin and /profile as real pages that layer on top of whatever you’re looking at, so signing in from a legal or help page brings you right back where you started. Found and fixed why the AI sometimes gave no answer at all: the sign-in check between the site and the database was rejecting valid logins, which quietly broke saving your conversations and preferences. (YAY MORE BUGS FIXED) Sped up word/translation lookups. A word Sefaria didn’t recognize used to try several spellings against the dictionary and then several more against translation, one at a time — now it takes a second (maybe 2 if needs more sources). Fixed animation and fading issues, as well as issues when switching reading layout, switching commentary verses, and jumping to a cited passage (which, it turned out, didn’t actually highlight anything yet). Fixed the reader losing its place. Scrolling to load more text, or loading a previous chapter, could silently jump the page’s address to the wrong chapter. It now tracks what you’re actually reading, not just whichever paragraph happened to load first. (I’VE BEEN TRYNA FIX THAT ISSUE FOR MONTHS!) Cleaned up account and privacy details: a smaller profile menu, a delete-account warning that isn’t half-pink in dark mode, and your data export now actually includes your AI chats. Fixed a leftover database error that had been showing up in the logs from a migrations table that never existed — it’s created properly now, with the right access rules attached. WE SHIP!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ships:
What did I make? I made Sh’elah (shelah.org) — the Torah Encyclopedia, literally. a searchable library of Torah and judaic texts and commentary (all powered by Sefaria’s texts and made to feel easy to use), an AI assistant that answers questions on Jewish law (halachah) by pulling information from primary sources like the Torah and judaic texts instead of just guessing, and the practical stuff people actually need everyday — live prayer times (zmanim), a Hebrew calendar, and how different communities observe different customs. The AI is built to always point you back to your own rabbi for anything that’s actually a different based on community and needs a ruling, and it steps out of the way entirely for anything medical or safety-related, and has safeguards to protect it from answering strange or unrelated questions or from being prompt injected (because we don’t want our site to get hacked lol). The prayer-times/calendar run off of your exact location, and the calendar shows the weekly Torah portion and candle lighting times too. What was challenging for me? Getting the AI to have safeguards, not hallucinate, follow judaic law and texts, and all set up took way longer than I had originally expected. It’s easy to make a chatbot that sounds confident; it’s much harder to make one that cites where an answer actually comes from, doesn’t quietly make things up, and knows when to deflect a question or malicious prompt. I also spent a lot of time on things nobody will ever see directly — locking down who can access what in the database, making sure a runaway request can’t rack up a huge AI bill (because this site is made for the public to be free, and not to make me go broke °~°), keeping the site fast and not-broken in English and Hebrew, light and dark mode, and working/looking well on phone or tablet-sized screens. Giving the AI real tool-use so it reaches for live prayer times/calendar/texts itself was its own project, and I found out at one point my login system and database weren’t even linked correctly, silently breaking database reads/writes (was a pain to fix…). There’s also a bug where the page jumped up by 5-10 chapters at once which I fixed (and have been trying to fix that issue for MONTHS!) What am I proud of? That it actually exists as an actual product and as a solution instead of just an idea living inside someone’s head. Every page has a real link you can share — a specific judaic text, an AI answer, a specific calendar day— and it opens back up exactly the way you left it. The commentary and translations are genuinely fast now (they were super buggy and slow before), the calendar actually gives candle-lighting times and areas in my app where the torah portions are and had a huge glow-up. I also went from 60% test coverage to over 99%, with nearly 4,000 tests passing cleanly. Keep in mind the whole thing was built by myself (yes ofc was built using ai but without that it would’ve taken years to make), end to end, including a real test suite, real security practices, accessibility support, and full legal documentation and copyright license, and not just a prototype held together by hopes and prayers. What should people know so they can test it? Try asking it an actual halacha question (but since most of you guys aren’t Jewish ask it a question you’ve had on the old testament or on Judaism maybe) that you may have wondered about and see if it gives you a real answer with sources instead of a vague and incorrect answer. Open a Torah portion and look at commentaries or a translation of a specific word. Switch it into Hebrew and make sure nothing breaks. Try it on your phone. See the prayer times based on location. Look at the calendar. Go bananas! Just know that if there is any issue at all, contact me through my email [email protected] and I’ll try my best to fix it as soon as I can....
|
1793145197.5910969
|
1793231597.5910969
|
|
12014
|
Minecraft Mod Loader by @Jadon | Stardance
|
Jadon
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-30T21:23:54Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "⭐ What Was Challenging Building the Minecraft Mod Manager involved several real challenges: Coordinating multiple systems (PyQt6 UI, file management, modpack manifests, CurseForge downloads). Handling errors safely so the launcher never silently crashes. Managing mod conflicts between Forge and Fabric loaders. Creating a clean, multi‑page UI with navigation, settings, downloads, and modpack tools. Packaging the project into a single .exe using PyInstaller and then building a proper installer with Inno Setup. Designing an update system using a remote version.txt file. Ensuring cross‑folder compatibility with %APPDATA%, Minecraft directories, and user‑selected paths. These challenges pushed the project from a simple script into a full desktop application. ⭐ What I Made This project is a full desktop Minecraft launcher with: Mod Manager Modpack Creator & Importer CurseForge Downloader Play Launcher Settings Page Update Checker Conflict Detector Installer (Inno Setup) Global Error Handler Clean PyQt6 UI It’s designed for personal use, with a focus on simplicity, reliability, and clean UI design. ⭐ What Others Need to Know to Test This Project To test this project, users need: ✔ Python 3.10+ The project uses PyQt6 and several libraries that require modern Python. ✔ Required Python packages Install dependencies: pip install -r requirements.txt (If you don’t have a requirements.txt, I can generate one.) ✔ A Minecraft installation The launcher needs access to: C:\\Users < User>\\AppData\\Roaming . minecraft or whichever folder the user selects in Settings. ✔ Internet connection Required for: CurseForge mod downloads Update checking Manifest imports ✔ Windows OS The .exe and installer are built for Windows. ✔ Optional: Virtual environment Recommended but not required ✔ To test the EXE Users can download the compiled .exe from your GitHub Releases page. ✔ To test the update system Users need access to your version.txt repo: MinecraftModManager-Update", "repo": "https://github.com/jadonzbfranklin-dot/Minecraft-Mod-Launcher", "demo": "https://github.com/jadonzbfranklin-dot/MinecraftModManager/releases/tag/v1.0.0"}]...
|
[{"post_id": 19432, "ts": "202 [{"post_id": 19432, "ts": "2026-06-30T19:08:10Z", "hours": 4.3658, "text": "This is a nightmare! - I accedentally deleted it all!"}]...
|
Title: Minecraft Mod Loader by @Jadon | Stardance
Title: Minecraft Mod Loader by @Jadon | Stardance
Devlogs:
This is a nightmare! - I accedentally deleted it all!
Ships:
⭐ What Was Challenging Building the Minecraft Mod Manager involved several real challenges: Coordinating multiple systems (PyQt6 UI, file management, modpack manifests, CurseForge downloads). Handling errors safely so the launcher never silently crashes. Managing mod conflicts between Forge and Fabric loaders. Creating a clean, multi‑page UI with navigation, settings, downloads, and modpack tools. Packaging the project into a single .exe using PyInstaller and then building a proper installer with Inno Setup. Designing an update system using a remote version.txt file. Ensuring cross‑folder compatibility with %APPDATA%, Minecraft directories, and user‑selected paths. These challenges pushed the project from a simple script into a full desktop application. ⭐ What I Made This project is a full desktop Minecraft launcher with: Mod Manager Modpack Creator & Importer CurseForge Downloader Play Launcher Settings Page Update Checker Conflict Detector Installer (Inno Setup) Global Error Handler Clean PyQt6 UI It’s designed for personal use, with a focus on simplicity, reliability, and clean UI design. ⭐ What Others Need to Know to Test This Project To test this project, users need: ✔ Python 3.10+ The project uses PyQt6 and several libraries that require modern Python. ✔ Required Python packages Install dependencies: pip install -r requirements.txt (If you don’t have a requirements.txt, I can generate one.) ✔ A Minecraft installation The launcher needs access to: C:\Users < User>\AppData\Roaming . minecraft or whichever folder the user selects in Settings. ✔ Internet connection Required for: CurseForge mod downloads Update checking Manifest imports ✔ Windows OS The .exe and installer are built for Windows. ✔ Optional: Virtual environment Recommended but not required ✔ To test the EXE Users can download the compiled .exe from your GitHub Releases page. ✔ To test the update system Users need access to your version.txt repo: MinecraftModManager-Update...
|
1793116426.6537454
|
1793202826.6537454
|
|
12026
|
Chess Set by @aadya_panchal | Stardance
|
aadya_panchal
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T09:51:27Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have made a half-board chess set. The goal for this is to have one set of colors for the chess pieces while your opponent has a different set. You connect these two sets together to play chess games! This is a great way to break the ice at colleges, chess camps, etc.", "repo": "https://github.com/aadyapanchal/ChessSet", "demo": ""}]...
|
[{"post_id": 8943, "ts": "2026 [{"post_id": 8943, "ts": "2026-06-14T21:19:57Z", "hours": 3.9458, "text": "A Chess Set I made via OnShape. Each person has a unique color and that color set will fit on half the board. When two players connect their boards, they can play chess! The best way to break the ice at college, chess camps, and other events."}]...
|
Title: Chess Set by @aadya_panchal | Stardance
De Title: Chess Set by @aadya_panchal | Stardance
Devlogs:
A Chess Set I made via OnShape. Each person has a unique color and that color set will fit on half the board. When two players connect their boards, they can play chess! The best way to break the ice at college, chess camps, and other events.
Ships:
I have made a half-board chess set. The goal for this is to have one set of colors for the chess pieces while your opponent has a different set. You connect these two sets together to play chess games! This is a great way to break the ice at colleges, chess camps, etc....
|
1793234932.965347
|
1793321332.965347
|
|
12036
|
FRC Prediction Simulator by @nicholasrueb | Starda FRC Prediction Simulator by @nicholasrueb | Stardance...
|
nicholasrueb
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-23T22:20:05Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I struggled so hard with integrating the API, this is my first stuff with HTML and CSS, I hope you guys enjoy! Many of you might not know FRC, but it is a robotics competition. For event key you can use 2026nytr for some example results!", "repo": "https://github.com/agoofygoat/FRCPredictionSimulator.github.io", "demo": "https://frc-prediction-simulator-github-io.vercel.app/"}]...
|
[{"post_id": 14709, "ts": "202 [{"post_id": 14709, "ts": "2026-06-23T22:17:19Z", "hours": 0.3194, "text": "Full project is done and hosted on Vercel!!!!!"}]...
|
Title: FRC Prediction Simulator by @nicholasrueb | Title: FRC Prediction Simulator by @nicholasrueb | Stardance
Devlogs:
Full project is done and hosted on Vercel!!!!!
Ships:
I struggled so hard with integrating the API, this is my first stuff with HTML and CSS, I hope you guys enjoy! Many of you might not know FRC, but it is a robotics competition. For event key you can use 2026nytr for some example results!...
|
1793141487.205332
|
1793227887.205332
|
|
12037
|
macropad by @unsaltedflan | Stardance
|
unsaltedflan
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-22T18:20:19Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A macropad!! Made this three key macropad to complement a short videogame i made, therefore making it easier to play since i believe it makes things easier to solely have the keys you need (here 1 2 and 3). Very proud of how it came out given i am an absolute beginner and i was making my life a little harder given i used Freecad instead of fusion XD . Firmware was also quite a mess at first but now i feel more confident and im glad ive learnt so much !! attached is my wonderful case that only took like 10 hours lol. hope the community is as proud of me as i am :D", "repo": "https://github.com/unsaltedflan/macropad", "demo": ""}]...
|
[{"post_id": 13434, "ts": "202 [{"post_id": 13434, "ts": "2026-06-22T00:29:11Z", "hours": 0.2667, "text": "Firmware + Hardware done!! I have finally finished this project although im still unsure about the firmware as its mostly based off what i could understand but it seems to work so yay havent really installed hacktime on my laptop so not many hours logged but believe me many spent on this little macropad… happy its finally done and proud of how it came out (also first project done in hackclub!!) and a whopping total of FORTY THREE commits which to a newcomer like me feels insane anyways it was fun but im glad its over"}, {"post_id": 11021, "ts": "2026-06-18T01:27:56Z", "hours": 0.4333, "text": "Day 5-7 : Firmware Firmware has been a very bumpy ride so far as i am still a complete beginner and have been having trouble with the documentation… Thankfully ive been doing my research and i feel like im learning so much about keyboards and their intricate systems!! (also very happy because my GitHub acc had been acting up but ive fixed my mistakes) (img is my finally organized repo)"}, {"post_id": 8165, "ts": "2026-06-13T16:38:17Z", "hours": 0.3175, "text": "macropad i am very new to tech so im super proud although its not as impressive as most of the stuff here hah im working on a macropad like the recommended starter project while using freecad (it was hard (and long)) im honestly just happy ive gotten this far so far just the case which i slightly altered to fit my complicated ideas, pcb and the schematic (my case design is the screenshot linked)"}]...
|
Title: macropad by @unsaltedflan | Stardance
Devl Title: macropad by @unsaltedflan | Stardance
Devlogs:
macropad i am very new to tech so im super proud although its not as impressive as most of the stuff here hah im working on a macropad like the recommended starter project while using freecad (it was hard (and long)) im honestly just happy ive gotten this far so far just the case which i slightly altered to fit my complicated ideas, pcb and the schematic (my case design is the screenshot linked)
Day 5-7 : Firmware Firmware has been a very bumpy ride so far as i am still a complete beginner and have been having trouble with the documentation… Thankfully ive been doing my research and i feel like im learning so much about keyboards and their intricate systems!! (also very happy because my GitHub acc had been acting up but ive fixed my mistakes) (img is my finally organized repo)
Firmware + Hardware done!! I have finally finished this project although im still unsure about the firmware as its mostly based off what i could understand but it seems to work so yay havent really installed hacktime on my laptop so not many hours logged but believe me many spent on this little macropad… happy its finally done and proud of how it came out (also first project done in hackclub!!) and a whopping total of FORTY THREE commits which to a newcomer like me feels insane anyways it was fun but im glad its over
Ships:
A macropad!! Made this three key macropad to complement a short videogame i made, therefore making it easier to play since i believe it makes things easier to solely have the keys you need (here 1 2 and 3). Very proud of how it came out given i am an absolute beginner and i was making my life a little harder given i used Freecad instead of fusion XD . Firmware was also quite a mess at first but now i feel more confident and im glad ive learnt so much !! attached is my wonderful case that only took like 10 hours lol. hope the community is as proud of me as i am :D...
|
1793137857.7754354
|
1793224257.7754354
|
|
12041
|
Puzzle Tab by @Zee | Stardance
|
Zee
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-18T23:23:00Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a new tab page, so far, it has html, css, and js, it’s in a public repo, deployed on github pages, and uses duckduckgo api to fetch search results using a cloudflare worker. This is just my starting point for this project as I want to go on and add many more features", "repo": "https://github.com/abcde456/Puzzle-Tab", "demo": "https://abcde456.github.io/Puzzle-Tab/"}]...
|
[{"post_id": 30948, "ts": "202 [{"post_id": 30948, "ts": "2026-07-18T23:17:23Z", "hours": 0.5581, "text": "Devlog 3 Now I have fully finished the UI for search suggestions, and also added arrow key usage to go up and down suggestions"}, {"post_id": 30926, "ts": "2026-07-18T22:27:56Z", "hours": 0.6003, "text": "Devlog 2 I have added a cool patterned background, and also a logo for this tab. I have also now added the raw search suggestions using duckduckgo api, and a cloudflare worker to get around CORS issue export default { async fetch ( request ) { const url = new URL ( request . url ); const query = url . searchParams . get ( \" q \" ); const response = await fetch ( `https://duckduckgo.com/ac/?q= ${ encodeURIComponent ( query || \"\" )} ` , ); return new Response ( await response . text (), { headers : { \" Content-Type \" : \" application/json \" , \" Access-Control-Allow-Origin \" : \" * \" , }, }); }, }; I need to actually build the UI for it now"}, {"post_id": 30904, "ts": "2026-07-18T21:39:40Z", "hours": 0.4011, "text": "Devlog 1 So far I have managed to put together a basic search bar and have the structure for some quicklinks at the bottom"}]...
|
Title: Puzzle Tab by @Zee | Stardance
Devlogs:
De Title: Puzzle Tab by @Zee | Stardance
Devlogs:
Devlog 1 So far I have managed to put together a basic search bar and have the structure for some quicklinks at the bottom
Devlog 2 I have added a cool patterned background, and also a logo for this tab. I have also now added the raw search suggestions using duckduckgo api, and a cloudflare worker to get around CORS issue export default { async fetch ( request ) { const url = new URL ( request . url ); const query = url . searchParams . get ( " q " ); const response = await fetch ( `https://duckduckgo.com/ac/?q= ${ encodeURIComponent ( query || "" )} ` , ); return new Response ( await response . text (), { headers : { " Content-Type " : " application/json " , " Access-Control-Allow-Origin " : " * " , }, }); }, }; I need to actually build the UI for it now
Devlog 3 Now I have fully finished the UI for search suggestions, and also added arrow key usage to go up and down suggestions
Ships:
I made a new tab page, so far, it has html, css, and js, it’s in a public repo, deployed on github pages, and uses duckduckgo api to fetch search results using a cloudflare worker. This is just my starting point for this project as I want to go on and add many more features...
|
1793112642.1097078
|
1793199042.1097078
|
|
12062
|
Amelu, Managed Email for Your Domain by @Stijn | S Amelu, Managed Email for Your Domain by @Stijn | Stardance...
|
Stijn
|
1
|
19.71
|
179
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-21T00:51:25Z", "hours": 15.0, "multiplier": 16.47, "payout": 179, "blessing": "neutral", "text": "worked on polishing amelu this week. focused mostly on improving reliability, cleaning up the dashboard, fixing bugs, and making the overall experience smoother from onboarding to mailbox management. it’s starting to feel like a real product instead of just infrastructure glued together. if you’re trying it out, i’d love feedback on the onboarding flow and anything that feels confusing or rough around the edges.", "repo": "https://github.com/ordnary-com/amelu", "demo": "https://amelu.org"}]...
|
[{"post_id": 45196, "ts": "202 [{"post_id": 45196, "ts": "2026-08-11T14:54:28Z", "hours": 0.7947, "text": "Reported as “login screen isn’t always immediately visible.” The actual bug was upstream of LoginPage entirely. Every real route, including “/”, sits behind ProtectedRoute (App.tsx), and ProtectedRoute returned null while AuthContext’s api.me() call was still pending on first load. Most visits land on “/”, not “/login” directly, so the sequence was: render nothing -> wait for /api/me -> get 401 -> Navigate to /login -> LoginPage finally renders. The blank stretch is proportional to how long /api/me takes (cold backend, slow network), which is why it only showed up “sometimes” - a fast response made the gap invisible. Fixed ProtectedRoute.tsx to render the same “Loading…” text used by AcceptInvitePage instead of null while loading is true. Not touched: LoginPage.module.css’s 0.4s fadeIn on .loginCard. That’s a deliberate entrance animation, not a bug - once the blank-screen race above is closed, it just reads as a normal fade-in."}, {"post_id": 37710, "ts": "2026-07-30T16:48:11Z", "hours": 0.4344, "text": "/account/api-keys is a real page now. Create a key with a name, see prefix, created and last used, revoke it. The raw key is shown once in the response and never stored - api_keys (migration 0025) holds a SHA-256 hash, the same shape as sessions and organization_invitations. prefix is amelu_live_ plus 6 of the 43 random characters, purely so two keys can be told apart on screen. Keys authenticate through auth.Require, which now takes either the session cookie or Authorization: Bearer amelu_live_…, so every /api route accepted them the moment the middleware changed - no per-route work. A key acts as its owning customer with that customer’s organization role."}, {"post_id": 37647, "ts": "2026-07-30T15:15:43Z", "hours": 0.6447, "text": "New page at /account/appearance (AccountAppearancePage, sidebar entry between Password and API Keys) with a three way segmented control: Light, Dark, System. The choice is stored in localStorage under amelu.theme, so it is per device rather than on the customer record, and applies immediately without a Save button. app.css was already almost entirely token driven, so dark is one extra block: :root[data-theme=“dark”] restating –bg/–surface/–text/–border/–link plus a few –md-sys-color-* tokens. data-theme is only ever “light” or “dark” - “system” is resolved against prefers-color-scheme in ThemeContext and stamped on , which keeps duplicated media queries out of the stylesheet. An inline script in index.html stamps it before first paint, otherwise dark users got a flash of the light palette on every load. Four colours were hardcoded and had to become tokens: main’s background (#0043ce, the filler behind .container’s 28px border-top-left-radius) showed a bright blue wedge against the dark page, and md-filled-button plus .segmented-option-active/.button-pill had color: #ffffff, which is unreadable on dark’s lighter –link. Chrome blue is now –chrome-bg/–chrome-surface, navy #0a1f4a in dark. The select arrow SVG was #e8eaed, invisible on white - it was a leftover from an earlier dark theme, so it had been broken in light all along."}, {"post_id": 37514, "ts": "2026-07-30T10:03:11Z", "hours": 0.305, "text": "A reviewer said it was disappointing that you couldn’t self-host Amelu even for your own purpose. Fair point, so the license is now 1.1 with a Personal Use carve-out: run your own instance for free, for your own mailboxes and domains and your household’s, modify it, keep a fork. What still needs a separate license is the commercial half. Running it for a company or team, charging for access, or hosting mailboxes for anyone outside your household. The line is “am I the only one benefiting”, not “is money involved”. README and CONTRIBUTING both still said self-hosting was forbidden, so those moved with it. Self-hosting is unsupported though, you run your own Stalwart and your own Postgres."}, {"post_id": 34652, "ts": "2026-07-25T15:32:19Z", "hours": 2.5336, "text": "spent this day mostly on the dashboard and a couple of backend correctness bugs that had been quietly annoying me. biggest visible change: full re-theme of the app. it was still running the old dark theme from way earlier and never really matched the brand, so i redid it, brand blue topbar and sidebar, white logo, white content area, unified every single button in the app (there were like three different ad-hoc button styles floating around) to match the material “add a domain” style. sounds cosmetic but it’s the difference between something that looks like a demo and something that looks like a product. also split dns configuration into two pages instead of one giant table. now there’s an overview that just tells you at a glance what’s verified, what’s mismatched, what’s missing, with a one-click fix-via-cloudflare action, and a separate config page for people who actually want to see the raw records. most people just want the overview. fixed a genuinely annoying bug where creating a domain that already existed in stalwart (retry after a partial failure, whatever) threw a hard error instead of just adopting the existing record. now it checks for that specific failure mode and recovers instead of yelling at the user. also fixed the mailbox creation flow so it always shows you the password you ended up with, whether you typed it or generated it. previously it only showed you the password if it was auto-generated, so if you typed your own you had zero confirmation it actually saved what you thought it saved. small thing, but it was a real source of confusion. backend housekeeping: dropped a decommissioned mail node from the backup mx config (down to one backup node now, cluster’s simpler), and spent a chunk of time untangling some repo state that had gotten gnarly, stray worktree metadata that broke git status for the whole repo, plus reconciling a branch that had diverged after some readme edits landed upstream while i was working. not fun work, but the kind of thing that turns into a bigger mess the longer you leave it. feels like the product surface is converging. onward."}, {"post_id": 32095, "ts": "2026-07-21T00:50:14Z", "hours": 3.0144, "text": "been heads down on amelu again this week and it finally feels like a lot of the rough edges are getting sanded off.most of the work has been around making the actual management experience better instead of just getting features to exist. cleaned up a bunch of backend flows, simplified some of the api surface, and spent way too long chasing down all the little edge cases that only show up once you start using the product like a real customer instead of a developer. those are always the most annoying bugs because everything mostly works until it very much doesn’t.also spent some time tightening up the provisioning flow. there’s a lot of moving pieces between the dashboard, the mail server, dns, billing and background jobs, so a big focus was making those operations more reliable and idempotent. less “hope this finishes” and more “run it again and it still ends up in the right state.” not the kind of work anyone notices, but definitely the kind of work that keeps support tickets from existing.frontend got some love too. went through a bunch of the dashboard and polished the smaller interactions that had been bothering me for a while. loading states, empty states, navigation, forms, the usual death-by-a-thousand-paper-cuts stuff. it’s funny how a dozen tiny improvements end up making the whole app feel way more finished than one giant feature ever does.did a bit of housekeeping as well. cleaned up old code that survived longer than it should have, removed some duplicated logic, and generally tried to leave the codebase in a better state than i found it. always satisfying when deleting code feels like progress.still nowhere near “done” (i don’t think software ever is), but the project is definitely shifting from building the foundation to refining the experience. feels less like assembling infrastructure now and more like building something people could actually rely on every day.onward."}, {"post_id": 29409, "ts": "2026-07-16T10:40:32Z", "hours": 12.1731, "text": "ok so this week was a big one. been building amelu, which is basically an email hosting thing, self-hosted mail server (stalwart) under the hood but with a normal dashboard on top so people don’t have to touch config files to get a working inbox on their own domain. spent a good chunk of time on the backend. it’s go, talks to postgres directly (no orm, just raw sql, which honestly i like more than i expected). moved a bunch of stuff around cloudflare’s stack too, pages for the frontend, a worker sitting in front of the api, tunnel connecting into the actual server since i didn’t want to expose postgres or the mail server to the open internet. found and fixed a nasty bug where the worker was silently eating oauth redirects lol, that one took a minute to track down. also wired up stripe billing properly, rotated us off the test key onto live, which broke checkou biggest thing though: built a whole admin surface so we (ordnary staff) can actually manage amelu customers from inside helm, which is our internal company dashboard. domains, mailboxes, subscriptions, all of it, without needing to ssh into anything or run raw sql against prod. it’s hmac signed between the two services so every action gets attributed to whoever did it. also added a little workspace switcher in the sidebar so you can flip between “ordnary helm” and “ordnary amelu” like switching tabs. on top of that, built the actual marketing site from scratch. real screenshots, real pricing, wrote a whole custom license since amelu is source available but not like, fork-it-and-compete-with-us open source. also did the seo stuff properly, og images, structured data, all that. still a lot left to do but it feels like a real product now instead of a pile of scripts. onward."}]...
|
Title: Amelu, Managed Email for Your Domain by @St Title: Amelu, Managed Email for Your Domain by @Stijn | Stardance
Devlogs:
ok so this week was a big one. been building amelu, which is basically an email hosting thing, self-hosted mail server (stalwart) under the hood but with a normal dashboard on top so people don’t have to touch config files to get a working inbox on their own domain. spent a good chunk of time on the backend. it’s go, talks to postgres directly (no orm, just raw sql, which honestly i like more than i expected). moved a bunch of stuff around cloudflare’s stack too, pages for the frontend, a worker sitting in front of the api, tunnel connecting into the actual server since i didn’t want to expose postgres or the mail server to the open internet. found and fixed a nasty bug where the worker was silently eating oauth redirects lol, that one took a minute to track down. also wired up stripe billing properly, rotated us off the test key onto live, which broke checkou biggest thing though: built a whole admin surface so we (ordnary staff) can actually manage amelu customers from inside helm, which is our internal company dashboard. domains, mailboxes, subscriptions, all of it, without needing to ssh into anything or run raw sql against prod. it’s hmac signed between the two services so every action gets attributed to whoever did it. also added a little workspace switcher in the sidebar so you can flip between “ordnary helm” and “ordnary amelu” like switching tabs. on top of that, built the actual marketing site from scratch. real screenshots, real pricing, wrote a whole custom license since amelu is source available but not like, fork-it-and-compete-with-us open source. also did the seo stuff properly, og images, structured data, all that. still a lot left to do but it feels like a real product now instead of a pile of scripts. onward.
been heads down on amelu again this week and it finally feels like a lot of the rough edges are getting sanded off.most of the work has been around making the actual management experience better instead of just getting features to exist. cleaned up a bunch of backend flows, simplified some of the api surface, and spent way too long chasing down all the little edge cases that only show up once you start using the product like a real customer instead of a developer. those are always the most annoying bugs because everything mostly works until it very much doesn’t.also spent some time tightening up the provisioning flow. there’s a lot of moving pieces between the dashboard, the mail server, dns, billing and background jobs, so a big focus was making those operations more reliable and idempotent. less “hope this finishes” and more “run it again and it still ends up in the right state.” not the kind of work anyone notices, but definitely the kind of work that keeps support tickets from existing.frontend got some love too. went through a bunch of the dashboard and polished the smaller interactions that had been bothering me for a while. loading states, empty states, navigation, forms, the usual death-by-a-thousand-paper-cuts stuff. it’s funny how a dozen tiny improvements end up making the whole app feel way more finished than one giant feature ever does.did a bit of housekeeping as well. cleaned up old code that survived longer than it should have, removed some duplicated logic, and generally tried to leave the codebase in a better state than i found it. always satisfying when deleting code feels like progress.still nowhere near “done” (i don’t think software ever is), but the project is definitely shifting from building the foundation to refining the experience. feels less like assembling infrastructure now and more like building something people could actually rely on every day.onward.
spent this day mostly on the dashboard and a couple of backend correctness bugs that had been quietly annoying me. biggest visible change: full re-theme of the app. it was still running the old dark theme from way earlier and never really matched the brand, so i redid it, brand blue topbar and sidebar, white logo, white content area, unified every single button in the app (there were like three different ad-hoc button styles floating around) to match the material “add a domain” style. sounds cosmetic but it’s the difference between something that looks like a demo and something that looks like a product. also split dns configuration into two pages instead of one giant table. now there’s an overview that just tells you at a glance what’s verified, what’s mismatched, what’s missing, with a one-click fix-via-cloudflare action, and a separate config page for people who actually want to see the raw records. most people just want the overview. fixed a genuinely annoying bug where creating a domain that already existed in stalwart (retry after a partial failure, whatever) threw a hard error instead of just adopting the existing record. now it checks for that specific failure mode and recovers instead of yelling at the user. also fixed the mailbox creation flow so it always shows you the password you ended up with, whether you typed it or generated it. previously it only showed you the password if it was auto-generated, so if you typed your own you had zero confirmation it actually saved what you thought it saved. small thing, but it was a real source of confusion. backend housekeeping: dropped a decommissioned mail node from the backup mx config (down to one backup node now, cluster’s simpler), and spent a chunk of time untangling some repo state that had gotten gnarly, stray worktree metadata that broke git status for the whole repo, plus reconciling a branch that had diverged after some readme edits landed upstream while i was working. not fun work, but the kind of thing that turns into a bigger mess the longer you leave it. feels like the product surface is converging. onward.
A reviewer said it was disappointing that you couldn’t self-host Amelu even for your own purpose. Fair point, so the license is now 1.1 with a Personal Use carve-out: run your own instance for free, for your own mailboxes and domains and your household’s, modify it, keep a fork. What still needs a separate license is the commercial half. Running it for a company or team, charging for access, or hosting mailboxes for anyone outside your household. The line is “am I the only one benefiting”, not “is money involved”. README and CONTRIBUTING both still said self-hosting was forbidden, so those moved with it. Self-hosting is unsupported though, you run your own Stalwart and your own Postgres.
New page at /account/appearance (AccountAppearancePage, sidebar entry between Password and API Keys) with a three way segmented control: Light, Dark, System. The choice is stored in localStorage under amelu.theme, so it is per device rather than on the customer record, and applies immediately without a Save button. app.css was already almost entirely token driven, so dark is one extra block: :root[data-theme=“dark”] restating –bg/–surface/–text/–border/–link plus a few –md-sys-color-* tokens. data-theme is only ever “light” or “dark” - “system” is resolved against prefers-color-scheme in ThemeContext and stamped on , which keeps duplicated media queries out of the stylesheet. An inline script in index.html stamps it before first paint, otherwise dark users got a flash of the light palette on every load. Four colours were hardcoded and had to become tokens: main’s background (#0043ce, the filler behind .container’s 28px border-top-left-radius) showed a bright blue wedge against the dark page, and md-filled-button plus .segmented-option-active/.button-pill had color: #ffffff, which is unreadable on dark’s lighter –link. Chrome blue is now –chrome-bg/–chrome-surface, navy #0a1f4a in dark. The select arrow SVG was #e8eaed, invisible on white - it was a leftover from an earlier dark theme, so it had been broken in light all along.
/account/api-keys is a real page now. Create a key with a name, see prefix, created and last used, revoke it. The raw key is shown once in the response and never stored - api_keys (migration 0025) holds a SHA-256 hash, the same shape as sessions and organization_invitations. prefix is amelu_live_ plus 6 of the 43 random characters, purely so two keys can be told apart on screen. Keys authenticate through auth.Require, which now takes either the session cookie or Authorization: Bearer amelu_live_…, so every /api route accepted them the moment the middleware changed - no per-route work. A key acts as its owning customer with that customer’s organization role.
Reported as “login screen isn’t always immediately visible.” The actual bug was upstream of LoginPage entirely. Every real route, including “/”, sits behind ProtectedRoute (App.tsx), and ProtectedRoute returned null while AuthContext’s api.me() call was still pending on first load. Most visits land on “/”, not “/login” directly, so the sequence was: render nothing -> wait for /api/me -> get 401 -> Navigate to /login -> LoginPage finally renders. The blank stretch is proportional to how long /api/me takes (cold backend, slow network), which is why it only showed up “sometimes” - a fast response made the gap invisible. Fixed ProtectedRoute.tsx to render the same “Loading…” text used by AcceptInvitePage instead of null while loading is true. Not touched: LoginPage.module.css’s 0.4s fadeIn on .loginCard. That’s a deliberate entrance animation, not a bug - once the blank-screen race above is closed, it just reads as a normal fade-in.
Ships:
worked on polishing amelu this week. focused mostly on improving reliability, cleaning up the dashboard, fixing bugs, and making the overall experience smoother from onboarding to mailbox management. it’s starting to feel like a real product instead of just infrastructure glued together. if you’re trying it out, i’d love feedback on the onboarding flow and anything that feels confusing or rough around the edges....
|
1793202894.501009
|
1793289294.501009
|
|
12066
|
ComputeMarket by @Toaster496 | Stardance
|
Toaster496
|
1
|
1.0
|
10
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-17T11:41:52Z", "hours": 1.0, "multiplier": 7.94, "payout": 10, "blessing": "neutral", "text": "I’ve been building ComputeMarket, a permissionless GPU marketplace on BSC Testnet that lets anyone rent or provide compute using just an EVM wallet and no KYC. The system uses Solidity smart contracts for non-custodial escrow and a 25% protocol fee, a React web app for job management, and an Electron desktop client that spawns isolated Docker containers with GPU passthrough. I also deployed a live demo to GitHub Pages with stubbed demo accounts so people can test the UI flow instantly without installing Node, Docker, or MetaMask. The hardest part was getting cross-stack integration right without a centralized backend. Ethers v6 human-readable ABIs don’t support memory keywords, causing silent selector mismatches until I switched to standard JSON ABIs, and Docker GPU passthrough required exact NVIDIA Container Toolkit configuration that isn’t obvious from generic docs. I’m most proud of shipping a fully functional end-to-end flow where payments only release after verified results, all while keeping everything MIT licensed and verifiable on BSCScan Testnet. To test the real system, you’ll need Node.js 18+, Docker, and MetaMask configured for BSC Testnet (Chain ID 97); grab tBNB from the official faucet, clone the repo, deploy contracts with npm run deploy:testnet , and copy the output addresses into both the web app and desktop client .env files. For a quick look without setup, just visit the GitHub Pages demo to click through job creation and host registration flows immediately.", "repo": "https://github.com/Toaster496/Inavative-solutions", "demo": "https://toaster496.github.io/Inavative-solutions/"}]...
|
[{"post_id": 10572, "ts": "202 [{"post_id": 10572, "ts": "2026-06-17T11:39:17Z", "hours": 0.4886, "text": "I’ve been heads-down building ComputeMarket, a permissionless GPU marketplace on BSC Testnet that lets anyone rent or provide compute without KYC. The core stack is live: Solidity contracts handle escrow and a 25% protocol fee, a React web app connects to MetaMask, and an Electron desktop client spawns Docker containers with GPU passthrough for hosts. Most of the recent work has been ironing out integration quirks, like fixing ethers v6 ABI parsing issues and documenting the exact NVIDIA Container Toolkit setup required for GPU jobs to actually see the hardware.The system is now functional end-to-end on testnet, with verified contracts on BSCScan and deterministic local dev addresses so contributors don’t have to reconfigure environments after every restart. I’ve also been refining the host staking and dispute flow to balance security with usability, since non-custodial escrow means there’s no undo button for user errors. Next up is mainnet migration prep and improving the onboarding docs so new hosts can get running without digging through source code."}, {"post_id": 4629, "ts": "2026-06-08T00:46:02Z", "hours": 0.9706, "text": "Added quick default config’s for LLM’s"}]...
|
Title: ComputeMarket by @Toaster496 | Stardance
D Title: ComputeMarket by @Toaster496 | Stardance
Devlogs:
Added quick default config’s for LLM’s
I’ve been heads-down building ComputeMarket, a permissionless GPU marketplace on BSC Testnet that lets anyone rent or provide compute without KYC. The core stack is live: Solidity contracts handle escrow and a 25% protocol fee, a React web app connects to MetaMask, and an Electron desktop client spawns Docker containers with GPU passthrough for hosts. Most of the recent work has been ironing out integration quirks, like fixing ethers v6 ABI parsing issues and documenting the exact NVIDIA Container Toolkit setup required for GPU jobs to actually see the hardware.The system is now functional end-to-end on testnet, with verified contracts on BSCScan and deterministic local dev addresses so contributors don’t have to reconfigure environments after every restart. I’ve also been refining the host staking and dispute flow to balance security with usability, since non-custodial escrow means there’s no undo button for user errors. Next up is mainnet migration prep and improving the onboarding docs so new hosts can get running without digging through source code.
Ships:
I’ve been building ComputeMarket, a permissionless GPU marketplace on BSC Testnet that lets anyone rent or provide compute using just an EVM wallet and no KYC. The system uses Solidity smart contracts for non-custodial escrow and a 25% protocol fee, a React web app for job management, and an Electron desktop client that spawns isolated Docker containers with GPU passthrough. I also deployed a live demo to GitHub Pages with stubbed demo accounts so people can test the UI flow instantly without installing Node, Docker, or MetaMask. The hardest part was getting cross-stack integration right without a centralized backend. Ethers v6 human-readable ABIs don’t support memory keywords, causing silent selector mismatches until I switched to standard JSON ABIs, and Docker GPU passthrough required exact NVIDIA Container Toolkit configuration that isn’t obvious from generic docs. I’m most proud of shipping a fully functional end-to-end flow where payments only release after verified results, all while keeping everything MIT licensed and verifiable on BSCScan Testnet. To test the real system, you’ll need Node.js 18+, Docker, and MetaMask configured for BSC Testnet (Chain ID 97); grab tBNB from the official faucet, clone the repo, deploy contracts with npm run deploy:testnet , and copy the output addresses into both the web app and desktop client .env files. For a quick look without setup, just visit the GitHub Pages demo to click through job creation and host registration flows immediately....
|
1793109085.19409
|
1793195485.19409
|
|
12071
|
Matrix Encoder by @Silvend | Stardance
|
Silvend
|
1
|
11.0
|
131
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T01:53:10Z", "hours": 11.0, "multiplier": 12.37, "payout": 131, "blessing": "neutral", "text": "Hello, I am Eli, and I created a decoder/encoder that utilizes matrices! The encoder works by assigning each letter of your input text a numerical value. Then, the numbers are arranged into pairs like this: [8 5][12 12][15 0]. Finally, these small matrices are multiplied by a key matrix. This multiplication gives you the final result for the encoded message. The decoder works by taking numerical input and transforming it into a decoded message. The numerical input is also arranged into pairs. These pairs are then multiplied by the inverse of the key matrix. Finally, using the numbers you calculate for, you translate into their alphabetical equivalent. Did that make no sense? Do not worry! My website also includes a page explaining the process behind using matrices in cryptography. It does not only include text, but also little silly graphics to help you understand better. The goal isn’t just to have decoder, but also to spread my love of math to others!! Challenges: The biggest challenge I went through was that my code was not working according to my math. Instead of multiplying my pairs by the key matrix, it was multiplying them in the incorrect order. This caused the resulting output to be very off. Thankfully, was able to determine what to swap to make my encoder work. The best part: my favorite part of this project was creating the graphics. Even if they are not a major part of my project, they still add a cute whimsy to it!", "repo": "https://github.com/SILVENDz/matrixencoder", "demo": "https://silvendz.github.io/matrixencoder/"}]...
|
[{"post_id": 72502, "ts": "202 [{"post_id": 72502, "ts": "2026-09-23T02:54:19Z", "hours": 1.5458, "text": "Devlog #10: Hello! I have finalized the last couple of updates to my project. It’s been so fun! I added a new page that explains the basics of matrices(such as multiplication, finding the determinant, and solving for inverse matrices) in addition to the key page. Additionally, I just made a couple of CSS changes to the images, buttons, and lists in order for it to not look as cluttered. After this, my project should be ready to ship for approval!!"}, {"post_id": 68442, "ts": "2026-09-15T03:57:54Z", "hours": 0.6228, "text": "Devlog #9 : Hello! I apologize for the short devlog, I recently began my Third-Space project so it became kinda hard to manage both of my projects at the same time. Today, I focused mostly on simple CSS updates. I wanted to make my website a bit more “dynamic” even if the changes were minimal. You know, a little goes a long way. I just set up space for future explanations, made some dividers smaller by adding a scrolling feature, and added hover background-color change to all of the buttons!"}, {"post_id": 67739, "ts": "2026-09-13T23:31:01Z", "hours": 0.9078, "text": "Devlog #8 : Hello! I finalized the decoder!! Now, my website can both encode and decode messages. It took a while cuz I kept misspelling a bunch of stuff, but it works at last! Technically, my project is done, but I still want to add more information about matrices and cryptography for those who are also interested."}, {"post_id": 66935, "ts": "2026-09-12T22:12:45Z", "hours": 0.9322, "text": "Devlog #7: Hi! Today I revised my code to ensure that it was working according to my mathematical process. For my javascript, I just switched around the vector and matrix and defined spaces as zeros. Before, the values were not being multiplied in the correct order and a space was numerically identified as 27 rather than zero, which altered the final message by A LOT. After these fixes, the encoded message given by my code and by my math were the same!! (See images below) I’m really happy to see this project starting to work like intended. My next update will be on the decoder"}, {"post_id": 66309, "ts": "2026-09-12T02:17:19Z", "hours": 1.0292, "text": "Devlog #6: Hi! Today, I was able to get started on the actual encoder! I used a bit ai to help me understand the javascript code as well as where I could modify it in order to make it fit my matrix key. However, I ran the code through several trials and encoded the text manually, and it seems that there must be something wrong with my code. The response I got from my encoder and from my own math were pretty different… Therefore, I will try to look for what went wrong and hopefully fix it so that it works according to plan!! Once that is settled, I look forward to also adding a matrix decoder using inverse matrices."}, {"post_id": 65746, "ts": "2026-09-11T03:07:59Z", "hours": 1.3411, "text": "Devlog #5: Hi! Today I was able to work more on explaining how encoding with matrices actually works. Alongside the steps, I also included cute visual representations for the matrices. Currently, I am only missing one more visual for my explanation. I also made the containers scrollable (using overflow.y: auto) because it was slightlyyyy overwhelming without it. Now, this page is a little more organized. After I finish visually demonstrating how matrices are multiplied, I will move on to the actual encoder (the scary part) 。°(°¯᷄◠¯᷅°)°。 Also, don’t mind my kaomoji overuse.."}, {"post_id": 65149, "ts": "2026-09-10T02:47:34Z", "hours": 1.1711, "text": "Devlog #4: Hi again! Today, I was able to work more on explaining how matrices allow you to encode messages. So far, I only have my key for each letter as well as the matrix key I will be using to encode the messages. I will, more than likely, rearrange the way the images are placed on the website. Additionally, I’ll explain how messages are transformed into smaller matrices that are multiplied by the given matrix key. I’ll also explain how inverse matrices can be used to decode those messages!"}, {"post_id": 64583, "ts": "2026-09-09T02:52:11Z", "hours": 0.6175, "text": "Devlog #3: Hello! This is a tiny devlog, mainly just css updates, sorryyy. Basically, I updated the “How?” page in order for it to look like the home page. Now, both of them have marquees and placeholder divs for the input, output, explanation, and some images! I took away the lettering I did, I didn’t really like it that muchh (╥﹏╥). I will TRY to actually get started on the explanation tomorrow (beware, I’m very passionate about matrices)"}, {"post_id": 63985, "ts": "2026-09-08T02:32:42Z", "hours": 1.595, "text": "Deblog #2 : Hello again! Today, I did some text for the navigation section using Ibis paint and lapse to track my time. They came out a little lopsided, but it adds to personality of the website, in a way… I’m currently trying to make it cool using CSS. (yes, I’m trying to delay doing the actual javascript code for the encoder…) Just for detail, I did a marquee container in order for the welcome text to scroll. I plan on doing my matrix explanation next under the “HOW” section"}, {"post_id": 63328, "ts": "2026-09-07T02:56:23Z", "hours": 0.7994, "text": "Devlog #1: Hello! This is a new project I am working on called “Matrix Encoder.” The goal is for users to be able to input any message they wish to encode and the software will turn it into a list of numbers. Currently, I only plan to make an encoder, but hopefully I am able to also include decoding capabilities. So far, I started with the website layout using HTML and CSS. I included two pages using the nav tag. One will be the actual encoder and the second one will be a (NOT)small explanation of how matrices are used in cryptography! I look forward to creating art that fits the website’s terminal-esque aesthetic!"}]...
|
Title: Matrix Encoder by @Silvend | Stardance
Dev Title: Matrix Encoder by @Silvend | Stardance
Devlogs:
Devlog #1: Hello! This is a new project I am working on called “Matrix Encoder.” The goal is for users to be able to input any message they wish to encode and the software will turn it into a list of numbers. Currently, I only plan to make an encoder, but hopefully I am able to also include decoding capabilities. So far, I started with the website layout using HTML and CSS. I included two pages using the nav tag. One will be the actual encoder and the second one will be a (NOT)small explanation of how matrices are used in cryptography! I look forward to creating art that fits the website’s terminal-esque aesthetic!
Deblog #2 : Hello again! Today, I did some text for the navigation section using Ibis paint and lapse to track my time. They came out a little lopsided, but it adds to personality of the website, in a way… I’m currently trying to make it cool using CSS. (yes, I’m trying to delay doing the actual javascript code for the encoder…) Just for detail, I did a marquee container in order for the welcome text to scroll. I plan on doing my matrix explanation next under the “HOW” section
Devlog #3: Hello! This is a tiny devlog, mainly just css updates, sorryyy. Basically, I updated the “How?” page in order for it to look like the home page. Now, both of them have marquees and placeholder divs for the input, output, explanation, and some images! I took away the lettering I did, I didn’t really like it that muchh (╥﹏╥). I will TRY to actually get started on the explanation tomorrow (beware, I’m very passionate about matrices)
Devlog #4: Hi again! Today, I was able to work more on explaining how matrices allow you to encode messages. So far, I only have my key for each letter as well as the matrix key I will be using to encode the messages. I will, more than likely, rearrange the way the images are placed on the website. Additionally, I’ll explain how messages are transformed into smaller matrices that are multiplied by the given matrix key. I’ll also explain how inverse matrices can be used to decode those messages!
Devlog #5: Hi! Today I was able to work more on explaining how encoding with matrices actually works. Alongside the steps, I also included cute visual representations for the matrices. Currently, I am only missing one more visual for my explanation. I also made the containers scrollable (using overflow.y: auto) because it was slightlyyyy overwhelming without it. Now, this page is a little more organized. After I finish visually demonstrating how matrices are multiplied, I will move on to the actual encoder (the scary part) 。°(°¯᷄◠¯᷅°)°。 Also, don’t mind my kaomoji overuse..
Devlog #6: Hi! Today, I was able to get started on the actual encoder! I used a bit ai to help me understand the javascript code as well as where I could modify it in order to make it fit my matrix key. However, I ran the code through several trials and encoded the text manually, and it seems that there must be something wrong with my code. The response I got from my encoder and from my own math were pretty different… Therefore, I will try to look for what went wrong and hopefully fix it so that it works according to plan!! Once that is settled, I look forward to also adding a matrix decoder using inverse matrices.
Devlog #7: Hi! Today I revised my code to ensure that it was working according to my mathematical process. For my javascript, I just switched around the vector and matrix and defined spaces as zeros. Before, the values were not being multiplied in the correct order and a space was numerically identified as 27 rather than zero, which altered the final message by A LOT. After these fixes, the encoded message given by my code and by my math were the same!! (See images below) I’m really happy to see this project starting to work like intended. My next update will be on the decoder
Devlog #8 : Hello! I finalized the decoder!! Now, my website can both encode and decode messages. It took a while cuz I kept misspelling a bunch of stuff, but it works at last! Technically, my project is done, but I still want to add more information about matrices and cryptography for those who are also interested.
Devlog #9 : Hello! I apologize for the short devlog, I recently began my Third-Space project so it became kinda hard to manage both of my projects at the same time. Today, I focused mostly on simple CSS updates. I wanted to make my website a bit more “dynamic” even if the changes were minimal. You know, a little goes a long way. I just set up space for future explanations, made some dividers smaller by adding a scrolling feature, and added hover background-color change to all of the buttons!
Devlog #10: Hello! I have finalized the last couple of updates to my project. It’s been so fun! I added a new page that explains the basics of matrices(such as multiplication, finding the determinant, and solving for inverse matrices) in addition to the key page. Additionally, I just made a couple of CSS changes to the images, buttons, and lists in order for it to not look as cluttered. After this, my project should be ready to ship for approval!!
Ships:
Hello, I am Eli, and I created a decoder/encoder that utilizes matrices! The encoder works by assigning each letter of your input text a numerical value. Then, the numbers are arranged into pairs like this: [8 5][12 12][15 0]. Finally, these small matrices are multiplied by a key matrix. This multiplication gives you the final result for the encoded message. The decoder works by taking numerical input and transforming it into a decoded message. The numerical input is also arranged into pairs. These pairs are then multiplied by the inverse of the key matrix. Finally, using the numbers you calculate for, you translate into their alphabetical equivalent. Did that make no sense? Do not worry! My website also includes a page explaining the process behind using matrices in cryptography. It does not only include text, but also little silly graphics to help you understand better. The goal isn’t just to have decoder, but also to spread my love of math to others!! Challenges: The biggest challenge I went through was that my code was not working according to my math. Instead of multiplying my pairs by the key matrix, it was multiplying them in the incorrect order. This caused the resulting output to be very off. Thankfully, was able to determine what to swap to make my encoder work. The best part: my favorite part of this project was creating the graphics. Even if they are not a major part of my project, they still add a cute whimsy to it!...
|
1793145283.376698
|
1793231683.376698
|
|
12072
|
Personal Blog by @Silvend | Stardance
|
Silvend
|
1
|
20.0
|
274
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-06T01:00:27Z", "hours": 20.0, "multiplier": 13.88, "payout": 274, "blessing": "neutral", "text": "Hello! I made a personal website in order to share some of my interests and personal projects with others who might be interested. It includes information about my likes and hobbies and other things that make me “me”! The most challenging part of this project was aligning my content, specially buttons and images, using CSS. I’m really proud of how the actual CSS turned out. I liked including different color pallets per page and other decorating elements!!", "repo": "https://github.com/SILVENDz/blog", "demo": "https://silvendz.neocities.org"}]...
|
[{"post_id": 62565, "ts": "202 [{"post_id": 62565, "ts": "2026-09-06T00:43:35Z", "hours": 1.4653, "text": "Uploaded my site to neocities in order to have a demo link! I did some entries, such as an embedded link to one of my other projects. I improved some of the images by resizing and grouping them. Additionally, I updated my “Currently doing” section under the more tab."}, {"post_id": 48606, "ts": "2026-08-17T02:18:10Z", "hours": 4.3878, "text": "I started adding some of my website pages! The first one is regarding photography, I put it under hobbies. I added some images plus a comment section on the bottom using an external widget. I’m currently re-working my home page because I wanted to make my carousel with manga images actually seem infinite. It’s currently only repeating twice and then glitching, so it is something I have to work on. I might have to duplicate the container until it appears smooth. I’ve been having problems with my VS code crashing after 5 minutes of usage, but I am trying to get as much work into my website before it crashes."}, {"post_id": 10354, "ts": "2026-06-17T01:09:16Z", "hours": 5.41, "text": "I replaced the temporary images with an actual ‘About Me’ page. I made it so that the section is scrollable. I also linked a guest book as a button, which is something I found super cute! At the bottom of my home page is the slides I wanted to add. It wasn’t a big priority, just something I wanted to do for fun, but it still took so long to actually get it to work without glitching out or not sliding at all. To my more page I added a currently doing list, which will have what I am working on, reading, or watching. I also linked a mini Spotify playlist I did, just for fun and to make the website a bit more interactive. I’ll rework the layout for my blog page, and start writing some entries. My goal is to make it as interactive as possible with more links, comment sections, and maybe just silly addition to the website!"}, {"post_id": 6588, "ts": "2026-06-11T02:06:29Z", "hours": 2.8542, "text": "I have the bare bones right now for the actual blog section, but I’ll start working on the actual content soon. I have a couple of thing that I would like to talk about in here. I also plan on adding more details such as marquees and carousel-like images. For now, my next step is to work on adding comment sections to each separate blog and also adding a guest book to my home page."}, {"post_id": 5274, "ts": "2026-06-09T00:00:01Z", "hours": 4.8047, "text": "She is looking much less rough compared to last night.. I’ll start working on the actual blog part soon, I just wanted to get my home page layout done. The cat images are temporary unless I decide other wise (except the meowls, they’re 100% staying there :D) It’s not noticeable since it’s a screenshot, but I added a marquee that says “Be someone’s rainbow today!” It has to be my favorite thing out of my home page, I actually managed to make it slide. I will add a guest book button at the bottom of the home page, as well as a couple of banners or manga panels I really like and want to share with the world (it’s not a huge priority right now tho) I still struggle slightly with CSS, I am a painfully obvious beginner, but I am slowly getting the hang of it, the layout came out pretty cute. I’ll have a different color scheme for each page."}, {"post_id": 4675, "ts": "2026-06-08T02:26:19Z", "hours": 0.7883, "text": "She is looking rough right now. I believe this is my second or third time working with html and css, so it is really a work in process… I’ll continue to work on it and improve it as much as I can (plus add the actual blog stuff) It will just be a huge nerd log. Right now I just have the name, a background image, and the little meowls. My priority is to get content in fiist before beginning to elaborate in the decoration."}]...
|
Title: Personal Blog by @Silvend | Stardance
Devl Title: Personal Blog by @Silvend | Stardance
Devlogs:
She is looking rough right now. I believe this is my second or third time working with html and css, so it is really a work in process… I’ll continue to work on it and improve it as much as I can (plus add the actual blog stuff) It will just be a huge nerd log. Right now I just have the name, a background image, and the little meowls. My priority is to get content in fiist before beginning to elaborate in the decoration.
She is looking much less rough compared to last night.. I’ll start working on the actual blog part soon, I just wanted to get my home page layout done. The cat images are temporary unless I decide other wise (except the meowls, they’re 100% staying there :D) It’s not noticeable since it’s a screenshot, but I added a marquee that says “Be someone’s rainbow today!” It has to be my favorite thing out of my home page, I actually managed to make it slide. I will add a guest book button at the bottom of the home page, as well as a couple of banners or manga panels I really like and want to share with the world (it’s not a huge priority right now tho) I still struggle slightly with CSS, I am a painfully obvious beginner, but I am slowly getting the hang of it, the layout came out pretty cute. I’ll have a different color scheme for each page.
I have the bare bones right now for the actual blog section, but I’ll start working on the actual content soon. I have a couple of thing that I would like to talk about in here. I also plan on adding more details such as marquees and carousel-like images. For now, my next step is to work on adding comment sections to each separate blog and also adding a guest book to my home page.
I replaced the temporary images with an actual ‘About Me’ page. I made it so that the section is scrollable. I also linked a guest book as a button, which is something I found super cute! At the bottom of my home page is the slides I wanted to add. It wasn’t a big priority, just something I wanted to do for fun, but it still took so long to actually get it to work without glitching out or not sliding at all. To my more page I added a currently doing list, which will have what I am working on, reading, or watching. I also linked a mini Spotify playlist I did, just for fun and to make the website a bit more interactive. I’ll rework the layout for my blog page, and start writing some entries. My goal is to make it as interactive as possible with more links, comment sections, and maybe just silly addition to the website!
I started adding some of my website pages! The first one is regarding photography, I put it under hobbies. I added some images plus a comment section on the bottom using an external widget. I’m currently re-working my home page because I wanted to make my carousel with manga images actually seem infinite. It’s currently only repeating twice and then glitching, so it is something I have to work on. I might have to duplicate the container until it appears smooth. I’ve been having problems with my VS code crashing after 5 minutes of usage, but I am trying to get as much work into my website before it crashes.
Uploaded my site to neocities in order to have a demo link! I did some entries, such as an embedded link to one of my other projects. I improved some of the images by resizing and grouping them. Additionally, I updated my “Currently doing” section under the more tab.
Ships:
Hello! I made a personal website in order to share some of my interests and personal projects with others who might be interested. It includes information about my likes and hobbies and other things that make me “me”! The most challenging part of this project was aligning my content, specially buttons and images, using CSS. I’m really proud of how the actual CSS turned out. I liked including different color pallets per page and other decorating elements!!...
|
1793145192.6140969
|
1793231592.6140969
|
|
12084
|
fraktalized by @swedishsplidney | Stardance
|
swedishsplidney
|
1
|
70.0
|
1361
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-02T06:36:27Z", "hours": 70.0, "multiplier": 19.43, "payout": 1361, "blessing": "neutral", "text": "fraktalized ship: fraktalized is an an open-source, cross-platform, ultra smooth real time fractal explorer built using a hybrid architecture of Qt6 (QML/C++) and openGL (GLSL 330 core / 4.3 compute shaders). fraktalized currently has 10 fractal sets: mandelbrot set: the classic fractal set julia set: cool swirly stuff, complete with adjustable constant coords burning ship set: cool pointy stuff newton set: kinda spidery looking buddhabrot: like the mandelbrot but galaxy looking anti-buddhabrot: reverse buddhabrot barnsley fern: looks very naturey mandelbulb: like the mandelbrot but 3d menger sponge: cube, but with infinite* surface ar a icebox: spiky box! there is both a set of 3 precompiled binaries on the github and a demo video: https://youtu.be/x9lH_pPzvbw", "repo": "https://github.com/swedishsplidney/fraktalized", "demo": "https://github.com/swedishsplidney/fraktalized/releases"}]...
|
[{"post_id": 20591, "ts": "202 [{"post_id": 20591, "ts": "2026-07-02T06:34:20Z", "hours": 0.7767, "text": "extra ui tweaks and readme updates added some images of 3d fractals to the readme, did some general ui tweaks, and some idiot proofing now its time to ship!!!"}, {"post_id": 20559, "ts": "2026-07-02T05:22:07Z", "hours": 4.9961, "text": "probably the final commit :o most of this was spent idiot proofing, going through all my code and making sure that everything works well and actually makes sense i also updated the tutorial to be a bit better a major amount of time was spent figuring out how to get windows to actually compile i swear windows is the bane of my entire existence its not reflected in the devlog hours, but i did also make a demo video to show off some of the features mystery link other than that, it was mostly ui and readme updates :)"}, {"post_id": 19733, "ts": "2026-07-01T03:52:28Z", "hours": 9.76, "text": "i set up a full tutorial system the hard part was doing the whole thing where it darkens everywhere except the thing the tutorial is yapping about… also, right now, the tutorial is really really easy to break, so i might have to implement some idiot proofing or something to be honest, adding the whole darkening thing was really simple, but actually getting it to work was really annoying for some reason. it essentially just gets the xy coord for each corner of the specified element, and then makes a dark block everywhere except inside those 4 corners. also, i made it so the tutorial saves to the same json file as the preset manager, so that you only have to do the tutorial one time and it doesnt just get in your way every single time you open it. aside from that, most of this time was spent trying to figure out how to get it to automatically build on github when i push a release. i did this successfully for my other project, but the problem so far has been linking the qml for the binaries on the different platforms. specifically, windows just really really doesnt want to behave, its starting to feel like getting a discord mod to eat anything other than gamersupps and pizza rolls overall, maybe getting close to shipping? it honestly just depends on how much more features and idiot proofing i want to add if this sounds interesting, check out (and star ) the repo here"}, {"post_id": 14222, "ts": "2026-06-23T07:20:06Z", "hours": 8.5239, "text": "3d wasd controls (wowie zowie) the math for this was super hard, especially because i want it to work alongside with the other classic orbit style controls lol i ended up adding a toggle in the sidebar, which felt like the cleanest way to do it, but did mean doing more qml also, i pretty much had to guess when setting up all my vectors so i spent like 15 presidential terms messing around with positives and negatives and 1.0f / 0.0f everywhere until doing stuff in the right directions actually did the right thing, which was hard also had to implement auto horizon correction so things d also added some live 3d settings, which took a while, but now theres a live slider for both the mandelbulb power (exponent), and the brightness (which was hard) and, theres now a math section in the readme, which i spent a lot of time pondering while making, but if you’re at all, check out the “mathy information” section of the readme https://github.com/swedishsplidney/fraktalized (also star the repo ) exploring the mandelbulb in wasd mode genuinely feels like exploring an alien planet in a spaceship, lowk super fun"}, {"post_id": 11771, "ts": "2026-06-19T04:47:05Z", "hours": 8.7492, "text": "3d is finally working!!!!! i have been having an epic samurai battle against opengl and 3d fractal math for what feels like forever, but it finally works, and I have a working 3d mandelbulb explorer!!! i have actually been working on getting 3d working for the past multiple devlogs, it just took me sooo incredibly long to actually figure it out that i never really mentioned it. the longest step was figuring out the controls. when i first started working on the 3d mode, then it was literally just a cube, and i had to figure out a good way to be able to rotate it the hard part wasn’t even trying to figure out how to do the math to rotate the vertices, the hard part was trying to figure out how the thing should actually rotate what i figured out how to do is having an orbit style camera, where dragging side to side rotates the model along its own local yaw, and then dragging up and down changes the camera’s global pitch. this way the model’s roll never changes (because that makes the model look tilted or skewed). i had to spend an embarassingly long amount of time trying to figure the logic of an orbital camera… the camera is also slerped (like lerping but 3d) so it feels smooth color mappping on the 3d was actually surprisingly easy, i just did it in a very similar way to the 2d escape time ones, except with an extra dimension (its not as hard as it sounds) one other major change was when i added the ability to add and remove gradient stops. this way, instead of always having 4 gradient stops, you can have anywhere from 2 to 16 stops, for more customizeability. also, the readme is updated, go check it out! (and star the repo ) https://github.com/swedishsplidney/fraktalized below: video demonstrating the 3d and camera system"}, {"post_id": 10469, "ts": "2026-06-17T06:25:16Z", "hours": 7.9178, "text": "added iterative function system fractals basically, iterative function fractals are fractals that start at a set point, then repeatedly apply the same affine transformations (scaling, rotating, shifting), making an infinitely repeating, self-same fractal. as far as actually getting this setup and working, i had to make a whole new compute shader that involves a lot of math and for loops to iterate forever getting ifs fractals to render was a particular challenge, and i almost exploded my gpu and accidentally caused a vram cache overflow causing my display output to break. in the end, it turns out the trick was to not send 4,000,000 worker threads to the gpu all at once, and to do them 3-4 at a time also finally got working on the whole 3d system, which will likely take forever, and completely does not work right now, but hopefully i will have figured out how in the world to get working 3d stuff by the next devlog 🙏 check out the github! -> https://github.com/swedishsplidney/fraktalized image: barnsley fern, rendered in 4k"}, {"post_id": 9130, "ts": "2026-06-15T08:45:47Z", "hours": 6.9228, "text": "added support for trajectory based fractals most people know the normal fractals (the ones ive covered so far), such as the mandelbrot and julia sets, that test wether or not a point escapes and maps how long it takes to escape trajectory fractals look really cool, and the difference is that they map the trajectory that 𝑧 takes on its way out, while incrementing a counter for every pixel it steps on. getting this to work was a lot of work, and required to write a whole new shader file from scratch, except instead of a .frag/.vert combo, it was a compute shader (.glsl). instead of simply running a loop and writing color data to each independent pixel like with the escape-time fractals do, the trajectory shader has to pick a random (x, y) starting coord, and then track its orbit across the complex plane, writing data to random pixels as it goes. this required me to use atomics, because if 2 orbits cross, instead of one overwriting each other, you have to use imageAtomicAdd() to make sure that the brightness stacks up. one other issue was that at first it was super grainy, which was fixed by assigning each gpu thread 50 random sampled to increase detail substantially. i also nearly exploded my gpu because i accidentally had the render system run 50+ compute sequences at the same time, so i now have each compute wait for the one before it to finish in other happenings, there is now a preset feature that writes your current color setup set, zoom, center, etc. to a JSON file to be loaded later also added the newton set, but its a less interesting escape-time fractal, so not covered in as much detail image: buddhabrot set, rendered at 4k"}, {"post_id": 7949, "ts": "2026-06-13T08:09:58Z", "hours": 5.9558, "text": "added the burning ship fractal, anti aliasing, and completely overhauled the color system to use a gradient input instead of one color. burning ship fractal: so the burning ship fractal is made when you take the mandelbrot equation, but you take the absolute value of the real and imaginary parts before squaring, basically destroying the symmetry: 𝑧ₙ₊₁ = (|𝑅𝑒(𝑍ₙ)| + 𝑖|𝐼𝑚(𝑍ₙ)|)² + 𝐶 this makes it look super duper cool (as seen in the image below) gradient-based color mapping so before, the color was just calculated using one color tint and boosting brightness quadratically near the edges. now, it takes in a gradient (calculated between 4 color inputs), and does the same color mapping but essentially moves what color it uses as the iterations increase. the hard part is figuring out how to get a good input system in qml with this, but I was able to do it using some colordialogues and a lot of trial and error. the new color input system is kinda like creating a gradient in photoshop or illustrator, with 4 little handles that you can drag across and change their colors. anti aliasing also added anti aliasing, or more specifically, ssaa (super sampling anti aliasing), with a selector to choose between off, 2x, and 3x so basically it renders the entire fractal at a higher resolution (2x or 3x) and then averages the color of every pixel block (2x2 or 3x3 respectively) and then displays that. this results in a much, much smoother image at the cost of much higher resource usage. while i was screwing around with dynamic resolutions, i also added a resolution slider to change the rendered resolution to anywhere from 25 to 150% of the window resolution. turning it up past 100% basically just gives the ssaa architecture more information to work with, making it even smoother my graphics card isnt very powerful and it basically stays pinned at 99% usage and 100% clock when i have anti aliasing turned on and the iterations above like 200. image: burning ship fractal, rendered at 4k with 150% resolution scale and 3x ssaa"}, {"post_id": 6713, "ts": "2026-06-11T07:42:55Z", "hours": 4.1331, "text": "now has a render to file feature basically you just import a custom resolution and it takes your current center and renders at that resolution with your current parameters. the hard part is that it uses a completely different framebuffer object from the regular viewport. while testing i did almost explode my gpu when pushing the resolution to almost 32k, which is kinda unreasonable, but this was a good opportunity to add a tiled render system basically it just splits up the image into 2000x2000 pixel sections and renders them, and then it does some math to position it the weird thing is that opengl is kinda goofy and likes to mirror stuff for some reason (literally no idea why) so theres some math to render it in reverse (which means that its actually correct) also increased the rendering to 64 bit, meaning it is now 536,870,912 times more accurate compared to the 32 bit one, and also means you can zoom in more than twice as far with better quality, but it is much more gpu intensive… this image is one of the cooler ones i rendered out at 4k, it kinda looks like colliding galaxies or something"}, {"post_id": 6139, "ts": "2026-06-10T10:13:47Z", "hours": 6.7264, "text": "is now fully interactive and honestly feels super great, especially compared to my last devlog where it was static and unchanging entirely added working real-time render parameters such as panning and zooming with mouse, and custom iteration setup and color setup on the sidebar. lots and lots and lots of quality of life features, such as: the reset button for if you get lost adjustable iteration slider min/max direct text enter for iterations hideable iteration min/max menu camera smoothing color clamping so it doesnt look deep fried also added the julia set (which is what is in the image) so basically, both the mandelbrot and julia sets are the same quadratic recurrence relation on the complex plane: 𝑧ₙ₊₁ = (𝑧ₙ)² + 𝑐 the main difference is that you start at the origin (𝑧₀ = 0) and change the constant 𝑐 for every single pixel on the screen based on its coordinates, but with the julia set the constant 𝑐 is the same everywhere, and the starting point 𝑧₀ changes based on the pixel’s coordinate, so you are testing how different starting points react to the same gravitational pull of 𝑐. the nice thing is that you can change the constant 𝑐 in the julia set, and completely change how the fractal looks, so i added that as an input field too looks really really cool lowk"}, {"post_id": 4855, "ts": "2026-06-08T12:00:00Z", "hours": 5.5808, "text": "working mandelbrot fractal rendering through opengl!!!!! using qt/qml and raw opengl shaders together was a mistake they really dont like working together and i had to spend 3 straight hours (its 5:42am at the time of this devlog) debugging an eternal tug of war between qt and opengl because qt kept overwriting what i wanted to happen the worst part is that an opengl fragment shader cant really debug to the log so if something is on fire over there i just kinda have to guess to fix it eventually i just gave up and switched to framebuffer objects, which i lowk should have done from the start the funnest part was actually writing the equations for the mandelbrot set lol (it also looks super pretty): so basically the Mandelbrot set is the set of all complex parameters 𝑐 ∈ ℂ for which the orbit of 𝑧₀ = 0 under quadratic recurrence remains bounded. in the shader, i just separate its multiplication into real and imaginary components: Re(𝑧ₙ₊₁) = 𝑥² + 𝑦² + Re(𝑐) Im(𝑧ₙ₊₁) = 2𝑥𝑦 + Im(𝑐) also infinity is impossible so the iterations are capped at 100 sorry if this was too nerdy or long lmao"}]...
|
Title: fraktalized by @swedishsplidney | Stardance Title: fraktalized by @swedishsplidney | Stardance
Devlogs:
working mandelbrot fractal rendering through opengl!!!!! using qt/qml and raw opengl shaders together was a mistake they really dont like working together and i had to spend 3 straight hours (its 5:42am at the time of this devlog) debugging an eternal tug of war between qt and opengl because qt kept overwriting what i wanted to happen the worst part is that an opengl fragment shader cant really debug to the log so if something is on fire over there i just kinda have to guess to fix it eventually i just gave up and switched to framebuffer objects, which i lowk should have done from the start the funnest part was actually writing the equations for the mandelbrot set lol (it also looks super pretty): so basically the Mandelbrot set is the set of all complex parameters 𝑐 ∈ ℂ for which the orbit of 𝑧₀ = 0 under quadratic recurrence remains bounded. in the shader, i just separate its multiplication into real and imaginary components: Re(𝑧ₙ₊₁) = 𝑥² + 𝑦² + Re(𝑐) Im(𝑧ₙ₊₁) = 2𝑥𝑦 + Im(𝑐) also infinity is impossible so the iterations are capped at 100 sorry if this was too nerdy or long lmao
is now fully interactive and honestly feels super great, especially compared to my last devlog where it was static and unchanging entirely added working real-time render parameters such as panning and zooming with mouse, and custom iteration setup and color setup on the sidebar. lots and lots and lots of quality of life features, such as: the reset button for if you get lost adjustable iteration slider min/max direct text enter for iterations hideable iteration min/max menu camera smoothing color clamping so it doesnt look deep fried also added the julia set (which is what is in the image) so basically, both the mandelbrot and julia sets are the same quadratic recurrence relation on the complex plane: 𝑧ₙ₊₁ = (𝑧ₙ)² + 𝑐 the main difference is that you start at the origin (𝑧₀ = 0) and change the constant 𝑐 for every single pixel on the screen based on its coordinates, but with the julia set the constant 𝑐 is the same everywhere, and the starting point 𝑧₀ changes based on the pixel’s coordinate, so you are testing how different starting points react to the same gravitational pull of 𝑐. the nice thing is that you can change the constant 𝑐 in the julia set, and completely change how the fractal looks, so i added that as an input field too looks really really cool lowk
now has a render to file feature basically you just import a custom resolution and it takes your current center and renders at that resolution with your current parameters. the hard part is that it uses a completely different framebuffer object from the regular viewport. while testing i did almost explode my gpu when pushing the resolution to almost 32k, which is kinda unreasonable, but this was a good opportunity to add a tiled render system basically it just splits up the image into 2000x2000 pixel sections and renders them, and then it does some math to position it the weird thing is that opengl is kinda goofy and likes to mirror stuff for some reason (literally no idea why) so theres some math to render it in reverse (which means that its actually correct) also increased the rendering to 64 bit, meaning it is now 536,870,912 times more accurate compared to the 32 bit one, and also means you can zoom in more than twice as far with better quality, but it is much more gpu intensive… this image is one of the cooler ones i rendered out at 4k, it kinda looks like colliding galaxies or something
added the burning ship fractal, anti aliasing, and completely overhauled the color system to use a gradient input instead of one color. burning ship fractal: so the burning ship fractal is made when you take the mandelbrot equation, but you take the absolute value of the real and imaginary parts before squaring, basically destroying the symmetry: 𝑧ₙ₊₁ = (|𝑅𝑒(𝑍ₙ)| + 𝑖|𝐼𝑚(𝑍ₙ)|)² + 𝐶 this makes it look super duper cool (as seen in the image below) gradient-based color mapping so before, the color was just calculated using one color tint and boosting brightness quadratically near the edges. now, it takes in a gradient (calculated between 4 color inputs), and does the same color mapping but essentially moves what color it uses as the iterations increase. the hard part is figuring out how to get a good input system in qml with this, but I was able to do it using some colordialogues and a lot of trial and error. the new color input system is kinda like creating a gradient in photoshop or illustrator, with 4 little handles that you can drag across and change their colors. anti aliasing also added anti aliasing, or more specifically, ssaa (super sampling anti aliasing), with a selector to choose between off, 2x, and 3x so basically it renders the entire fractal at a higher resolution (2x or 3x) and then averages the color of every pixel block (2x2 or 3x3 respectively) and then displays that. this results in a much, much smoother image at the cost of much higher resource usage. while i was screwing around with dynamic resolutions, i also added a resolution slider to change the rendered resolution to anywhere from 25 to 150% of the window resolution. turning it up past 100% basically just gives the ssaa architecture more information to work with, making it even smoother my graphics card isnt very powerful and it basically stays pinned at 99% usage and 100% clock when i have anti aliasing turned on and the iterations above like 200. image: burning ship fractal, rendered at 4k with 150% resolution scale and 3x ssaa
added support for trajectory based fractals most people know the normal fractals (the ones ive covered so far), such as the mandelbrot and julia sets, that test wether or not a point escapes and maps how long it takes to escape trajectory fractals look really cool, and the difference is that they map the trajectory that 𝑧 takes on its way out, while incrementing a counter for every pixel it steps on. getting this to work was a lot of work, and required to write a whole new shader file from scratch, except instead of a .frag/.vert combo, it was a compute shader (.glsl). instead of simply running a loop and writing color data to each independent pixel like with the escape-time fractals do, the trajectory shader has to pick a random (x, y) starting coord, and then track its orbit across the complex plane, writing data to random pixels as it goes. this required me to use atomics, because if 2 orbits cross, instead of one overwriting each other, you have to use imageAtomicAdd() to make sure that the brightness stacks up. one other issue was that at first it was super grainy, which was fixed by assigning each gpu thread 50 random sampled to increase detail substantially. i also nearly exploded my gpu because i accidentally had the render system run 50+ compute sequences at the same time, so i now have each compute wait for the one before it to finish in other happenings, there is now a preset feature that writes your current color setup set, zoom, center, etc. to a JSON file to be loaded later also added the newton set, but its a less interesting escape-time fractal, so not covered in as much detail image: buddhabrot set, rendered at 4k
added iterative function system fractals basically, iterative function fractals are fractals that start at a set point, then repeatedly apply the same affine transformations (scaling, rotating, shifting), making an infinitely repeating, self-same fractal. as far as actually getting this setup and working, i had to make a whole new compute shader that involves a lot of math and for loops to iterate forever getting ifs fractals to render was a particular challenge, and i almost exploded my gpu and accidentally caused a vram cache overflow causing my display output to break. in the end, it turns out the trick was to not send 4,000,000 worker threads to the gpu all at once, and to do them 3-4 at a time also finally got working on the whole 3d system, which will likely take forever, and completely does not work right now, but hopefully i will have figured out how in the world to get working 3d stuff by the next devlog 🙏 check out the github! -> https://github.com/swedishsplidney/fraktalized image: barnsley fern, rendered in 4k
3d is finally working!!!!! i have been having an epic samurai battle against opengl and 3d fractal math for what feels like forever, but it finally works, and I have a working 3d mandelbulb explorer!!! i have actually been working on getting 3d working for the past multiple devlogs, it just took me sooo incredibly long to actually figure it out that i never really mentioned it. the longest step was figuring out the controls. when i first started working on the 3d mode, then it was literally just a cube, and i had to figure out a good way to be able to rotate it the hard part wasn’t even trying to figure out how to do the math to rotate the vertices, the hard part was trying to figure out how the thing should actually rotate what i figured out how to do is having an orbit style camera, where dragging side to side rotates the model along its own local yaw, and then dragging up and down changes the camera’s global pitch. this way the model’s roll never changes (because that makes the model look tilted or skewed). i had to spend an embarassingly long amount of time trying to figure the logic of an orbital camera… the camera is also slerped (like lerping but 3d) so it feels smooth color mappping on the 3d was actually surprisingly easy, i just did it in a very similar way to the 2d escape time ones, except with an extra dimension (its not as hard as it sounds) one other major change was when i added the ability to add and remove gradient stops. this way, instead of always having 4 gradient stops, you can have anywhere from 2 to 16 stops, for more customizeability. also, the readme is updated, go check it out! (and star the repo ) https://github.com/swedishsplidney/fraktalized below: video demonstrating the 3d and camera system
3d wasd controls (wowie zowie) the math for this was super hard, especially because i want it to work alongside with the other classic orbit style controls lol i ended up adding a toggle in the sidebar, which felt like the cleanest way to do it, but did mean doing more qml also, i pretty much had to guess when setting up all my vectors so i spent like 15 presidential terms messing around with positives and negatives and 1.0f / 0.0f everywhere until doing stuff in the right directions actually did the right thing, which was hard also had to implement auto horizon correction so things d also added some live 3d settings, which took a while, but now theres a live slider for both the mandelbulb power (exponent), and the brightness (which was hard) and, theres now a math section in the readme, which i spent a lot of time pondering while making, but if you’re at all, check out the “mathy information” section of the readme https://github.com/swedishsplidney/fraktalized (also star the repo ) exploring the mandelbulb in wasd mode genuinely feels like exploring an alien planet in a spaceship, lowk super fun
i set up a full tutorial system the hard part was doing the whole thing where it darkens everywhere except the thing the tutorial is yapping about… also, right now, the tutorial is really really easy to break, so i might have to implement some idiot proofing or something to be honest, adding the whole darkening thing was really simple, but actually getting it to work was really annoying for some reason. it essentially just gets the xy coord for each corner of the specified element, and then makes a dark block everywhere except inside those 4 corners. also, i made it so the tutorial saves to the same json file as the preset manager, so that you only have to do the tutorial one time and it doesnt just get in your way every single time you open it. aside from that, most of this time was spent trying to figure out how to get it to automatically build on github when i push a release. i did this successfully for my other project, but the problem so far has been linking the qml for the binaries on the different platforms. specifically, windows just really really doesnt want to behave, its starting to feel like getting a discord mod to eat anything other than gamersupps and pizza rolls overall, maybe getting close to shipping? it honestly just depends on how much more features and idiot proofing i want to add if this sounds interesting, check out (and star ) the repo here
probably the final commit :o most of this was spent idiot proofing, going through all my code and making sure that everything works well and actually makes sense i also updated the tutorial to be a bit better a major amount of time was spent figuring out how to get windows to actually compile i swear windows is the bane of my entire existence its not reflected in the devlog hours, but i did also make a demo video to show off some of the features mystery link other than that, it was mostly ui and readme updates :)
extra ui tweaks and readme updates added some images of 3d fractals to the readme, did some general ui tweaks, and some idiot proofing now its time to ship!!!
Ships:
fraktalized ship: fraktalized is an an open-source, cross-platform, ultra smooth real time fractal explorer built using a hybrid architecture of Qt6 (QML/C++) and openGL (GLSL 330 core / 4.3 compute shaders). fraktalized currently has 10 fractal sets: mandelbrot set: the classic fractal set julia set: cool swirly stuff, complete with adjustable constant coords burning ship set: cool pointy stuff newton set: kinda spidery looking buddhabrot: like the mandelbrot but galaxy looking anti-buddhabrot: reverse buddhabrot barnsley fern: looks very naturey mandelbulb: like the mandelbrot but 3d menger sponge: cube, but with infinite* surface ar a icebox: spiky box! there is both a set of 3 precompiled binaries on the github and a demo video: https://youtu.be/x9lH_pPzvbw...
|
1793220687.013065
|
1793307087.013065
|
|
12092
|
Artists of Tomorrow by @anishbatra2010 | Stardance
|
anishbatra2010
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-08T04:03:28Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Here is the complete text you can copy and paste into the modal text box: I did a security audit and code hardening pass on the Artists of Tomorrow website, while successfully troubleshooting and repairing my editor’s broken Hackatime integration. What did you make? Code Hardening: Created a custom sanitizeURL utility across all dynamic gallery scripts ( latin-america-school.js , asia-competition-gallery.js , and latin-america-competition.js ) to block malicious javascript: and data: link payloads and prevent Cross-Site Scripting (XSS). Link Security: Added rel=\"noopener noreferrer\" attributes to external anchor tags in leaders-of-tomorrow.html to prevent tab-nabbing attacks. Hackatime Fix: Resolved a persistent “Initialized” tracking freeze by correcting the API key format for the Hackatime backend, disabling problematic VS Code AI tracking syncs ( sync_ai_disabled = true ) causing SQLite crashes, and force-flushing queued offline coding time to the server. What was challenging? Diagnosing why the WakaTime CLI was freezing. It turned out to be a double issue: the Hack Club Hackatime server didn’t accept the standard waka_ API key prefix, and my editor was throwing SQLite database errors trying to sync AI metadata, which locked up the sync loop entirely. What are you proud of? Hardening the codebase against XSS without breaking any of the existing DOM structure or vanilla JS gallery animations, and successfully syncing all of my logged offline hours back to the Hack Club dashboard. What should people know so they can test your project? The site runs entirely as a static vanilla HTML/CSS/JS site. You can test it locally by running: python3 -m http.server 8080 And going to http://localhost:8080 . All the security sanitation works under the hood when loading school artwork metadata and external links!", "repo": "https://github.com/iDxtry/Artists-of-Tomorrow", "demo": "https://artistsoftomorrow.org/"}]...
|
[{"post_id": 4703, "ts": "2026 [{"post_id": 4703, "ts": "2026-06-08T03:59:51Z", "hours": 0.9319, "text": "Performed a security audit and hardened the codebase against XSS and tab-nabbing vulnerabilities. I wrote a custom sanitizeURL wrapper for the existing escapeHTML utility across the gallery JavaScript files to strictly block malicious javascript: and data: protocols. I also patched an external target=”_blank” link in the Leaders of Tomorrow page to include rel=“noopener noreferrer”, and cleaned up outdated form-handling references in our AGENTS.md documentation."}, {"post_id": 4665, "ts": "2026-06-08T02:08:36Z", "hours": 0.5847, "text": "Artists of Tomorrow - Project Showcase Here is a summary of the major features and technical upgrades completed on the Artists of Tomorrow website, along with screenshots showing the changes in action. Key Achievements Site-wide Asia & India Regional Refactoring The Goal: Cleanly transition the website structure from a single-country profile (India) to a continent/country format (Asia/India) to match the Latin America profile format. What changed: Renamed all regional files dynamically via Git: nathupur-india.html → nathupur-asia.html, india-competition-gallery.html → asia-competition-gallery.html, and their respective JS support files. Restructured the Asia Partner School profile to match the Latin America format: removed the localized winner gallery and replaced it with a dynamic 37-item Student Artwork Submission carousel. Updated navigation menus, footers, headers, metadata, Leaflet map pins, and data attributes across all 13 HTML pages. Asia Partner School Profile Review Asia Partner School Profile Dual-Currency Prize Money Display The Goal: Present prize structures clearly for both regional cohorts (INR ₹ for India, USD $ for Latin America) without cluttering the UI. What changed: Redesigned the prize cards on the Home and Competition pages to support side-by-side dual currencies: 1st Place: ₹3,000 / $50 2nd Place: ₹2,000 / $30 3rd Place: ₹1,000 / $15 Implemented a flexible layout system (.prize-amounts CSS class) using flexbox, ensuring a clean horizontal display on desktop and responsive vertical stacking on mobile. Dual Currency Prize Cards Review Dual Currency Prize Cards Cloudflare Pages CDN & Dynamic Image Pathing The Goal: Render over 2,000+ student submission images without overloading Git or pushing massive file structures to GitHub. What changed: Deployed the entire project (including the git-ignored images/latin-america folder) to Cloudflare Pages using Wrangler CLI. Integrated a dynamic resolution path utility in the codebase: when window.AOT_CDN_BASE_URL is set to https://aot-images.pages.dev/ , the site dynamically redirects all requests for git-ignored Latin American images to load instantly from the Cloudflare Pages CDN. Added a development fallback to local paths, enabling fully offline local development. Interactive Directory Search & Dynamic Division Listing The Goal: Ensure that searches in the school directories behave predictably and layout correctly, and hide empty content boxes. What changed: Fixed a bug where filtered/hidden school card wrappers were still showing as blank space by adding CSS rules (.school-directory-card[hidden] { display: none !important; }). Optimized the school profile lists so they dynamically format active age ranges (e.g. showing Ages 8-11, 12-15 and automatically hiding any age division with 0 submissions). School Directory Search Review School Directory Search Year Rollover Rolled over the campaign, art prompt headers, and copyright documentation from 2025 to 2026 site-wide."}]...
|
Title: Artists of Tomorrow by @anishbatra2010 | St Title: Artists of Tomorrow by @anishbatra2010 | Stardance
Devlogs:
Artists of Tomorrow - Project Showcase Here is a summary of the major features and technical upgrades completed on the Artists of Tomorrow website, along with screenshots showing the changes in action. Key Achievements Site-wide Asia & India Regional Refactoring The Goal: Cleanly transition the website structure from a single-country profile (India) to a continent/country format (Asia/India) to match the Latin America profile format. What changed: Renamed all regional files dynamically via Git: nathupur-india.html → nathupur-asia.html, india-competition-gallery.html → asia-competition-gallery.html, and their respective JS support files. Restructured the Asia Partner School profile to match the Latin America format: removed the localized winner gallery and replaced it with a dynamic 37-item Student Artwork Submission carousel. Updated navigation menus, footers, headers, metadata, Leaflet map pins, and data attributes across all 13 HTML pages. Asia Partner School Profile Review Asia Partner School Profile Dual-Currency Prize Money Display The Goal: Present prize structures clearly for both regional cohorts (INR ₹ for India, USD $ for Latin America) without cluttering the UI. What changed: Redesigned the prize cards on the Home and Competition pages to support side-by-side dual currencies: 1st Place: ₹3,000 / $50 2nd Place: ₹2,000 / $30 3rd Place: ₹1,000 / $15 Implemented a flexible layout system (.prize-amounts CSS class) using flexbox, ensuring a clean horizontal display on desktop and responsive vertical stacking on mobile. Dual Currency Prize Cards Review Dual Currency Prize Cards Cloudflare Pages CDN & Dynamic Image Pathing The Goal: Render over 2,000+ student submission images without overloading Git or pushing massive file structures to GitHub. What changed: Deployed the entire project (including the git-ignored images/latin-america folder) to Cloudflare Pages using Wrangler CLI. Integrated a dynamic resolution path utility in the codebase: when window.AOT_CDN_BASE_URL is set to https://aot-images.pages.dev/ , the site dynamically redirects all requests for git-ignored Latin American images to load instantly from the Cloudflare Pages CDN. Added a development fallback to local paths, enabling fully offline local development. Interactive Directory Search & Dynamic Division Listing The Goal: Ensure that searches in the school directories behave predictably and layout correctly, and hide empty content boxes. What changed: Fixed a bug where filtered/hidden school card wrappers were still showing as blank space by adding CSS rules (.school-directory-card[hidden] { display: none !important; }). Optimized the school profile lists so they dynamically format active age ranges (e.g. showing Ages 8-11, 12-15 and automatically hiding any age division with 0 submissions). School Directory Search Review School Directory Search Year Rollover Rolled over the campaign, art prompt headers, and copyright documentation from 2025 to 2026 site-wide.
Performed a security audit and hardened the codebase against XSS and tab-nabbing vulnerabilities. I wrote a custom sanitizeURL wrapper for the existing escapeHTML utility across the gallery JavaScript files to strictly block malicious javascript: and data: protocols. I also patched an external target=”_blank” link in the Leaders of Tomorrow page to include rel=“noopener noreferrer”, and cleaned up outdated form-handling references in our AGENTS.md documentation.
Ships:
Here is the complete text you can copy and paste into the modal text box: I did a security audit and code hardening pass on the Artists of Tomorrow website, while successfully troubleshooting and repairing my editor’s broken Hackatime integration. What did you make? Code Hardening: Created a custom sanitizeURL utility across all dynamic gallery scripts ( latin-america-school.js , asia-competition-gallery.js , and latin-america-competition.js ) to block malicious javascript: and data: link payloads and prevent Cross-Site Scripting (XSS). Link Security: Added rel="noopener noreferrer" attributes to external anchor tags in leaders-of-tomorrow.html to prevent tab-nabbing attacks. Hackatime Fix: Resolved a persistent “Initialized” tracking freeze by correcting the API key format for the Hackatime backend, disabling problematic VS Code AI tracking syncs ( sync_ai_disabled = true ) causing SQLite crashes, and force-flushing queued offline coding time to the server. What was challenging? Diagnosing why the WakaTime CLI was freezing. It turned out to be a double issue: the Hack Club Hackatime server didn’t accept the standard waka_ API key prefix, and my editor was throwing SQLite database errors trying to sync AI metadata, which locked up the sync loop entirely. What are you proud of? Hardening the codebase against XSS without breaking any of the existing DOM structure or vanilla JS gallery animations, and successfully syncing all of my logged offline hours back to the Hack Club dashboard. What should people know so they can test your project? The site runs entirely as a static vanilla HTML/CSS/JS site. You can test it locally by running: python3 -m http.server 8080 And going to http://localhost:8080 . All the security sanitation works under the hood when loading school artwork metadata and external links!...
|
1793242417.245713
|
1793328817.245713
|
|
12097
|
Minesweeper by @averagestardancefan | Stardance
|
averagestardancefan
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-24T05:25:06Z", "hours": 4.0, "multiplier": 2.5, "payout": 0, "blessing": "neutral", "text": "Here it is, my Minesweeper game! Function: This game plays straight in your Java terminal. You are given instructions, choose the size of your game board, then use coordinates to place flags, weed out mines, and use logic to clear the whole board. There are three main ways to play this game: Download the .zip file from the github release, unzip it, and double click on the application file within it. Download the .java file from the github project files or release files and open it using VS Code. Use the demo links through CodeHS to play, though it can be a bit glitchy and slow. The links are also in github, in the README and in the release description. I recommend the VS Code route, it’s just the easiest. Summary of logic: When you give the program the coordinate you wish to play, it uses a basic recursive flood fill to fill all adjacent tiles with no mines nearby. After you choose and it fills, it can either stop the program because you hit a mine, or it will continue until the number of mines on the board matches the number of unchecked tiles, meaning that you found all the mines. Challenges: Still the hardest thing of either of these was figuring out how to turn the .java file into a .zip that can run without downloading all of Java. The hardest challenge with this game specifically was probably making all of the checks that make sure your input is valid because there were a lot of cases to consider and even so I probably missed one which will be caught somewhere along the way.", "repo": "https://github.com/garetelis/Minesweeper", "demo": "https://github.com/garetelis/Minesweeper/releases/tag/1.0.0"}]...
|
[{"post_id": 14882, "ts": "202 [{"post_id": 14882, "ts": "2026-06-24T04:59:18Z", "hours": 1.9133, "text": "After I ironed out a few bugs with the fill system, I worked on the actual game part where the user inputs the spaces on the board they would like to play and I think it is working how it should now. As an improvement from the last game, the maze game, that I made, I added instructions at the beginning and I used the built in Java colors to make the whole thing look a bit better. I am much happier with this game than the last and I think it is even more fun to play. The mechanism was a bit easier to code."}, {"post_id": 5415, "ts": "2026-06-09T05:18:45Z", "hours": 1.6411, "text": "Oh yeah, it’s all coming together now"}, {"post_id": 4668, "ts": "2026-06-08T02:09:56Z", "hours": 0.4675, "text": "I got it to randomly place the mines and put a number on each tile for how many mines are around it."}]...
|
Title: Minesweeper by @averagestardancefan | Stard Title: Minesweeper by @averagestardancefan | Stardance
Devlogs:
I got it to randomly place the mines and put a number on each tile for how many mines are around it.
Oh yeah, it’s all coming together now
After I ironed out a few bugs with the fill system, I worked on the actual game part where the user inputs the spaces on the board they would like to play and I think it is working how it should now. As an improvement from the last game, the maze game, that I made, I added instructions at the beginning and I used the built in Java colors to make the whole thing look a bit better. I am much happier with this game than the last and I think it is even more fun to play. The mechanism was a bit easier to code.
Ships:
Here it is, my Minesweeper game! Function: This game plays straight in your Java terminal. You are given instructions, choose the size of your game board, then use coordinates to place flags, weed out mines, and use logic to clear the whole board. There are three main ways to play this game: Download the .zip file from the github release, unzip it, and double click on the application file within it. Download the .java file from the github project files or release files and open it using VS Code. Use the demo links through CodeHS to play, though it can be a bit glitchy and slow. The links are also in github, in the README and in the release description. I recommend the VS Code route, it’s just the easiest. Summary of logic: When you give the program the coordinate you wish to play, it uses a basic recursive flood fill to fill all adjacent tiles with no mines nearby. After you choose and it fills, it can either stop the program because you hit a mine, or it will continue until the number of mines on the board matches the number of unchecked tiles, meaning that you found all the mines. Challenges: Still the hardest thing of either of these was figuring out how to turn the .java file into a .zip that can run without downloading all of Java. The hardest challenge with this game specifically was probably making all of the checks that make sure your input is valid because there were a lot of cases to consider and even so I probably missed one which will be caught somewhere along the way....
|
1793123256.6235337
|
1793209656.6235337
|
|
12105
|
Hackpad by @waffle | Stardance
|
waffle
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-22T05:32:02Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built the Specter V1! It is a custom 9-key macropad featuring a rotary encoder and an OLED display, powered by a Seeed Studio XIAO RP2040. I designed the 2-layer PCB from scratch in KiCad and modeled the custom two-part case enclosure using Onshape. I think the biggest hurdle with my project was just the fact that I’m new to PCB building so I was making a lot of little errors in the schematic that I was able to fix at the end. I’m most proud of my design, especially having the NY Knicks logo and representing the city I’m from.", "repo": "https://github.com/bhasan60/specter_v1", "demo": ""}]...
|
[{"post_id": 13548, "ts": "202 [{"post_id": 13548, "ts": "2026-06-22T05:28:06Z", "hours": 2.49, "text": "Wrapped up the final production files to officially submit the project. I fixed the C code to successfully compile the QMK firmware, generated the KiCad gerbers and drill files for the PCB, and converted the CAD assembly to a .3mf to bypass file limits. Finished the session by structuring the GitHub repository, formatting the README with the BOM and screenshots, and dropping the final post in the ships channel."}, {"post_id": 4721, "ts": "2026-06-08T04:49:00Z", "hours": 1.1686, "text": "Hey everyone! I finished adding parts to my imported board on Onshape and then started working on the casing."}]...
|
Title: Hackpad by @waffle | Stardance
Devlogs:
He Title: Hackpad by @waffle | Stardance
Devlogs:
Hey everyone! I finished adding parts to my imported board on Onshape and then started working on the casing.
Wrapped up the final production files to officially submit the project. I fixed the C code to successfully compile the QMK firmware, generated the KiCad gerbers and drill files for the PCB, and converted the CAD assembly to a .3mf to bypass file limits. Finished the session by structuring the GitHub repository, formatting the README with the BOM and screenshots, and dropping the final post in the ships channel.
Ships:
I built the Specter V1! It is a custom 9-key macropad featuring a rotary encoder and an OLED display, powered by a Seeed Studio XIAO RP2040. I designed the 2-layer PCB from scratch in KiCad and modeled the custom two-part case enclosure using Onshape. I think the biggest hurdle with my project was just the fact that I’m new to PCB building so I was making a lot of little errors in the schematic that I was able to fix at the end. I’m most proud of my design, especially having the NY Knicks logo and representing the city I’m from....
|
1793109031.1806347
|
1793195431.1806347
|
|
12108
|
LInt Website by @lazerkat | Stardance
|
lazerkat
|
1
|
5.0
|
82
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-23T22:02:37Z", "hours": 5.0, "multiplier": 15.2, "payout": 82, "blessing": "neutral", "text": "I made a website for a LoRa based intranet called lInt! lInt allows LoRa devices to communicate with each other to send web pages!", "repo": "https://github.com/betelguesestudios/LIntWeb/", "demo": "https://betelguesestudios.github.io/LIntWeb/"}]...
|
[{"post_id": 6660, "ts": "2026 [{"post_id": 6660, "ts": "2026-06-11T05:08:44Z", "hours": 0.935, "text": "added more info"}, {"post_id": 6000, "ts": "2026-06-10T01:58:19Z", "hours": 0.8492, "text": "started making buy page and added more info to the source code page"}, {"post_id": 5947, "ts": "2026-06-09T23:05:30Z", "hours": 0.95, "text": "working on a sources page :)"}, {"post_id": 5360, "ts": "2026-06-09T03:07:49Z", "hours": 0.7356, "text": "Added Downloads page :) lInt is so cool yay"}, {"post_id": 5208, "ts": "2026-06-08T22:16:57Z", "hours": 0.3283, "text": "better website styling and more info :3"}, {"post_id": 4765, "ts": "2026-06-08T07:22:52Z", "hours": 0.8003, "text": "added people page and more styling (and topnav)"}, {"post_id": 4723, "ts": "2026-06-08T04:55:03Z", "hours": 0.4592, "text": "some styling later…"}, {"post_id": 4715, "ts": "2026-06-08T04:19:45Z", "hours": 0.3958, "text": "A short intro to LInt!! If you see this, definitely check out the source code ( https://gitlab.com/walfie308/lint )"}]...
|
Title: LInt Website by @lazerkat | Stardance
Devl Title: LInt Website by @lazerkat | Stardance
Devlogs:
A short intro to LInt!! If you see this, definitely check out the source code ( https://gitlab.com/walfie308/lint )
some styling later…
added people page and more styling (and topnav)
better website styling and more info :3
Added Downloads page :) lInt is so cool yay
working on a sources page :)
started making buy page and added more info to the source code page
added more info
Ships:
I made a website for a LoRa based intranet called lInt! lInt allows LoRa devices to communicate with each other to send web pages!...
|
1793220787.764334
|
1793307187.764334
|
|
12118
|
slack bot tutorial (yippee) by @yuippi | Stardance
|
yuippi
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-08T12:01:58Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a slack bot that does absolutely nothing useful. you can find the command list with /epic-help. i will go work on something more fun now.", "repo": "https://github.com/sangwooahn39/hackclub-slackbot", "demo": "https://app.slack.com/client/E09V59WQY1E/C01D7AHKMPF"}]...
|
[{"post_id": 4854, "ts": "2026 [{"post_id": 4854, "ts": "2026-06-08T11:55:51Z", "hours": 2.3981, "text": "i followed the tutorial to make the epic bot. i didn’t add anything new because i’ve never used slack in my life, and i associate it with my father’s work (traumatizing)"}]...
|
Title: slack bot tutorial (yippee) by @yuippi | St Title: slack bot tutorial (yippee) by @yuippi | Stardance
Devlogs:
i followed the tutorial to make the epic bot. i didn’t add anything new because i’ve never used slack in my life, and i associate it with my father’s work (traumatizing)
Ships:
i made a slack bot that does absolutely nothing useful. you can find the command list with /epic-help. i will go work on something more fun now....
|
1793260303.4765399
|
1793346703.4765399
|
|
12124
|
My first slack bot! by @RTicked | Stardance
|
RTicked
|
1
|
1.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-08T10:54:22Z", "hours": 1.0, "multiplier": 1.3, "payout": 2, "blessing": "neutral", "text": "Guys check out my first ever coding project! its called superslackbot on the hackclub slack group! Commands are /dsb-hello-hi32, /dsb-joke96, /dsb-catfact62 . Hope you guys like it.", "repo": "https://github.com/rticked/stardance-slack-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0266FRGV"}]...
|
[{"post_id": 4749, "ts": "2026 [{"post_id": 4749, "ts": "2026-06-08T06:13:26Z", "hours": 1.2953, "text": "Finally got most bits of my Slack bot (the one listed in the missions) working but 1 command won’t work… Anyways does anyone know how i earn stardust? and where to learn coding? (ideally smth like duolingo.) Thanks"}]...
|
Title: My first slack bot! by @RTicked | Stardance Title: My first slack bot! by @RTicked | Stardance
Devlogs:
Finally got most bits of my Slack bot (the one listed in the missions) working but 1 command won’t work… Anyways does anyone know how i earn stardust? and where to learn coding? (ideally smth like duolingo.) Thanks
Ships:
Guys check out my first ever coding project! its called superslackbot on the hackclub slack group! Commands are /dsb-hello-hi32, /dsb-joke96, /dsb-catfact62 . Hope you guys like it....
|
1793105273.7239544
|
1793191673.7239544
|
|
12145
|
Talos V2 by @danielthedev5 | Stardance
|
danielthedev5
|
1
|
23.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-28T23:01:57Z", "hours": 23.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Talos V2 is a student directory manager using react.js and supabase! (See devlogs for more info on development!) To try the project, you can login with the username “Admin” and password “Admin” Criticism is appreciated", "repo": "https://github.com/Danx3mer/TalosV2", "demo": "https://talos-v2-alpha.vercel.app/login"}]...
|
[{"post_id": 36711, "ts": "202 [{"post_id": 36711, "ts": "2026-07-28T22:57:28Z", "hours": 0.9178, "text": "Devlog 5 - React Mumbo Jumbo React is a liar So it turns out that by default react puts the debug component in your main.jsx file. This is really cool, until you actually deploy your site (for me, I do this using github actions to vercel !) The reason for this is that one of the things that strict mode does is mount, unmount, and instantly remount your component so that any race conditions that aren’t properly handled appear to not be a problem. Since I use the useEffect hook to update my dashboard component asynchronously, this was a problem. Tricking liars To solve this, I made a new isMounted boolean. This boolean handles the control flow of the useEffect hook, which mitigates this issue! Attached below is an image of the new useEffect hook! Additonally, this project is now officially shipable, due to it being deployed on vercel! I may add tailwind css for better styling, but for now this is the first actual version of the project!"}, {"post_id": 36232, "ts": "2026-07-28T05:44:18Z", "hours": 8.5031, "text": "Devlog 4 - Supabase! What’s New? The backend of the project has been completely revamped! Instead of now accessing a local json file located on the hosted server, now the need for a server is gone thanks to the migration of the database to Supabase! Implemented authentication using supabase’s built-in auth module Used relational tables to track data about courses and user profiles in conjunction with the authentication system Pretty short devlog this time, but this pretty much summarizes everything done! Supabase is a really cool tool that I am glad to be able to add into my dev stack! View my commit history for commit-by-commit commentary on the code that I modified! Tailwind CSS incoming!"}, {"post_id": 21810, "ts": "2026-07-03T22:53:55Z", "hours": 9.6606, "text": "Devlog 3: React.js! What’s Old? I never got to go in-depth on what this is, so now would be a good time as ever to do that. This project was originally a school assignment which mandated that the legacy python CGI library was used to retrieve the data of forms instead of using something like JS to read the value of the inputs. Here are the features of the original site: Login page which would create a cookie that had user information including the user name, type, and more data pertaining to that particular user Login page would take you to the Home page on login, which would look different based on which of the contexts you were logged in as (this is basically checking if you are a school Admin , Teacher , or Student ) and would update the Navbar to include buttons linking to context -specific pages as well as the Dashboard based on this context Admin view had a Home page which would display overall school statistics Admin specific pages included pages to add or delete a course, or add, delete, or assign/remove a user from a course Teacher view had a Home page which would display courses taught and the amount of students in each course Teacher specific pages were pages to modify the grades of students, and each course would have its own page for editing the grades Student had no specific pages and would see their grades displayed in a table on the Dashboard on the Home page Navbar had a Logout button which deleted the aforementioned cookies by setting their “expires” value to 0 SuccessIndicator Indicated whether a form action succeeded or not by reading a GET request Similar pages were in one .html file and were modified based off a GET request parameter to display appropriate content What’s New? It is important to note that this is a complete rewrite of the project! The code similarity between the current state of the site and the original state (which you can view by going to the Legacy release linked here !) is minimal. I completely remade the project by making a new directory and then rebasing the newly created project onto the previous repository stack. This added my files to the GitHub repo without me having to make a new one, which was convenient. I learned how to rebase using git to do this, expanding my knowledge of git. The project has been rewritten to mostly use .jsx files instead of the mess that was using .html , .css , .js , and .py files for a single page of the website. Now, every single component (whether that be a page, a styled form, or even just a header) has its own file, which makes everything WAY MORE organized! Every single form on the website is now a <FormStyled/> which is a component that I made. To make this work I simply add a JS object which has a key-value pair notation of Input Name - OnChange handler, which makes making forms way faster. Development has overall been way more pleasing as compared to not having react.js due to the amount of new things in react! Every single interaction with things outside the DOM is now in a convenient services/ folder, which includes files such as manageCookies.js and httpRequests.js which allow me to import certain functions anywhere in the code. This is an improvement over me simply copy and pasting the same code over and over again in two different files. Speaking of organization, all files are now organized in the src/ folder by type of component/use. For example, my components which I add to the website at will are in the components/ folder while the overall page layout components are in the pages/ folder View my commit history for commit-by-commit commentary on the code that I modified! SupaBase incoming!"}, {"post_id": 15093, "ts": "2026-06-24T15:04:40Z", "hours": 2.5383, "text": "I finished the main layout of the website and it works using python’s legacy cgi library, but now I am porting it over to use contemporary technologies. Currently, the program is written in HTML, CSS, JS, and Python with no frameworks, and uses 2 JSONs as the database. The plan is to port the project over to use react.js, tailwind css for styling, supabase for the database, and possibly even creating a REST API for retrieving certain user info."}, {"post_id": 7543, "ts": "2026-06-12T16:19:42Z", "hours": 1.3044, "text": "Login page and cookies! I successfully created a cookie retrieval system for my school project. I am creating a school directory management system. The login page stores the login information as a cookie (if successful) and then the home.js file displays it! Next step: display different buttons on the side navbar based on the type of user!"}]...
|
Title: Talos V2 by @danielthedev5 | Stardance
Dev Title: Talos V2 by @danielthedev5 | Stardance
Devlogs:
Login page and cookies! I successfully created a cookie retrieval system for my school project. I am creating a school directory management system. The login page stores the login information as a cookie (if successful) and then the home.js file displays it! Next step: display different buttons on the side navbar based on the type of user!
I finished the main layout of the website and it works using python’s legacy cgi library, but now I am porting it over to use contemporary technologies. Currently, the program is written in HTML, CSS, JS, and Python with no frameworks, and uses 2 JSONs as the database. The plan is to port the project over to use react.js, tailwind css for styling, supabase for the database, and possibly even creating a REST API for retrieving certain user info.
Devlog 3: React.js! What’s Old? I never got to go in-depth on what this is, so now would be a good time as ever to do that. This project was originally a school assignment which mandated that the legacy python CGI library was used to retrieve the data of forms instead of using something like JS to read the value of the inputs. Here are the features of the original site: Login page which would create a cookie that had user information including the user name, type, and more data pertaining to that particular user Login page would take you to the Home page on login, which would look different based on which of the contexts you were logged in as (this is basically checking if you are a school Admin , Teacher , or Student ) and would update the Navbar to include buttons linking to context -specific pages as well as the Dashboard based on this context Admin view had a Home page which would display overall school statistics Admin specific pages included pages to add or delete a course, or add, delete, or assign/remove a user from a course Teacher view had a Home page which would display courses taught and the amount of students in each course Teacher specific pages were pages to modify the grades of students, and each course would have its own page for editing the grades Student had no specific pages and would see their grades displayed in a table on the Dashboard on the Home page Navbar had a Logout button which deleted the aforementioned cookies by setting their “expires” value to 0 SuccessIndicator Indicated whether a form action succeeded or not by reading a GET request Similar pages were in one .html file and were modified based off a GET request parameter to display appropriate content What’s New? It is important to note that this is a complete rewrite of the project! The code similarity between the current state of the site and the original state (which you can view by going to the Legacy release linked here !) is minimal. I completely remade the project by making a new directory and then rebasing the newly created project onto the previous repository stack. This added my files to the GitHub repo without me having to make a new one, which was convenient. I learned how to rebase using git to do this, expanding my knowledge of git. The project has been rewritten to mostly use .jsx files instead of the mess that was using .html , .css , .js , and .py files for a single page of the website. Now, every single component (whether that be a page, a styled form, or even just a header) has its own file, which makes everything WAY MORE organized! Every single form on the website is now a <FormStyled/> which is a component that I made. To make this work I simply add a JS object which has a key-value pair notation of Input Name - OnChange handler, which makes making forms way faster. Development has overall been way more pleasing as compared to not having react.js due to the amount of new things in react! Every single interaction with things outside the DOM is now in a convenient services/ folder, which includes files such as manageCookies.js and httpRequests.js which allow me to import certain functions anywhere in the code. This is an improvement over me simply copy and pasting the same code over and over again in two different files. Speaking of organization, all files are now organized in the src/ folder by type of component/use. For example, my components which I add to the website at will are in the components/ folder while the overall page layout components are in the pages/ folder View my commit history for commit-by-commit commentary on the code that I modified! SupaBase incoming!
Devlog 4 - Supabase! What’s New? The backend of the project has been completely revamped! Instead of now accessing a local json file located on the hosted server, now the need for a server is gone thanks to the migration of the database to Supabase! Implemented authentication using supabase’s built-in auth module Used relational tables to track data about courses and user profiles in conjunction with the authentication system Pretty short devlog this time, but this pretty much summarizes everything done! Supabase is a really cool tool that I am glad to be able to add into my dev stack! View my commit history for commit-by-commit commentary on the code that I modified! Tailwind CSS incoming!
Devlog 5 - React Mumbo Jumbo React is a liar So it turns out that by default react puts the debug component in your main.jsx file. This is really cool, until you actually deploy your site (for me, I do this using github actions to vercel !) The reason for this is that one of the things that strict mode does is mount, unmount, and instantly remount your component so that any race conditions that aren’t properly handled appear to not be a problem. Since I use the useEffect hook to update my dashboard component asynchronously, this was a problem. Tricking liars To solve this, I made a new isMounted boolean. This boolean handles the control flow of the useEffect hook, which mitigates this issue! Attached below is an image of the new useEffect hook! Additonally, this project is now officially shipable, due to it being deployed on vercel! I may add tailwind css for better styling, but for now this is the first actual version of the project!
Ships:
Talos V2 is a student directory manager using react.js and supabase! (See devlogs for more info on development!) To try the project, you can login with the username “Admin” and password “Admin” Criticism is appreciated...
|
1793130742.4993346
|
1793217142.4993346
|
|
12164
|
SIMOND the HackPad by @dylankchristel | Stardance
|
dylankchristel
|
1
|
7.0
|
43
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-24T18:49:41Z", "hours": 7.0, "multiplier": 5.0, "payout": 43, "blessing": "neutral", "text": "This ship is just for the design and assembly of SIMOND, not the final product yet. SIMOND is a hackpad made with a rotary encoder, 5 buttons, 4 LEDs, and an OLED controlled by a xiao rp2040. I intentionally used a diverse set of parts so that I could learn as many different branches of PCB design as possible. I started SIMOND during blueprint but didn’t get the parts until stardance started, so he’s a continuation project. I probably spent 15+20 hours on him before stardance while learning the process.", "repo": "https://github.com/dylankchristel-sudo/SIMON_the_HackPad", "demo": ""}]...
|
[{"post_id": 13751, "ts": "202 [{"post_id": 13751, "ts": "2026-06-22T15:18:22Z", "hours": 1.4692, "text": "I got around the broken mircontroller by changing the cable and some code. Then I tried to solder it to fix the orginal issue(the board doesn’t stay connected constantly). Long story short, now the board doesn’t even turn on. I think I cooked it when I was soldering."}, {"post_id": 13435, "ts": "2026-06-22T00:32:42Z", "hours": 3.2203, "text": "Tried to fix soldering issue that came up while I was writing the firmware. Ended up breaking the mirco controller in the process. But the code hypothetically works. New parts are on the way :("}, {"post_id": 7638, "ts": "2026-06-12T19:19:02Z", "hours": 2.5614, "text": "Assembled and soldered SIMOND. Also redid part of the case in Onshape"}]...
|
Title: SIMOND the HackPad by @dylankchristel | Sta Title: SIMOND the HackPad by @dylankchristel | Stardance
Devlogs:
Assembled and soldered SIMOND. Also redid part of the case in Onshape
Tried to fix soldering issue that came up while I was writing the firmware. Ended up breaking the mirco controller in the process. But the code hypothetically works. New parts are on the way :(
I got around the broken mircontroller by changing the cable and some code. Then I tried to solder it to fix the orginal issue(the board doesn’t stay connected constantly). Long story short, now the board doesn’t even turn on. I think I cooked it when I was soldering.
Ships:
This ship is just for the design and assembly of SIMOND, not the final product yet. SIMOND is a hackpad made with a rotary encoder, 5 buttons, 4 LEDs, and an OLED controlled by a xiao rp2040. I intentionally used a diverse set of parts so that I could learn as many different branches of PCB design as possible. I started SIMOND during blueprint but didn’t get the parts until stardance started, so he’s a continuation project. I probably spent 15+20 hours on him before stardance while learning the process....
|
1793119914.452373
|
1793206314.452373
|
|
12186
|
Settlers by @TotsllyRandom | Stardance
|
TotsllyRandom
|
1
|
14.0
|
29
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-30T00:56:13Z", "hours": 14.0, "multiplier": 2.08, "payout": 29, "blessing": "neutral", "text": "This is a world-generation algorithm with a basic placement system put on top. I want to, later down the road, add a survival game/co-op game on top, but it’s really draining me to work on this project since I’ve lost motivation. Thanks!", "repo": "https://github.com/TotsllyRandom/survival-game", "demo": "https://totsllyrandom.itch.io/settlers"}]...
|
[{"post_id": 18821, "ts": "202 [{"post_id": 18821, "ts": "2026-06-30T00:54:08Z", "hours": 1.0097, "text": "I’m gunna be really honest. I got so bored making this project as of a few days ago. I added the tile editing and that’s the last thing I wanted to add. I want to finish this one day, but today is NOT that day. Feel free to check the itch page, and add suggestions, but I’m not going to work on it for a while."}, {"post_id": 16360, "ts": "2026-06-26T16:47:28Z", "hours": 2.1375, "text": "I haven’t finished my tile system. BUUUT I got it exported for IOS! NOW: I haven’t got the funding to open my apple dev account just yet, so I’m more-or-less waiting to see if I can get enough hours to snag that from the shop here. Otherwise, I’ve gotten it to expand to the screen’s size on both PC and IOS! It looks great. My next order of business is to add a placement menu to place items, then to make resource generation, then finally to add save/load features for the demo to be done!"}, {"post_id": 14636, "ts": "2026-06-23T20:20:03Z", "hours": 1.9483, "text": "I’ve decided to lower my scope, and make the terrain only 1 size. this will lower how it looks (on a coolness scale,) but will make it easier to code and draw. I can always add this back later. I need YOUR feedback! do I: A - allow tiles with placed-on houses produce resources? this would shift the meta to have FULL house layouts. or B - NOT allow placed-on tiles to produce. Production would happen from the 6 tiles surrounding (if one of the tiles is producing, it must have a house surrounding to give resources.) If I choose B, should I add a distance rule, like in Catan?"}, {"post_id": 13214, "ts": "2026-06-21T17:22:23Z", "hours": 2.5336, "text": "I’ve been working on the placeable item system. My artwork for it is a bit wonky, but I’m just making things that work. The idea here (as of now) is that each tile can hold one thing, then that one thing chooses which sprite fits the tile’s height and slaps it on there. Building buildings will remove the natural stuff on top, and the tile cannot produce resources anymore. I’m not done with this system however. I need to remake it so that the placeables are a separate scene so that I dont have to make 3 for each item (one for each height.) I also need to add paths, which I’ll probably turn this system now into that) This is what it looks like now. Everybody say “hi little house” i’m going to work on the better system and the paths before I post another devlog"}, {"post_id": 11462, "ts": "2026-06-18T18:53:27Z", "hours": 2.9722, "text": "I’ve been working on the biome generation! It sucked to work on, I’ll be real, but now it’s done! Here’s the system. Each tile is made and can choose to be a part of a biome clump nearby or start its own clump. Then, after every tile has a clump, we go through each clump’s data to see if it has more than 7 tiles. if so, we change tiles into new clumps until it only has 7. This makes each clump have anywhere from 1-7 tiles, keeping the biomes small but not consistently single-tiled. The biggest issue (which isnt a big deal) is that two clumps of the same tile can spawn right next to each other. Im not sure if I’ll change this later. Also: I have variables set up for min and max amounts of clumps for each tile. I need to enforce these, but I’ll do that later. Next: I want to make placeable paths and buildings. attached are images of the current game, showung the terrain generation and one image of the largest script I have so far."}, {"post_id": 6636, "ts": "2026-06-11T03:54:13Z", "hours": 1.6019, "text": "Added some more tiles, to actually make it work well. I’m planning on adding more clumped biomes before anything else, and will do that probably tmrw"}, {"post_id": 4707, "ts": "2026-06-08T04:03:20Z", "hours": 1.7128, "text": "Some basic art for the game, as well as some placeholder tiles for the other tiles-to-be (don’t mind the project setup it’s a little rough rn.)"}]...
|
Title: Settlers by @TotsllyRandom | Stardance
Dev Title: Settlers by @TotsllyRandom | Stardance
Devlogs:
Some basic art for the game, as well as some placeholder tiles for the other tiles-to-be (don’t mind the project setup it’s a little rough rn.)
Added some more tiles, to actually make it work well. I’m planning on adding more clumped biomes before anything else, and will do that probably tmrw
I’ve been working on the biome generation! It sucked to work on, I’ll be real, but now it’s done! Here’s the system. Each tile is made and can choose to be a part of a biome clump nearby or start its own clump. Then, after every tile has a clump, we go through each clump’s data to see if it has more than 7 tiles. if so, we change tiles into new clumps until it only has 7. This makes each clump have anywhere from 1-7 tiles, keeping the biomes small but not consistently single-tiled. The biggest issue (which isnt a big deal) is that two clumps of the same tile can spawn right next to each other. Im not sure if I’ll change this later. Also: I have variables set up for min and max amounts of clumps for each tile. I need to enforce these, but I’ll do that later. Next: I want to make placeable paths and buildings. attached are images of the current game, showung the terrain generation and one image of the largest script I have so far.
I’ve been working on the placeable item system. My artwork for it is a bit wonky, but I’m just making things that work. The idea here (as of now) is that each tile can hold one thing, then that one thing chooses which sprite fits the tile’s height and slaps it on there. Building buildings will remove the natural stuff on top, and the tile cannot produce resources anymore. I’m not done with this system however. I need to remake it so that the placeables are a separate scene so that I dont have to make 3 for each item (one for each height.) I also need to add paths, which I’ll probably turn this system now into that) This is what it looks like now. Everybody say “hi little house” i’m going to work on the better system and the paths before I post another devlog
I’ve decided to lower my scope, and make the terrain only 1 size. this will lower how it looks (on a coolness scale,) but will make it easier to code and draw. I can always add this back later. I need YOUR feedback! do I: A - allow tiles with placed-on houses produce resources? this would shift the meta to have FULL house layouts. or B - NOT allow placed-on tiles to produce. Production would happen from the 6 tiles surrounding (if one of the tiles is producing, it must have a house surrounding to give resources.) If I choose B, should I add a distance rule, like in Catan?
I haven’t finished my tile system. BUUUT I got it exported for IOS! NOW: I haven’t got the funding to open my apple dev account just yet, so I’m more-or-less waiting to see if I can get enough hours to snag that from the shop here. Otherwise, I’ve gotten it to expand to the screen’s size on both PC and IOS! It looks great. My next order of business is to add a placement menu to place items, then to make resource generation, then finally to add save/load features for the demo to be done!
I’m gunna be really honest. I got so bored making this project as of a few days ago. I added the tile editing and that’s the last thing I wanted to add. I want to finish this one day, but today is NOT that day. Feel free to check the itch page, and add suggestions, but I’m not going to work on it for a while.
Ships:
This is a world-generation algorithm with a basic placement system put on top. I want to, later down the road, add a survival game/co-op game on top, but it’s really draining me to work on this project since I’ve lost motivation. Thanks!...
|
1793127167.3535168
|
1793213567.3535168
|