|
30412
|
My personal site by @heckadee | Stardance
|
heckadee
|
1
|
25.22
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-31T01:36:36Z", "hours": 22.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finished 1.0 of my site, I’ve finished everything i anticipated, which includes: creative site navigation i made in JS a blog a list of my projects my hardware my contact info and a simple intro to me :)", "repo": "https://github.com/helladecimal/new-site", "demo": "https://helladecimal.github.io/"}]...
|
[{"post_id": 47173, "ts": "202 [{"post_id": 47173, "ts": "2026-08-14T21:25:35Z", "hours": 3.2178, "text": "I’ve done a lot the past few days: I bought a domain ( https://heckadecimal.dev/ ) thanks to HCB! I repurposed my old macbook as a webserver for my personal site using nginx and cloudflare tunnels with a stable and unstable site (for testing) I wrote a new blog ( https://heckadecimal.dev/blog/8-12-26.html )"}, {"post_id": 37974, "ts": "2026-07-31T01:32:55Z", "hours": 4.8928, "text": "I made the first blog post… it explains why it took so long"}, {"post_id": 26882, "ts": "2026-07-11T22:32:55Z", "hours": 7.6067, "text": "Re-did file system stuff in javascript instead of css! Now i can have infinite nested folders ….."}, {"post_id": 23298, "ts": "2026-07-06T05:13:07Z", "hours": 4.0422, "text": "Added the projects ive worked on over the years, which includes Lua, HTML/CSS, and C"}, {"post_id": 21909, "ts": "2026-07-04T02:42:05Z", "hours": 5.0067, "text": "first devlog for my personal site! I added navigation with a fake filesystem, some basic info about me, and a page about my hardware :)"}]...
|
Title: My personal site by @heckadee | Stardance
Title: My personal site by @heckadee | Stardance
Devlogs:
first devlog for my personal site! I added navigation with a fake filesystem, some basic info about me, and a page about my hardware :)
Added the projects ive worked on over the years, which includes Lua, HTML/CSS, and C
Re-did file system stuff in javascript instead of css! Now i can have infinite nested folders …..
I made the first blog post… it explains why it took so long
I’ve done a lot the past few days: I bought a domain ( https://heckadecimal.dev/ ) thanks to HCB! I repurposed my old macbook as a webserver for my personal site using nginx and cloudflare tunnels with a stable and unstable site (for testing) I wrote a new blog ( https://heckadecimal.dev/blog/8-12-26.html )
Ships:
Finished 1.0 of my site, I’ve finished everything i anticipated, which includes: creative site navigation i made in JS a blog a list of my projects my hardware my contact info and a simple intro to me :)...
|
1793116271.7500577
|
1793202671.7500577
|
|
35039
|
HexKeyboard by @HexFud | Stardance
|
HexFud
|
0
|
25.21
|
0
|
[]
|
[{"post_id": 31884, "ts": "202 [{"post_id": 31884, "ts": "2026-07-20T17:09:58Z", "hours": 5.2881, "text": "Devlog #06 Improved PCB shceme and 3d model"}, {"post_id": 31347, "ts": "2026-07-19T17:46:00Z", "hours": 6.4672, "text": "Devlog #05 New discovery ! The PCB 3x3 keys matrix doesn’t work….. But i managed to solve this problem, simply i didn’t fully understand the concept of a matrix but now the cables and diodes are correctly placed. I am also fixing the wiring on the scheme because i am starting to hallucinate over this mass of cables"}, {"post_id": 30947, "ts": "2026-07-18T23:16:01Z", "hours": 2.9642, "text": "Devlog #04 I am now designing the shell, with a bit of struggle. Now it is only a grey box but i am planning to improve the model in the future"}, {"post_id": 30759, "ts": "2026-07-18T16:22:21Z", "hours": 3.0003, "text": "Devlog #03 I created a new design for my PCB. Checked all the connections and checking the correct sizes for the submission"}, {"post_id": 30652, "ts": "2026-07-18T12:14:32Z", "hours": 5.6214, "text": "Devlog #02 Finally after various hours of work I Successfully finalized the keyboard matrix wiring, correctly integrating diodes with each switch to prevent ghosting LED Implementation with SK6812MINI-E LEDs. Fixed footprint alignment issues by standardizing grid settings and using precise coordinate positioning, ensuring all switch-to-LED layouts are perfectly centered. Cleaned up the project structure by assigning individual symbols for both switches and LEDs in the schematic."}, {"post_id": 28820, "ts": "2026-07-15T10:05:32Z", "hours": 1.6169, "text": "Devlog #01 starting to create the external shell, after small adjustments it should fit. When i will be done with this i will check every tollerance"}, {"post_id": 28390, "ts": "2026-07-14T16:54:12Z", "hours": 0.2503, "text": "Devlog #00 Finally designed the PCB after 2 long hours understanding the software and its functions. The next steps will be testing and my favourite 3D designing !"}]...
|
Title: HexKeyboard by @HexFud | Stardance
Devlogs Title: HexKeyboard by @HexFud | Stardance
Devlogs:
Devlog #00 Finally designed the PCB after 2 long hours understanding the software and its functions. The next steps will be testing and my favourite 3D designing !
Devlog #01 starting to create the external shell, after small adjustments it should fit. When i will be done with this i will check every tollerance
Devlog #02 Finally after various hours of work I Successfully finalized the keyboard matrix wiring, correctly integrating diodes with each switch to prevent ghosting LED Implementation with SK6812MINI-E LEDs. Fixed footprint alignment issues by standardizing grid settings and using precise coordinate positioning, ensuring all switch-to-LED layouts are perfectly centered. Cleaned up the project structure by assigning individual symbols for both switches and LEDs in the schematic.
Devlog #03 I created a new design for my PCB. Checked all the connections and checking the correct sizes for the submission
Devlog #04 I am now designing the shell, with a bit of struggle. Now it is only a grey box but i am planning to improve the model in the future
Devlog #05 New discovery ! The PCB 3x3 keys matrix doesn’t work….. But i managed to solve this problem, simply i didn’t fully understand the concept of a matrix but now the cables and diodes are correctly placed. I am also fixing the wiring on the scheme because i am starting to hallucinate over this mass of cables
Devlog #06 Improved PCB shceme and 3d model...
|
1793242369.3299458
|
1793847169.3299458
|
|
18899
|
MP3 Sync thing by @michaelr | Stardance
|
michaelr
|
0
|
25.2
|
0
|
[]
|
[{"post_id": 57798, "ts": "202 [{"post_id": 57798, "ts": "2026-08-30T02:57:40Z", "hours": 25.1978, "text": "Devlog for MP3"}]...
|
Title: MP3 Sync thing by @michaelr | Stardance
De Title: MP3 Sync thing by @michaelr | Stardance
Devlogs:
Devlog for MP3...
|
1793199382.189895
|
1793804182.189895
|
|
32637
|
ChronoAnchor by @rayofaik | Stardance
|
rayofaik
|
0
|
25.11
|
0
|
[]
|
[{"post_id": 38422, "ts": "202 [{"post_id": 38422, "ts": "2026-07-31T19:43:29Z", "hours": 1.6533, "text": "Dev Lof #10: Fully incorporated Screen Shake into the game. It is fully functional and doesn’t affect the Ui, unlike previously! I can’t really attach a video clip that demonstrates the mechanic, though…"}, {"post_id": 33521, "ts": "2026-07-23T15:20:54Z", "hours": 1.9217, "text": "Dev Log #9 The Gun Equipment fully works! It features a basic penetrating attack, a heavy knockback dash attack, and a heavy attack that uses custom bullets dropped from enemies, including an exploding, freezing, and plasma bullet! Tomorrow I have to fix a few issues I found with screen shake and hitstop."}, {"post_id": 32446, "ts": "2026-07-21T17:18:22Z", "hours": 2.8569, "text": "Dev Log #8 I just came back from a one-week break; I didn’t have much time to work on it, but during that time: I added the final of three main weapons, the “Gun,” which has a penetrating laser basic attack, a heavy knockback dash attack, and a heavy attack that lets you use special bullets dropped by enemies (currently only exploding bullets work; however, there are more to come). I also added screen shake, added tilemaps, added input buffering, added a small yellow tint when rewinding, and fixed many glitches that combos previously had."}, {"post_id": 27188, "ts": "2026-07-12T15:01:11Z", "hours": 2.1781, "text": "Dev Log #7 Now the “Gloves” weapon can grab opponents, use them as meat shields, and toss them. Alongside some small QOL changes, such as screen shake and input buffering."}, {"post_id": 26716, "ts": "2026-07-11T17:47:32Z", "hours": 2.1842, "text": "Dev Log #6 I added knockback and some small balance changes. The main thing I did was add a new weapon, “Fists,” which can do a 3-hit combo, can do a light jab, and can grab the enemy and use them as meat shields or hit them for combo potential (grabbing is still WIP especially since the IDE is fighting me back)"}, {"post_id": 26608, "ts": "2026-07-11T15:14:49Z", "hours": 1.925, "text": "Dev Log #5 I made a long-range enemy who will move away if you get too close, and you can parry his projectiles alongside a basic wall. Though I had GoDot crash on me when trying to get areas to work, like 2-3 times, and it kept losing me progress and I just realize that maybe when my projectile is an area, I have to detect areas (I SPENT WAY TOO LONG FIGURING THAT OUT TRYING TO DETECT BODIES AND GET NOTHING)"}, {"post_id": 26047, "ts": "2026-07-10T17:10:35Z", "hours": 2.4328, "text": "Dev Log #4 After making the basic enemy attack, I struggled a lot figuring out soft collisions. I wanted to figure out a method that could make it so it was easy to scale and modify while also being semi-automatic, so just writing a few lines would generate this soft collision. I ended up using collision + vectors in cohesion with an external script. I also began working on a long-range attacker + a parry/deflect mechanic!"}, {"post_id": 25923, "ts": "2026-07-10T12:51:23Z", "hours": 1.3861, "text": "Made a Save State Mechanic So, here’s how it works: you can place a Save State anytime by pressing Q; then you can press E to go back to the save state and rewind your health, dash, and position to when you placed the save state! This is a look at the heavy, basic, and light attacks alongside the dashing and save state mechanic work in-game (ignore the art and red/blue areas; they are just placeholders for debugging)!"}, {"post_id": 25867, "ts": "2026-07-10T10:58:16Z", "hours": 3.5558, "text": "First Weapon Pretty Much Finished! Contains a basic attack, dash attack, heavy attack, combos, aiming, windups, cancelling windups, hitstop and more. Next step: Possible Special Attacks (still unsure) and the main mechanic: Save States!"}, {"post_id": 25270, "ts": "2026-07-09T13:11:21Z", "hours": 5.0208, "text": "Just started the basic mechanics!"}]...
|
Title: ChronoAnchor by @rayofaik | Stardance
Devl Title: ChronoAnchor by @rayofaik | Stardance
Devlogs:
Just started the basic mechanics!
First Weapon Pretty Much Finished! Contains a basic attack, dash attack, heavy attack, combos, aiming, windups, cancelling windups, hitstop and more. Next step: Possible Special Attacks (still unsure) and the main mechanic: Save States!
Made a Save State Mechanic So, here’s how it works: you can place a Save State anytime by pressing Q; then you can press E to go back to the save state and rewind your health, dash, and position to when you placed the save state! This is a look at the heavy, basic, and light attacks alongside the dashing and save state mechanic work in-game (ignore the art and red/blue areas; they are just placeholders for debugging)!
Dev Log #4 After making the basic enemy attack, I struggled a lot figuring out soft collisions. I wanted to figure out a method that could make it so it was easy to scale and modify while also being semi-automatic, so just writing a few lines would generate this soft collision. I ended up using collision + vectors in cohesion with an external script. I also began working on a long-range attacker + a parry/deflect mechanic!
Dev Log #5 I made a long-range enemy who will move away if you get too close, and you can parry his projectiles alongside a basic wall. Though I had GoDot crash on me when trying to get areas to work, like 2-3 times, and it kept losing me progress and I just realize that maybe when my projectile is an area, I have to detect areas (I SPENT WAY TOO LONG FIGURING THAT OUT TRYING TO DETECT BODIES AND GET NOTHING)
Dev Log #6 I added knockback and some small balance changes. The main thing I did was add a new weapon, “Fists,” which can do a 3-hit combo, can do a light jab, and can grab the enemy and use them as meat shields or hit them for combo potential (grabbing is still WIP especially since the IDE is fighting me back)
Dev Log #7 Now the “Gloves” weapon can grab opponents, use them as meat shields, and toss them. Alongside some small QOL changes, such as screen shake and input buffering.
Dev Log #8 I just came back from a one-week break; I didn’t have much time to work on it, but during that time: I added the final of three main weapons, the “Gun,” which has a penetrating laser basic attack, a heavy knockback dash attack, and a heavy attack that lets you use special bullets dropped by enemies (currently only exploding bullets work; however, there are more to come). I also added screen shake, added tilemaps, added input buffering, added a small yellow tint when rewinding, and fixed many glitches that combos previously had.
Dev Log #9 The Gun Equipment fully works! It features a basic penetrating attack, a heavy knockback dash attack, and a heavy attack that uses custom bullets dropped from enemies, including an exploding, freezing, and plasma bullet! Tomorrow I have to fix a few issues I found with screen shake and hitstop.
Dev Lof #10: Fully incorporated Screen Shake into the game. It is fully functional and doesn’t affect the Ui, unlike previously! I can’t really attach a video clip that demonstrates the mechanic, though…...
|
1792626443.8649545
|
1793231243.8649545
|
|
38064
|
Samaipata by @franco | Stardance
|
franco
|
1
|
25.09
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-25T23:15:42Z", "hours": 20.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Samaipata Hello dear reviewer, this is my project Samaipata. I dont want to get you to much of a hustle so lets make this quick. What is Samaipata Samaipata is a custom, full-stack, local-first AI client interface. That works using ollama and Hackclub AI. Or basically my own Openwebui. What features does Samaipata have? Real time chat support: -Has support for SSE. Model marketplace: A custom model marketplace using diffrent apis. Like: Akazwz Cloudflare worker OllamaDB api and a fallback json file. Auth and Security: Encryption using Bcrypt! Zero Api Auth Admin Panel: User roles (user, admin). -Models per user. -Ban and suspension support. AND MORE! If this isnt enough info go test it for your self heres the instalation guide Stack Backend : Node.js, Express.js Database : SQLite ( sqlite3 ) Auth : JWT ( jsonwebtoken ), Bcrypt ( bcryptjs ), Cookie-Parser Frontend : HTML5 semántico, CSS3 moderno (Variables CSS, Flexbox/Grid, Responsive), Vanilla JavaScript Ai : Ollama API, Hack Club AI and Gemini Thanks for reading Hope you leave a good review (;", "repo": "https://github.com/Franco-Senes/Samaipata", "demo": "https://samaipata.zero.info.bo/testsamaipata"}]...
|
[{"post_id": 67432, "ts": "202 [{"post_id": 67432, "ts": "2026-09-13T15:16:55Z", "hours": 0.9769, "text": "Finished designing the ui in figma Sadly as i told you in past devlogs the whole frontend ui is vibecoded (as ive told in devlog 5) and as a shipwrights asked. And ive had to recreate the whole ui with a new style. Maintaing the same fonts and style from the old ui."}, {"post_id": 65680, "ts": "2026-09-11T00:06:16Z", "hours": 0.3647, "text": "Sketched a ui i really liked the second one ive made This will be the progress from today Tomorrow ill design it in figma"}, {"post_id": 65661, "ts": "2026-09-10T23:10:44Z", "hours": 1.7642, "text": "I am going to redesign the whole ui Sadly as i told you in past devlogs the whole frontend ui is vibecoded and as a shipwrights asked i am going to remake the whole ui with a new style. I am going to divide this in a few steps: 1. Find inspiration Find inspiration of other ai websites and the tematic of the project samaipata 2. Design it in figma Design the home ui as inspiration for the entire project 3. Code it Code it and connect it with the old frontend js code So thats it ill follow up later image of actual samaipata:"}, {"post_id": 56281, "ts": "2026-08-27T23:51:12Z", "hours": 1.9803, "text": "spent way too long on the installer what was happening: i had to package the whole installer so it would be more easier for the testers to test and to fight the limitations of windows sandbox. how i fixed it: i fixed it by packaging the samaipata zip and packaging the node js functionalitys."}, {"post_id": 54737, "ts": "2026-08-25T20:21:25Z", "hours": 1.3731, "text": "Finished the Samaipata So ive finally finished samaipata it look a real long time but i think it was worth it in a few days or hours i will ship this for review."}, {"post_id": 54134, "ts": "2026-08-24T23:14:58Z", "hours": 2.1803, "text": "Huge progress on the frontend design! So today ive gave it my all on trying to finish the ui design. Ive done a couple of things including the: [✓ ] Sidebar [ ✓] Projects Ui Marketplace ui Admin Ui Settings ui And lastly the main ui for the index.html. Its currently in spanish but ill translate it to english on the real frontend. Thanks for reading."}, {"post_id": 53410, "ts": "2026-08-23T23:02:01Z", "hours": 1.4914, "text": "Bad News. Context Sadly i became to lazy to finish the frontend specially because it would take me 15 days or more and my pace and that also stardance finishes on september 30th and i want to do more projects so sadly i am going to vibecoded the frontend with a human design inspired by manus."}, {"post_id": 51254, "ts": "2026-08-20T19:47:50Z", "hours": 3.1533, "text": "Finished the backend First i might notice you are reading this without prior context so: What is Samaipata Samaipata is a custom, full-stack, local-first AI client interface. That works using ollama and Hackclub AI. The suffering It took a really long time writing the backend with over 1700 lines of code not counting those long php stuff ive made it. Now i need to do the Frontend which ive already have planned. So thats all for today!"}, {"post_id": 46616, "ts": "2026-08-14T00:01:55Z", "hours": 5.9767, "text": "Samaipata What is Samaipata Samaipata is a custom, full-stack, local-first AI client interface. That works using ollama and Hackclub AI. Devlog Long time no see was pretty ocupied in my final exams honestly. So what did i do? So i did atonnnnn of stuff in the past few days heres a some of the stuff i did Marketplace Did some marketplace endpoints for integrating a marketplace later on. Some of them are: Hackclub AI getHackClubModels() Gets all of the hackclub ai models /api/hackclub/models uses the function and delivers them into the frontend Ollama models /api/models/ shows which models you have installed Ollama marketplace /api/marketplace/models Uses 2 apis to try get the ollama models if it fails or you dont have wifi it uses a json backup file. DELETE /api/models/:name deletes a model(:name) Admin stuff /api/admin/users Gets all of the users and its info POST /api/admin/users/:id/update POST /api/admin/users/:id/suspend Feedback POST /api/feedback Sends feedback to the administrator about the model GET /api/admin/evaluations Generates a table(leaderboard) showing the best models and worst models for the admins. Other stuff Bare-bones image generation /api/images/generate Testing Coded a test using Antigravity Cli and it look that it works good. Olama skipped but i am sure it works because i was using a trashy laptop."}, {"post_id": 35305, "ts": "2026-07-26T16:57:10Z", "hours": 2.0342, "text": "Samaipata What is samaipata Samaipata is a custom, full-stack, local-first AI client interface. That works using ollama. What did i do: Ive created a diagram to start creating samaipata i have huge hopes for it. Heres a link so you can see it!: https://excalidraw.com/#json=ec-0OD9R5ERU7_yBQkGyJ,u_8ZsFO1pD2liEvJj992uw"}, {"post_id": 34236, "ts": "2026-07-24T19:28:15Z", "hours": 3.7419, "text": "Samaipata What is samaipata Samaipata is a custom, full-stack, local-first AI client interface. That works using ollama What did i do: Ive createn the main uis using figma as displayed below:"}]...
|
Title: Samaipata by @franco | Stardance
Devlogs:
Title: Samaipata by @franco | Stardance
Devlogs:
Samaipata What is samaipata Samaipata is a custom, full-stack, local-first AI client interface. That works using ollama What did i do: Ive createn the main uis using figma as displayed below:
Samaipata What is samaipata Samaipata is a custom, full-stack, local-first AI client interface. That works using ollama. What did i do: Ive created a diagram to start creating samaipata i have huge hopes for it. Heres a link so you can see it!: https://excalidraw.com/#json=ec-0OD9R5ERU7_yBQkGyJ,u_8ZsFO1pD2liEvJj992uw
Samaipata What is Samaipata Samaipata is a custom, full-stack, local-first AI client interface. That works using ollama and Hackclub AI. Devlog Long time no see was pretty ocupied in my final exams honestly. So what did i do? So i did atonnnnn of stuff in the past few days heres a some of the stuff i did Marketplace Did some marketplace endpoints for integrating a marketplace later on. Some of them are: Hackclub AI getHackClubModels() Gets all of the hackclub ai models /api/hackclub/models uses the function and delivers them into the frontend Ollama models /api/models/ shows which models you have installed Ollama marketplace /api/marketplace/models Uses 2 apis to try get the ollama models if it fails or you dont have wifi it uses a json backup file. DELETE /api/models/:name deletes a model(:name) Admin stuff /api/admin/users Gets all of the users and its info POST /api/admin/users/:id/update POST /api/admin/users/:id/suspend Feedback POST /api/feedback Sends feedback to the administrator about the model GET /api/admin/evaluations Generates a table(leaderboard) showing the best models and worst models for the admins. Other stuff Bare-bones image generation /api/images/generate Testing Coded a test using Antigravity Cli and it look that it works good. Olama skipped but i am sure it works because i was using a trashy laptop.
Finished the backend First i might notice you are reading this without prior context so: What is Samaipata Samaipata is a custom, full-stack, local-first AI client interface. That works using ollama and Hackclub AI. The suffering It took a really long time writing the backend with over 1700 lines of code not counting those long php stuff ive made it. Now i need to do the Frontend which ive already have planned. So thats all for today!
Bad News. Context Sadly i became to lazy to finish the frontend specially because it would take me 15 days or more and my pace and that also stardance finishes on september 30th and i want to do more projects so sadly i am going to vibecoded the frontend with a human design inspired by manus.
Huge progress on the frontend design! So today ive gave it my all on trying to finish the ui design. Ive done a couple of things including the: [✓ ] Sidebar [ ✓] Projects Ui Marketplace ui Admin Ui Settings ui And lastly the main ui for the index.html. Its currently in spanish but ill translate it to english on the real frontend. Thanks for reading.
Finished the Samaipata So ive finally finished samaipata it look a real long time but i think it was worth it in a few days or hours i will ship this for review.
spent way too long on the installer what was happening: i had to package the whole installer so it would be more easier for the testers to test and to fight the limitations of windows sandbox. how i fixed it: i fixed it by packaging the samaipata zip and packaging the node js functionalitys.
I am going to redesign the whole ui Sadly as i told you in past devlogs the whole frontend ui is vibecoded and as a shipwrights asked i am going to remake the whole ui with a new style. I am going to divide this in a few steps: 1. Find inspiration Find inspiration of other ai websites and the tematic of the project samaipata 2. Design it in figma Design the home ui as inspiration for the entire project 3. Code it Code it and connect it with the old frontend js code So thats it ill follow up later image of actual samaipata:
Sketched a ui i really liked the second one ive made This will be the progress from today Tomorrow ill design it in figma
Finished designing the ui in figma Sadly as i told you in past devlogs the whole frontend ui is vibecoded (as ive told in devlog 5) and as a shipwrights asked. And ive had to recreate the whole ui with a new style. Maintaing the same fonts and style from the old ui.
Ships:
Samaipata Hello dear reviewer, this is my project Samaipata. I dont want to get you to much of a hustle so lets make this quick. What is Samaipata Samaipata is a custom, full-stack, local-first AI client interface. That works using ollama and Hackclub AI. Or basically my own Openwebui. What features does Samaipata have? Real time chat support: -Has support for SSE. Model marketplace: A custom model marketplace using diffrent apis. Like: Akazwz Cloudflare worker OllamaDB api and a fallback json file. Auth and Security: Encryption using Bcrypt! Zero Api Auth Admin Panel: User roles (user, admin). -Models per user. -Ban and suspension support. AND MORE! If this isnt enough info go test it for your self heres the instalation guide Stack Backend : Node.js, Express.js Database : SQLite ( sqlite3 ) Auth : JWT ( jsonwebtoken ), Bcrypt ( bcryptjs ), Cookie-Parser Frontend : HTML5 semántico, CSS3 moderno (Variables CSS, Flexbox/Grid, Responsive), Vanilla JavaScript Ai : Ollama API, Hack Club AI and Gemini Thanks for reading Hope you leave a good review (;...
|
1793138215.288218
|
1793224615.288218
|
|
29145
|
Codeliver by @tonymac129 | Stardance
|
tonymac129
|
0
|
25.06
|
0
|
[]
|
[{"post_id": 30408, "ts": "202 [{"post_id": 30408, "ts": "2026-07-17T22:20:58Z", "hours": 2.6406, "text": "More channel & user management features I’ve been pretty busy this past week and haven’t been able to spend a lot of time on Codeliver or Stardance in general until now. Hopefully I’ll have more time the rest of the summer do get more hours and actually finish my projects In this update, I added channel settings, some channel ownership and user management features for each channel, as well as the ability to delete channels When you click on the new channel settings icon in a channel (that only shows if you’re the owner), a settings modal pops up, currently only with 2 options, transfer ownership and delete channel When you click on transfer ownership, another modal pops up where you can search for a user already added to the channel, select them, and transfer channel ownership after confirmation If you try to leave a channel when you’re its owner, Codeliver prompts you to transfer the ownership to someone else first to avoid orphaned relations in the database When you press on delete channel, a confirmation modal pops up and the channel and all its data will be deleted after confirmation When you click on browse users, your permissions are also displayed and you are able to see who the owner is Updated styling and navigation Updated API endpoints Updated README"}, {"post_id": 26375, "ts": "2026-07-11T03:56:50Z", "hours": 5.0928, "text": "Channel and user management I forgot to make a devlog for 2 days straight and I got a ton of stuff accomplished, so this devlog is gonna be a pretty long one with a ton of changes that make Codeliver one step closer to being a significantly inferior Slack clone! You can now add users to a channel (doesn’t matter if you’re an owner or a member), but only the owner can remove people. There are probably still some permission edge cases I need to test and fix, but for now it works pretty well When you click on the add member icon, a modal pops up where you can search for all Codeliver users, grouped into added users and people not in the channel, so you can search for them and manage them easily Added an API endpoint for the user lookup with channel integration to improve frontend data fetching and backend performance When you click on the edit channel icon a modal pops up, where you can edit its name (must be unique), description, and visibility (more channel settings coming soon) When you click on the leave channel button, a warning modal pops up for you to confirm the change When you click on browse channels from the channel management menu, a modal pops up (this entire update is about modals) where you can search for all the channels on Codeliver to view, join, or leave Added an API endpoint for channel lookup, with respect to user and channel permissions, to make the searching process easier When you visit a public channel that you haven’t joined, it shows a join message section instead of the message field similar to slack When you visit a private or nonexistent channel, it just redirects you to the chat homepage Your sidebar now actually shows the channels you’ve joined, and shows the browse channels button if you don’t have any Every backend or data state change is revalidated and updated in realtime to ensure smooth and responsive UX Updated database/backend schema and types Updated styling and navigation Fixed deployment issues (the demo site still doesn’t work yet because the Express backend is a mess and hasn’t been set up)"}, {"post_id": 25680, "ts": "2026-07-10T03:07:25Z", "hours": 1.4703, "text": "Optimized chatting rooms Optimized the Socket.io broadcast events and listeners a lot by using the library’s rooms feature so users viewing different channels will listen to different events Every time you click and view a new channel, you automatically “leave” the original channel room so you no longer receive messages from it (because you’re not viewing the channel despite still being in the channel). You also “join” the new channel and receive its messages because you’re viewing it This took a frustratingly long time to implement and debug because I have to track the currently viewed channel on the frontend and communicate with the backend reliably Added backend revalidation to make the UX of creating new channels smoother The channel you’re currently viewing is now highlighted on the left sidebar of the chat layout Updated types Updated navigation Updated styling Because this is mostly a refactor with minimal feature changes, I’ll just put a screenshot of chatting in a channel"}, {"post_id": 25119, "ts": "2026-07-09T03:48:37Z", "hours": 1.9919, "text": "Create your own channels This took a surprisingly long time to implement (Tailwind and Framer Motion are really annoying), but I finally made a channel creation feature where you can create your own chat channels on Codeliver When you hover over the Channels category on the left chat sidebar, you’ll see a menu button option that appears, and when you click on it, it opens a channel management menu You can choose to either create a channel, browse/search for available channels to join (not implemented yet), or click away to close the menu If you choose create a channel, a modal will pop up where you can put its name (must be unique and made of lowercase characters and dashes), description, and set its visibility with the cool toggle If you create the new channel successfully, you’ll be automatically redirected to it where you can start chatting in it! The browse channels options currently just shows an empty modal with a search bar that doesn’t do anything yet Updated schema and types for channels and messages Updated styling and navigation"}, {"post_id": 24516, "ts": "2026-07-08T03:39:17Z", "hours": 2.9478, "text": "Realtime Socket.io + Express backend Finally added a backend to Codeliver! I’m using the WebSocket node library Socket.io to handle realtime events and messaging, so I had to set up an Express server to handle the different requests and events The backend also has to access the auth user data and the shared Prisma Postgres database, so it took me a while to make both the Next.js frontend and Express backend to be able to read and write to it properly (since they are technically their own repos) Also implemented Socket.io client to the Next.js frontend so whenever you send a message it either creates a new Chat object and sends the message or finds an existing one and adds a new message Added Prisma schema and frontend types for chats, messages, and reactions Added persistent message storing for each chat channel and removed the placeholder messages Figured out how to send a Better Auth JWT token from the frontend and verify the session on the backend to authorize messaging features I had to deal with a lot of annoying CORS, environment variable, and auth stuff, so that was not fun but the result was worth it"}, {"post_id": 23541, "ts": "2026-07-06T15:51:38Z", "hours": 2.3739, "text": "Frontend messaging UI Added the chat messages frontend UI that looks like a combination of Slack and Discord with buttons and components for features like replying, reacting, and other chat stuff. Because the realtime Socket.io backend isn’t implemented yet, these are just placeholder elements for now and are not functional For each message, you can see the sender’s profile picture, name, localized and human readable timestamp, message, reactions and their counts, and a bar displaying message options that shows up when you hover over the message Added date separators/horizontal rules to separate chat messages from different dates, improving readability and ease of use Added temporary placeholder data to simulate chat messages When you press on reply, a bar now appears above the message input field that shows you’re replying to someone’s message with its preview. You can also cancel the reply by closing the bar Updated UI behavior of the emoji selection menu to ensure it works for all screen sizes Updated styling and UI Updated schema and types Fixed deployment issues with npm"}, {"post_id": 21921, "ts": "2026-07-04T03:22:57Z", "hours": 1.6478, "text": "Custom status, new tabs, and SEO Added an emoji picker (using the library Emoji Mart) next to the custom status input field on the edit profile page where you can choose an emoji for your status as well as a status text (both are optional) Below the emoji picker and status input field, there are a few preset combinations of emojis and statuses for common situations, making setting a custom status a lot easier. There is also an option to clear your status Added a few new tabs in the user route group that are all just empty placeholders for now Added actual SEO and Open Graph metadata information for all pages on Codeliver Added a placeholder favicon for the site Added input validation for profile customization Updated navigation and auth flow Updated schema and types Updated style Fixed a dependency deployment issue with npm"}, {"post_id": 21597, "ts": "2026-07-03T17:08:25Z", "hours": 3.3653, "text": "Chat layout & profile Made a placeholder layout for chat pages (for both channels and direct messages) with a left sidebar listing all the channels you’re in and all your direct messages (all the items are just placeholders for now), similar to Slack and Discord’s layouts Added a message textarea/input field on the main chat area with options for formatting the text, inserting code and emoji, and uploading files. A “send” button also shows up when you type a message. None of these buttons work yet, I only made the layout Added a profile customization page where you can customize your profile information (everything except for changing your profile picture works) that shares a layout with the other tabs When you’re logged in and click on your user icon on the nav bar, an animated menu shows up where you can go to profile, settings, switch light/dark mode, or sign out, but only profile and sign out work Added actual auth flow for both email/password and OAuth providers so you get signed in and redirected to chat automatically Set up Google and GitHub’s OAuth tokens and stuff Added backend server actions for auth and customization Updated schema and types Updated styling"}, {"post_id": 20994, "ts": "2026-07-02T18:52:59Z", "hours": 2.2197, "text": "Landing page & auth Added a landing page for non logged in users to learn more about the app The hero section has a title, description, and two call to action buttons for logging in and reading more information There are also a few sections on the landing page that just display placeholder images and text for now since the app doesn’t actually exist yet Added an animated faq component at the bottom that’s a collapsible accordion Added a login page with a form where you can either sign up, sign in with email/password, or sign in with OAuth providers (Google and GitHub coming soon) Added a navigation bar on the landing page"}, {"post_id": 19705, "ts": "2026-07-01T03:10:21Z", "hours": 1.3089, "text": "Codeliver: realtime code sharing chat app While working on my previous project MemeBoard , I got a bit too addicted with the realtime chat part of the app and overengineered it way too much, so I decided to build an app focused on chatting and sharing code with other people This is also an excellent opportunity for me to learn more about WebSockets, Socket.io, Node, and Linux server configuration/management since I’m planning to host this app on a dedicated DigitalOcean VM instead of the serverless Vercel In this update, I set up the basic project structure with an empty backend directory and a frontend directory for the Next.js frontend, installed the necessary dependencies, and set up the Prisma database for auth"}]...
|
Title: Codeliver by @tonymac129 | Stardance
Devlo Title: Codeliver by @tonymac129 | Stardance
Devlogs:
Codeliver: realtime code sharing chat app While working on my previous project MemeBoard , I got a bit too addicted with the realtime chat part of the app and overengineered it way too much, so I decided to build an app focused on chatting and sharing code with other people This is also an excellent opportunity for me to learn more about WebSockets, Socket.io, Node, and Linux server configuration/management since I’m planning to host this app on a dedicated DigitalOcean VM instead of the serverless Vercel In this update, I set up the basic project structure with an empty backend directory and a frontend directory for the Next.js frontend, installed the necessary dependencies, and set up the Prisma database for auth
Landing page & auth Added a landing page for non logged in users to learn more about the app The hero section has a title, description, and two call to action buttons for logging in and reading more information There are also a few sections on the landing page that just display placeholder images and text for now since the app doesn’t actually exist yet Added an animated faq component at the bottom that’s a collapsible accordion Added a login page with a form where you can either sign up, sign in with email/password, or sign in with OAuth providers (Google and GitHub coming soon) Added a navigation bar on the landing page
Chat layout & profile Made a placeholder layout for chat pages (for both channels and direct messages) with a left sidebar listing all the channels you’re in and all your direct messages (all the items are just placeholders for now), similar to Slack and Discord’s layouts Added a message textarea/input field on the main chat area with options for formatting the text, inserting code and emoji, and uploading files. A “send” button also shows up when you type a message. None of these buttons work yet, I only made the layout Added a profile customization page where you can customize your profile information (everything except for changing your profile picture works) that shares a layout with the other tabs When you’re logged in and click on your user icon on the nav bar, an animated menu shows up where you can go to profile, settings, switch light/dark mode, or sign out, but only profile and sign out work Added actual auth flow for both email/password and OAuth providers so you get signed in and redirected to chat automatically Set up Google and GitHub’s OAuth tokens and stuff Added backend server actions for auth and customization Updated schema and types Updated styling
Custom status, new tabs, and SEO Added an emoji picker (using the library Emoji Mart) next to the custom status input field on the edit profile page where you can choose an emoji for your status as well as a status text (both are optional) Below the emoji picker and status input field, there are a few preset combinations of emojis and statuses for common situations, making setting a custom status a lot easier. There is also an option to clear your status Added a few new tabs in the user route group that are all just empty placeholders for now Added actual SEO and Open Graph metadata information for all pages on Codeliver Added a placeholder favicon for the site Added input validation for profile customization Updated navigation and auth flow Updated schema and types Updated style Fixed a dependency deployment issue with npm
Frontend messaging UI Added the chat messages frontend UI that looks like a combination of Slack and Discord with buttons and components for features like replying, reacting, and other chat stuff. Because the realtime Socket.io backend isn’t implemented yet, these are just placeholder elements for now and are not functional For each message, you can see the sender’s profile picture, name, localized and human readable timestamp, message, reactions and their counts, and a bar displaying message options that shows up when you hover over the message Added date separators/horizontal rules to separate chat messages from different dates, improving readability and ease of use Added temporary placeholder data to simulate chat messages When you press on reply, a bar now appears above the message input field that shows you’re replying to someone’s message with its preview. You can also cancel the reply by closing the bar Updated UI behavior of the emoji selection menu to ensure it works for all screen sizes Updated styling and UI Updated schema and types Fixed deployment issues with npm
Realtime Socket.io + Express backend Finally added a backend to Codeliver! I’m using the WebSocket node library Socket.io to handle realtime events and messaging, so I had to set up an Express server to handle the different requests and events The backend also has to access the auth user data and the shared Prisma Postgres database, so it took me a while to make both the Next.js frontend and Express backend to be able to read and write to it properly (since they are technically their own repos) Also implemented Socket.io client to the Next.js frontend so whenever you send a message it either creates a new Chat object and sends the message or finds an existing one and adds a new message Added Prisma schema and frontend types for chats, messages, and reactions Added persistent message storing for each chat channel and removed the placeholder messages Figured out how to send a Better Auth JWT token from the frontend and verify the session on the backend to authorize messaging features I had to deal with a lot of annoying CORS, environment variable, and auth stuff, so that was not fun but the result was worth it
Create your own channels This took a surprisingly long time to implement (Tailwind and Framer Motion are really annoying), but I finally made a channel creation feature where you can create your own chat channels on Codeliver When you hover over the Channels category on the left chat sidebar, you’ll see a menu button option that appears, and when you click on it, it opens a channel management menu You can choose to either create a channel, browse/search for available channels to join (not implemented yet), or click away to close the menu If you choose create a channel, a modal will pop up where you can put its name (must be unique and made of lowercase characters and dashes), description, and set its visibility with the cool toggle If you create the new channel successfully, you’ll be automatically redirected to it where you can start chatting in it! The browse channels options currently just shows an empty modal with a search bar that doesn’t do anything yet Updated schema and types for channels and messages Updated styling and navigation
Optimized chatting rooms Optimized the Socket.io broadcast events and listeners a lot by using the library’s rooms feature so users viewing different channels will listen to different events Every time you click and view a new channel, you automatically “leave” the original channel room so you no longer receive messages from it (because you’re not viewing the channel despite still being in the channel). You also “join” the new channel and receive its messages because you’re viewing it This took a frustratingly long time to implement and debug because I have to track the currently viewed channel on the frontend and communicate with the backend reliably Added backend revalidation to make the UX of creating new channels smoother The channel you’re currently viewing is now highlighted on the left sidebar of the chat layout Updated types Updated navigation Updated styling Because this is mostly a refactor with minimal feature changes, I’ll just put a screenshot of chatting in a channel
Channel and user management I forgot to make a devlog for 2 days straight and I got a ton of stuff accomplished, so this devlog is gonna be a pretty long one with a ton of changes that make Codeliver one step closer to being a significantly inferior Slack clone! You can now add users to a channel (doesn’t matter if you’re an owner or a member), but only the owner can remove people. There are probably still some permission edge cases I need to test and fix, but for now it works pretty well When you click on the add member icon, a modal pops up where you can search for all Codeliver users, grouped into added users and people not in the channel, so you can search for them and manage them easily Added an API endpoint for the user lookup with channel integration to improve frontend data fetching and backend performance When you click on the edit channel icon a modal pops up, where you can edit its name (must be unique), description, and visibility (more channel settings coming soon) When you click on the leave channel button, a warning modal pops up for you to confirm the change When you click on browse channels from the channel management menu, a modal pops up (this entire update is about modals) where you can search for all the channels on Codeliver to view, join, or leave Added an API endpoint for channel lookup, with respect to user and channel permissions, to make the searching process easier When you visit a public channel that you haven’t joined, it shows a join message section instead of the message field similar to slack When you visit a private or nonexistent channel, it just redirects you to the chat homepage Your sidebar now actually shows the channels you’ve joined, and shows the browse channels button if you don’t have any Every backend or data state change is revalidated and updated in realtime to ensure smooth and responsive UX Updated database/backend schema and types Updated styling and navigation Fixed deployment issues (the demo site still doesn’t work yet because the Express backend is a mess and hasn’t been set up)
More channel & user management features I’ve been pretty busy this past week and haven’t been able to spend a lot of time on Codeliver or Stardance in general until now. Hopefully I’ll have more time the rest of the summer do get more hours and actually finish my projects In this update, I added channel settings, some channel ownership and user management features for each channel, as well as the ability to delete channels When you click on the new channel settings icon in a channel (that only shows if you’re the owner), a settings modal pops up, currently only with 2 options, transfer ownership and delete channel When you click on transfer ownership, another modal pops up where you can search for a user already added to the channel, select them, and transfer channel ownership after confirmation If you try to leave a channel when you’re its owner, Codeliver prompts you to transfer the ownership to someone else first to avoid orphaned relations in the database When you press on delete channel, a confirmation modal pops up and the channel and all its data will be deleted after confirmation When you click on browse users, your permissions are also displayed and you are able to see who the owner is Updated styling and navigation Updated API endpoints Updated README...
|
1792587306.2475493
|
1793192106.2475493
|
|
15733
|
Reality Router MK2 by @simplyrohan | Stardance
|
simplyrohan
|
0
|
25.01
|
0
|
[]
|
[{"post_id": 36239, "ts": "202 [{"post_id": 36239, "ts": "2026-07-28T06:07:13Z", "hours": 5.6842, "text": "Custom cable ducts and skirts I scrapped the OpenSCAD cable duct idea mainly because it couldn’t export to STEP (totally not because I didn’t want to learn it for 10 hours). Instead, I just redesigned them from scratch in OnShape and made sure to use its configuration features so I can generate different lengths and bends. The hardest part was figuring out how to mount them to the DIN rails in a customizable way. I realized that it was dependent on the spacing of the rails, and I somehow made mine a perfect multiple of 35mm which is exactly what DIN rails use. So I have a grid of holes space 17.5mm (35/2) apart which lets me screw in DIN clips anywhere along the duct. I’ll publish these at some point because they’re pretty useful. I do want to make them configurable outside of OnShape though, so I’ll port them to build123d soon™. I also printed a small version of them to test the snap fit for the cover (it’s perfect). After that, I started getting the whole layout setup for the electronics. I then moved on to finishing up the skirts and adding mounts for the power plug, switch, fans, and motor drivers. This was surprisingly hard since I had to make cuts across pieces of the skirt. The under-bed electronics design is mostly done now with the exception of the screen (I need to make a case/mount for it on the front of the machine). While it’s not in CAD because STEP files aren’t provided, there will be a handful of WAGO connectors to split power among components."}, {"post_id": 36061, "ts": "2026-07-27T22:15:01Z", "hours": 3.8583, "text": "Making a Voron rip-off pretty much I started getting the under-bed mounts setup and went down a small rabbit-hole. Turns out all Voron models use “cable ducts”/“wiring ducts”. These are plastic or PVC tubes that have a comb on the sides and are used to route wires. I really liked these for managing cabling. I found a great model some one made for Vorons which I can adapt for my layout. Unfortunatly these mount onto a sheet Vorons have below the bed which my CNC does not. Instead I’m trying to make a version that mounts directly onto the DIN rails. I’m also trying to make it parametric in OpenSCAD but haven’t made much progress. Aside from that, I found some cheap DIN rails and started assembling things in CAD. There are a ton of models online of DIN rail mounts for different components which is super useful. My original layout didn’t account for how spaced out the rails are and also placed the power port in an inconvenient spot which I’ve reorganized but the wiring is the same. Researching Voron machines so much did kinda make me want to copy another aspect I really liked. They use 3D printed “skirts” to cover the under-bed electronics which both makes the machine look cleaner and provides a good mounting spot for components and plugs. After looking at a couple designs, I realized I had no idea how to CAD them and went with a basic hex mesh. I also added some plastic feet (will be 100% infill) to provide clearance for the PSU."}, {"post_id": 35541, "ts": "2026-07-27T01:35:00Z", "hours": 1.4833, "text": "More Electrical Nonsense and Bed I spent a bit too long worrying about how this machine will look (aesthetically) and decided it would mainly look better, but also use less wire and be easier to assemble, if I mounted all the electronics below the bed. I was also thinking a lot how my bed should work. While it’s not the most common option, a lot of aluminum cutting mills do use an MDF spoil board, which lets me also cut wood and polycarbonate in addition to metal. Only issue is it makes mounting/clamping the stock harder. I have a few options (tape, toe clamps, T nuts) but the best option would be embedding T slots into the MDF. Honestly though, I should be able to add that later on after I build the machine so I won’t worry about it right now. Mainly, my new idea moves the mounting structure to leave room for the electronics below and also fixes an issue with the Z range I had on MK1. For the electronics, I spent a lot of time looking at Voron machines (specifically the Trident R2 and the Zero). I spent some time making an new fully detailed wiring diagram which is also how the parts will be arranged physically. Green lines are DIN rails which everything is mounted to. For the cabling ducts, I’ll be using some 3D printed ones used on Voron mods. Fans, ports, and switches will be mounted on 3D printed mesh plates just like a Voron."}, {"post_id": 35049, "ts": "2026-07-26T06:56:20Z", "hours": 4.5886, "text": "Wiring and Klipper Setup Now that I have Klipper setup with the screen, I need to connect it to my motherboard. This was as simple as compiling the Klipper firmware for the STM32 and using the correct configuration for the board. This was my first time using Klipper, and I was concerned I would need to reflash the firmware every time I made a configuration change. Luckily, Klipper abstracts that away to the RPi, meaning all definitions like GPIO pins and speeds can be changed easily. After flashing the firmware, I had to make a few modifications to the config. First, my Z and Y axes are swapped to take advantage of the two Z ports on my board. I also needed to set my mm/rev for each motor and set the speeds. Initially, my speeds were way to fast and the motors started overheating like crazy. When I tried moving the axes, I ran into an issue. Klipper doesn’t let me move axes until the “printer” is homed which is an issue since I don’t have any way to home the axes. Instead, I enabled force movement, and had to manually send a command to zero the machine. In the future, I will make this a macro and maybe even a button on the screen. I want to upgrade this machine to use NEMA23s which comes with a problem. I’ve been reusing a BTT SKR Mini E3 V2 which uses TMC2209 drivers to control NEMA17s. Unfortunately, the high power (important to note NEMA17/23 is just the mounting size, but usually is more powerful) NEMA23s I want to use will draw too much current. I’ll instead switch to a custom control system. I’ll use TB6600 drivers (subject to change) with an RP2040 XIAO which is connected via UART to the RPi running Klipper. I also want to have automatic spindle control which will use another RP2040, but I’ll talk more about that in another devlog. I went over a few iterations of how everything is organized but this is what I settled for. Things in a white box are together in a container physically."}, {"post_id": 34271, "ts": "2026-07-24T20:40:42Z", "hours": 2.25, "text": "Finished Z Axis Finished up the Z axis fixes and ended up switching back to 4040 extrusions. To bring the weight closer, the main difference is that I removed the X carriage. I also tucked the lead screw in between the linear rails which also saves space. Hopefully this will all result in a much more sturdy Z axis. I’m considering adding some sort of material inside the clamp to grip the router better but except for grip tape, all options I can think of would add slop and make the router less rigid. I also forgot to add images of this previously, but I have new models for the ballscrew mounts."}, {"post_id": 34163, "ts": "2026-07-24T17:56:54Z", "hours": 2.6753, "text": "Klipper Setup w/ KlipperScreen I reflashed my RPi Zero 2 W with a stock Debian install and started installing Klipper-for-CNC with Kiauh. That was simple enough but I also wanted to get KlipperScreen working with a 3.5” capacitive touchscreen I had lying around. KlipperScreen outputs video to the Linux framebuffer with X11 but without HDMI this wasn’t visible. I’m using an ST7796 display over SPI. After connecting the screen to GPIO, I thought an easy to use driver would already exist for this display. There was this one which I tried setting up. Unfortunately this a) didn’t support the RPi Zero 2 W, but that was easy to fix and b) relied on the old VideoCore framework which Raspberry Pi OS doesn’t ship with anymore. After that, I went digging for another solution. I found this repo and this forum post which showed that the kernel already had support for generic displays like these, so I just had to add the init sequence of bytes for my display. After hours of tweaking with boot settings I finally got it working! Now I needed touch to work, which used an FT6336U driver. At the bottom of some forum post I was able to find a repo which had drivers for the OrangePi for my exact screen. This probably would’ve been helpful getting the screen working but I anyways like my solution better. I compiled the driver in the repo and remade the DTS file for an RPi Zero 2 W rather than an Orange Pi. Surprisingly, this just worked! The touch coordinate orientation was correct, and even gestures like scrolling worked perfectly! Now I have Klipper fully setup with my display and need to connect it to my motherboard."}, {"post_id": 33091, "ts": "2026-07-22T18:07:54Z", "hours": 2.1836, "text": "I updated the Z axis to use 2020 extrusions (smaller and lighter) and 2 linear rails to support the Z carriage. The previous version of the X carriage got ripped up because there was too much strain on it over time. This updated version distributes the weight on two rails and brings the mass (heavy router) closer (smaller cantilever)."}, {"post_id": 32592, "ts": "2026-07-21T21:24:04Z", "hours": 2.2883, "text": "New Compact X Carriage"}]...
|
Title: Reality Router MK2 by @simplyrohan | Starda Title: Reality Router MK2 by @simplyrohan | Stardance
Devlogs:
New Compact X Carriage
I updated the Z axis to use 2020 extrusions (smaller and lighter) and 2 linear rails to support the Z carriage. The previous version of the X carriage got ripped up because there was too much strain on it over time. This updated version distributes the weight on two rails and brings the mass (heavy router) closer (smaller cantilever).
Klipper Setup w/ KlipperScreen I reflashed my RPi Zero 2 W with a stock Debian install and started installing Klipper-for-CNC with Kiauh. That was simple enough but I also wanted to get KlipperScreen working with a 3.5” capacitive touchscreen I had lying around. KlipperScreen outputs video to the Linux framebuffer with X11 but without HDMI this wasn’t visible. I’m using an ST7796 display over SPI. After connecting the screen to GPIO, I thought an easy to use driver would already exist for this display. There was this one which I tried setting up. Unfortunately this a) didn’t support the RPi Zero 2 W, but that was easy to fix and b) relied on the old VideoCore framework which Raspberry Pi OS doesn’t ship with anymore. After that, I went digging for another solution. I found this repo and this forum post which showed that the kernel already had support for generic displays like these, so I just had to add the init sequence of bytes for my display. After hours of tweaking with boot settings I finally got it working! Now I needed touch to work, which used an FT6336U driver. At the bottom of some forum post I was able to find a repo which had drivers for the OrangePi for my exact screen. This probably would’ve been helpful getting the screen working but I anyways like my solution better. I compiled the driver in the repo and remade the DTS file for an RPi Zero 2 W rather than an Orange Pi. Surprisingly, this just worked! The touch coordinate orientation was correct, and even gestures like scrolling worked perfectly! Now I have Klipper fully setup with my display and need to connect it to my motherboard.
Finished Z Axis Finished up the Z axis fixes and ended up switching back to 4040 extrusions. To bring the weight closer, the main difference is that I removed the X carriage. I also tucked the lead screw in between the linear rails which also saves space. Hopefully this will all result in a much more sturdy Z axis. I’m considering adding some sort of material inside the clamp to grip the router better but except for grip tape, all options I can think of would add slop and make the router less rigid. I also forgot to add images of this previously, but I have new models for the ballscrew mounts.
Wiring and Klipper Setup Now that I have Klipper setup with the screen, I need to connect it to my motherboard. This was as simple as compiling the Klipper firmware for the STM32 and using the correct configuration for the board. This was my first time using Klipper, and I was concerned I would need to reflash the firmware every time I made a configuration change. Luckily, Klipper abstracts that away to the RPi, meaning all definitions like GPIO pins and speeds can be changed easily. After flashing the firmware, I had to make a few modifications to the config. First, my Z and Y axes are swapped to take advantage of the two Z ports on my board. I also needed to set my mm/rev for each motor and set the speeds. Initially, my speeds were way to fast and the motors started overheating like crazy. When I tried moving the axes, I ran into an issue. Klipper doesn’t let me move axes until the “printer” is homed which is an issue since I don’t have any way to home the axes. Instead, I enabled force movement, and had to manually send a command to zero the machine. In the future, I will make this a macro and maybe even a button on the screen. I want to upgrade this machine to use NEMA23s which comes with a problem. I’ve been reusing a BTT SKR Mini E3 V2 which uses TMC2209 drivers to control NEMA17s. Unfortunately, the high power (important to note NEMA17/23 is just the mounting size, but usually is more powerful) NEMA23s I want to use will draw too much current. I’ll instead switch to a custom control system. I’ll use TB6600 drivers (subject to change) with an RP2040 XIAO which is connected via UART to the RPi running Klipper. I also want to have automatic spindle control which will use another RP2040, but I’ll talk more about that in another devlog. I went over a few iterations of how everything is organized but this is what I settled for. Things in a white box are together in a container physically.
More Electrical Nonsense and Bed I spent a bit too long worrying about how this machine will look (aesthetically) and decided it would mainly look better, but also use less wire and be easier to assemble, if I mounted all the electronics below the bed. I was also thinking a lot how my bed should work. While it’s not the most common option, a lot of aluminum cutting mills do use an MDF spoil board, which lets me also cut wood and polycarbonate in addition to metal. Only issue is it makes mounting/clamping the stock harder. I have a few options (tape, toe clamps, T nuts) but the best option would be embedding T slots into the MDF. Honestly though, I should be able to add that later on after I build the machine so I won’t worry about it right now. Mainly, my new idea moves the mounting structure to leave room for the electronics below and also fixes an issue with the Z range I had on MK1. For the electronics, I spent a lot of time looking at Voron machines (specifically the Trident R2 and the Zero). I spent some time making an new fully detailed wiring diagram which is also how the parts will be arranged physically. Green lines are DIN rails which everything is mounted to. For the cabling ducts, I’ll be using some 3D printed ones used on Voron mods. Fans, ports, and switches will be mounted on 3D printed mesh plates just like a Voron.
Making a Voron rip-off pretty much I started getting the under-bed mounts setup and went down a small rabbit-hole. Turns out all Voron models use “cable ducts”/“wiring ducts”. These are plastic or PVC tubes that have a comb on the sides and are used to route wires. I really liked these for managing cabling. I found a great model some one made for Vorons which I can adapt for my layout. Unfortunatly these mount onto a sheet Vorons have below the bed which my CNC does not. Instead I’m trying to make a version that mounts directly onto the DIN rails. I’m also trying to make it parametric in OpenSCAD but haven’t made much progress. Aside from that, I found some cheap DIN rails and started assembling things in CAD. There are a ton of models online of DIN rail mounts for different components which is super useful. My original layout didn’t account for how spaced out the rails are and also placed the power port in an inconvenient spot which I’ve reorganized but the wiring is the same. Researching Voron machines so much did kinda make me want to copy another aspect I really liked. They use 3D printed “skirts” to cover the under-bed electronics which both makes the machine look cleaner and provides a good mounting spot for components and plugs. After looking at a couple designs, I realized I had no idea how to CAD them and went with a basic hex mesh. I also added some plastic feet (will be 100% infill) to provide clearance for the PSU.
Custom cable ducts and skirts I scrapped the OpenSCAD cable duct idea mainly because it couldn’t export to STEP (totally not because I didn’t want to learn it for 10 hours). Instead, I just redesigned them from scratch in OnShape and made sure to use its configuration features so I can generate different lengths and bends. The hardest part was figuring out how to mount them to the DIN rails in a customizable way. I realized that it was dependent on the spacing of the rails, and I somehow made mine a perfect multiple of 35mm which is exactly what DIN rails use. So I have a grid of holes space 17.5mm (35/2) apart which lets me screw in DIN clips anywhere along the duct. I’ll publish these at some point because they’re pretty useful. I do want to make them configurable outside of OnShape though, so I’ll port them to build123d soon™. I also printed a small version of them to test the snap fit for the cover (it’s perfect). After that, I started getting the whole layout setup for the electronics. I then moved on to finishing up the skirts and adding mounts for the power plug, switch, fans, and motor drivers. This was surprisingly hard since I had to make cuts across pieces of the skirt. The under-bed electronics design is mostly done now with the exception of the screen (I need to make a case/mount for it on the front of the machine). While it’s not in CAD because STEP files aren’t provided, there will be a handful of WAGO connectors to split power among components....
|
1792741785.55661
|
1793346585.55661
|
|
153
|
SCP - Secure Channel Protocol by @kingvon | Starda SCP - Secure Channel Protocol by @kingvon | Stardance...
|
kingvon
|
1
|
25.0
|
392
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-23T16:42:26Z", "hours": 25.0, "multiplier": 15.56, "payout": 392, "blessing": "neutral", "text": "Secure Channel Protocol (SCP) is a TLS-inspired protocol with its own ciphersuite and handshake sequence made in Go. It comes in a go package so anyone can use this protocol to build their projects upon. i made this project as a challenge to myself because i wanted to make “my own protocol” so i decided to go for a security protcol, this was a really fun experience it taught me applied cryptography more deeply and i learnt about various things in TLS. this project right now is just a handshake implementation with minimal crypto wrappers i wrote around already made functions, this is just the first version, i will be implementing my own crypto primitives like key exchange and stuff in future versions. you can try this project in THREE different ways!: watching a live handshake simulation @ scp.pratiksingh.xyz trying the small encrypted cli chat app i made on top of the protocol (check out github readme) creating your own app on top of my protocol! i have made simple wrapper functions to make it easier for curious devs to try it. there are documentation too! check out the specs page on demo site and readme for details :3", "repo": "https://github.com/pratiksingh94/scp/", "demo": "https://scp.pratiksingh.xyz/"}]...
|
[{"post_id": 32551, "ts": "202 [{"post_id": 32551, "ts": "2026-07-21T20:09:05Z", "hours": 1.3506, "text": "Wrote docs yeah, wrote docs, thats it bye lol golang docs system is nice at first i was writing everything in another docs readme but it was so damn boring and i started looking around for automated docs like its in fastapi of python, then i found out i can write comments and stuff and people can use go doc command and there are also crawlers by pkg.go.dev which can show my go docs on the website so yeah that dont focus on screenshot, i am waiting for it to detect the license so it can show docs"}, {"post_id": 32244, "ts": "2026-07-21T09:04:10Z", "hours": 0.4667, "text": "Readme update one more step closer towards shipping didnt mention the SPEC.md in it, i wont use that since i have made /spec page in visualizer site"}, {"post_id": 32228, "ts": "2026-07-21T08:16:32Z", "hours": 0.4619, "text": "Fixed go modules gonna push it as package soon so had to fix some go module problems or go get command wont work and did some over the internet testing"}, {"post_id": 31937, "ts": "2026-07-20T19:03:39Z", "hours": 3.0483, "text": "Added Spec page yes, added a page for ALL details you made need about it, PLEASE READ IT i have put so much efforts into that so you better read it includes this table of contents: 1.Overview 2.Packet Format 3.Message Types 4.Handshake Protocol 5.Key Derivation 6.Data Phase 7.Cryptographic Primitives 8.Wire Format Reference"}, {"post_id": 30288, "ts": "2026-07-17T18:53:22Z", "hours": 5.8408, "text": "Handshake Simulation Visualizer completed the entire bomboclat visualizer so its a website with go backend which is running a totally real handshake sequence, which is a simulation ofc but the crypto stuff is real, no packets are being sent tho after asking multiple people in #stardance i decided to go with monotone default colors of tailwind, and someone suggested CRT line effect so i added that too which made it hella cool. it features a 26 step sequence showing everything from keypair generation to data phase, shows from both client and server sides with cool cards, i love this so much yes i did it all in one devlog, its a just a small dev log server and not the main thing of this project, the main is still the protocol and the package so i will do on that with some documentations and specs page. will be hosted soon on my nest container"}, {"post_id": 28520, "ts": "2026-07-14T20:40:26Z", "hours": 3.8081, "text": "Visualizer WebSocket Server so not just that, i also changed the folder structure a bit, and some other very small things which i couldnt dev log cuz they were too small but yes the main thing i did was making a visualize backend, it uses websockets and simulates an entire handshake and data transfer, all the crypto work is real in the server but no packet is being sent, so its just steps one by one explaining the work that is being done. been a bit busy for a while so couldnt code properly :("}, {"post_id": 24989, "ts": "2026-07-08T21:39:58Z", "hours": 0.9981, "text": "First app: Encrypted Chat i am so happy, i have wrote the FIRST thingy on top of secure channel protocol!!! my own damn lil TLS. this is a very basic client server chat, server listens on a port and client connects, they it reads input from stdin the server connects using command: ./scp listen --port 2008 --psk test the client connects using command: ./scp connect --host localhost:2008 --psk test the PSK is pre-shared (well, duh) using the --psk flag well this is a very basic terminal chat app, i can ship the project as it is rn as its a nice MVP but i want to make a visualizer cuz i know damn well NO one gonna run it like this lol, and i want to make a cool visualizer that shows every step of handshake the first screenshot shows the chat, top one is the server and bottom is client the second screenshot shows the wireshark capture of this beautiful exchange, ofc its encrypted hehe i love this"}, {"post_id": 24881, "ts": "2026-07-08T18:48:10Z", "hours": 0.6858, "text": "Session Functions wow this made it complete on a function definition level, like i just have to make some wrappers around it so, i made 3 functions for the Session struct Send() -> takes plaintext, encrypts it with the session key and nonce from session, sends it Receive() -> decodes MsgData packet, decrypts using session key and nonce received FROM the packet (so nonces dont go out of sync) and returns plaintext Close() -> what do you think lmao in the screenshot you can see the plaintext and ciphertext being logged, thats an exchange between client and server!"}, {"post_id": 24587, "ts": "2026-07-08T09:11:33Z", "hours": 3.4375, "text": "Handshake 🤝 so i made the handshake sequence its the same one from SPEC.md where i decided first, didnt change anything for some reason cant paste here pls check SPEC.md on github lmao but in short it goes like this: client and server exchange hello messages with their PSK Proof, Public Key, Nonce (16 bytes) and then key exchange and some session key derivation happens, then Done messages are exchanged which is encrypted with the session key, so it proves both party derived same session key at the end the handshake functions returns the session (which i have to work on) there are some things left to do like cleaning up the code, its a bit messy right now i will make it a bit more modular and easy to read later for testing i used net.Pipe , it gives nice two mock connections type shit, i thought of using real tcp connection first but found this better thing while going through GoLang net library docs not much to see in image tbh, it just shows the debug print statements i added, those are exchanges between client and server"}, {"post_id": 23028, "ts": "2026-07-05T19:16:11Z", "hours": 2.9708, "text": "Crypto Functions so i wrote all the crypto functions or helpers whatever you want to call it. i did that because see for me TLS or even this project is just a group of cipher suites and we are using them to perform a handshake, so the cipher suite is the most important part, and ofc my project will only have one cipher suite, so i first implemented those functions Functions implemented: GenerateKeypair() -> generates an X25519 public and private key pair SharedSecret() -> takes private key and peer public key and performs ECDH using those keys ComputePSKProof() -> outputs the HMAC result of a psk and the given data DeriveSessionKey() -> the final function which uses HKDF and outputs a session key, which will be used to encrypt/decrypt Encrypt() -> encrypts using the given session key, it uses ChaCha20-Poly1305 to encrypt plaintext Decrypt() -> decrypts the ciphertext from given key and i also wrote tests for them, writing tests for me is an uncommon thing i wont lie lol but this time i am testing these functions from tests is because this is a protocol library, if another project wants to use my protocol to build on they can easily import and thats why i dont wanna test in random cmd and build things like it is intended for my planned project only, so i am treating it as a proper library and writing function and their tests, and so far things are doing really good. had some problems in ECDH because i was messing up the output parameters order but i fixed it after a while. ignore the weird ahhh numbers output, thats the nonce counter helper function i made i forgot to remove the debug prints lol"}, {"post_id": 22165, "ts": "2026-07-04T14:18:15Z", "hours": 2.1317, "text": "Packet Envelop and Payload Encoders/Decoders hiii SPEC.md so at first i made SPEC.md where i have decided on everything that it will have, all structures, handshake sequence, etc (please read it :3) Packet structure then i made a basic packet envelop struct [1 byte: msg type] [4 bytes: payload length] [N bytes: payload] that will be the structure, and i wrote WritePacket() and ReadPacket() functions for it, and also some tests Payload structures and i decided on payload structures for each message type and wrote encoder and decoder for all those types, except Done message type because its just one thing in payload you can check in SPEC.md the payload structures since i dont have anything ready to show, i will show the test output"}]...
|
Title: SCP - Secure Channel Protocol by @kingvon | Title: SCP - Secure Channel Protocol by @kingvon | Stardance
Devlogs:
Packet Envelop and Payload Encoders/Decoders hiii SPEC.md so at first i made SPEC.md where i have decided on everything that it will have, all structures, handshake sequence, etc (please read it :3) Packet structure then i made a basic packet envelop struct [1 byte: msg type] [4 bytes: payload length] [N bytes: payload] that will be the structure, and i wrote WritePacket() and ReadPacket() functions for it, and also some tests Payload structures and i decided on payload structures for each message type and wrote encoder and decoder for all those types, except Done message type because its just one thing in payload you can check in SPEC.md the payload structures since i dont have anything ready to show, i will show the test output
Crypto Functions so i wrote all the crypto functions or helpers whatever you want to call it. i did that because see for me TLS or even this project is just a group of cipher suites and we are using them to perform a handshake, so the cipher suite is the most important part, and ofc my project will only have one cipher suite, so i first implemented those functions Functions implemented: GenerateKeypair() -> generates an X25519 public and private key pair SharedSecret() -> takes private key and peer public key and performs ECDH using those keys ComputePSKProof() -> outputs the HMAC result of a psk and the given data DeriveSessionKey() -> the final function which uses HKDF and outputs a session key, which will be used to encrypt/decrypt Encrypt() -> encrypts using the given session key, it uses ChaCha20-Poly1305 to encrypt plaintext Decrypt() -> decrypts the ciphertext from given key and i also wrote tests for them, writing tests for me is an uncommon thing i wont lie lol but this time i am testing these functions from tests is because this is a protocol library, if another project wants to use my protocol to build on they can easily import and thats why i dont wanna test in random cmd and build things like it is intended for my planned project only, so i am treating it as a proper library and writing function and their tests, and so far things are doing really good. had some problems in ECDH because i was messing up the output parameters order but i fixed it after a while. ignore the weird ahhh numbers output, thats the nonce counter helper function i made i forgot to remove the debug prints lol
Handshake 🤝 so i made the handshake sequence its the same one from SPEC.md where i decided first, didnt change anything for some reason cant paste here pls check SPEC.md on github lmao but in short it goes like this: client and server exchange hello messages with their PSK Proof, Public Key, Nonce (16 bytes) and then key exchange and some session key derivation happens, then Done messages are exchanged which is encrypted with the session key, so it proves both party derived same session key at the end the handshake functions returns the session (which i have to work on) there are some things left to do like cleaning up the code, its a bit messy right now i will make it a bit more modular and easy to read later for testing i used net.Pipe , it gives nice two mock connections type shit, i thought of using real tcp connection first but found this better thing while going through GoLang net library docs not much to see in image tbh, it just shows the debug print statements i added, those are exchanges between client and server
Session Functions wow this made it complete on a function definition level, like i just have to make some wrappers around it so, i made 3 functions for the Session struct Send() -> takes plaintext, encrypts it with the session key and nonce from session, sends it Receive() -> decodes MsgData packet, decrypts using session key and nonce received FROM the packet (so nonces dont go out of sync) and returns plaintext Close() -> what do you think lmao in the screenshot you can see the plaintext and ciphertext being logged, thats an exchange between client and server!
First app: Encrypted Chat i am so happy, i have wrote the FIRST thingy on top of secure channel protocol!!! my own damn lil TLS. this is a very basic client server chat, server listens on a port and client connects, they it reads input from stdin the server connects using command: ./scp listen --port 2008 --psk test the client connects using command: ./scp connect --host localhost:2008 --psk test the PSK is pre-shared (well, duh) using the --psk flag well this is a very basic terminal chat app, i can ship the project as it is rn as its a nice MVP but i want to make a visualizer cuz i know damn well NO one gonna run it like this lol, and i want to make a cool visualizer that shows every step of handshake the first screenshot shows the chat, top one is the server and bottom is client the second screenshot shows the wireshark capture of this beautiful exchange, ofc its encrypted hehe i love this
Visualizer WebSocket Server so not just that, i also changed the folder structure a bit, and some other very small things which i couldnt dev log cuz they were too small but yes the main thing i did was making a visualize backend, it uses websockets and simulates an entire handshake and data transfer, all the crypto work is real in the server but no packet is being sent, so its just steps one by one explaining the work that is being done. been a bit busy for a while so couldnt code properly :(
Handshake Simulation Visualizer completed the entire bomboclat visualizer so its a website with go backend which is running a totally real handshake sequence, which is a simulation ofc but the crypto stuff is real, no packets are being sent tho after asking multiple people in #stardance i decided to go with monotone default colors of tailwind, and someone suggested CRT line effect so i added that too which made it hella cool. it features a 26 step sequence showing everything from keypair generation to data phase, shows from both client and server sides with cool cards, i love this so much yes i did it all in one devlog, its a just a small dev log server and not the main thing of this project, the main is still the protocol and the package so i will do on that with some documentations and specs page. will be hosted soon on my nest container
Added Spec page yes, added a page for ALL details you made need about it, PLEASE READ IT i have put so much efforts into that so you better read it includes this table of contents: 1.Overview 2.Packet Format 3.Message Types 4.Handshake Protocol 5.Key Derivation 6.Data Phase 7.Cryptographic Primitives 8.Wire Format Reference
Fixed go modules gonna push it as package soon so had to fix some go module problems or go get command wont work and did some over the internet testing
Readme update one more step closer towards shipping didnt mention the SPEC.md in it, i wont use that since i have made /spec page in visualizer site
Wrote docs yeah, wrote docs, thats it bye lol golang docs system is nice at first i was writing everything in another docs readme but it was so damn boring and i started looking around for automated docs like its in fastapi of python, then i found out i can write comments and stuff and people can use go doc command and there are also crawlers by pkg.go.dev which can show my go docs on the website so yeah that dont focus on screenshot, i am waiting for it to detect the license so it can show docs
Ships:
Secure Channel Protocol (SCP) is a TLS-inspired protocol with its own ciphersuite and handshake sequence made in Go. It comes in a go package so anyone can use this protocol to build their projects upon. i made this project as a challenge to myself because i wanted to make “my own protocol” so i decided to go for a security protcol, this was a really fun experience it taught me applied cryptography more deeply and i learnt about various things in TLS. this project right now is just a handshake implementation with minimal crypto wrappers i wrote around already made functions, this is just the first version, i will be implementing my own crypto primitives like key exchange and stuff in future versions. you can try this project in THREE different ways!: watching a live handshake simulation @ scp.pratiksingh.xyz trying the small encrypted cli chat app i made on top of the protocol (check out github readme) creating your own app on top of my protocol! i have made simple wrapper functions to make it easier for curious devs to try it. there are documentation too! check out the specs page on demo site and readme for details :3...
|
1793256607.5046387
|
1793343007.5046387
|
|
395
|
ZhiXue Lite by @Makerlife | Stardance
|
Makerlife
|
2
|
25.0
|
79
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-25T12:56:28Z", "hours": 15.0, "multiplier": 1.97, "payout": 20, "blessing": "neutral", "text": "The Final Ship! [IMPORTANT]Since WAF is enabled on the backend, you may not be able to view the home page statistics properly. It is NOT a bug!!! You can log in to the site at demo/demo for a temporary preview. Please note that since my site retrieves and processes data from a third-party website, some content may still be in Chinese, and certain features may not be available with the shared account.", "repo": "https://github.com/amakerlife/ZhiXue-Lite-backend", "demo": "https://zxl.makerlife.top"}, {"ship_num": 2, "ts": "2026-07-05T14:04:31Z", "hours": 10.0, "multiplier": 5.7, "payout": 59, "blessing": "neutral", "text": "First release! In this update, I’ve strengthened backend authentication, added S3 support, and made some frontend optimizations. You can log in to the site at demo/demo for a temporary preview. Please note that since my site retrieves and processes data from a third-party website, some content may still be in Chinese, and certain features may not be available with the shared account. Since WAF is enabled on the backend, you may not be able to view the home page statistics properly.", "repo": "https://github.com/amakerlife/ZhiXue-Lite-backend", "demo": "https://zxl.makerlife.top"}]...
|
[{"post_id": 82615, "ts": "202 [{"post_id": 82615, "ts": "2026-10-25T12:53:46Z", "hours": 14.9442, "text": "This update adds S3 management APIs for viewing storage usage, listing cached answer sheets and score sheets, and deleting stored files. Exam results now have an all-scores API with pagination, filtering, search, and sorting. Score sheet export uses the VIEW_EXAM_DATA permission, with SCHOOL users limited to their own school. Administrators can now publish exams locally for individual schools before ZhiXue officially releases them. Students can access their own results when their scores are already stored. Score retrieval also handles missing totals and rankings while marking is still in progress. Answer sheets now show subquestion scores, step scores, and teacher scoring records more clearly, with improved indentation and positioning. The backend now requires Python 3.11 and uses psycopg 3. Dependencies were upgraded, and a database migration was added for per-school exam publication status."}, {"post_id": 22095, "ts": "2026-07-04T11:15:53Z", "hours": 6.275, "text": "Recently, on the backend, I added support for customizing the “from-address” for the SMTP service, rather than using the SMTP username directly as the sender’s email address as before. Additionally, to make the project more robust, I added support for S3 storage on the backend to store the generated answer sheets and score sheets, replacing the original local file system cache. Administrators can freely choose between the two options via environment variables. On the frontend, I first synchronized the changes related to the backend’s S3 storage support, then updated the loading animation to feature a logo that gradually changes in size as the central element, accompanied by a circular animation, replacing the previous simple Lucide React icon. Next, I will implement management features for S3 storage and synchronize the changes across both the front end and backend."}, {"post_id": 6877, "ts": "2026-06-11T15:13:25Z", "hours": 2.1092, "text": "This update fixes how the backend handles school_id in multi-school exam scenarios. Previously, some score and answersheet APIs accepted school_id from the client and used it during score lookup or teacher account selection. In multi-school exams, that could allow a SCHOOL-level user to query data outside their own school if the request parameters were crafted manually. The score and answer sheet APIs now resolve the effective student and school context on the server first. SELF users are always limited to their own bound student account, and any client-provided student_id, student_name, or school_id is ignored. SCHOOL users are always limited to their own school, even if another school_id is provided. GLOBAL users can still use school_id as an optional filter. Student name based lookup no longer requires school_id. The backend searches within the current user’s accessible scope. If multiple students match the same name, the error message now includes both school and class information for disambiguation. Score sheet export was also tightened. SCHOOL users always export their own school’s data, and any provided school_id is ignored. GLOBAL users can still export all schools or a specific school. Since this is just a backend fix related to permissions, I can only provide screenshots of the code I modified."}, {"post_id": 5554, "ts": "2026-06-09T11:44:43Z", "hours": 1.9978, "text": "In this update, I added a feature to the front end that remembers the user’s selection in this dropdown menu. In addition, I added a button to the exam details page so that users with the appropriate permissions can view more data about the exam directly in the “Data View” tab without having to copy and paste the exam_id. I fixed two race conditions caused by data desynchronization on the back end and manually cleaned up two rows of corrupted data from the prod database."}]...
|
Title: ZhiXue Lite by @Makerlife | Stardance
Devl Title: ZhiXue Lite by @Makerlife | Stardance
Devlogs:
In this update, I added a feature to the front end that remembers the user’s selection in this dropdown menu. In addition, I added a button to the exam details page so that users with the appropriate permissions can view more data about the exam directly in the “Data View” tab without having to copy and paste the exam_id. I fixed two race conditions caused by data desynchronization on the back end and manually cleaned up two rows of corrupted data from the prod database.
This update fixes how the backend handles school_id in multi-school exam scenarios. Previously, some score and answersheet APIs accepted school_id from the client and used it during score lookup or teacher account selection. In multi-school exams, that could allow a SCHOOL-level user to query data outside their own school if the request parameters were crafted manually. The score and answer sheet APIs now resolve the effective student and school context on the server first. SELF users are always limited to their own bound student account, and any client-provided student_id, student_name, or school_id is ignored. SCHOOL users are always limited to their own school, even if another school_id is provided. GLOBAL users can still use school_id as an optional filter. Student name based lookup no longer requires school_id. The backend searches within the current user’s accessible scope. If multiple students match the same name, the error message now includes both school and class information for disambiguation. Score sheet export was also tightened. SCHOOL users always export their own school’s data, and any provided school_id is ignored. GLOBAL users can still export all schools or a specific school. Since this is just a backend fix related to permissions, I can only provide screenshots of the code I modified.
Recently, on the backend, I added support for customizing the “from-address” for the SMTP service, rather than using the SMTP username directly as the sender’s email address as before. Additionally, to make the project more robust, I added support for S3 storage on the backend to store the generated answer sheets and score sheets, replacing the original local file system cache. Administrators can freely choose between the two options via environment variables. On the frontend, I first synchronized the changes related to the backend’s S3 storage support, then updated the loading animation to feature a logo that gradually changes in size as the central element, accompanied by a circular animation, replacing the previous simple Lucide React icon. Next, I will implement management features for S3 storage and synchronize the changes across both the front end and backend.
This update adds S3 management APIs for viewing storage usage, listing cached answer sheets and score sheets, and deleting stored files. Exam results now have an all-scores API with pagination, filtering, search, and sorting. Score sheet export uses the VIEW_EXAM_DATA permission, with SCHOOL users limited to their own school. Administrators can now publish exams locally for individual schools before ZhiXue officially releases them. Students can access their own results when their scores are already stored. Score retrieval also handles missing totals and rankings while marking is still in progress. Answer sheets now show subquestion scores, step scores, and teacher scoring records more clearly, with improved indentation and positioning. The backend now requires Python 3.11 and uses psycopg 3. Dependencies were upgraded, and a database migration was added for per-school exam publication status.
Ships:
First release! In this update, I’ve strengthened backend authentication, added S3 support, and made some frontend optimizations. You can log in to the site at demo/demo for a temporary preview. Please note that since my site retrieves and processes data from a third-party website, some content may still be in Chinese, and certain features may not be available with the shared account. Since WAF is enabled on the backend, you may not be able to view the home page statistics properly.
The Final Ship! [IMPORTANT]Since WAF is enabled on the backend, you may not be able to view the home page statistics properly. It is NOT a bug!!! You can log in to the site at demo/demo for a temporary preview. Please note that since my site retrieves and processes data from a third-party website, some content may still be in Chinese, and certain features may not be available with the shared account....
|
1793127165.3301542
|
1793213565.3301542
|
|
1509
|
Personal Website !! by @shauryaey246 | Stardance
|
shauryaey246
|
1
|
25.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-07T16:57:24Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an portfolio website to showcase what i know and who i am. i Built this with the help of HTML, CSS and Javascript. I’ m really satisfied with the UI and content that I added with sincerity.", "repo": "https://github.com/Shaurya-ey/My-Website", "demo": "https://shauryapdev.vercel.app/"}]...
|
[{"post_id": 42620, "ts": "202 [{"post_id": 42620, "ts": "2026-08-07T13:17:52Z", "hours": 6.4411, "text": "Devlog #3 Back again to log what i did HAAHAHAHA… So in short, i have refined my code an UI , added more sections in my portfolio website after satisfied work that i have done. Portfolio website link Also i did some mistakes that i want to mention so that when one starting off with building a website for the first time then they should keep in mind, which are:- While i was refining/improving my mess i found out there were many Typo’s in my code. For example: font-size:.85 (no unit) I used an colour variable which i did’nt even defined, actually i made a list of colours on my notepad but i forgot to define a pink one for the C++ bar in github section. I was really confused how to add a feature for my Guestbook section so that only i can delete or edit the entries. And for which i was using a simple cross feature but the problem is that when i deployed my website then i got to know anyone can delete those entries. Solution? i just used claude, and it suggested me to use and setup a free Supabase database. Now, comes the part where i have taken help of AI in my project: Debugging errors, especially i had to face huge trouble while syncing my github repo’s distribution graph to my website graph in github section. Generating my pixel inspired photo that is on the Home section. Translating what the git errors meant after i’d broken smthing. Colour combination and font size suggestions. Generating my website’s logo. Rest of the things like Themes, font style, layout decisions and arrangements of cards and all the other creative choices are all mine. This what i have i done after my previous session:- I started this project as a single HTML file and till the end and i have worked and made many changes from a simple space themed/astronomical vibe portfolio to an ai/ml themed professional vibe portfolio. I shifted the home page on a little upwards side + changed the font size and colour gradient + pulled down the photo a little bit downward side. Added and deleted contents in about sections + shifted cards so that they look presentable. Added an hobbies part just under the about part. Eddited skills stack. Grinded on what would be layout for my project section as i m into both hardware and software projects. So i planned few things that i implemented too: ->There will be 3 filters : all, software and hardware, -> Each card has a photo banner, and on hover it auto-slides through the project’s photos with little captions. For my telemetry project that means schematic → assembled ->Added github and linkedin buttons too. I struggled with this the most : The github section, i had to face trouble with syncing my distribution graph but i figured it out using AI. Then i fixed the entry of guestbook problem that i have mentioned above. Restructured + refined my UI and Code. That’s it, Thank You!! :))"}, {"post_id": 38753, "ts": "2026-08-01T09:48:21Z", "hours": 13.5089, "text": "Devlog #2 So, i have done so much improvements as well as added sections that feels complete. I’m almost done with design and other thingy. This what i have i done after my previous session:- Reworked on overall theme of the portfolio and added neural themed background. Improved my front page with improvised buttons, current status and new text animation. Created a frame around the photo of mine + added some aurora glow in background. Added new colour text gradient. Modified stat card and area of interest card. Added new skills section with cards and icons. Added project section with my projects that are on github + wrote few lines about my projects + added source/full uploded project that are on github + linked my github profile with an button at the bottom named “view all on github”. Added contact me section with direct message sending feature. Things i have to work on:- Scroll up and down animation. Adjusting margins for front page and other pages. Making front page more clean and presentable. Modify about section with adjusting/arranging cards. Making projects section more organized + feature to segregate hardware from including in software section. Adujsting + resizing github controbution and profile tabs. And make a more clean UI/UX for overall On improving guestbook section. That’s it for now, Thank You!! :))"}, {"post_id": 33460, "ts": "2026-07-23T13:13:07Z", "hours": 5.4161, "text": "Devlog #1 So started off with building my personal portfolio website. What i have done till now in my 1st session ? ->Firstly, I started off with navigation bar that includes: name logo with an orbiting planet animation and some twinkling stars animation + sections of the website(like home, about, projects, journal and contact). + then made it transparent. ->Made my name logo to swing a lil bit (i.e added animation) ->Then added some glow effect for navbar when interacted. ->added my name in bold and some description of what i’m doing and who i am. ->finally added my pixel style photo with some emoji’s floating around it. that’s all."}]...
|
Title: Personal Website !! by @shauryaey246 | Star Title: Personal Website !! by @shauryaey246 | Stardance
Devlogs:
Devlog #1 So started off with building my personal portfolio website. What i have done till now in my 1st session ? ->Firstly, I started off with navigation bar that includes: name logo with an orbiting planet animation and some twinkling stars animation + sections of the website(like home, about, projects, journal and contact). + then made it transparent. ->Made my name logo to swing a lil bit (i.e added animation) ->Then added some glow effect for navbar when interacted. ->added my name in bold and some description of what i’m doing and who i am. ->finally added my pixel style photo with some emoji’s floating around it. that’s all.
Devlog #2 So, i have done so much improvements as well as added sections that feels complete. I’m almost done with design and other thingy. This what i have i done after my previous session:- Reworked on overall theme of the portfolio and added neural themed background. Improved my front page with improvised buttons, current status and new text animation. Created a frame around the photo of mine + added some aurora glow in background. Added new colour text gradient. Modified stat card and area of interest card. Added new skills section with cards and icons. Added project section with my projects that are on github + wrote few lines about my projects + added source/full uploded project that are on github + linked my github profile with an button at the bottom named “view all on github”. Added contact me section with direct message sending feature. Things i have to work on:- Scroll up and down animation. Adjusting margins for front page and other pages. Making front page more clean and presentable. Modify about section with adjusting/arranging cards. Making projects section more organized + feature to segregate hardware from including in software section. Adujsting + resizing github controbution and profile tabs. And make a more clean UI/UX for overall On improving guestbook section. That’s it for now, Thank You!! :))
Devlog #3 Back again to log what i did HAAHAHAHA… So in short, i have refined my code an UI , added more sections in my portfolio website after satisfied work that i have done. Portfolio website link Also i did some mistakes that i want to mention so that when one starting off with building a website for the first time then they should keep in mind, which are:- While i was refining/improving my mess i found out there were many Typo’s in my code. For example: font-size:.85 (no unit) I used an colour variable which i did’nt even defined, actually i made a list of colours on my notepad but i forgot to define a pink one for the C++ bar in github section. I was really confused how to add a feature for my Guestbook section so that only i can delete or edit the entries. And for which i was using a simple cross feature but the problem is that when i deployed my website then i got to know anyone can delete those entries. Solution? i just used claude, and it suggested me to use and setup a free Supabase database. Now, comes the part where i have taken help of AI in my project: Debugging errors, especially i had to face huge trouble while syncing my github repo’s distribution graph to my website graph in github section. Generating my pixel inspired photo that is on the Home section. Translating what the git errors meant after i’d broken smthing. Colour combination and font size suggestions. Generating my website’s logo. Rest of the things like Themes, font style, layout decisions and arrangements of cards and all the other creative choices are all mine. This what i have i done after my previous session:- I started this project as a single HTML file and till the end and i have worked and made many changes from a simple space themed/astronomical vibe portfolio to an ai/ml themed professional vibe portfolio. I shifted the home page on a little upwards side + changed the font size and colour gradient + pulled down the photo a little bit downward side. Added and deleted contents in about sections + shifted cards so that they look presentable. Added an hobbies part just under the about part. Eddited skills stack. Grinded on what would be layout for my project section as i m into both hardware and software projects. So i planned few things that i implemented too: ->There will be 3 filters : all, software and hardware, -> Each card has a photo banner, and on hover it auto-slides through the project’s photos with little captions. For my telemetry project that means schematic → assembled ->Added github and linkedin buttons too. I struggled with this the most : The github section, i had to face trouble with syncing my distribution graph but i figured it out using AI. Then i fixed the entry of guestbook problem that i have mentioned above. Restructured + refined my UI and Code. That’s it, Thank You!! :))
Ships:
I made an portfolio website to showcase what i know and who i am. i Built this with the help of HTML, CSS and Javascript. I’ m really satisfied with the UI and content that I added with sincerity....
|
1793126979.1455283
|
1793213379.1455283
|
|
2537
|
JADE by @justin_m_baratta | Stardance
|
justin_m_baratta
|
1
|
25.0
|
242
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T23:44:30Z", "hours": 25.0, "multiplier": 11.58, "payout": 242, "blessing": "neutral", "text": "I made JADE, a Siri/Alexa like desktop assistant that uses an rpi + agents to listen to and execute requests. If you say the wakeword “JADE”, then a request like “What’s the weather today?”, it will process the audio into text using the mini mic on the rpi and a speech-to-text engine, send it to an agent (whose tools are filtered with an embedding model then passed to it) and speak the response using the speaker connected to a mini-amp on the raspberry pi. It was difficult learning how to work with a raspberrypi, because this was my first time doing anything with an rpi. I had to teach myself how to solder, and connect wires to a breadboard to the raspberrypi. I’m proud of the work I’ve accomplished in this project, and it has taught me a lot about how to use a raspberrypi and work with agents!", "repo": "https://github.com/Justino4631/JADE", "demo": "https://youtube.com/shorts/tLxb-KHST4U?feature=share"}]...
|
[{"post_id": 43061, "ts": "202 [{"post_id": 43061, "ts": "2026-08-08T03:54:12Z", "hours": 13.9811, "text": "JADE pretty much complete! Its been a while since the last devlog, I know. I’ve been really busy these past couple weeks of summer and have not been able to post, though I was able to work on JADE a little bit every day until its pretty much as done as it is now. To start, the pipeline of JADE is finished, tested, and functional. For hardware, using a mini microphone, mini amp, mini speaker, a breadboard, and lots of jumper wires, I was able to make my first “hardware project” connected to a raspberry pi. The pipeline of waiting for a wakeword (“JADE”), then activating once hearing the wakeword and using a speech to text engine to process audio (all using the microphone), then sending the request to an agent, which will output a message that will be played using text to speech on the mini speaker, all works! Some things I tweaked were, for one, the agentic architecture. Originally, I had a global agent that controlled 5 sub-agents that specialized in specific tasks (e.g. calendar agent, weather agent, etc…) but ended up switching to a one-agent structure that uses an embedding model beforehand to filter for the 5 most relevant tools before passing the query and appropriate tools to the agent. I did this because running multiple agents using the strands API on a raspberrypi is extremely computationally intensive and makes the pi reboot itself. Additionally, the slack tools and slack agent were deleted because they were too complicated and did not fit into the scope of this small project. The calendar tools were also refactored to interface with Google Calendar. All in all, the pipeline works, and this was a great project wherein I learned how to write code and set up a raspberry pi, use agents, and use audio I/O, all which definitely improved my abilities as a programmer. Expect a ship soon!"}, {"post_id": 17275, "ts": "2026-06-28T00:14:53Z", "hours": 2.6511, "text": "Updates on JADE! So! A lot of stuff has happened since the last devlog. I went to Boston last week which is why I wasn’t able to do too much, but I’ve done a lot with the actual hardware component the last couple days… I finished the first iteration of my tools. I have five mini-agents that control tools on the weather, web, calendar, writing (journals, notes, todos), and slack. These are controlled by a kind of global agent. Basically, it takes in the query from the user and selects one of the mini-agents to use, which will then select the tool to use. This was a kind of experiment to see how well agents would interface and control other agents, but it worked well from my testing! I was able to solder pins onto a mini-amplifier, connect a speaker to it, and connect that to my raspberry pi 4 using jumper cables. I wrote a test of the microphone in python and it makes noise! However, I think I must’ve messed up the soldering or something because the audio quality is pretty bad… I started on the Alexa/Siri-like component of the project by training an openwakeword wake-word model on the word “Jade” and am experimenting with having it work better in noisier environments. It does detect when I say “Jade”, which is awesome! Once I solder my mini-microphone and connect it to the pi, I should be able to run the full pipeline. Here are my next steps: Finish “Jade” Wake Word Model + test Train or implement speech to text model, test connection with global agent Connect + test microphone to see if speech to text and wake word run on rpi from mic Fix speaker or solder new speaker and test audio Connect agent response to speaker and test full pipeline"}, {"post_id": 8954, "ts": "2026-06-14T21:55:22Z", "hours": 2.2292, "text": "Writing tools complete- the agent is able to make, edit, and delete todo lists, notes and journals! Mostly tested so far. On the hardware side, I finished soldering everything so I am now able to connect amplifier and speaker to the pi, though not the microphone bc i dont have anough jumpers :( . will start writing software on the pi for connecting and using the speaker and amp."}, {"post_id": 6458, "ts": "2026-06-10T21:21:49Z", "hours": 2.2139, "text": "Finished slack agent/slackbot + tested. Able to read messages from channels and DMs, write and send messages in channels and DMs, reply to threads, get latest messages, search for a keyword."}, {"post_id": 3804, "ts": "2026-06-06T21:07:40Z", "hours": 1.7192, "text": "Web Tools class done + tested! Agent is able to search for a definition (webster dictionary), topic (wikipedia), current news headlines (news API), stock prices (yfinance) and summarize results!"}, {"post_id": 2428, "ts": "2026-06-04T22:07:52Z", "hours": 0.7111, "text": "Weather class completed + tested- agent able to tell current weather conditions and forecasts"}, {"post_id": 2347, "ts": "2026-06-04T19:52:43Z", "hours": 1.3569, "text": "Calendar class for my desktop assistant. Uses Strands API to create classes and methods whose tools the agent that connects to the rpi can use. This first class/tool the global agent can use is finished, a basic calendar to keep track of important stuff."}]...
|
Title: JADE by @justin_m_baratta | Stardance
Devl Title: JADE by @justin_m_baratta | Stardance
Devlogs:
Calendar class for my desktop assistant. Uses Strands API to create classes and methods whose tools the agent that connects to the rpi can use. This first class/tool the global agent can use is finished, a basic calendar to keep track of important stuff.
Weather class completed + tested- agent able to tell current weather conditions and forecasts
Web Tools class done + tested! Agent is able to search for a definition (webster dictionary), topic (wikipedia), current news headlines (news API), stock prices (yfinance) and summarize results!
Finished slack agent/slackbot + tested. Able to read messages from channels and DMs, write and send messages in channels and DMs, reply to threads, get latest messages, search for a keyword.
Writing tools complete- the agent is able to make, edit, and delete todo lists, notes and journals! Mostly tested so far. On the hardware side, I finished soldering everything so I am now able to connect amplifier and speaker to the pi, though not the microphone bc i dont have anough jumpers :( . will start writing software on the pi for connecting and using the speaker and amp.
Updates on JADE! So! A lot of stuff has happened since the last devlog. I went to Boston last week which is why I wasn’t able to do too much, but I’ve done a lot with the actual hardware component the last couple days… I finished the first iteration of my tools. I have five mini-agents that control tools on the weather, web, calendar, writing (journals, notes, todos), and slack. These are controlled by a kind of global agent. Basically, it takes in the query from the user and selects one of the mini-agents to use, which will then select the tool to use. This was a kind of experiment to see how well agents would interface and control other agents, but it worked well from my testing! I was able to solder pins onto a mini-amplifier, connect a speaker to it, and connect that to my raspberry pi 4 using jumper cables. I wrote a test of the microphone in python and it makes noise! However, I think I must’ve messed up the soldering or something because the audio quality is pretty bad… I started on the Alexa/Siri-like component of the project by training an openwakeword wake-word model on the word “Jade” and am experimenting with having it work better in noisier environments. It does detect when I say “Jade”, which is awesome! Once I solder my mini-microphone and connect it to the pi, I should be able to run the full pipeline. Here are my next steps: Finish “Jade” Wake Word Model + test Train or implement speech to text model, test connection with global agent Connect + test microphone to see if speech to text and wake word run on rpi from mic Fix speaker or solder new speaker and test audio Connect agent response to speaker and test full pipeline
JADE pretty much complete! Its been a while since the last devlog, I know. I’ve been really busy these past couple weeks of summer and have not been able to post, though I was able to work on JADE a little bit every day until its pretty much as done as it is now. To start, the pipeline of JADE is finished, tested, and functional. For hardware, using a mini microphone, mini amp, mini speaker, a breadboard, and lots of jumper wires, I was able to make my first “hardware project” connected to a raspberry pi. The pipeline of waiting for a wakeword (“JADE”), then activating once hearing the wakeword and using a speech to text engine to process audio (all using the microphone), then sending the request to an agent, which will output a message that will be played using text to speech on the mini speaker, all works! Some things I tweaked were, for one, the agentic architecture. Originally, I had a global agent that controlled 5 sub-agents that specialized in specific tasks (e.g. calendar agent, weather agent, etc…) but ended up switching to a one-agent structure that uses an embedding model beforehand to filter for the 5 most relevant tools before passing the query and appropriate tools to the agent. I did this because running multiple agents using the strands API on a raspberrypi is extremely computationally intensive and makes the pi reboot itself. Additionally, the slack tools and slack agent were deleted because they were too complicated and did not fit into the scope of this small project. The calendar tools were also refactored to interface with Google Calendar. All in all, the pipeline works, and this was a great project wherein I learned how to write code and set up a raspberry pi, use agents, and use audio I/O, all which definitely improved my abilities as a programmer. Expect a ship soon!
Ships:
I made JADE, a Siri/Alexa like desktop assistant that uses an rpi + agents to listen to and execute requests. If you say the wakeword “JADE”, then a request like “What’s the weather today?”, it will process the audio into text using the mini mic on the rpi and a speech-to-text engine, send it to an agent (whose tools are filtered with an embedding model then passed to it) and speak the response using the speaker connected to a mini-amp on the raspberry pi. It was difficult learning how to work with a raspberrypi, because this was my first time doing anything with an rpi. I had to teach myself how to solder, and connect wires to a breadboard to the raspberrypi. I’m proud of the work I’ve accomplished in this project, and it has taught me a lot about how to use a raspberrypi and work with agents!...
|
1793264112.9343827
|
1793350512.9343827
|
|
4196
|
Echoes of Aetheria by @SGAGOATED | Stardance
|
SGAGOATED
|
1
|
25.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-13T06:17:13Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I recently built a 2D survival game inspired by the building and exploration style of Fortnite and Minecraft. My biggest challenge was a technical issue with importing images, which required me to manually construct all game objects directly through code. Despite that hurdle, I am really proud of the final visual aesthetic and how polished the overall environment looks. To test the project, simply run the script in your local environment and use your mouse and keyboard to interact with the world.", "repo": "https://github.com/Chrislaina/Echoes-of-Aetheria", "demo": "https://echoesof-aetheria.netlify.app/"}]...
|
[{"post_id": 3140, "ts": "2026 [{"post_id": 3140, "ts": "2026-06-06T00:25:06Z", "hours": 20.5667, "text": "Added health bars and a beacon to protect from the zombies."}, {"post_id": 641, "ts": "2026-06-02T04:57:19Z", "hours": 4.0386, "text": "Just came back to the project. What I did: Organized my code, like 1500 lines of pure mess. Made the map generation work!!!"}]...
|
Title: Echoes of Aetheria by @SGAGOATED | Stardanc Title: Echoes of Aetheria by @SGAGOATED | Stardance
Devlogs:
Just came back to the project. What I did: Organized my code, like 1500 lines of pure mess. Made the map generation work!!!
Added health bars and a beacon to protect from the zombies.
Ships:
I recently built a 2D survival game inspired by the building and exploration style of Fortnite and Minecraft. My biggest challenge was a technical issue with importing images, which required me to manually construct all game objects directly through code. Despite that hurdle, I am really proud of the final visual aesthetic and how polished the overall environment looks. To test the project, simply run the script in your local environment and use your mouse and keyboard to interact with the world....
|
1793224370.2802567
|
1793310770.2802567
|
|
5962
|
Insert Coin by @hamdaraksa | Stardance
|
hamdaraksa
|
1
|
25.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-28T23:28:54Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created an arcade game that runs in the taskbar so it can be played flexibly.", "repo": "https://github.com/kyubiner/Insert-Coin", "demo": "https://drive.google.com/drive/folders/14mZBPSmJ7eGYQSYK2bIwrfAscWfY0NeD?usp=sharing"}]...
|
[{"post_id": 75038, "ts": "202 [{"post_id": 75038, "ts": "2026-09-28T23:17:30Z", "hours": 7.3944, "text": "My game is ready for now and can be installed from Google Drive :)"}, {"post_id": 73604, "ts": "2026-09-25T13:47:33Z", "hours": 8.2683, "text": "I’m creating various things here, such as a background for my game and a circle… It’s going to get even more interesting, and I can’t wait to try out the ship for the first time."}, {"post_id": 71051, "ts": "2026-09-20T07:46:05Z", "hours": 3.0236, "text": "Alright, so I’ve finished creating the first mini-game for my arcade game, GitHub Striker . The concept is similar to Blocky Breaker , but the levels are based on your GitHub contribution activity the more active you are, the easier the levels are to complete. And my next goal is to polish this mini-game."}, {"post_id": 70911, "ts": "2026-09-20T00:37:22Z", "hours": 6.5983, "text": "I’m making a block-breaker arcade game, but I’m thinking about making it more interesting hopefully, I can get it done in time."}]...
|
Title: Insert Coin by @hamdaraksa | Stardance
Dev Title: Insert Coin by @hamdaraksa | Stardance
Devlogs:
I’m making a block-breaker arcade game, but I’m thinking about making it more interesting hopefully, I can get it done in time.
Alright, so I’ve finished creating the first mini-game for my arcade game, GitHub Striker . The concept is similar to Blocky Breaker , but the levels are based on your GitHub contribution activity the more active you are, the easier the levels are to complete. And my next goal is to polish this mini-game.
I’m creating various things here, such as a background for my game and a circle… It’s going to get even more interesting, and I can’t wait to try out the ship for the first time.
My game is ready for now and can be installed from Google Drive :)
Ships:
I created an arcade game that runs in the taskbar so it can be played flexibly....
|
1793148716.8134832
|
1793235116.8134832
|
|
7285
|
A robot by @Uknowmeh01 | Stardance
|
Uknowmeh01
|
0
|
25.0
|
0
|
[]
|
[{"post_id": 30152, "ts": "202 [{"post_id": 30152, "ts": "2026-07-17T14:26:19Z", "hours": 25.0, "text": "actually i’m woprking on how the robot will be i try to build it in 3d"}]...
|
Title: A robot by @Uknowmeh01 | Stardance
Devlogs Title: A robot by @Uknowmeh01 | Stardance
Devlogs:
actually i’m woprking on how the robot will be i try to build it in 3d...
|
1792896445.5775256
|
1793760445.5775256
|
|
7292
|
veridian.study by @OrangJaguar | Stardance
|
OrangJaguar
|
1
|
25.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-01T04:05:21Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a full-stack learning platform that builds personalized study plans from a student’s notes and exam dates, diagnoses exactly why they are getting questions wrong across six failure modes, and serves targeted practice each day using an ever-growing concept knowledge map.", "repo": "https://github.com/OrangJaguar/Veridian", "demo": "https://veridian.study/"}]...
|
[{"post_id": 19729, "ts": "202 [{"post_id": 19729, "ts": "2026-07-01T03:47:49Z", "hours": 24.8344, "text": "Veridian — Devlog 01 Sophomore year I walked into AP Chemistry, AP US History, and AP Psychology on the same schedule and realized for the first time that I had no idea how to actually study. Not in a “I’m lazy” way — I’d just never had to before. A quick review the night before a test was always enough. Nobody told me that was going to stop working until it already had. I tried everything. Re-reading notes felt like going through the motions. YouTube videos felt productive right up until I closed the tab and remembered nothing. Nothing told me whether what I was doing was actually working until the test came back with a number on it, and by then it was too late to change anything. I looked for something better. What I found were tools built for students who already knew how to study. None of them knew my material, my exam date, or which concepts I genuinely didn’t understand versus which ones just needed one more pass. So eventually I just built the thing myself. That’s Veridian . What It Does You upload your notes, a textbook chapter, a study guide — whatever you actually have for your class. Veridian pulls out the knowledge structure inside that material and builds you a Journey : a personalized study plan that figures out what you don’t know, drills you on it, and tells you exactly where you stand before the exam. Not after. The whole system is driven by FSRS , the most accurate spaced repetition algorithm out there, calibrated to your actual exam deadline so your review timing is mathematically optimized. The AI runs on Gemini Flash . And it’s completely free, permanently. Not a launch promotion. The students who need this the most are usually the ones who can’t afford another subscription. How It’s Built This is the part I’ve spent the most time on. Here’s the core architecture: Journeys are the main container. Inside each Journey are Modules , which are individual concept units extracted from your source material. Every Module moves through three stages: Stage A — Learn : A guided Learning Guide walks you through the concept with plain-language explanations, worked examples, and embedded check-in questions after each section. It’s not passive reading — you have to answer something before you move on. Stage B — Practice : AI-generated questions that never repeat. Every session builds new questions from your actual source material, so you’re always being tested on understanding, not card recognition. Stage C — Mastery : Active recall with no scaffolding. This is where you prove you actually know it. Underneath all of it is the FSRS engine deciding exactly when each concept needs to surface again based on your performance history. It’s not random — it’s a mathematical model of how human memory actually works. The Home screen is built around a single question: what should I do right now? Every Journey with something due today shows up as an action card with the activity type, a time estimate, and a single launch button. You open the app and start. That’s it. There’s also a Community Library where students can publish their Journey so others can clone it, plug in their own deadline, and use it. You share the structure — your personal progress and data always stays yours. Tech React + Vite + Tailwind + Zustand + TanStack Query + Base44 for the backend. Gemini Flash for AI. FSRS for scheduling. Full LaTeX rendering throughout for math-heavy subjects. Where It’s At Veridian is currently closed-source . You can sign up for the live public version at veridian.study . Free forever. No paywall, no AI upsell, no premium tier. More devlogs coming as I keep iterating. — Sanskar"}]...
|
Title: veridian.study by @OrangJaguar | Stardance
Title: veridian.study by @OrangJaguar | Stardance
Devlogs:
Veridian — Devlog 01 Sophomore year I walked into AP Chemistry, AP US History, and AP Psychology on the same schedule and realized for the first time that I had no idea how to actually study. Not in a “I’m lazy” way — I’d just never had to before. A quick review the night before a test was always enough. Nobody told me that was going to stop working until it already had. I tried everything. Re-reading notes felt like going through the motions. YouTube videos felt productive right up until I closed the tab and remembered nothing. Nothing told me whether what I was doing was actually working until the test came back with a number on it, and by then it was too late to change anything. I looked for something better. What I found were tools built for students who already knew how to study. None of them knew my material, my exam date, or which concepts I genuinely didn’t understand versus which ones just needed one more pass. So eventually I just built the thing myself. That’s Veridian . What It Does You upload your notes, a textbook chapter, a study guide — whatever you actually have for your class. Veridian pulls out the knowledge structure inside that material and builds you a Journey : a personalized study plan that figures out what you don’t know, drills you on it, and tells you exactly where you stand before the exam. Not after. The whole system is driven by FSRS , the most accurate spaced repetition algorithm out there, calibrated to your actual exam deadline so your review timing is mathematically optimized. The AI runs on Gemini Flash . And it’s completely free, permanently. Not a launch promotion. The students who need this the most are usually the ones who can’t afford another subscription. How It’s Built This is the part I’ve spent the most time on. Here’s the core architecture: Journeys are the main container. Inside each Journey are Modules , which are individual concept units extracted from your source material. Every Module moves through three stages: Stage A — Learn : A guided Learning Guide walks you through the concept with plain-language explanations, worked examples, and embedded check-in questions after each section. It’s not passive reading — you have to answer something before you move on. Stage B — Practice : AI-generated questions that never repeat. Every session builds new questions from your actual source material, so you’re always being tested on understanding, not card recognition. Stage C — Mastery : Active recall with no scaffolding. This is where you prove you actually know it. Underneath all of it is the FSRS engine deciding exactly when each concept needs to surface again based on your performance history. It’s not random — it’s a mathematical model of how human memory actually works. The Home screen is built around a single question: what should I do right now? Every Journey with something due today shows up as an action card with the activity type, a time estimate, and a single launch button. You open the app and start. That’s it. There’s also a Community Library where students can publish their Journey so others can clone it, plug in their own deadline, and use it. You share the structure — your personal progress and data always stays yours. Tech React + Vite + Tailwind + Zustand + TanStack Query + Base44 for the backend. Gemini Flash for AI. FSRS for scheduling. Full LaTeX rendering throughout for math-heavy subjects. Where It’s At Veridian is currently closed-source . You can sign up for the live public version at veridian.study . Free forever. No paywall, no AI upsell, no premium tier. More devlogs coming as I keep iterating. — Sanskar
Ships:
I built a full-stack learning platform that builds personalized study plans from a student’s notes and exam dates, diagnoses exactly why they are getting questions wrong across six failure modes, and serves targeted practice each day using an ever-growing concept knowledge map....
|
1793202526.74725
|
1793288926.74725
|
|
10026
|
Astrophotography Tools by @jdszekeres | Stardance
|
jdszekeres
|
4
|
25.0
|
296
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-26T02:50:06Z", "hours": 6.0, "multiplier": 18.57, "payout": 106, "blessing": "neutral", "text": "In this ship, I: Finally got to fixing the UI, making it more space-themed (i.e stars on every page background with comets, zero-g floating cards, comsic latte color scheme) Added planets and other visible celestial objects to the FOV preview Made the Bortle Scale indicator work by building my own light pollution map from the CU Boulder VIIRS dataset Check out this photo of the moon I took!", "repo": "https://github.com/jdszekeres/astrophoto-tools", "demo": "https://astrophoto-tools.vercel.app/"}, {"ship_num": 2, "ts": "2026-08-14T04:48:00Z", "hours": 4.0, "multiplier": 18.98, "payout": 74, "blessing": "neutral", "text": "I added FOV preview and hyperfocal distance calculator tools to the site, as well as adding the Milky Way to the star chart. Lastly, I added a guide to help newer astrophotographers get comfortable with astrophotography. Here’s a photo I took of some star trails in the Dolomites.", "repo": "https://github.com/jdszekeres/astrophoto-tools", "demo": "https://astrophoto-tools.vercel.app/"}, {"ship_num": 3, "ts": "2026-07-10T00:22:25Z", "hours": 8.0, "multiplier": 6.68, "payout": 51, "blessing": "neutral", "text": "I added a star chart tool and a stacking calculator, as well as a recomended settings for major camera brands to my astrophotography tools PWA. One of my biggest challenges was the star chart generator. I wanted it to mirror other star charts with major stars and constellations. I spent a lot of time entering constellations by hand before realizing there was a dataset that already detailed exactly that. The photo below was taken using the info from these tools.", "repo": "https://github.com/jdszekeres/astrophoto-tools", "demo": "https://astrophoto-tools.vercel.app/"}, {"ship_num": 4, "ts": "2026-06-17T00:00:58Z", "hours": 7.0, "multiplier": 9.67, "payout": 65, "blessing": "neutral", "text": "I made a set of Astrophotography tools to use in the field. They include an equivalent exposure calculator, Bortle scale finder and reference, sun and moon position calculator, and 400 rule tool. They all work offline and are mobile PWA compatible.", "repo": "https://github.com/jdszekeres/astrophoto-tools", "demo": "https://astrophoto-tools.vercel.app/"}]...
|
[{"post_id": 54750, "ts": "202 [{"post_id": 54750, "ts": "2026-08-25T20:51:59Z", "hours": 0.6228, "text": "Add celestial objects to FOV preview Changelog 2a13b7a"}, {"post_id": 54703, "ts": "2026-08-25T19:32:54Z", "hours": 2.1147, "text": "I fixed the Bortle Scale by building my own light pollution map from scratch using a light pollution scattering kernel using the CU Boulder VIIRS dataset. Previously, the dataset I used didn’t have enough labels for each bortle scale and had country borders, which screwed with what the expected light pollution is."}, {"post_id": 52039, "ts": "2026-08-22T02:31:44Z", "hours": 1.6469, "text": "I’ve taken your feedback from the last ship and I’ve started work on a more space-y theme for this project. So far, I’ve switched up the color scheme to a dark blueish-purple and comsic latte (The average color of the universe). I also added a procderual starfield with comets in the background. Also, check out the homepage, the page cards also float around like they’re in microgravity!"}, {"post_id": 51910, "ts": "2026-08-21T20:20:31Z", "hours": 1.3114, "text": "I did a lot of space saving (pun intended) to reduce the offline cache size by about 0.7 Mb to 3.8 Mb by better compressing images and minifying code and JSON. I also had to do an emergency fix for mobile, where it wasn’t working on certain phones."}, {"post_id": 46707, "ts": "2026-08-14T04:43:59Z", "hours": 0.7883, "text": "Added a guide to Astrophotography tools to make it more beginner friendly."}, {"post_id": 46686, "ts": "2026-08-14T03:54:11Z", "hours": 1.1489, "text": "Added milky way to star chart! It looks kinda cool how it wraps off the page and it definitely wasn’t because it was too hard to remove it."}, {"post_id": 44083, "ts": "2026-08-09T16:37:45Z", "hours": 1.9692, "text": "I added a FOV preview, which shows how the 110 messier objects appear in photos based on your camera sensor size and lens focal length. It’s very useful for deep space imaging."}, {"post_id": 25614, "ts": "2026-07-10T00:19:31Z", "hours": 0.7542, "text": "I added final UI improvements ahead of shipping and reduced redundant code"}, {"post_id": 24540, "ts": "2026-07-08T05:06:40Z", "hours": 1.165, "text": "Added a stacking calculator to show how well a stack of images will look based on their signal to noise ratio"}, {"post_id": 24435, "ts": "2026-07-08T00:07:28Z", "hours": 0.3561, "text": "Did some compression work to bring the download size down from 16 MB to only 4 MB. Mostly compressing images, but also making a new catalog, reduced catalog for stars."}, {"post_id": 24421, "ts": "2026-07-07T23:27:02Z", "hours": 2.5344, "text": "So, it turns out I didn’t need to enter all those lines manually, there are saved files out there for it."}, {"post_id": 19001, "ts": "2026-06-30T05:07:42Z", "hours": 1.0906, "text": "I got more constellations (Hydra, Bootes) and added offical International Astronomy Union names when applicable"}, {"post_id": 18804, "ts": "2026-06-30T00:38:53Z", "hours": 0.6019, "text": "Ha, I added orion and aries. This took forever b/c orion has so many connections"}, {"post_id": 18698, "ts": "2026-06-29T21:42:10Z", "hours": 1.2553, "text": "I’m working on an offline star chart generator. I’ve been working with Astronomy Engine and the Yale Bright Stars Catalog to find the proper motion of the stars. I’ve only added the Big Dipper, but I plan add more of the 88 IAU constellations."}, {"post_id": 10320, "ts": "2026-06-16T23:58:16Z", "hours": 0.3439, "text": "I actually used my project. Here is a shot I took of Bishop Pass in the Eastern Sierra Nevada mountains."}, {"post_id": 5820, "ts": "2026-06-09T19:10:37Z", "hours": 0.7731, "text": "Worked on getting the project deployed to Vercel (A lot of headaches with relative and absolute paths)"}, {"post_id": 5265, "ts": "2026-06-08T23:46:36Z", "hours": 2.5844, "text": "Add redlight mode to prevent eyes from getting burned while adjusting to the dark"}, {"post_id": 4544, "ts": "2026-06-07T21:44:54Z", "hours": 1.5022, "text": "I spent way too much time debugging how to use the data from lightpollution.it to find the light pollution index at a coordinate. Turns out they were using an off-centered projection that I used ChatGPT to decode (x = (lon + 126.44) / 0.03382; y = (-20.28 * lat) + 1862.4;)"}, {"post_id": 3918, "ts": "2026-06-07T01:07:11Z", "hours": 1.5881, "text": "Created the equivalent exposures tool to calculate values for each part of the exposure triangle based on other values."}]...
|
Title: Astrophotography Tools by @jdszekeres | Sta Title: Astrophotography Tools by @jdszekeres | Stardance
Devlogs:
Created the equivalent exposures tool to calculate values for each part of the exposure triangle based on other values.
I spent way too much time debugging how to use the data from lightpollution.it to find the light pollution index at a coordinate. Turns out they were using an off-centered projection that I used ChatGPT to decode (x = (lon + 126.44) / 0.03382; y = (-20.28 * lat) + 1862.4;)
Add redlight mode to prevent eyes from getting burned while adjusting to the dark
Worked on getting the project deployed to Vercel (A lot of headaches with relative and absolute paths)
I actually used my project. Here is a shot I took of Bishop Pass in the Eastern Sierra Nevada mountains.
I’m working on an offline star chart generator. I’ve been working with Astronomy Engine and the Yale Bright Stars Catalog to find the proper motion of the stars. I’ve only added the Big Dipper, but I plan add more of the 88 IAU constellations.
Ha, I added orion and aries. This took forever b/c orion has so many connections
I got more constellations (Hydra, Bootes) and added offical International Astronomy Union names when applicable
So, it turns out I didn’t need to enter all those lines manually, there are saved files out there for it.
Did some compression work to bring the download size down from 16 MB to only 4 MB. Mostly compressing images, but also making a new catalog, reduced catalog for stars.
Added a stacking calculator to show how well a stack of images will look based on their signal to noise ratio
I added final UI improvements ahead of shipping and reduced redundant code
I added a FOV preview, which shows how the 110 messier objects appear in photos based on your camera sensor size and lens focal length. It’s very useful for deep space imaging.
Added milky way to star chart! It looks kinda cool how it wraps off the page and it definitely wasn’t because it was too hard to remove it.
Added a guide to Astrophotography tools to make it more beginner friendly.
I did a lot of space saving (pun intended) to reduce the offline cache size by about 0.7 Mb to 3.8 Mb by better compressing images and minifying code and JSON. I also had to do an emergency fix for mobile, where it wasn’t working on certain phones.
I’ve taken your feedback from the last ship and I’ve started work on a more space-y theme for this project. So far, I’ve switched up the color scheme to a dark blueish-purple and comsic latte (The average color of the universe). I also added a procderual starfield with comets in the background. Also, check out the homepage, the page cards also float around like they’re in microgravity!
I fixed the Bortle Scale by building my own light pollution map from scratch using a light pollution scattering kernel using the CU Boulder VIIRS dataset. Previously, the dataset I used didn’t have enough labels for each bortle scale and had country borders, which screwed with what the expected light pollution is.
Add celestial objects to FOV preview Changelog 2a13b7a
Ships:
I made a set of Astrophotography tools to use in the field. They include an equivalent exposure calculator, Bortle scale finder and reference, sun and moon position calculator, and 400 rule tool. They all work offline and are mobile PWA compatible.
I added a star chart tool and a stacking calculator, as well as a recomended settings for major camera brands to my astrophotography tools PWA. One of my biggest challenges was the star chart generator. I wanted it to mirror other star charts with major stars and constellations. I spent a lot of time entering constellations by hand before realizing there was a dataset that already detailed exactly that. The photo below was taken using the info from these tools.
I added FOV preview and hyperfocal distance calculator tools to the site, as well as adding the Milky Way to the star chart. Lastly, I added a guide to help newer astrophotographers get comfortable with astrophotography. Here’s a photo I took of some star trails in the Dolomites.
In this ship, I: Finally got to fixing the UI, making it more space-themed (i.e stars on every page background with comets, zero-g floating cards, comsic latte color scheme) Added planets and other visible celestial objects to the FOV preview Made the Bortle Scale indicator work by building my own light pollution map from the CU Boulder VIIRS dataset Check out this photo of the moon I took!...
|
1793134355.952949
|
1793220755.952949
|
|
12008
|
Ace of Sharks Grappler Combat Robot by @Abracadabr Ace of Sharks Grappler Combat Robot by @Abracadabra3 | Stardance...
|
Abracadabra3
|
3
|
25.0
|
129
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-10T20:15:08Z", "hours": 0.0, "multiplier": 5.0, "payout": 2, "blessing": "neutral", "text": "Ace of Sharks 3.1-2 is a grappler style combat robot that grabs and lifts other combat robots into the air and flips them over. Ace of Sharks competes in the Plastic Antweight (1lb) division. Ace of Sharks continues to get better and better after each event. Since the last ship, I have tried to fix the weight issue from last event by reducing the thickness of the wheel guards since they did not take much damage. This ship is because of the new stardust bonus for hardware projects shipped with a new video. I have shipped Ace of Sharks before, but this is the first since the announcement that said you can re-ship with a new video to get your stardust topped up if you leave a note for your reviewer. I have edited a new video and poster for this ship. Thanks! :)", "repo": "https://GitHub.com/abracadabra3/ace_of_sharks", "demo": ""}, {"ship_num": 2, "ts": "2026-08-25T00:19:53Z", "hours": 3.0, "multiplier": 5.0, "payout": 16, "blessing": "neutral", "text": "Ace of Sharks 3.2 is a grappler style 1lb plastic antweight combat robot! It uses a compound grab-and-lift motion powered by a single servo to lift opponents into the air and flip them over. Since the last ship, I have added wheel guards and strengthened the weapon assembly because both of those kept falling off in the last event. I also added more traction, or grip, to the wheels by coating them in rubber cement. A challenge was staying under weight with the additions, but using a lighter plastic for some parts got it to work. The demo video is a highlight video from the tournament, so enjoy watching!", "repo": "https://GitHub.com/abracadabra3/ace_of_sharks", "demo": ""}, {"ship_num": 3, "ts": "2026-07-23T20:52:07Z", "hours": 22.0, "multiplier": 5.0, "payout": 111, "blessing": "neutral", "text": "Ace of Sharks is a grappler combat robot in the 1 lb plastic antweight division. A grappler combat robot is designed to grab and then lift opponents into the air, like Claw Viper from the TV show and YouTube channel BattleBots. Haven’t heard of combat robotics before? It’s basically custom RC cars with custom saws fighting each other to the death. A challenging part of designing this version of Ace of Sharks was having an idea in my head of what I wanted it to look like and figuring out how to create that idea. This is the first time I have done that, so getting this version of Ace of Sharks designed and working is something I am proud of accomplishing. Getting to see it do lift opponents at a tournament was definitely a moment I was proud of as well. The demo video is a highlight video from my first tournament, so enjoy watching!", "repo": "https://GitHub.com/abracadabra3/ace_of_sharks", "demo": ""}]...
|
[{"post_id": 76914, "ts": "202 [{"post_id": 76914, "ts": "2026-10-05T02:22:46Z", "hours": 0.3647, "text": "Shipping again! With the new hardware rules, I can ship Ace of Sharks again with a new video and get more than the (previously) fixed rate of 5 stardust/hour! (Thanks, Hack Club staff! ) While I don’t have another tournament before Stardance ends, I have some changes in mind to make version 3.3. So far, I have decreased the thickness of the wheel guards to reduce weight because I was very close to the limit and the wheel guards didn’t really take any damage. They will still be able to protect the wheels from at least one hit, which could still be enough to save a fight. I will also be looking into liquid latex coatings for the foam wheels, which is something other builders mentioned for traction on wood floor arenas."}, {"post_id": 53311, "ts": "2026-08-23T19:41:46Z", "hours": 0.6167, "text": "It doesn’t break anymore! I brought Ace of Sharks to a tournament and it held up way better than last time. I made the nubs a separate piece so that it won’t break along layer lines anymore, and the weapon assembly never fell of! The wheel guards worked and I broke 0 motors. The rubber cement coating on the wheels worked decent with a new coat after every match. I asked other builders and liquid latex over rubber cement is common. I tied four other robots for 5th place and had a great time talking with and learning from other builders :)"}, {"post_id": 48371, "ts": "2026-08-16T18:06:19Z", "hours": 0.585, "text": "Wheel guards! I added new wheel guards to Ace of Sharks (don’t mind the bright red, it’s just a test with random filament) and tested a bunch of wheel combos. The wheel guard print worked the first time (!), and seems ready. In the Duramic PLA+ filament, Ace of Sharks should be underweight and ready for a possible tournament next week! I tried rubber cement coated wheels to try to improve traction, and it worked really well. I also added rubber bands wrapped around the rubber cement, and that improves traction as well. That is probably what I will do in the tournament, and we will see how it works in a fight. Rubber cement does pick up dust, but a damp cloth will wipe it off and not significantly reduce stickiness. (I forgot to lapse the testing and chassis swap during the Stardance huddle, oops… )"}, {"post_id": 36521, "ts": "2026-07-28T18:04:53Z", "hours": 1.9308, "text": "Next iteration: Ace of Sharks 3.2 So far, I have: Strengthened the weapon assembly Added wheel guards Changed the shape of the shark arm to hopefully reach over drum spinners I also decided I want to improve wheel traction (the grippiness of the wheel) to hopefully get more pushing power. I don’t have time to get funding, design, and iterate a cast polyurethane wheel for this tournament, so I decided I will get rubber cement and experiment with gluing rubber bands, electrical tape (sticky side out), and latex balloons to the foam wheels and see what works best."}, {"post_id": 33692, "ts": "2026-07-23T20:20:22Z", "hours": 1.7231, "text": "Ace of Sharks 3.1 Tournament! Shipwrights, please read the note at the end of this devlog. I brought Ace of Sharks 3.1 to a tournament and it went pretty well! I defiantly found some bugs that need fixed (like the whole weapon assembly falling off) but I was still able to lift other robots and the concept worked great. There was no four wheel drive for this iteration, but that will come soon as well as wheel guards and a stronger attachment point for the lifter assembly. I am ready to ship, with the tournament highlight video as the demo video for Ace of Sharks. Stay tuned to Ace of Sharks as I will continue to improve Ace of Sharks 3.2 to prepare for another tournament before Stardance is over! Edit for shipwrights because I can’t edit the ship post: I hope bonuses will retroactively apply as well as payout increases. I have a logo I make into stickers to give out a tournaments (a new one for v3 and I have three other Ace of Sharks logos I wish I could show you but I can’t add more pictures to a devlog), I edited a highlight video myself (that’s the demo video) and I designed the poster myself. I worked really hard on making this project do well in voting, so I am disappointed at the fixed 5 stardust an hour payout rate. The fixed payout makes sense with the way Stardance is formatted; it’s just disappointing because of how hard I worked on this project, trying to get 15-20 stardust an hour."}, {"post_id": 26932, "ts": "2026-07-12T00:31:25Z", "hours": 6.8061, "text": "4wd with belts is hard. I think most if not all of the time here was spent working on trying to get 4wd to work. The first belt I tried had gear teeth as the belt tooth and they did not mesh around the turn, as well as being way to small. The second one had self-designed timing belt teeth on it (following a tutorial) and it still did not mesh. Then I changed the design and it didn’t fit again, but the new belt and the old pulley DID mesh! So then I had a belt that did mesh but was too tight; I could barely get it on and the motors didn’t turn when the belt was on. Then I made it larger and it turned only when going fast, but not slow. After that, I asked in the combat-robotics Slack channel and got an idea to cut out milk jug caps for friction reducing washers. That made it work when going slow but not when going fast. (Yes, this is opposite of what it did before.) My conclusion is that the regular bolts make too much friction and when the shoulder bolts get here (AFTER the tournament) hopefully the belts will work. Sigh."}, {"post_id": 21118, "ts": "2026-07-02T22:20:02Z", "hours": 1.3506, "text": "I did the first drive test of Ace of Sharks 3.1 and had some fun throwing beanie babies around! The drive works amazing. With previous 2wd versions, driving backwards would not work well at all. This 4wd version fixes that issue, and backwards works just as well as forwards. I also began redesigning a logo for stickers to hand out at the tournament! I like having one with an image of my robot on it, so I got that one redesigned from v2 Ace of Sharks. I had to use some regular M3 bolts instead of the shoulder bolts for the wheel axels, but I think it will be good enough for the tournament!"}, {"post_id": 19285, "ts": "2026-06-30T15:37:28Z", "hours": 3.5619, "text": "So when I went to order the shoulder bolts off Amazon, shipping takes a couple weeks and they will not get here in time for the tournament. Sigh. I did find a listing on Home Depot for regular bolts that might work (or at least be good enough for now). Hopefully I can find something that works for the tournament. I also began making the GitHub repository for Ace of Sharks and wrote a README."}, {"post_id": 14533, "ts": "2026-06-23T17:56:39Z", "hours": 1.9039, "text": "It works! (Mostly!) There are a few silly bugs (like putting the screw pass through hole on the part it should screw into and vise versa) but it is assembled and can lift an old chassis iteration! I fixed the bugs in the CAD file and added some more decorations to the top plate. I was surprised at how few bugs there were in the first iteration. I have not tested the 4wd part yet because I don’t have the shoulder bolts yet, but that will come soon."}, {"post_id": 12865, "ts": "2026-06-21T02:11:39Z", "hours": 0.3283, "text": "Before I started the 3D printing the first robot parts, I discovered three four important things I forgot to add in the CAD. 1. I forgot screw holes to attach the top plate to the chassis! 2. I discovered that the gear on the shark arm was intersecting with the top plate. 3. There should be a wall around the gear inside the chassis to keep wires out of it. While writing this, I realized that I need a slot in the wall to have room for the servo wire."}, {"post_id": 12278, "ts": "2026-06-20T01:40:08Z", "hours": 3.1042, "text": "Five weeks before the next tournament, I decided to start over from scratch and completely redesign Ace of Sharks. Why? Since Ace of Sharks is now four wheel drive, it doesn’t matter whether the drive motors are in the front or the back of the robot. According to the RioBotz book , you want the center of mass as far back on the robot as possible. Reversing the position of all the electronics will move the heavy servo to the back of the robot and do just that. Instead of trying to do this and fix all the stuff that will break in the current Fusion design, it was easier to just start over from scratch. Next up: 3D print the parts and see what obvious problems I missed! — Thank you @IvyMycelia for telling be about Markdown!"}, {"post_id": 7182, "ts": "2026-06-12T00:02:15Z", "hours": 1.9036, "text": "I made Ace of Sharks a four wheel drive robot! I modified a wheel hub from Printables to have a pulley for a belt on it, but Fusion did not like working with a mesh converted to a solid and I could not finish it. So I had to start over with Fingertech twist hubs (files free on their website) and added the pulley to the twist part of the twist hubs. When I was making the belt, I was doing a bunch of math to get the size and it turned out way too big. Then I realized the number I calculated was the circumference and I was using it as the diameter. That fixed it! Next, I will need to print out the parts and see what problems I missed in the CAD."}, {"post_id": 6473, "ts": "2026-06-10T21:48:34Z", "hours": 1.6478, "text": "I made more room in the back of the robot for pinewood derby car weights (to make the robot drive better on two wheels) then changed the robot to have four wheels (which eliminates the need for the weights). I modified the washer part of a wheel hub on Printables to have a pulley for a belt to drive the front wheels from the back wheels. The file imported into Fusion way bigger than it should have been, which made me do it over twice when I realized. Found an Amazon listing for shoulder bolts which will be axels for the front wheels. I also modified the front attachments to touch the floor with the new wheels."}]...
|
Title: Ace of Sharks Grappler Combat Robot by @Abr Title: Ace of Sharks Grappler Combat Robot by @Abracadabra3 | Stardance
Devlogs:
I made more room in the back of the robot for pinewood derby car weights (to make the robot drive better on two wheels) then changed the robot to have four wheels (which eliminates the need for the weights). I modified the washer part of a wheel hub on Printables to have a pulley for a belt to drive the front wheels from the back wheels. The file imported into Fusion way bigger than it should have been, which made me do it over twice when I realized. Found an Amazon listing for shoulder bolts which will be axels for the front wheels. I also modified the front attachments to touch the floor with the new wheels.
I made Ace of Sharks a four wheel drive robot! I modified a wheel hub from Printables to have a pulley for a belt on it, but Fusion did not like working with a mesh converted to a solid and I could not finish it. So I had to start over with Fingertech twist hubs (files free on their website) and added the pulley to the twist part of the twist hubs. When I was making the belt, I was doing a bunch of math to get the size and it turned out way too big. Then I realized the number I calculated was the circumference and I was using it as the diameter. That fixed it! Next, I will need to print out the parts and see what problems I missed in the CAD.
Five weeks before the next tournament, I decided to start over from scratch and completely redesign Ace of Sharks. Why? Since Ace of Sharks is now four wheel drive, it doesn’t matter whether the drive motors are in the front or the back of the robot. According to the RioBotz book , you want the center of mass as far back on the robot as possible. Reversing the position of all the electronics will move the heavy servo to the back of the robot and do just that. Instead of trying to do this and fix all the stuff that will break in the current Fusion design, it was easier to just start over from scratch. Next up: 3D print the parts and see what obvious problems I missed! — Thank you @IvyMycelia for telling be about Markdown!
Before I started the 3D printing the first robot parts, I discovered three four important things I forgot to add in the CAD. 1. I forgot screw holes to attach the top plate to the chassis! 2. I discovered that the gear on the shark arm was intersecting with the top plate. 3. There should be a wall around the gear inside the chassis to keep wires out of it. While writing this, I realized that I need a slot in the wall to have room for the servo wire.
It works! (Mostly!) There are a few silly bugs (like putting the screw pass through hole on the part it should screw into and vise versa) but it is assembled and can lift an old chassis iteration! I fixed the bugs in the CAD file and added some more decorations to the top plate. I was surprised at how few bugs there were in the first iteration. I have not tested the 4wd part yet because I don’t have the shoulder bolts yet, but that will come soon.
So when I went to order the shoulder bolts off Amazon, shipping takes a couple weeks and they will not get here in time for the tournament. Sigh. I did find a listing on Home Depot for regular bolts that might work (or at least be good enough for now). Hopefully I can find something that works for the tournament. I also began making the GitHub repository for Ace of Sharks and wrote a README.
I did the first drive test of Ace of Sharks 3.1 and had some fun throwing beanie babies around! The drive works amazing. With previous 2wd versions, driving backwards would not work well at all. This 4wd version fixes that issue, and backwards works just as well as forwards. I also began redesigning a logo for stickers to hand out at the tournament! I like having one with an image of my robot on it, so I got that one redesigned from v2 Ace of Sharks. I had to use some regular M3 bolts instead of the shoulder bolts for the wheel axels, but I think it will be good enough for the tournament!
4wd with belts is hard. I think most if not all of the time here was spent working on trying to get 4wd to work. The first belt I tried had gear teeth as the belt tooth and they did not mesh around the turn, as well as being way to small. The second one had self-designed timing belt teeth on it (following a tutorial) and it still did not mesh. Then I changed the design and it didn’t fit again, but the new belt and the old pulley DID mesh! So then I had a belt that did mesh but was too tight; I could barely get it on and the motors didn’t turn when the belt was on. Then I made it larger and it turned only when going fast, but not slow. After that, I asked in the combat-robotics Slack channel and got an idea to cut out milk jug caps for friction reducing washers. That made it work when going slow but not when going fast. (Yes, this is opposite of what it did before.) My conclusion is that the regular bolts make too much friction and when the shoulder bolts get here (AFTER the tournament) hopefully the belts will work. Sigh.
Ace of Sharks 3.1 Tournament! Shipwrights, please read the note at the end of this devlog. I brought Ace of Sharks 3.1 to a tournament and it went pretty well! I defiantly found some bugs that need fixed (like the whole weapon assembly falling off) but I was still able to lift other robots and the concept worked great. There was no four wheel drive for this iteration, but that will come soon as well as wheel guards and a stronger attachment point for the lifter assembly. I am ready to ship, with the tournament highlight video as the demo video for Ace of Sharks. Stay tuned to Ace of Sharks as I will continue to improve Ace of Sharks 3.2 to prepare for another tournament before Stardance is over! Edit for shipwrights because I can’t edit the ship post: I hope bonuses will retroactively apply as well as payout increases. I have a logo I make into stickers to give out a tournaments (a new one for v3 and I have three other Ace of Sharks logos I wish I could show you but I can’t add more pictures to a devlog), I edited a highlight video myself (that’s the demo video) and I designed the poster myself. I worked really hard on making this project do well in voting, so I am disappointed at the fixed 5 stardust an hour payout rate. The fixed payout makes sense with the way Stardance is formatted; it’s just disappointing because of how hard I worked on this project, trying to get 15-20 stardust an hour.
Next iteration: Ace of Sharks 3.2 So far, I have: Strengthened the weapon assembly Added wheel guards Changed the shape of the shark arm to hopefully reach over drum spinners I also decided I want to improve wheel traction (the grippiness of the wheel) to hopefully get more pushing power. I don’t have time to get funding, design, and iterate a cast polyurethane wheel for this tournament, so I decided I will get rubber cement and experiment with gluing rubber bands, electrical tape (sticky side out), and latex balloons to the foam wheels and see what works best.
Wheel guards! I added new wheel guards to Ace of Sharks (don’t mind the bright red, it’s just a test with random filament) and tested a bunch of wheel combos. The wheel guard print worked the first time (!), and seems ready. In the Duramic PLA+ filament, Ace of Sharks should be underweight and ready for a possible tournament next week! I tried rubber cement coated wheels to try to improve traction, and it worked really well. I also added rubber bands wrapped around the rubber cement, and that improves traction as well. That is probably what I will do in the tournament, and we will see how it works in a fight. Rubber cement does pick up dust, but a damp cloth will wipe it off and not significantly reduce stickiness. (I forgot to lapse the testing and chassis swap during the Stardance huddle, oops… )
It doesn’t break anymore! I brought Ace of Sharks to a tournament and it held up way better than last time. I made the nubs a separate piece so that it won’t break along layer lines anymore, and the weapon assembly never fell of! The wheel guards worked and I broke 0 motors. The rubber cement coating on the wheels worked decent with a new coat after every match. I asked other builders and liquid latex over rubber cement is common. I tied four other robots for 5th place and had a great time talking with and learning from other builders :)
Shipping again! With the new hardware rules, I can ship Ace of Sharks again with a new video and get more than the (previously) fixed rate of 5 stardust/hour! (Thanks, Hack Club staff! ) While I don’t have another tournament before Stardance ends, I have some changes in mind to make version 3.3. So far, I have decreased the thickness of the wheel guards to reduce weight because I was very close to the limit and the wheel guards didn’t really take any damage. They will still be able to protect the wheels from at least one hit, which could still be enough to save a fight. I will also be looking into liquid latex coatings for the foam wheels, which is something other builders mentioned for traction on wood floor arenas.
Ships:
Ace of Sharks is a grappler combat robot in the 1 lb plastic antweight division. A grappler combat robot is designed to grab and then lift opponents into the air, like Claw Viper from the TV show and YouTube channel BattleBots. Haven’t heard of combat robotics before? It’s basically custom RC cars with custom saws fighting each other to the death. A challenging part of designing this version of Ace of Sharks was having an idea in my head of what I wanted it to look like and figuring out how to create that idea. This is the first time I have done that, so getting this version of Ace of Sharks designed and working is something I am proud of accomplishing. Getting to see it do lift opponents at a tournament was definitely a moment I was proud of as well. The demo video is a highlight video from my first tournament, so enjoy watching!
Ace of Sharks 3.2 is a grappler style 1lb plastic antweight combat robot! It uses a compound grab-and-lift motion powered by a single servo to lift opponents into the air and flip them over. Since the last ship, I have added wheel guards and strengthened the weapon assembly because both of those kept falling off in the last event. I also added more traction, or grip, to the wheels by coating them in rubber cement. A challenge was staying under weight with the additions, but using a lighter plastic for some parts got it to work. The demo video is a highlight video from the tournament, so enjoy watching!
Ace of Sharks 3.1-2 is a grappler style combat robot that grabs and lifts other combat robots into the air and flips them over. Ace of Sharks competes in the Plastic Antweight (1lb) division. Ace of Sharks continues to get better and better after each event. Since the last ship, I have tried to fix the weight issue from last event by reducing the thickness of the wheel guards since they did not take much damage. This ship is because of the new stardust bonus for hardware projects shipped with a new video. I have shipped Ace of Sharks before, but this is the first since the announcement that said you can re-ship with a new video to get your stardust topped up if you leave a note for your reviewer. I have edited a new video and poster for this ship. Thanks! :)...
|
1793264178.3419833
|
1793350578.3419833
|
|
12505
|
Cybertron-S0 by @deepm33 | Stardance
|
deepm33
|
1
|
25.0
|
208
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-09T16:05:28Z", "hours": 21.0, "multiplier": 12.86, "payout": 208, "blessing": "neutral", "text": "Made a webos based on the concept transformers and futuristic way of an webos. Added a pixel cat which follows the cursor in the whole webos, it has an energon radio so that people can listen to the best japanese songs. It also has a feature to change between many live wallpaper which makes the webos experience muchh better. checkk out other features too, ya can doomscrool in the webos too😁", "repo": "https://github.com/DeepMane33/webos", "demo": "https://cybertron-os.vercel.app/"}]...
|
[{"post_id": 27332, "ts": "202 [{"post_id": 27332, "ts": "2026-07-12T20:23:07Z", "hours": 4.0, "text": "So basically someone told me to upgrade my cybertron -os in a more cyber and futuristic vibe so that it matches the style, so i made it a little transformer and cyber ahh feeling webos. I redesigned all the app icons which took a lot of my time a cause i didn’t knew what and how should i re-design them, so i thought for too long and came up with these icons. These icons look way more futuristic and holographic than before and i guess much better too. Also i changed the cyber-cat into a robot so that the vibes would match the cyber effect and not like the previous one 🥀🥀. That 0.06 lag factor means the robot only moves 6% of the remaining distance toward your cursor each frame. So it never quite catches up — it smoothly glides and drifts. When you stop moving, it slowly settles into place near your cursor. When you move fast, it trails behind like it’s trying to keep up. Added a SVG analog clock with smooth second hand using requestAnimationFrame for millisecond precision, digital display, timezone info, plus tabs for a stopwatch and countdown timer. This clock and the calender has made the UI a lot better than before.Also made a search bar, this one sits right at the top of the desktop. It’s a slim, always-visible search field with a magnifying glass icon. You just click on it and start typing to filter your apps. It’s the quick, “I know what I want” kind of search. No shortcuts needed — just eyes on it and type. So when you set a static image as the wallpaper, Cybertron OS doesn’t just slap it on the background — it gives it a subtle parallax effect that makes it feel alive. The wallpaper image is loaded into a #desktop-bg div and scaled up to 1.1x (110% size), so it’s slightly bigger than the screen. That extra 10% is the buffer that allows it to move without showing edges. Then, every time you move your mouse, the wallpaper shifts in the opposite direction of your cursor by up to 20 pixels on each axis. So if you move your mouse right, the wallpaper slides left — like you’re looking through a window and the background is further away. This creates a layered depth effect: the orbs feel closer to you, the wallpaper feels farther away, and your cursor is in the middle. The whole thing has a transition: transform 0.3s ease-out so it doesn’t feel jerky — it smoothly glides to its new position. When you switch to a video wallpaper, the parallax turns off because a video is already moving on its own. It’s a small touch, but it makes the desktop feel way more premium than a static background image ever would. So about the taskbar in Cybertron OS is inspired by Windows but with its own flavor. It sits at the bottom of the screen and it is fixed there, 48 pixels tall, with a heavy blur behind it (backdrop-filter: blur(50px)) so it looks like frosted glass over whatever’s behind it. There’s a subtle white gradient line along the top edge and a faint amber glow along the bottom — it gives it that premium “this bar is floating” feel. After making all these changes the cybertron-os has became a different OS, i hope yall like this!!!!"}, {"post_id": 25333, "ts": "2026-07-09T15:42:50Z", "hours": 3.0, "text": "Bruhhh finally i can say that i have completed my cybertron-os. I think i have done most of the think i can come up with and have added all the necessary things that are found in a webos. The pixel cat that follows your cursor around the screen i have added some features in it too and now its a whole interactive pet: Single click → pin/unpin the cat in place Double-click → pet the cat (triggers meow + purr + floating hearts animation) The cat flips direction based on mouse movement It has a smooth follow-with-lag animation So here’s the thing. Previously I didn’t had a single audio file. No .mp3s. No .wavs. Nothing. So there were no sound feature in the webos which made it kinda plain so i thought i should add some’. There’s this thing called the Web Audio API built into every browser. It lets you create sounds using something called oscillators — basically digital instruments that generate tones. You tell it a pitch, a wave shape, and how long to play, and it just… makes the sound.The reason the sounds don’t just sound like boring beeps is because of something called exponentialRampToValueAtTime. Yeah I know, sounds like a villain’s weapon. But what it does is slide the pitch from one frequency to another over time. So instead of just “BEEP” you get “bewwwoop” — the sound goes UP or DOWN smoothly. That’s what gives it that swooshy, futuristic feel. I looked at all the color comnbinations with the wallpaper and i saw that the miku wallpaper looks very futuristic and classical just as i want with purple colour. So i set them as the default and if you want you can change the wallpaper and the theme colour as your preferences. The holo archieve which is the gallery of my cybertron-os was legit empty. I thought and thought and then i added some pictures of transformers movies and our fav bumble bee.. In the cybertron store we were not able to download any apps and it was just and empty ahh store, so yeahh i added some apps that can actually be installed and used in the webos and then i added some good looking app icons for them too cause i didn’t wanted them to look too plain."}, {"post_id": 24660, "ts": "2026-07-08T12:01:48Z", "hours": 2.0, "text": "Finalyyy i added the optimus prime wallpaper in the Cybertron os which now makes it look like a real tranaformer fan made webos. I really want that this cybertron os look as much as futuristic as well as classical as it can. i made many changes then before and also i redesigned the app icons for the cybertron os so that they look classic and technical not just plain app icon. There were few things which were needed to be fixed like there was no option to stop a short video in the shorts section and also no option for mute and unmute like it got so annoying when i wanted to stop the video or mute when i was testing the webos. So I Added those features and now the short section runs smooth videos like i expect it to. Even the theme changing option was broken like clicking on “Autobot” (red theme) did nothing, it was suppost to make everything go like legit RED but lmao no. The accent color stayed purple and i Spentway too long on this than i should have originally. The old wallpaper app was just a header + a 2-column grid of cards and looked like a prototype. No visual hierarchy, no preview of the current wallpaper, no hover feedback. To fix this i rebuilt renderWallpaperApp() and the entire .wp-app CSS section: added a hero section at the top (180px) that shows either the current video wallpaper playing on loop, or a gradient placeholder for the default. this gives instant visual feedback on what’s active. added an overlay on the hero with the current wallpaper name and “Wallpaper Studio” title and made the transition smoother. Also in the settings, it had 4 nav items: Faction Theme, Display, Wallpapers, About. The Display section had brightness slider, font size, and a widget toggle. the brightness and font controls didn’t actually do anything (they set inline styles that got overwritten on re-render). dead features. So i removed the display option which didn’t changed anything and merged the working features in the faction. I also redeigned the energon radio which is the songs section in the cybertron os in that the big album cover art (240px tall) that takes up the top portion. There’s a gradient fade at the bottom so it blends into the dark background. The cover image is blurred behind the main art, giving it a premium vibe. Controls — three buttons in a row: previous, play/pause (big white circle), next. Buttons scale up slightly on hover. Few more changes and we are good to go."}, {"post_id": 21024, "ts": "2026-07-02T19:54:15Z", "hours": 14.0, "text": "So i have made the cybertron os and i just took a look at the desktop screen, and honestly, the vibe is unmatched. the whole interface looks sick—that deep, dark metallic aesthetic with the striking purple accents looks exactly like a high-tech console you’d find inside the nemesis or deep within a decepticon base. It’s finally starting to feel like a fully functioning battlestation instead of just a static page. i’ve spent way too many unholy hours getting this dark, metallic decepticon-purple aesthetic right, and honestly, i’m so proud of how far it’s come. here is the breakdown of what is running on the mainframe right now: - the 3d video wallpapers are a whole cheat code. they are fully changeable with this slick floating control panel. you can legit change your wallpaper animations to go from miku just going through your screen to a mythical ahh dragon. - draggability actually works!! you can grab any of the app windows—like the gorgeous translucent glass panel calculator—and drag them all over the desktop without the window manager having a mental breakdown. the snapping is incredibly satisfying, and the z-indexing behaves itself when stacking windows. - I added an active search bar on the desktop that will take you to google or any youtube video because sometimes you need to query the actual internet. You can type right into the google search input, hit enter and it does exactly what you expect. Useful for when you're trying to figure out how to do your math equations at 3 AM. - let's talk about the pixel cat. i like cats so now there is a literal cyber-cat sitting on the desktop that trails your cursor. it has a slight elastic delay so it smoothly glides behind the mouse like a tiny holographic familiar following you through the mainframe. and yes, you can actually click to pet it and it fires off a literal heart-burst animation! ❤️🐾 - the music player actually has some of the finest work of music by the japanes pop, it has got the best japanese songs you will ever need to hear. HTML5 audio handles the entire play/pause/progress tracking natively under the hood. - a simulated files app that lets you navigate through directory nodes directly on the desktop to organize your decepticon battle plans and yeah this still needs an upgrade i guess. -Of course how can i forget the doomscrolling shorts app. yes, i actually did it. i built a dedicated video player with a scrollable feed of vertical reels. It starts with the audio ON, supports real-time pausing when you unfocus the window (so it doesn't keep playing in the background like an annoying browser tab), and lets you cycle through random clips of transformers edits and other random aesthetic shorts whenever your brain needs a cheap dopamine hit. -The whole look is incredibly polished. we've got custom SVG icons sitting inside the dock instead of cheap-looking emojis, a glassmorphic top-bar system showing the time and battery life, and desaturated purple accents that hold the entire sci-fi interface together."}]...
|
Title: Cybertron-S0 by @deepm33 | Stardance
Devlo Title: Cybertron-S0 by @deepm33 | Stardance
Devlogs:
So i have made the cybertron os and i just took a look at the desktop screen, and honestly, the vibe is unmatched. the whole interface looks sick—that deep, dark metallic aesthetic with the striking purple accents looks exactly like a high-tech console you’d find inside the nemesis or deep within a decepticon base. It’s finally starting to feel like a fully functioning battlestation instead of just a static page. i’ve spent way too many unholy hours getting this dark, metallic decepticon-purple aesthetic right, and honestly, i’m so proud of how far it’s come. here is the breakdown of what is running on the mainframe right now: - the 3d video wallpapers are a whole cheat code. they are fully changeable with this slick floating control panel. you can legit change your wallpaper animations to go from miku just going through your screen to a mythical ahh dragon. - draggability actually works!! you can grab any of the app windows—like the gorgeous translucent glass panel calculator—and drag them all over the desktop without the window manager having a mental breakdown. the snapping is incredibly satisfying, and the z-indexing behaves itself when stacking windows. - I added an active search bar on the desktop that will take you to google or any youtube video because sometimes you need to query the actual internet. You can type right into the google search input, hit enter and it does exactly what you expect. Useful for when you're trying to figure out how to do your math equations at 3 AM. - let's talk about the pixel cat. i like cats so now there is a literal cyber-cat sitting on the desktop that trails your cursor. it has a slight elastic delay so it smoothly glides behind the mouse like a tiny holographic familiar following you through the mainframe. and yes, you can actually click to pet it and it fires off a literal heart-burst animation! ❤️🐾 - the music player actually has some of the finest work of music by the japanes pop, it has got the best japanese songs you will ever need to hear. HTML5 audio handles the entire play/pause/progress tracking natively under the hood. - a simulated files app that lets you navigate through directory nodes directly on the desktop to organize your decepticon battle plans and yeah this still needs an upgrade i guess. -Of course how can i forget the doomscrolling shorts app. yes, i actually did it. i built a dedicated video player with a scrollable feed of vertical reels. It starts with the audio ON, supports real-time pausing when you unfocus the window (so it doesn't keep playing in the background like an annoying browser tab), and lets you cycle through random clips of transformers edits and other random aesthetic shorts whenever your brain needs a cheap dopamine hit. -The whole look is incredibly polished. we've got custom SVG icons sitting inside the dock instead of cheap-looking emojis, a glassmorphic top-bar system showing the time and battery life, and desaturated purple accents that hold the entire sci-fi interface together.
Finalyyy i added the optimus prime wallpaper in the Cybertron os which now makes it look like a real tranaformer fan made webos. I really want that this cybertron os look as much as futuristic as well as classical as it can. i made many changes then before and also i redesigned the app icons for the cybertron os so that they look classic and technical not just plain app icon. There were few things which were needed to be fixed like there was no option to stop a short video in the shorts section and also no option for mute and unmute like it got so annoying when i wanted to stop the video or mute when i was testing the webos. So I Added those features and now the short section runs smooth videos like i expect it to. Even the theme changing option was broken like clicking on “Autobot” (red theme) did nothing, it was suppost to make everything go like legit RED but lmao no. The accent color stayed purple and i Spentway too long on this than i should have originally. The old wallpaper app was just a header + a 2-column grid of cards and looked like a prototype. No visual hierarchy, no preview of the current wallpaper, no hover feedback. To fix this i rebuilt renderWallpaperApp() and the entire .wp-app CSS section: added a hero section at the top (180px) that shows either the current video wallpaper playing on loop, or a gradient placeholder for the default. this gives instant visual feedback on what’s active. added an overlay on the hero with the current wallpaper name and “Wallpaper Studio” title and made the transition smoother. Also in the settings, it had 4 nav items: Faction Theme, Display, Wallpapers, About. The Display section had brightness slider, font size, and a widget toggle. the brightness and font controls didn’t actually do anything (they set inline styles that got overwritten on re-render). dead features. So i removed the display option which didn’t changed anything and merged the working features in the faction. I also redeigned the energon radio which is the songs section in the cybertron os in that the big album cover art (240px tall) that takes up the top portion. There’s a gradient fade at the bottom so it blends into the dark background. The cover image is blurred behind the main art, giving it a premium vibe. Controls — three buttons in a row: previous, play/pause (big white circle), next. Buttons scale up slightly on hover. Few more changes and we are good to go.
Bruhhh finally i can say that i have completed my cybertron-os. I think i have done most of the think i can come up with and have added all the necessary things that are found in a webos. The pixel cat that follows your cursor around the screen i have added some features in it too and now its a whole interactive pet: Single click → pin/unpin the cat in place Double-click → pet the cat (triggers meow + purr + floating hearts animation) The cat flips direction based on mouse movement It has a smooth follow-with-lag animation So here’s the thing. Previously I didn’t had a single audio file. No .mp3s. No .wavs. Nothing. So there were no sound feature in the webos which made it kinda plain so i thought i should add some’. There’s this thing called the Web Audio API built into every browser. It lets you create sounds using something called oscillators — basically digital instruments that generate tones. You tell it a pitch, a wave shape, and how long to play, and it just… makes the sound.The reason the sounds don’t just sound like boring beeps is because of something called exponentialRampToValueAtTime. Yeah I know, sounds like a villain’s weapon. But what it does is slide the pitch from one frequency to another over time. So instead of just “BEEP” you get “bewwwoop” — the sound goes UP or DOWN smoothly. That’s what gives it that swooshy, futuristic feel. I looked at all the color comnbinations with the wallpaper and i saw that the miku wallpaper looks very futuristic and classical just as i want with purple colour. So i set them as the default and if you want you can change the wallpaper and the theme colour as your preferences. The holo archieve which is the gallery of my cybertron-os was legit empty. I thought and thought and then i added some pictures of transformers movies and our fav bumble bee.. In the cybertron store we were not able to download any apps and it was just and empty ahh store, so yeahh i added some apps that can actually be installed and used in the webos and then i added some good looking app icons for them too cause i didn’t wanted them to look too plain.
So basically someone told me to upgrade my cybertron -os in a more cyber and futuristic vibe so that it matches the style, so i made it a little transformer and cyber ahh feeling webos. I redesigned all the app icons which took a lot of my time a cause i didn’t knew what and how should i re-design them, so i thought for too long and came up with these icons. These icons look way more futuristic and holographic than before and i guess much better too. Also i changed the cyber-cat into a robot so that the vibes would match the cyber effect and not like the previous one 🥀🥀. That 0.06 lag factor means the robot only moves 6% of the remaining distance toward your cursor each frame. So it never quite catches up — it smoothly glides and drifts. When you stop moving, it slowly settles into place near your cursor. When you move fast, it trails behind like it’s trying to keep up. Added a SVG analog clock with smooth second hand using requestAnimationFrame for millisecond precision, digital display, timezone info, plus tabs for a stopwatch and countdown timer. This clock and the calender has made the UI a lot better than before.Also made a search bar, this one sits right at the top of the desktop. It’s a slim, always-visible search field with a magnifying glass icon. You just click on it and start typing to filter your apps. It’s the quick, “I know what I want” kind of search. No shortcuts needed — just eyes on it and type. So when you set a static image as the wallpaper, Cybertron OS doesn’t just slap it on the background — it gives it a subtle parallax effect that makes it feel alive. The wallpaper image is loaded into a #desktop-bg div and scaled up to 1.1x (110% size), so it’s slightly bigger than the screen. That extra 10% is the buffer that allows it to move without showing edges. Then, every time you move your mouse, the wallpaper shifts in the opposite direction of your cursor by up to 20 pixels on each axis. So if you move your mouse right, the wallpaper slides left — like you’re looking through a window and the background is further away. This creates a layered depth effect: the orbs feel closer to you, the wallpaper feels farther away, and your cursor is in the middle. The whole thing has a transition: transform 0.3s ease-out so it doesn’t feel jerky — it smoothly glides to its new position. When you switch to a video wallpaper, the parallax turns off because a video is already moving on its own. It’s a small touch, but it makes the desktop feel way more premium than a static background image ever would. So about the taskbar in Cybertron OS is inspired by Windows but with its own flavor. It sits at the bottom of the screen and it is fixed there, 48 pixels tall, with a heavy blur behind it (backdrop-filter: blur(50px)) so it looks like frosted glass over whatever’s behind it. There’s a subtle white gradient line along the top edge and a faint amber glow along the bottom — it gives it that premium “this bar is floating” feel. After making all these changes the cybertron-os has became a different OS, i hope yall like this!!!!
Ships:
Made a webos based on the concept transformers and futuristic way of an webos. Added a pixel cat which follows the cursor in the whole webos, it has an energon radio so that people can listen to the best japanese songs. It also has a feature to change between many live wallpaper which makes the webos experience muchh better. checkk out other features too, ya can doomscrool in the webos too😁...
|
1792882064.565094
|
1793746064.565094
|
|
14692
|
PastelNet:OS by @nic | Stardance
|
nic
|
2
|
25.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-25T01:46:38Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "PastelNET://OS – A cyberpunk & vaporwave-inspired operating system that runs directly on your browser. Includes 7 applications; including a calculator, gallery, notes, and music player. No need to download any scripts or plugins, as it runs directly on the web, hosted by Github Pages. This is my first attempt at a functional website using JavaScript, designed as a tribute to my love for Cyberpunk Edgerunners. Application List: Welcome Menu: introductory message User Menu: user name input Messages: interactive fake email Music Player: play music Calculator: calculate basic math problems Notes: write notes Gallery: browse through photos Hand-coded using vanilla HTML, CSS, and JS, no frameworks. Built for the Stardance WebOS 2 mission.", "repo": "https://github.com/sodahaunted/pastelnet.os", "demo": "https://sodahaunted.github.io/pastelnet.os/"}, {"ship_num": 2, "ts": "2026-08-11T04:31:25Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A custom OS built with HTML, CSS and JavaScript. Inspired by old vaporwave and cyberpunk styles. Currently features 3 working applications, including a welcome menu, user menu and messages. A beginner web developer’s first attempt at JavaScript presented as a homage to Cyberpunk 2077.", "repo": "https://github.com/sodahaunted/pastelnet.os", "demo": "https://sodahaunted.github.io/pastelnet.os/"}]...
|
[{"post_id": 82503, "ts": "202 [{"post_id": 82503, "ts": "2026-10-25T01:26:02Z", "hours": 2.5319, "text": "pastelnetOS #9 - the completed version After many hours of reformatting code, designing application windows, and crying over CSS, I’ve finally finished PastelNetOS. It’s been a long time in the works, but I’m happy it reached a stage where I feel confident enough to ship it. Final Additions: I finished up the last three applications: the music player, notes, and gallery. I had some issues with the music player and figuring out how to get it functioning properly, but I soon figured it out after digging through a few GitHub repos and Google searches. I originally intended to make a dedicated Spotify-inspired MP3 player, but I ran out of time and just decided to make it as simple and functional as possible. The notes app is also a bit wonky, but what matters is that it works. It’s not completely unusable, but I don’t ever see myself using it in an urgent situation (lol) Challenges: I mentioned it before on a previous devlog, but I was running out of motivation to continue with this project near the end. I realized I didn’t enjoy it as much as I’d hoped, and I found myself working on other projects instead. I think it was mainly my lack of creativity and the repetitiveness of the site, and realizing I didn’t have enough prior coding knowledge to achieve some of the things I wanted to build. School was also a huge factor, as I hadn’t anticipated getting so busy in just a few weeks. I kind of underestimated how much free time I’d have to work on side projects in the first place. In conclusion, I’m glad that my biggest project for Stardance is finally complete, and I can get my certificate for 30 hours of approved work!"}, {"post_id": 80283, "ts": "2026-10-17T03:05:46Z", "hours": 3.3061, "text": "PastelnetOS #8 - calculator app! Additions made my first fully interactive application for PastelOS (with some help from YouTube) learned a bit more about JavaScript Challenges low-key kind of losing my motivation for this project; Stardance is almost over, but I’ve barely made any progress in the past month maybe set a time limit for myself? See how much progress I can make in (x) amount of hours and just finish it before it gets dragged on too long been too focused on making it look ‘polished’ instead of adding new features I feel like my devlogs have been pretty empty compared to some of my other projects, but that’s mainly due to programming feeling really repetitive and me feeling like I’m at the point where minor bugs and issues aren’t noteworthy enough to write down anymore. I see them more like a regular part of programming, and they can be easily fixed in a few minutes"}, {"post_id": 59247, "ts": "2026-08-31T22:41:34Z", "hours": 3.08, "text": "pastelnetOS #7 - nothingburger another long wait . . . Additions: The user menu finally works. I wrote an entire JS script by myself for once and its functional!! the name that you input shows up afterwards when you recieve the welcome message. Challenges: Learning JavaScript is very difficult. I have #code channel on slack and my 1 friend that knows JS on speed dial I tried making a sidebar but it still didnt work I want the sidebar to have the mp3 player, calculator, and notes to make things look clean i might add a terminal but lowk idk how to program that"}, {"post_id": 52692, "ts": "2026-08-22T23:36:38Z", "hours": 2.6781, "text": "pastelOS #6 - refined UI (1.0.6) PastelNetOS patch notes feat new icons (this one has like 0 progress done): Additions: Made some new app icons for the main layout! I didn’t really like the old ones since the font and shape(?) felt a bit out of place, and I want it to look cohesive as possible Also fixed some colouring and styling errors here and there; trying to make it look polished (though there are still only 3 apps) fixed some internal code that messed up the CSS during bug fixing Challenges: This was originally going to be a JavaScript-heavy update with more interactive features, but I still couldn’t figure out any of the code… I think I might need to go back to elementary coding classes because it took me an hour just to change the colour of the window when clicked and I didn’t even like it so I just reverted it back later 💔 I still have to fix the z-index issue and make selected windows a different colour, but JS has genuinely been a pain to learn from scratch so in the span of almost 3 hours i literally only changed the app icons. 😐 at least i got dynamic close buttons now 😭"}, {"post_id": 44991, "ts": "2026-08-11T03:51:25Z", "hours": 2.3292, "text": "pastelOS #5 - 1.0.4 feat email the messages/email app is now functional! if you click the scam link, it sends you to a fake blue screen page. updates: finally fixed topbar font updated README file updates welcome menu text to match better with the OS theme and ui better hover indicator when selecting an app working user menu i can’t believe it took me 12 hours to just make 3 apps 💔💔💔 i need to lock in for webOS 2"}, {"post_id": 39880, "ts": "2026-08-03T04:53:34Z", "hours": 2.0519, "text": "pastelOS #4 - (1.0.3 FIXED DRAG) after many hours and days, i finally fixed it. the windows are draggable. what a journey new features (alpha 1.0.3): text boxes are now transparent, inspired by liquid glass app icons are now presented in a list-type menu, similar to the cyberpunk 2077 menu in-game!! new background (old one was crusty) timer finally works DRAGGING WINDOWS FINALLY WORKS got rid of the goofy ahh ‘currently active’ text on the topbar i dont even know how i got them to work. i made a thousand and one commits on github and somehow the stars aligned and my code is working. haha ha ha ha it took me an embarrassingly long amount of time to fix this but like… as long as it works bro"}, {"post_id": 38483, "ts": "2026-07-31T21:50:04Z", "hours": 3.3581, "text": "pastelOS #3 - i hate github years will be taken off my life for how long it took for me to fix my darn github page. i hate using it. i would’ve stuck to neocities if a git repo wasnt required for stardance projects. anyways, i fixed the random merge issue i had where i accidentally opened too many branches and my dev branch and main branch were out of sync. im just gonna do everything on my main branch now. nuclear level threat incoming. for some reason my github codespace preview is different than what shows up on my site so i gotta fix that. sucks because my window drag script finally works but it doesnt even show up properly 😭 ❓ but for now, im gonna take a break demo link (alpha 1.0.1: https://sodahaunted.github.io/pastelnet.os/ )"}, {"post_id": 37955, "ts": "2026-07-31T00:30:31Z", "hours": 2.1869, "text": "pastelOS #2 still working on the os jam tutorial! got a pretty scuffed layout, the photos are wip for now i’m just playing around with the css to make it look nicer heres the absolute alpha 1.0 version of pastelOS (its ugly ik) finally fixed the javascript file that didn’t let me close the window properly?? it was because my js file loaded faster than my index.html which was a huge problem this is why you code everything in one long index.html instead of breaking it up lmao i want this to still be cyberpunk/vaporwave themed but im figuring out the ui and realizing it might be more advanced than what i know how to make i made some physical sketches to try and find the theme and plan out apps i wanna make a type of fortune teller would be pretty cool based on an rng system, higher number results in a good fortune while low number results in a bad one maybe a scam email app based on those fake messages you get in cyberpunk 2077 (?) i want an mp3 player 100%, idk what songs to put on it tho maybe some 2022 drift phonk for old times sake 😭 😭 😭 TBH i dont even know what i’m going to name this OS yet, pastelnet seems kinda off but CyberOS already exists its been over a week and im still not done this aaaa"}, {"post_id": 27852, "ts": "2026-07-13T19:04:39Z", "hours": 2.6103, "text": "pastelOS #1 playing around with github (first time using it) and css while finishing the jam tutorial its coming along well but hopefully i can fix it so it looks better later"}]...
|
Title: PastelNet:OS by @nic | Stardance
Devlogs:
Title: PastelNet:OS by @nic | Stardance
Devlogs:
pastelOS #1 playing around with github (first time using it) and css while finishing the jam tutorial its coming along well but hopefully i can fix it so it looks better later
pastelOS #2 still working on the os jam tutorial! got a pretty scuffed layout, the photos are wip for now i’m just playing around with the css to make it look nicer heres the absolute alpha 1.0 version of pastelOS (its ugly ik) finally fixed the javascript file that didn’t let me close the window properly?? it was because my js file loaded faster than my index.html which was a huge problem this is why you code everything in one long index.html instead of breaking it up lmao i want this to still be cyberpunk/vaporwave themed but im figuring out the ui and realizing it might be more advanced than what i know how to make i made some physical sketches to try and find the theme and plan out apps i wanna make a type of fortune teller would be pretty cool based on an rng system, higher number results in a good fortune while low number results in a bad one maybe a scam email app based on those fake messages you get in cyberpunk 2077 (?) i want an mp3 player 100%, idk what songs to put on it tho maybe some 2022 drift phonk for old times sake 😭 😭 😭 TBH i dont even know what i’m going to name this OS yet, pastelnet seems kinda off but CyberOS already exists its been over a week and im still not done this aaaa
pastelOS #3 - i hate github years will be taken off my life for how long it took for me to fix my darn github page. i hate using it. i would’ve stuck to neocities if a git repo wasnt required for stardance projects. anyways, i fixed the random merge issue i had where i accidentally opened too many branches and my dev branch and main branch were out of sync. im just gonna do everything on my main branch now. nuclear level threat incoming. for some reason my github codespace preview is different than what shows up on my site so i gotta fix that. sucks because my window drag script finally works but it doesnt even show up properly 😭 ❓ but for now, im gonna take a break demo link (alpha 1.0.1: https://sodahaunted.github.io/pastelnet.os/ )
pastelOS #4 - (1.0.3 FIXED DRAG) after many hours and days, i finally fixed it. the windows are draggable. what a journey new features (alpha 1.0.3): text boxes are now transparent, inspired by liquid glass app icons are now presented in a list-type menu, similar to the cyberpunk 2077 menu in-game!! new background (old one was crusty) timer finally works DRAGGING WINDOWS FINALLY WORKS got rid of the goofy ahh ‘currently active’ text on the topbar i dont even know how i got them to work. i made a thousand and one commits on github and somehow the stars aligned and my code is working. haha ha ha ha it took me an embarrassingly long amount of time to fix this but like… as long as it works bro
pastelOS #5 - 1.0.4 feat email the messages/email app is now functional! if you click the scam link, it sends you to a fake blue screen page. updates: finally fixed topbar font updated README file updates welcome menu text to match better with the OS theme and ui better hover indicator when selecting an app working user menu i can’t believe it took me 12 hours to just make 3 apps 💔💔💔 i need to lock in for webOS 2
pastelOS #6 - refined UI (1.0.6) PastelNetOS patch notes feat new icons (this one has like 0 progress done): Additions: Made some new app icons for the main layout! I didn’t really like the old ones since the font and shape(?) felt a bit out of place, and I want it to look cohesive as possible Also fixed some colouring and styling errors here and there; trying to make it look polished (though there are still only 3 apps) fixed some internal code that messed up the CSS during bug fixing Challenges: This was originally going to be a JavaScript-heavy update with more interactive features, but I still couldn’t figure out any of the code… I think I might need to go back to elementary coding classes because it took me an hour just to change the colour of the window when clicked and I didn’t even like it so I just reverted it back later 💔 I still have to fix the z-index issue and make selected windows a different colour, but JS has genuinely been a pain to learn from scratch so in the span of almost 3 hours i literally only changed the app icons. 😐 at least i got dynamic close buttons now 😭
pastelnetOS #7 - nothingburger another long wait . . . Additions: The user menu finally works. I wrote an entire JS script by myself for once and its functional!! the name that you input shows up afterwards when you recieve the welcome message. Challenges: Learning JavaScript is very difficult. I have #code channel on slack and my 1 friend that knows JS on speed dial I tried making a sidebar but it still didnt work I want the sidebar to have the mp3 player, calculator, and notes to make things look clean i might add a terminal but lowk idk how to program that
PastelnetOS #8 - calculator app! Additions made my first fully interactive application for PastelOS (with some help from YouTube) learned a bit more about JavaScript Challenges low-key kind of losing my motivation for this project; Stardance is almost over, but I’ve barely made any progress in the past month maybe set a time limit for myself? See how much progress I can make in (x) amount of hours and just finish it before it gets dragged on too long been too focused on making it look ‘polished’ instead of adding new features I feel like my devlogs have been pretty empty compared to some of my other projects, but that’s mainly due to programming feeling really repetitive and me feeling like I’m at the point where minor bugs and issues aren’t noteworthy enough to write down anymore. I see them more like a regular part of programming, and they can be easily fixed in a few minutes
pastelnetOS #9 - the completed version After many hours of reformatting code, designing application windows, and crying over CSS, I’ve finally finished PastelNetOS. It’s been a long time in the works, but I’m happy it reached a stage where I feel confident enough to ship it. Final Additions: I finished up the last three applications: the music player, notes, and gallery. I had some issues with the music player and figuring out how to get it functioning properly, but I soon figured it out after digging through a few GitHub repos and Google searches. I originally intended to make a dedicated Spotify-inspired MP3 player, but I ran out of time and just decided to make it as simple and functional as possible. The notes app is also a bit wonky, but what matters is that it works. It’s not completely unusable, but I don’t ever see myself using it in an urgent situation (lol) Challenges: I mentioned it before on a previous devlog, but I was running out of motivation to continue with this project near the end. I realized I didn’t enjoy it as much as I’d hoped, and I found myself working on other projects instead. I think it was mainly my lack of creativity and the repetitiveness of the site, and realizing I didn’t have enough prior coding knowledge to achieve some of the things I wanted to build. School was also a huge factor, as I hadn’t anticipated getting so busy in just a few weeks. I kind of underestimated how much free time I’d have to work on side projects in the first place. In conclusion, I’m glad that my biggest project for Stardance is finally complete, and I can get my certificate for 30 hours of approved work!
Ships:
A custom OS built with HTML, CSS and JavaScript. Inspired by old vaporwave and cyberpunk styles. Currently features 3 working applications, including a welcome menu, user menu and messages. A beginner web developer’s first attempt at JavaScript presented as a homage to Cyberpunk 2077.
PastelNET://OS – A cyberpunk & vaporwave-inspired operating system that runs directly on your browser. Includes 7 applications; including a calculator, gallery, notes, and music player. No need to download any scripts or plugins, as it runs directly on the web, hosted by Github Pages. This is my first attempt at a functional website using JavaScript, designed as a tribute to my love for Cyberpunk Edgerunners. Application List: Welcome Menu: introductory message User Menu: user name input Messages: interactive fake email Music Player: play music Calculator: calculate basic math problems Notes: write notes Gallery: browse through photos Hand-coded using vanilla HTML, CSS, and JS, no frameworks. Built for the Stardance WebOS 2 mission....
|
1793127331.9321063
|
1793213731.9321063
|
|
16334
|
FUNNY MIC! by @purpld | Stardance
|
purpld
|
1
|
25.0
|
437
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T04:06:33Z", "hours": 25.0, "multiplier": 18.35, "payout": 437, "blessing": "neutral", "text": "I made an easily configurable microphone hot swapping tool! Inspired by the lovingly horrible microphone of the Logitech C922 webcam. My project allows you to configure a microphone (for example, your webcam’s mic) and record a hotkey, and then swap whenever and wherever (and quickly!) by holding down your hotkey. Your system’s default microphone will be set to your chosen device when held, and return to whatever it was previously when you let go. And it works on both Windows and Linux! This seems quite simple on paper, and it probably SHOULD be, but a couple of things made this actually quite challenging: I wanted FUNNY MIC to be cross-platform! Nobody should be stopped from having horrible mic quality. Audio APIs on different OS’s, however, are VERY different! I learned how to use conditional compilation in Rust, and most importantly, how to use it wisely, to make an internal API that works and changes depending on your platform. This also meant I had to learn how these platform-specific APIs work and how to use them! Most importantly, this was my first time using Tauri as the backend framework for a Rust project! That in and of itself was quite challenging, but I’ve found that Tauri is nice to work with! I also chose React as my frontend UI framework, which I have used before, but it has been quite some time. I’m proud of this silly little over-engineered thing I managed to make with the tools that I’ve been given! I think this is a program that I’ll actually be continuing to use too (to mess with my friends, of course), which is nice. To test this project, you will need to download and run an installer for your platform. If you’re on NixOS, please see the README for more instructions; I’ve included a package for you too!", "repo": "https://github.com/hpenney2/funnymic", "demo": "https://github.com/hpenney2/funnymic/releases/latest"}]...
|
[{"post_id": 17282, "ts": "202 [{"post_id": 17282, "ts": "2026-06-28T00:21:22Z", "hours": 7.7528, "text": "V1! (last devlog before ship?) Wew, I should have probably made a devlog in between my last one! Windows support I have added Windows support! Fun fact, I hate working with the Windows API, and I’ve just learned that! In fairness, it’s a littleee bit awkward working with an API that is very obviously native to C, even if the Rust library gives it some Rustiness, but still, I dislike it. Greatly. Anyways, the important part is it works! And I had to use an undocumented Windows API to do a basic task (setting the default audio device). Nice. Cool! Awesome. (i’ve been trying to switch to Linux for a reason) Thankfully, someone already implemented that in the com-policy-config crate so I don’t have to find and try to convert a header file myself. Saving the config! After Windows support was done, the rest was relatively easy! Tauri has another plugin that makes it a little bit easier to manage a JSON store file and make it accessible to anything that has an AppHandle . config.json now stores the selected swap device and keybind, and these get automatically reloaded on startup. Lovely! oh hey uh, how are we building this thing, exactly? I use NixOS as my main operating system, so I already made a default.nix and shell.nix for running here. However, it doesn’t seem I can properly compile the regular bundles for .deb., .rpm, and AppImages (easily, anyway), and it would be tedious for every release anyways! Thankfully, tauri-action already exists, too! I made a GitHub Actions workflow that will compile and publish installers for both Windows and Linux when I make a new release. It’s pretty neat stuff, actually! README, After All This also means I finally took the time to make a nice README. It was nice to take a small step back to kind of overview this project. A fun little over-engineered thing this is, something that could have stayed a CLI app with only Linux support and nobody would have blinked, but here we are! It’s definitely been good practice for both my backend (Rust!) and frontend skills. I will definitely be using Tauri again in the future! Hello, from v1.0.0! (and Windows!)"}, {"post_id": 16471, "ts": "2026-06-26T20:22:37Z", "hours": 11.2572, "text": "“It’ll be easy!” NO IT WON’T BE ASDSFSDGDG ahem. What I mean to say is that the UI is done and ready! I think it looks relatively nice, simple, and most importantly, is functional . I, somehow, managed to log 11 HOURS , of which a significiant part of was not doing the UI, actually! It was literally just trying to get the global shortcut functionality to work again! Wayland doesn’t like you doing that, actually I use KDE Plasma as my desktop environment, which uses Wayland by default as of Plasma 6. I want to support all systems, and that obviously includes my own, but the Global Shortcut plugin for Tauri, as it turns out, only natively supports X11. Ah. At first, I tried using this pull request by patching it into my dependencies, so the Tauri plugin would use that instead of the normal crate. This worked actually! Until I tried using unregister_all() , at which point it crashes the xdg-desktop-portal with a SIGABRT, somehow, for some reason. I have no idea if that’s an issue with my system (I tried updating!) but I couldn’t find a way around it, so I ended up scrapping that plan (using an unreviewed, unmerged PR probably isn’t a great idea anyway…). What now? After what I said about rdev in the last devlog, I ended up writing a key handler module that would fallback to rdev when detecting Wayland (inspired by how murmur ended up doing this as well). Except… I wrote all this, spent a couple of hours getting everything working, and then somehow, by having moved the callback function for shortcuts into the Rust code (where I previously was trying it from the frontend in TypeScript), it… WORKS?! With the default Tauri plugin, which is only supposed to work on X11. This requires some more testing (is this a KDE Plasma specific thing?! or Xwayland??), so I’m keeping the keys module I made around for now just in case. Good news! The good news is that this means it works! The really only last two bits I need are Windows support and saving the config . Should this have taken this long? Probably not. I attribute that to still wandering my way through Rust and literally never having used Tauri before (lol). A good amount of time was spent getting the UI working in a way that I was happy with, too! With that said, here’s a quick recording of everything working!"}, {"post_id": 14685, "ts": "2026-06-23T21:31:56Z", "hours": 4.2236, "text": "UI TIME! This is my first time using Tauri ! As I’ve learned with a previous project, UI and Rust are still a bit iffy, sadly. Tauri effectively parallels Electron while offering much better performance, especially as you still use Rust for the backend while allowing the ease of use of HTML + CSS + JS/TS for the frontend! It uses native WebViews instead of Chromium, which gets rid of one of my biggest frustrations with Electron, that being including and running a whole browser for what’s often a single page. Of course, this is, uh, maybe is not the best project to showcase how great those features are considering there is effectively one (1) main feature here (lol), but this is a learning experience and an excuse to continue more Rust! I’m adding UI because running from the terminal is not the best UX, and this will make it easier to change the config (which you couldn’t do before after starting!) and handle everything more gracefully. I will say that, so far, the developer experience with Tauri has felt great. Automatic hot reloading is enabled by default on both the TypeScript frontend AND the Rust backend (which will auto-rebuild), super neat! Getting everything set up with Nix was… less great, but not Tauri’s fault. I also chose to use React for this project, as it’s been quite some time since I’ve really worked with it. Oh, yeah, also I made a logo in Aseprite! I mainly needed this for a tray icon. Modeled after the one and only Logitech C920 PRO HD Webcam , with its glorious (read as: bad (read as: loud = funny)) microphone. Now that the project has been refactored for Tauri, I need to port the old code to the new “backend”. I’ll build the config UI around this once that’s done! Also, Tauri actually has a global shortcut plugin, so I can replace rdev with this for a (hopefully) less janky handling system. (it’s awfully hard to find info about global key handling, probably because that’s misused for malware more often than not…)"}, {"post_id": 6694, "ts": "2026-06-11T06:51:26Z", "hours": 1.925, "text": "INITIAL PROTOTYPE I almost forgot I was going to make this! I made an initial prototype for funnymic, which (for now, at least) is a CLI tool to hot swap to a microphone only when holding down a key (like a very, very bad and comically loud C922 webcam mic, perhaps lol). This initial prototype only works on Linux. My TODO is to Make this faster if possible (maybe some async jank happening right now) Add Windows support Make it actually configurable This also is an excuse for me to learn more Rust! I’m likely going to work on most projects in Rust to continue learning (when it makes sense)."}]...
|
Title: FUNNY MIC! by @purpld | Stardance
Devlogs: Title: FUNNY MIC! by @purpld | Stardance
Devlogs:
INITIAL PROTOTYPE I almost forgot I was going to make this! I made an initial prototype for funnymic, which (for now, at least) is a CLI tool to hot swap to a microphone only when holding down a key (like a very, very bad and comically loud C922 webcam mic, perhaps lol). This initial prototype only works on Linux. My TODO is to Make this faster if possible (maybe some async jank happening right now) Add Windows support Make it actually configurable This also is an excuse for me to learn more Rust! I’m likely going to work on most projects in Rust to continue learning (when it makes sense).
UI TIME! This is my first time using Tauri ! As I’ve learned with a previous project, UI and Rust are still a bit iffy, sadly. Tauri effectively parallels Electron while offering much better performance, especially as you still use Rust for the backend while allowing the ease of use of HTML + CSS + JS/TS for the frontend! It uses native WebViews instead of Chromium, which gets rid of one of my biggest frustrations with Electron, that being including and running a whole browser for what’s often a single page. Of course, this is, uh, maybe is not the best project to showcase how great those features are considering there is effectively one (1) main feature here (lol), but this is a learning experience and an excuse to continue more Rust! I’m adding UI because running from the terminal is not the best UX, and this will make it easier to change the config (which you couldn’t do before after starting!) and handle everything more gracefully. I will say that, so far, the developer experience with Tauri has felt great. Automatic hot reloading is enabled by default on both the TypeScript frontend AND the Rust backend (which will auto-rebuild), super neat! Getting everything set up with Nix was… less great, but not Tauri’s fault. I also chose to use React for this project, as it’s been quite some time since I’ve really worked with it. Oh, yeah, also I made a logo in Aseprite! I mainly needed this for a tray icon. Modeled after the one and only Logitech C920 PRO HD Webcam , with its glorious (read as: bad (read as: loud = funny)) microphone. Now that the project has been refactored for Tauri, I need to port the old code to the new “backend”. I’ll build the config UI around this once that’s done! Also, Tauri actually has a global shortcut plugin, so I can replace rdev with this for a (hopefully) less janky handling system. (it’s awfully hard to find info about global key handling, probably because that’s misused for malware more often than not…)
“It’ll be easy!” NO IT WON’T BE ASDSFSDGDG ahem. What I mean to say is that the UI is done and ready! I think it looks relatively nice, simple, and most importantly, is functional . I, somehow, managed to log 11 HOURS , of which a significiant part of was not doing the UI, actually! It was literally just trying to get the global shortcut functionality to work again! Wayland doesn’t like you doing that, actually I use KDE Plasma as my desktop environment, which uses Wayland by default as of Plasma 6. I want to support all systems, and that obviously includes my own, but the Global Shortcut plugin for Tauri, as it turns out, only natively supports X11. Ah. At first, I tried using this pull request by patching it into my dependencies, so the Tauri plugin would use that instead of the normal crate. This worked actually! Until I tried using unregister_all() , at which point it crashes the xdg-desktop-portal with a SIGABRT, somehow, for some reason. I have no idea if that’s an issue with my system (I tried updating!) but I couldn’t find a way around it, so I ended up scrapping that plan (using an unreviewed, unmerged PR probably isn’t a great idea anyway…). What now? After what I said about rdev in the last devlog, I ended up writing a key handler module that would fallback to rdev when detecting Wayland (inspired by how murmur ended up doing this as well). Except… I wrote all this, spent a couple of hours getting everything working, and then somehow, by having moved the callback function for shortcuts into the Rust code (where I previously was trying it from the frontend in TypeScript), it… WORKS?! With the default Tauri plugin, which is only supposed to work on X11. This requires some more testing (is this a KDE Plasma specific thing?! or Xwayland??), so I’m keeping the keys module I made around for now just in case. Good news! The good news is that this means it works! The really only last two bits I need are Windows support and saving the config . Should this have taken this long? Probably not. I attribute that to still wandering my way through Rust and literally never having used Tauri before (lol). A good amount of time was spent getting the UI working in a way that I was happy with, too! With that said, here’s a quick recording of everything working!
V1! (last devlog before ship?) Wew, I should have probably made a devlog in between my last one! Windows support I have added Windows support! Fun fact, I hate working with the Windows API, and I’ve just learned that! In fairness, it’s a littleee bit awkward working with an API that is very obviously native to C, even if the Rust library gives it some Rustiness, but still, I dislike it. Greatly. Anyways, the important part is it works! And I had to use an undocumented Windows API to do a basic task (setting the default audio device). Nice. Cool! Awesome. (i’ve been trying to switch to Linux for a reason) Thankfully, someone already implemented that in the com-policy-config crate so I don’t have to find and try to convert a header file myself. Saving the config! After Windows support was done, the rest was relatively easy! Tauri has another plugin that makes it a little bit easier to manage a JSON store file and make it accessible to anything that has an AppHandle . config.json now stores the selected swap device and keybind, and these get automatically reloaded on startup. Lovely! oh hey uh, how are we building this thing, exactly? I use NixOS as my main operating system, so I already made a default.nix and shell.nix for running here. However, it doesn’t seem I can properly compile the regular bundles for .deb., .rpm, and AppImages (easily, anyway), and it would be tedious for every release anyways! Thankfully, tauri-action already exists, too! I made a GitHub Actions workflow that will compile and publish installers for both Windows and Linux when I make a new release. It’s pretty neat stuff, actually! README, After All This also means I finally took the time to make a nice README. It was nice to take a small step back to kind of overview this project. A fun little over-engineered thing this is, something that could have stayed a CLI app with only Linux support and nobody would have blinked, but here we are! It’s definitely been good practice for both my backend (Rust!) and frontend skills. I will definitely be using Tauri again in the future! Hello, from v1.0.0! (and Windows!)
Ships:
I made an easily configurable microphone hot swapping tool! Inspired by the lovingly horrible microphone of the Logitech C922 webcam. My project allows you to configure a microphone (for example, your webcam’s mic) and record a hotkey, and then swap whenever and wherever (and quickly!) by holding down your hotkey. Your system’s default microphone will be set to your chosen device when held, and return to whatever it was previously when you let go. And it works on both Windows and Linux! This seems quite simple on paper, and it probably SHOULD be, but a couple of things made this actually quite challenging: I wanted FUNNY MIC to be cross-platform! Nobody should be stopped from having horrible mic quality. Audio APIs on different OS’s, however, are VERY different! I learned how to use conditional compilation in Rust, and most importantly, how to use it wisely, to make an internal API that works and changes depending on your platform. This also meant I had to learn how these platform-specific APIs work and how to use them! Most importantly, this was my first time using Tauri as the backend framework for a Rust project! That in and of itself was quite challenging, but I’ve found that Tauri is nice to work with! I also chose React as my frontend UI framework, which I have used before, but it has been quite some time. I’m proud of this silly little over-engineered thing I managed to make with the tools that I’ve been given! I think this is a program that I’ll actually be continuing to use too (to mess with my friends, of course), which is nice. To test this project, you will need to download and run an installer for your platform. If you’re on NixOS, please see the README for more instructions; I’ve included a package for you too!...
|
1793231420.0837016
|
1793317820.0837016
|
|
17319
|
SituationBoard by @nouxinf | Stardance
|
nouxinf
|
1
|
25.0
|
276
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T12:42:35Z", "hours": 25.0, "multiplier": 11.2, "payout": 276, "blessing": "neutral", "text": "I just finished making SituationBoard a browser new tab page with widgets that can be customised and arranged to your liking. Its a big QoL improvement because it means instead of having to go to several websites to get bits of info, you can see them all on one page you can bookmark or set as a new tab page in your browser. Current widgets included are: Cat picture Oil price Clock Weather XKCD comic It runs in express and some of the widgets use an external API that needs a backend route. Its designed to be contributed to by others, I wrote a guide in the README on how to add new widgets. There’s a light and dark mode too. Hope you enjoy it!", "repo": "https://github.com/nouxinf/situationboard", "demo": "https://situationboard.nouxinf.net/"}]...
|
[{"post_id": 70550, "ts": "202 [{"post_id": 70550, "ts": "2026-09-19T10:59:06Z", "hours": 0.6653, "text": "Devlog 8 of Situationboard In this devlog I put the website on my VPS at https://situationboard.nouxinf.net/ and wrote a README. The readme contains some info on the project, screenshots, and instructions on how to add a new widget to the site for contributors."}, {"post_id": 70233, "ts": "2026-09-18T19:18:21Z", "hours": 1.0689, "text": "Devlog 7 of Situationboard In this devlog I added a dark mode that saves your preferences but also loads them from your system settings. I made a bunch of CSS tweaks at the same time to make it look a bit nicer too."}, {"post_id": 70175, "ts": "2026-09-18T16:54:18Z", "hours": 1.1975, "text": "Devlog 6 of Situationboard In this devlog I added a MacOS style menu bar at the top for some buttons. The SB icon and the Situationboard spans just refresh the page, the attribution button opens a dialog with credits to open source libraries and images used (APIs are credited separately in the add widgets screen). The about screen also has info. Next up is just dark mode, some docs + readme then I’m ready to ship"}, {"post_id": 69245, "ts": "2026-09-16T17:33:32Z", "hours": 2.3942, "text": "Devlog 5 of Situationboard In this devlog I added an XKCD widget, which fetches the latest XKCD comic through a proxy on the backend, and you can navigate through comics with the previous, next, random and custom number buttons. You can also click on the image to zoom in on the comic and the caption. What I’m adding next is dark mode and an attribution screen to give credit to all sources used."}, {"post_id": 68165, "ts": "2026-09-14T17:09:37Z", "hours": 1.7006, "text": "Devlog 4 of Situationboard In this devlog I finished the weather widget. I added icons that I reused from an earlier stardance project, weatherstation that map to WMO codes, and it shows a forecast with min-max temperatures for the next 7 days. Next up I’ll do an xkcd widget and dark mode"}, {"post_id": 67217, "ts": "2026-09-13T08:29:05Z", "hours": 7.3411, "text": "Devlog 3 of Situationboard Things I added: A live time widget A description window for each widget that uses a markdown renderer A customisable weather widget (currently only shows temperature and location but will be updated with week-ahead forecast) Things I might add soon: dark mode xkcd widget?"}, {"post_id": 11390, "ts": "2026-06-18T17:15:06Z", "hours": 3.125, "text": "Devlog 2 of Situationboard Things I’ve worked on since the last devlog: A simple favicon - just “SB” in the Inter font that’s used across the site An Oil Price widget. It originally used data from oilpriceapi.com however I realised that they didn’t provide a permanent free tier, so I switched to the US government’s (of course) EIA (Energy Information Administration) which updates less frequently (half a week or so?). Loading animation for catpic widget from Wikimedia Commons Next up I’ll probably work on a description button in the Add Widgets dialog as it already has a widgets.json entry, its just unused."}, {"post_id": 9344, "ts": "2026-06-15T17:58:45Z", "hours": 7.1142, "text": "Devlog #1 of SituationBoard After finishing the hackpad project, I was trying to find new project ideas to do, so I asked my dad for a QoL improvement that could be made. He mentioned wanting a “portal” to have loads of different information widgets on one screen, as for a lot of things you need to go across different websites. Coincidentally, the Frictionless mission was running, whose “mission” you could say was exactly that - to make something that improves quality of life. The name “SituationBoard” is a play on those “monitor the situation” dashboards that government officials or OSINT people use. The data on here as you can probably see by the screenshot is probably not of as high importance [citation needed]. I decided to make this in express.js, and plain HTML to keep it minimal. The backend will handle most widgets that need APIs, as those wih API keys shouldn’t be sent on the frontend because the keys will be leaked. The first widget added is a random cat picture from a service called Cat-as-a-Service (cataas.com). This didn’t require the backend as cataas doesnt take credentials so it was a good first widget. Next up I’ll write more widgets like weather, prices of various commodities like oil and holiday calendars, and add more features, potentially styling the website up along the way."}]...
|
Title: SituationBoard by @nouxinf | Stardance
Dev Title: SituationBoard by @nouxinf | Stardance
Devlogs:
Devlog #1 of SituationBoard After finishing the hackpad project, I was trying to find new project ideas to do, so I asked my dad for a QoL improvement that could be made. He mentioned wanting a “portal” to have loads of different information widgets on one screen, as for a lot of things you need to go across different websites. Coincidentally, the Frictionless mission was running, whose “mission” you could say was exactly that - to make something that improves quality of life. The name “SituationBoard” is a play on those “monitor the situation” dashboards that government officials or OSINT people use. The data on here as you can probably see by the screenshot is probably not of as high importance [citation needed]. I decided to make this in express.js, and plain HTML to keep it minimal. The backend will handle most widgets that need APIs, as those wih API keys shouldn’t be sent on the frontend because the keys will be leaked. The first widget added is a random cat picture from a service called Cat-as-a-Service (cataas.com). This didn’t require the backend as cataas doesnt take credentials so it was a good first widget. Next up I’ll write more widgets like weather, prices of various commodities like oil and holiday calendars, and add more features, potentially styling the website up along the way.
Devlog 2 of Situationboard Things I’ve worked on since the last devlog: A simple favicon - just “SB” in the Inter font that’s used across the site An Oil Price widget. It originally used data from oilpriceapi.com however I realised that they didn’t provide a permanent free tier, so I switched to the US government’s (of course) EIA (Energy Information Administration) which updates less frequently (half a week or so?). Loading animation for catpic widget from Wikimedia Commons Next up I’ll probably work on a description button in the Add Widgets dialog as it already has a widgets.json entry, its just unused.
Devlog 3 of Situationboard Things I added: A live time widget A description window for each widget that uses a markdown renderer A customisable weather widget (currently only shows temperature and location but will be updated with week-ahead forecast) Things I might add soon: dark mode xkcd widget?
Devlog 4 of Situationboard In this devlog I finished the weather widget. I added icons that I reused from an earlier stardance project, weatherstation that map to WMO codes, and it shows a forecast with min-max temperatures for the next 7 days. Next up I’ll do an xkcd widget and dark mode
Devlog 5 of Situationboard In this devlog I added an XKCD widget, which fetches the latest XKCD comic through a proxy on the backend, and you can navigate through comics with the previous, next, random and custom number buttons. You can also click on the image to zoom in on the comic and the caption. What I’m adding next is dark mode and an attribution screen to give credit to all sources used.
Devlog 6 of Situationboard In this devlog I added a MacOS style menu bar at the top for some buttons. The SB icon and the Situationboard spans just refresh the page, the attribution button opens a dialog with credits to open source libraries and images used (APIs are credited separately in the add widgets screen). The about screen also has info. Next up is just dark mode, some docs + readme then I’m ready to ship
Devlog 7 of Situationboard In this devlog I added a dark mode that saves your preferences but also loads them from your system settings. I made a bunch of CSS tweaks at the same time to make it look a bit nicer too.
Devlog 8 of Situationboard In this devlog I put the website on my VPS at https://situationboard.nouxinf.net/ and wrote a README. The readme contains some info on the project, screenshots, and instructions on how to add a new widget to the site for contributors.
Ships:
I just finished making SituationBoard a browser new tab page with widgets that can be customised and arranged to your liking. Its a big QoL improvement because it means instead of having to go to several websites to get bits of info, you can see them all on one page you can bookmark or set as a new tab page in your browser. Current widgets included are: Cat picture Oil price Clock Weather XKCD comic It runs in express and some of the widgets use an external API that needs a backend route. Its designed to be contributed to by others, I wrote a guide in the README on how to add new widgets. There’s a light and dark mode too. Hope you enjoy it!...
|
1793148579.5631049
|
1793234979.5631049
|
|
17921
|
Pointhole by @lu2000luk | Stardance
|
lu2000luk
|
1
|
25.0
|
286
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T12:21:04Z", "hours": 25.0, "multiplier": 11.87, "payout": 286, "blessing": "neutral", "text": "Pointhole 1.0.0 A complete suite to explore and control your remote servers in a click! Tools like IDEs provide access to remote servers but it usually requires installing 100+ mbs clients and sometimes you just want to get the work done quickly… So to fix this I built Pointhole! Features: Explore files Download/Upload files Edit files with your own IDE ““SSH”” into your server (You can use any terminal!) Demo server for everyone to try out! Nice 3D website Install scripts Multiplatform (Win/Linux) All of the above without needing port forwarding! To connect to the demo server hover the “Demo” top bar option and click “Connect to demo server”", "repo": "https://git.lu2000luk.com/lu2000luk/pointhole", "demo": "https://pointhole.vercel.app/"}]...
|
[{"post_id": 17515, "ts": "202 [{"post_id": 17515, "ts": "2026-06-28T10:19:40Z", "hours": 1.265, "text": "PTY support! (Took a day break to do other life things such as going outside and playing CS2) Now pty is supported (stuff like DPI and pixel dimensions aren’t sent but that not really required for most uses). Took such a long time since while doing it I cleaned up a bit of the old code."}, {"post_id": 16228, "ts": "2026-06-26T11:19:01Z", "hours": 1.7592, "text": "ADDED SSH!!! You can now connect to the server’s terminal. Just click a button and the SSH will be ran locally on your machine with auto-forwarding to the relay Fixed various warnings Added demo button to top bar Added CLI args to change the relay host (both server and client) and to prefill the demo code (client) Demo has no SSH support yet, I will add it / block it on demo servers"}, {"post_id": 16160, "ts": "2026-06-26T08:27:06Z", "hours": 0.5089, "text": "Upload to pastebin feature. Also optimized the website removing an image download (since its not visible) that added 10mb to the bundle (and to the vercel bill). Also added the correct cursor on hover of the 3d buttons."}, {"post_id": 15902, "ts": "2026-06-25T20:56:03Z", "hours": 0.3736, "text": "Added a scripts modal and a button on the 3d scene to open it (design reminds a lot of those chinese websites that are clearly made to be rendered with chinese chars etc but look uncanny on our screens)"}, {"post_id": 15889, "ts": "2026-06-25T20:27:51Z", "hours": 0.3472, "text": "Continued the site a little bit with custom fonts and plaques for “server” and “client”. For now while I still develop it you can see the website at https://pointhole.vercel.app/"}, {"post_id": 15853, "ts": "2026-06-25T19:35:42Z", "hours": 0.2833, "text": "Added winres (also to CI): generates the windows executable resources file and applies it [assets converted and resized by AI agent, i made the original “art” (if you can call a black circle so…)]"}, {"post_id": 15798, "ts": "2026-06-25T17:56:48Z", "hours": 0.4217, "text": "Statically linked windows client binaries Added script to auto-update install scripts cache commit hash [AI] Made the script able to install commit hooks for itself Added Justfiles for compiling locally and general utils Future things to look into: more windows issues (I’d bet my house there are more) add win resources to client binaries for windows (Icon, description … with https://github.com/tc-hib/go-winres ) submit app for malware verification to https://www.microsoft.com/en-us/wdsi/filesubmission?persona=SoftwareDeveloper (Go binaries are usually flagged)"}, {"post_id": 15649, "ts": "2026-06-25T13:29:16Z", "hours": 3.3333, "text": "Made a big part of the site. Made all 3d models by hand on blender. Working with threejs and react is so hardddd (literally 3hrs of trial and errors). why did i decide to make a 3d site for a file browser ??? idk… Doing anything remotely fun in threejs is very hard so the site has some small interactive parts but its very limited as of now."}, {"post_id": 15299, "ts": "2026-06-24T20:59:06Z", "hours": 0.3156, "text": "Fixed a permission bug for editing files and also fixed a freeze problem that was pretty common on windows. Also started adding last commit hash to the scripts’s download urls since cloudflare caching is so aggressive!!!"}, {"post_id": 15280, "ts": "2026-06-24T20:27:19Z", "hours": 0.295, "text": "Added a simple about window and got the demo server running (mainly so that people who rate the project have an easy time doing so). Also there is a little easter egg in the demo server so if anyone reads this: the client binaries are already compiled so if you want to check it out it should be pretty easy (the demo code is in the readme)"}, {"post_id": 15256, "ts": "2026-06-24T19:28:11Z", "hours": 0.7814, "text": "Added install scripts! And updated readme. Took long since i switched from .bat to .ps1 and also whoever made env vars on windows should be subject to the same stuff i went truh. Apparently using “setx” on a long env var cuts it FROM THE BEGINNING so it bricked my PC (Removed system32 from path) and fortunately i had a vscode terminal with the old env vars still open so i was able to recover some but I had some more issues so I had to “nest” env vars. Everything is fixed except the recyle bin (shows random filenames when asking for deletion confirmation). For this and some other reasons I switched the scripts to powershell after I made them since the powershell API is much more mature. (shoutout to the guy who wants longer devlogs he finally has one with a story, the project is almost done tho!)"}, {"post_id": 15164, "ts": "2026-06-24T17:08:02Z", "hours": 0.3014, "text": "Added github mirror and made some github actions to build both client and server for linux and windows and upload them to my CDN (I will later make a nice install script that pulls them)"}, {"post_id": 14949, "ts": "2026-06-24T09:05:09Z", "hours": 0.7058, "text": "New theme (got it online) and Icons! (Used AI to convert from SVG to imgui.Drawlist)"}, {"post_id": 14933, "ts": "2026-06-24T07:57:22Z", "hours": 0.4814, "text": "Long story short yesterday’s UI improvements got lost (I was reverting a commit since the thing I added was broken but I forgot to commit the UI improvements before so they got lost) I re-made them quickly and added Demo mode (I will have a public demo instance so y’all can try it!)"}, {"post_id": 14272, "ts": "2026-06-23T09:59:14Z", "hours": 0.3664, "text": "UI Improvements: Disable viewports (caused issues) Disable Docking (I dont like it) Fix top bar bg-color and border Change window bg color (want to make it a nice shader in the future)"}, {"post_id": 14265, "ts": "2026-06-23T09:19:23Z", "hours": 1.0967, "text": "Fixed small bugs. Since yesterday I did all my changes on Linux they had lots of issues on linux (uploads and downloads had the most problems). Now it’s all fixed (hopefully)"}, {"post_id": 13780, "ts": "2026-06-22T16:12:46Z", "hours": 0.5706, "text": "Create folder"}, {"post_id": 13672, "ts": "2026-06-22T13:00:24Z", "hours": 0.6136, "text": "Transfers window with progress bar"}, {"post_id": 13634, "ts": "2026-06-22T11:20:35Z", "hours": 0.9744, "text": "git commit style editor!"}, {"post_id": 13620, "ts": "2026-06-22T10:15:42Z", "hours": 0.3769, "text": "Uploading and renaming"}, {"post_id": 13612, "ts": "2026-06-22T09:51:10Z", "hours": 0.8675, "text": "Random reads working! (ui bug: the thread segfaults when reading more than 9k bytes inside the debugging window, shouldnt be a problem since the usage of random reads will be pretty much automatic and will be done in chunks)"}, {"post_id": 13219, "ts": "2026-06-21T17:27:26Z", "hours": 1.5997, "text": "Uploads"}, {"post_id": 13171, "ts": "2026-06-21T15:38:34Z", "hours": 0.7217, "text": "Top bar menu, deletions and code cleanup/bug fixes"}, {"post_id": 12639, "ts": "2026-06-20T17:21:53Z", "hours": 1.2136, "text": "Copy paste working! (also fixed bugs and expanded the future types)"}, {"post_id": 8578, "ts": "2026-06-14T08:19:10Z", "hours": 3.4206, "text": "Basic file exploring working, implemented LS command and general networking"}, {"post_id": 7983, "ts": "2026-06-13T09:54:27Z", "hours": 1.5681, "text": "Initial types and websocket connection"}]...
|
Title: Pointhole by @lu2000luk | Stardance
Devlog Title: Pointhole by @lu2000luk | Stardance
Devlogs:
Initial types and websocket connection
Basic file exploring working, implemented LS command and general networking
Copy paste working! (also fixed bugs and expanded the future types)
Top bar menu, deletions and code cleanup/bug fixes
Uploads
Random reads working! (ui bug: the thread segfaults when reading more than 9k bytes inside the debugging window, shouldnt be a problem since the usage of random reads will be pretty much automatic and will be done in chunks)
Uploading and renaming
git commit style editor!
Transfers window with progress bar
Create folder
Fixed small bugs. Since yesterday I did all my changes on Linux they had lots of issues on linux (uploads and downloads had the most problems). Now it’s all fixed (hopefully)
UI Improvements: Disable viewports (caused issues) Disable Docking (I dont like it) Fix top bar bg-color and border Change window bg color (want to make it a nice shader in the future)
Long story short yesterday’s UI improvements got lost (I was reverting a commit since the thing I added was broken but I forgot to commit the UI improvements before so they got lost) I re-made them quickly and added Demo mode (I will have a public demo instance so y’all can try it!)
New theme (got it online) and Icons! (Used AI to convert from SVG to imgui.Drawlist)
Added github mirror and made some github actions to build both client and server for linux and windows and upload them to my CDN (I will later make a nice install script that pulls them)
Added install scripts! And updated readme. Took long since i switched from .bat to .ps1 and also whoever made env vars on windows should be subject to the same stuff i went truh. Apparently using “setx” on a long env var cuts it FROM THE BEGINNING so it bricked my PC (Removed system32 from path) and fortunately i had a vscode terminal with the old env vars still open so i was able to recover some but I had some more issues so I had to “nest” env vars. Everything is fixed except the recyle bin (shows random filenames when asking for deletion confirmation). For this and some other reasons I switched the scripts to powershell after I made them since the powershell API is much more mature. (shoutout to the guy who wants longer devlogs he finally has one with a story, the project is almost done tho!)
Added a simple about window and got the demo server running (mainly so that people who rate the project have an easy time doing so). Also there is a little easter egg in the demo server so if anyone reads this: the client binaries are already compiled so if you want to check it out it should be pretty easy (the demo code is in the readme)
Fixed a permission bug for editing files and also fixed a freeze problem that was pretty common on windows. Also started adding last commit hash to the scripts’s download urls since cloudflare caching is so aggressive!!!
Made a big part of the site. Made all 3d models by hand on blender. Working with threejs and react is so hardddd (literally 3hrs of trial and errors). why did i decide to make a 3d site for a file browser ??? idk… Doing anything remotely fun in threejs is very hard so the site has some small interactive parts but its very limited as of now.
Statically linked windows client binaries Added script to auto-update install scripts cache commit hash [AI] Made the script able to install commit hooks for itself Added Justfiles for compiling locally and general utils Future things to look into: more windows issues (I’d bet my house there are more) add win resources to client binaries for windows (Icon, description … with https://github.com/tc-hib/go-winres ) submit app for malware verification to https://www.microsoft.com/en-us/wdsi/filesubmission?persona=SoftwareDeveloper (Go binaries are usually flagged)
Added winres (also to CI): generates the windows executable resources file and applies it [assets converted and resized by AI agent, i made the original “art” (if you can call a black circle so…)]
Continued the site a little bit with custom fonts and plaques for “server” and “client”. For now while I still develop it you can see the website at https://pointhole.vercel.app/
Added a scripts modal and a button on the 3d scene to open it (design reminds a lot of those chinese websites that are clearly made to be rendered with chinese chars etc but look uncanny on our screens)
Upload to pastebin feature. Also optimized the website removing an image download (since its not visible) that added 10mb to the bundle (and to the vercel bill). Also added the correct cursor on hover of the 3d buttons.
ADDED SSH!!! You can now connect to the server’s terminal. Just click a button and the SSH will be ran locally on your machine with auto-forwarding to the relay Fixed various warnings Added demo button to top bar Added CLI args to change the relay host (both server and client) and to prefill the demo code (client) Demo has no SSH support yet, I will add it / block it on demo servers
PTY support! (Took a day break to do other life things such as going outside and playing CS2) Now pty is supported (stuff like DPI and pixel dimensions aren’t sent but that not really required for most uses). Took such a long time since while doing it I cleaned up a bit of the old code.
Ships:
Pointhole 1.0.0 A complete suite to explore and control your remote servers in a click! Tools like IDEs provide access to remote servers but it usually requires installing 100+ mbs clients and sometimes you just want to get the work done quickly… So to fix this I built Pointhole! Features: Explore files Download/Upload files Edit files with your own IDE ““SSH”” into your server (You can use any terminal!) Demo server for everyone to try out! Nice 3D website Install scripts Multiplatform (Win/Linux) All of the above without needing port forwarding! To connect to the demo server hover the “Demo” top bar option and click “Connect to demo server”...
|
1793127334.4977605
|
1793213734.4977605
|
|
18771
|
BigBrother Bot by @jachym_fukal | Stardance
|
jachym_fukal
|
1
|
25.0
|
395
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-05T11:15:10Z", "hours": 25.0, "multiplier": 15.87, "payout": 395, "blessing": "neutral", "text": "BigBrother is a 1984-themed Slack bot that turns your workspace into Oceania. It runs five modules: Surveillance tracks message activity across channels and maintains a leaderboard of who’s been most “active” (watched). Telescreen broadcasts Orwellian announcements to the workspace. Police runs sentiment analysis on messages and flags thoughtcrime — positivity is suspicious. Truth rewrites real news headlines in Party-approved doublespeak using NewsAPI + Groq. DM lets you talk directly to Big Brother, who responds in full authoritarian character via LLM. Built with Node.js + Bolt.js over Hack Club Stardance. Big Brother is always watching — especially in #1984.", "repo": "https://github.com/Projachmann/Slack_Bot", "demo": "https://hackclub.enterprise.slack.com/archives/C09F6AAP1PF"}]...
|
[{"post_id": 22745, "ts": "202 [{"post_id": 22745, "ts": "2026-07-05T10:14:25Z", "hours": 0.5808, "text": "Wrote the README and stopped the prerequisites file from lying about itself The repo had no README and prerequisites.md was three stray lines ( axios , node-cron , fs ) that didn’t actually match what package.json declared or what main.js fails fast on at boot. Rewrote prerequisites.md as a pure library install reference — packages, versions, and one npm install command — then wrote a README that follows the structure the Stardance judges actually want: one-sentence description, hero image slot, a try-it link, quick start, features, local setup, and a “how it works” section that earns its keep by naming real decisions (Socket Mode over HTTP so it runs behind any network, self-rescheduling crons with re-rolling fire times, file-locked JSON as a tiny DB instead of SQLite, sequential Groq calls to dodge rate limits). The friction was the Node version. There’s no engines field in package.json and no .nvmrc , so I didn’t want to just assert “Node 18+” without evidence. Grepping package-lock.json for \"engines\" turned up ~100 matches and the binding constraint is @slack/bolt ‘s transitive deps all declaring \"node\": \">=18\" — so that’s the honest floor, stated as such. Also swapped the watched channel ID in Code/main.js from C0BBBCER55W to C09F6AAP1PF to match the workspace in the invite link I was handed. Caught one real issue while reviewing: the “Try it” link was a channel permalink ( /archives/C09F6... ), which a non-member hits a sign-in wall on, flagged it, left it in since it’s an internal members link."}, {"post_id": 22442, "ts": "2026-07-04T22:13:14Z", "hours": 2.0994, "text": "Made Big Brother stop lying about your loyalty score The /bigbrother-loyalty command was silently corrupting its own scoreboard. Every call overwrote the user’s stored score with whatever the current calculation produced — which meant a citizen who hit 200 points last week would see their displayed rank drop to 50 after a quiet few days. The scoreboard was a ledger of “most recent” instead of “best ever”, which is the opposite of how a loyalty panopticon should work. The fix in Code/Surveillance.js was small but mattered: scoreboard() now only writes when the new score strictly beats the stored high, and stamps an achievedAt ISO timestamp on each new record. While in there, I also wired /bigbrother-scoreboard to refresh the caller’s score before displaying, so running it actually updates your entry — previously it just read stale data. The refresh is wrapped in try/catch so a transient Slack or HuggingFace failure doesn’t break the leaderboard read. That scoreboard bug was the tip of a much longer audit. The same session surfaced and fixed ~50 defects across the codebase: Surveillance.presenceCheck was returning undefined (not 0 ) on unknown presence values, producing NaN loyalty scores that then broke the sort; Telescreen.propaganda() would crash with TypeError if broadcasts.json was empty; Truth.getNews() called .map() on a potentially-missing articles array; concurrent readFile / writeFile pairs on the same JSON file were last-writer-wins. Added a 12-line per-file async mutex in Code/lock.js and wrapped every read-merge-write critical section. Also added .env validation at boot — previously a missing HF_TOKEN would surface as an undefined auth header 45 minutes into a Slack session instead of failing at startup."}, {"post_id": 22127, "ts": "2026-07-04T12:55:36Z", "hours": 1.0925, "text": "Added DM support: BigBrother can now talk back Users can now DM the bot and get a response in character as BigBrother, powered by Llama 3.3 on Groq. The bot keeps a per-user conversation history (capped at 30 messages) so it actually remembers what you said earlier in the conversation. History lives in memory, so it resets on restart, intentional, didn’t feel worth the complexity of persisting it. The interesting part was Slack’s permission system. Adding the im:history , im:read , and im:write scopes wasn’t enough on its own, you also need to separately subscribe to the message.im event under Event Subscriptions. The scopes let the bot act on DMs, the event subscription is what actually delivers them. Spent a while staring at logs with no “DM received” entries before finding that."}, {"post_id": 19901, "ts": "2026-07-01T10:23:39Z", "hours": 0.3794, "text": "Replaced every console.log in the bot with a leveled logger. The old setup was five files each printing things like “Message received!”, “Responding…”, and “Messages saved!” with no way to tell which file was talking or which run produced which line. Replaced it all with a single Code/Logger.js that adds timestamps, severity ( debug / info / warn / error ), a subsystem tag per file, and structured metadata. Errors now print a full stack trace on a second dimmed line instead of [object Object] . The visual difference is the whole point. Before, /bigbrother-loyalty produced four console.log lines with no correlation. After, it produces one timestamped line per stage — fetch, score, scoreboard write — and you can grep by subsystem or level. The interesting bug: my first Logger.js had a guard that re-checked whether meta was undefined, but I also had a fallback that promoted a non- Error second argument into meta . The two branches collided and swallowed the error stack entirely. Caught it in a two-line test snippet before staging, would have been invisible until the first real API failure. Also stopped logging the full Hugging Face response on every sentiment check. Now it only prints the per-label scores rounded to three decimals, same diagnostic value, way less noise."}, {"post_id": 19331, "ts": "2026-06-30T16:42:16Z", "hours": 3.2917, "text": "Two Minute Hate, now interactive Built a /bigbrother-hate command for the Slack bot that escalates the existing 11:00 Two Minute Hate through 3 stages (Whisper → Roar → Frenzy) based on call count, with in-character stage-transition announcements and increasing-intensity bot posts. The interesting part was the difficulty curve. Base thresholds are 5 and 15 calls, but they get multiplied each day by yesterday / 7-day-mean, clamped 0.5–2.0. So if Monday had 20 calls and Tuesday only 15, Wednesday’s threshold drops to ~62% of the base — easier to escalate on quiet days. First pass forgot to reset usageCount and stage on the daily recompute, so the bot stayed pinned at Frenzy forever after one good session. Caught it on the second test run. Wired it to the existing 11:00–11:02 cron window so calls outside it get an in-character refusal. Also added hateLevel.json to .gitignore since it’s pure runtime state. Next: DMing the bot, probably tackling that before adding more interactive bits."}, {"post_id": 15891, "ts": "2026-06-25T20:30:07Z", "hours": 1.0044, "text": "The /bigbrother-loyalty command now doubles as a live leaderboard, every call re-ranks and displays the top 10 most loyal Party members. Plugging into the existing loyalty score pipeline meant the scoreboard itself was straightforward to build, but getting the Slack Block Kit formatting right for a clean ranked list took longer than expected. Ended up iterating through a few layouts before settling on one that doesn’t look terrible."}, {"post_id": 15796, "ts": "2026-06-25T17:55:42Z", "hours": 1.48, "text": "Loyalty scoring now factors in message sentiment. I added positive/negative sentiment saving by reusing the existing 7-day message cache logic, then wired the Surveillance module to read those sentiment files the same way it already reads other JSON, no new infrastructure needed. The score itself now reflects not just how active a user is, but whether they’re saying good or bad things about the Party."}, {"post_id": 15297, "ts": "2026-06-24T20:53:30Z", "hours": 1.2728, "text": "Stopped reloading 10 channels every time someone checks their loyalty score The surveillance system was fetching all messages from all 10 channels on every single /bigbrother-loyalty call. That meant a ~ 50 second wait every time. Not great when Big Brother is supposed to feel instant and omniscient. The fix: the bot now keeps a local JSON file of all messages. When someone requests their score, it only fetches messages newer than the newest one already saved, then deletes anything older than 7 days to keep the file lean. On top of that, a cron job rewrites the whole file once a day so it never drifts out of sync. Score lookups that took a minute now finish in a couple seconds. The panopticon is finally fast enough to be scary."}, {"post_id": 15241, "ts": "2026-06-24T19:04:42Z", "hours": 1.0067, "text": "Get more than one 1984 themed headline The /bigbrother-news command could technically accept a count, but it always returned exactly one rewrite no matter what you passed. First, rewriteHeadline was looping over the headlines array but always sending headline[0] to Groq, so it was rewriting the same headline count times. Second, the function returned an array but respond() was getting that array passed directly as text, which Slack rejects with a 500 because it expects a string. Fixed both, headline[i] in the loop, .join(\"\\n\") before responding. Also added a .replace(/^[\"\"]|[\"\"]$/g, \"\") strip because the model randomly decides whether to wrap its output in quotes or not and I’d rather it just didn’t. The original code also only ever called rewriteHeadline with a single headline and had no loop at all, scaling it up to handle multiple rewrites sequentially meant restructuring the whole function."}, {"post_id": 14697, "ts": "2026-06-23T21:56:43Z", "hours": 1.3711, "text": "Added the Ministry of Truth module Fetches real news headlines via NewsAPI, pipes them through Llama 3.3 on Groq, and rewrites them as state propaganda. The results are genuinely unsettling because they’re based on actual news. A Tesla autopilot crash became “Citizen Misalignment with Vehicle Guidance Systems Results in Regrettable Isolated Incident in Texas Residential Sector” which I think is funnier than anything I could have written myself. The bug that got me: I passed the respond function itself as the text value instead of the actual result. Slack received an empty object, returned invalid_payload , and I spent way too long staring at the Groq response before noticing the slash command handler was the problem, not the API call."}, {"post_id": 13886, "ts": "2026-06-22T19:11:41Z", "hours": 1.8572, "text": "Built the Thought Police module for my 1984 themed Slack bot Added a Thought Police module that watches messages in a specific channel, scores their sentiment using HuggingFace’s RoBERTa model, and fires a Big Brother-themed response if the message is negative or positive enough. The bot replies in-thread which feels way more unsettling than posting standalone, like it’s whispering directly at you. Hit a bunch of friction getting here though. The Perspective API I originally planned to use got sunset, then the HuggingFace inference endpoint URL changed mid-build and started returning ENOTFOUND , turned out the old api-inference.huggingface.co domain was dead and needed to be swapped to router.huggingface.co . Then the response labels came back lowercase ( negative instead of Negative ) which broke the score parsing silently, the bot was running but returning undefined for everything."}, {"post_id": 13233, "ts": "2026-06-21T17:45:42Z", "hours": 1.8667, "text": "Automated propaganda broadcasts for my 1984-themed Slack bot, random timing every day, plus a daily Two Minutes Hate at 11:00. Imagine you are the head of Propaganda of an authoritarian state and you need to automate propaganda releases. Well, this is how I felt today after trying to automate this exact process. In the book 1984 propaganda is everywhere, so I replicated that. The hardest part for me was the writing of the propaganda. This is because I, as unexpected as it sounds, am not the head of Propaganda in an authoritarian state, so after around 10 minutes I asked my good friend Claude if he could write me some propaganda. Claude generated 50 different messages. If anybody has some propaganda messages I could use just DM me on Slack or write it in the comments! The next step for me is to become the head of police and automate the flagging of negative sentiments."}, {"post_id": 13042, "ts": "2026-06-21T10:16:59Z", "hours": 1.3825, "text": "Slash commands in Slack don’t convert @mentions to user IDs and I learned that the hard way. My /bigbrother-loyalty command was getting @jachym.fukal as plain text instead of <@U09L3LVPJ82> , so the regex I wrote was completely useless. The workspace also has 30k+ users so just fetching the whole user list isn’t an option either. For now the command just takes a raw user ID, which isn’t pretty but works. Next step is figuring out a cleaner way to handle this."}, {"post_id": 12760, "ts": "2026-06-20T21:25:02Z", "hours": 1.5308, "text": "Sieving through all channels would have taken hours. Now I am only using 10, which are the most used ones on the Hackclub workspace. So I wrote a code that scans these 10 channels for messages of a specific user, which I want to use for a loyalty score in the future. But the problem isn’t completely solved, because the script needs around 50 seconds to look through these 10 channels. So now I am in a bit of a pickle. I am thinking about saving the data from the last scan and then only retrieving new data from the channels."}, {"post_id": 12445, "ts": "2026-06-20T09:39:50Z", "hours": 4.9919, "text": "Added the first version of the bot’s surveillance system. My original plan was to scan every channel in the Hack Club workspace weekly and fetch message history from all channels whenever a slash command was used. After looking into it, I realized the workspace has so many channels that a single command could take hours to finish, making the approach impractical. For now, I switched to a manually curated list of channels that the bot will monitor while I investigate a more scalable solution."}]...
|
Title: BigBrother Bot by @jachym_fukal | Stardance Title: BigBrother Bot by @jachym_fukal | Stardance
Devlogs:
Added the first version of the bot’s surveillance system. My original plan was to scan every channel in the Hack Club workspace weekly and fetch message history from all channels whenever a slash command was used. After looking into it, I realized the workspace has so many channels that a single command could take hours to finish, making the approach impractical. For now, I switched to a manually curated list of channels that the bot will monitor while I investigate a more scalable solution.
Sieving through all channels would have taken hours. Now I am only using 10, which are the most used ones on the Hackclub workspace. So I wrote a code that scans these 10 channels for messages of a specific user, which I want to use for a loyalty score in the future. But the problem isn’t completely solved, because the script needs around 50 seconds to look through these 10 channels. So now I am in a bit of a pickle. I am thinking about saving the data from the last scan and then only retrieving new data from the channels.
Slash commands in Slack don’t convert @mentions to user IDs and I learned that the hard way. My /bigbrother-loyalty command was getting @jachym.fukal as plain text instead of <@U09L3LVPJ82> , so the regex I wrote was completely useless. The workspace also has 30k+ users so just fetching the whole user list isn’t an option either. For now the command just takes a raw user ID, which isn’t pretty but works. Next step is figuring out a cleaner way to handle this.
Automated propaganda broadcasts for my 1984-themed Slack bot, random timing every day, plus a daily Two Minutes Hate at 11:00. Imagine you are the head of Propaganda of an authoritarian state and you need to automate propaganda releases. Well, this is how I felt today after trying to automate this exact process. In the book 1984 propaganda is everywhere, so I replicated that. The hardest part for me was the writing of the propaganda. This is because I, as unexpected as it sounds, am not the head of Propaganda in an authoritarian state, so after around 10 minutes I asked my good friend Claude if he could write me some propaganda. Claude generated 50 different messages. If anybody has some propaganda messages I could use just DM me on Slack or write it in the comments! The next step for me is to become the head of police and automate the flagging of negative sentiments.
Built the Thought Police module for my 1984 themed Slack bot Added a Thought Police module that watches messages in a specific channel, scores their sentiment using HuggingFace’s RoBERTa model, and fires a Big Brother-themed response if the message is negative or positive enough. The bot replies in-thread which feels way more unsettling than posting standalone, like it’s whispering directly at you. Hit a bunch of friction getting here though. The Perspective API I originally planned to use got sunset, then the HuggingFace inference endpoint URL changed mid-build and started returning ENOTFOUND , turned out the old api-inference.huggingface.co domain was dead and needed to be swapped to router.huggingface.co . Then the response labels came back lowercase ( negative instead of Negative ) which broke the score parsing silently, the bot was running but returning undefined for everything.
Added the Ministry of Truth module Fetches real news headlines via NewsAPI, pipes them through Llama 3.3 on Groq, and rewrites them as state propaganda. The results are genuinely unsettling because they’re based on actual news. A Tesla autopilot crash became “Citizen Misalignment with Vehicle Guidance Systems Results in Regrettable Isolated Incident in Texas Residential Sector” which I think is funnier than anything I could have written myself. The bug that got me: I passed the respond function itself as the text value instead of the actual result. Slack received an empty object, returned invalid_payload , and I spent way too long staring at the Groq response before noticing the slash command handler was the problem, not the API call.
Get more than one 1984 themed headline The /bigbrother-news command could technically accept a count, but it always returned exactly one rewrite no matter what you passed. First, rewriteHeadline was looping over the headlines array but always sending headline[0] to Groq, so it was rewriting the same headline count times. Second, the function returned an array but respond() was getting that array passed directly as text, which Slack rejects with a 500 because it expects a string. Fixed both, headline[i] in the loop, .join("\n") before responding. Also added a .replace(/^[""]|[""]$/g, "") strip because the model randomly decides whether to wrap its output in quotes or not and I’d rather it just didn’t. The original code also only ever called rewriteHeadline with a single headline and had no loop at all, scaling it up to handle multiple rewrites sequentially meant restructuring the whole function.
Stopped reloading 10 channels every time someone checks their loyalty score The surveillance system was fetching all messages from all 10 channels on every single /bigbrother-loyalty call. That meant a ~ 50 second wait every time. Not great when Big Brother is supposed to feel instant and omniscient. The fix: the bot now keeps a local JSON file of all messages. When someone requests their score, it only fetches messages newer than the newest one already saved, then deletes anything older than 7 days to keep the file lean. On top of that, a cron job rewrites the whole file once a day so it never drifts out of sync. Score lookups that took a minute now finish in a couple seconds. The panopticon is finally fast enough to be scary.
Loyalty scoring now factors in message sentiment. I added positive/negative sentiment saving by reusing the existing 7-day message cache logic, then wired the Surveillance module to read those sentiment files the same way it already reads other JSON, no new infrastructure needed. The score itself now reflects not just how active a user is, but whether they’re saying good or bad things about the Party.
The /bigbrother-loyalty command now doubles as a live leaderboard, every call re-ranks and displays the top 10 most loyal Party members. Plugging into the existing loyalty score pipeline meant the scoreboard itself was straightforward to build, but getting the Slack Block Kit formatting right for a clean ranked list took longer than expected. Ended up iterating through a few layouts before settling on one that doesn’t look terrible.
Two Minute Hate, now interactive Built a /bigbrother-hate command for the Slack bot that escalates the existing 11:00 Two Minute Hate through 3 stages (Whisper → Roar → Frenzy) based on call count, with in-character stage-transition announcements and increasing-intensity bot posts. The interesting part was the difficulty curve. Base thresholds are 5 and 15 calls, but they get multiplied each day by yesterday / 7-day-mean, clamped 0.5–2.0. So if Monday had 20 calls and Tuesday only 15, Wednesday’s threshold drops to ~62% of the base — easier to escalate on quiet days. First pass forgot to reset usageCount and stage on the daily recompute, so the bot stayed pinned at Frenzy forever after one good session. Caught it on the second test run. Wired it to the existing 11:00–11:02 cron window so calls outside it get an in-character refusal. Also added hateLevel.json to .gitignore since it’s pure runtime state. Next: DMing the bot, probably tackling that before adding more interactive bits.
Replaced every console.log in the bot with a leveled logger. The old setup was five files each printing things like “Message received!”, “Responding…”, and “Messages saved!” with no way to tell which file was talking or which run produced which line. Replaced it all with a single Code/Logger.js that adds timestamps, severity ( debug / info / warn / error ), a subsystem tag per file, and structured metadata. Errors now print a full stack trace on a second dimmed line instead of [object Object] . The visual difference is the whole point. Before, /bigbrother-loyalty produced four console.log lines with no correlation. After, it produces one timestamped line per stage — fetch, score, scoreboard write — and you can grep by subsystem or level. The interesting bug: my first Logger.js had a guard that re-checked whether meta was undefined, but I also had a fallback that promoted a non- Error second argument into meta . The two branches collided and swallowed the error stack entirely. Caught it in a two-line test snippet before staging, would have been invisible until the first real API failure. Also stopped logging the full Hugging Face response on every sentiment check. Now it only prints the per-label scores rounded to three decimals, same diagnostic value, way less noise.
Added DM support: BigBrother can now talk back Users can now DM the bot and get a response in character as BigBrother, powered by Llama 3.3 on Groq. The bot keeps a per-user conversation history (capped at 30 messages) so it actually remembers what you said earlier in the conversation. History lives in memory, so it resets on restart, intentional, didn’t feel worth the complexity of persisting it. The interesting part was Slack’s permission system. Adding the im:history , im:read , and im:write scopes wasn’t enough on its own, you also need to separately subscribe to the message.im event under Event Subscriptions. The scopes let the bot act on DMs, the event subscription is what actually delivers them. Spent a while staring at logs with no “DM received” entries before finding that.
Made Big Brother stop lying about your loyalty score The /bigbrother-loyalty command was silently corrupting its own scoreboard. Every call overwrote the user’s stored score with whatever the current calculation produced — which meant a citizen who hit 200 points last week would see their displayed rank drop to 50 after a quiet few days. The scoreboard was a ledger of “most recent” instead of “best ever”, which is the opposite of how a loyalty panopticon should work. The fix in Code/Surveillance.js was small but mattered: scoreboard() now only writes when the new score strictly beats the stored high, and stamps an achievedAt ISO timestamp on each new record. While in there, I also wired /bigbrother-scoreboard to refresh the caller’s score before displaying, so running it actually updates your entry — previously it just read stale data. The refresh is wrapped in try/catch so a transient Slack or HuggingFace failure doesn’t break the leaderboard read. That scoreboard bug was the tip of a much longer audit. The same session surfaced and fixed ~50 defects across the codebase: Surveillance.presenceCheck was returning undefined (not 0 ) on unknown presence values, producing NaN loyalty scores that then broke the sort; Telescreen.propaganda() would crash with TypeError if broadcasts.json was empty; Truth.getNews() called .map() on a potentially-missing articles array; concurrent readFile / writeFile pairs on the same JSON file were last-writer-wins. Added a 12-line per-file async mutex in Code/lock.js and wrapped every read-merge-write critical section. Also added .env validation at boot — previously a missing HF_TOKEN would surface as an undefined auth header 45 minutes into a Slack session instead of failing at startup.
Wrote the README and stopped the prerequisites file from lying about itself The repo had no README and prerequisites.md was three stray lines ( axios , node-cron , fs ) that didn’t actually match what package.json declared or what main.js fails fast on at boot. Rewrote prerequisites.md as a pure library install reference — packages, versions, and one npm install command — then wrote a README that follows the structure the Stardance judges actually want: one-sentence description, hero image slot, a try-it link, quick start, features, local setup, and a “how it works” section that earns its keep by naming real decisions (Socket Mode over HTTP so it runs behind any network, self-rescheduling crons with re-rolling fire times, file-locked JSON as a tiny DB instead of SQLite, sequential Groq calls to dodge rate limits). The friction was the Node version. There’s no engines field in package.json and no .nvmrc , so I didn’t want to just assert “Node 18+” without evidence. Grepping package-lock.json for "engines" turned up ~100 matches and the binding constraint is @slack/bolt ‘s transitive deps all declaring "node": ">=18" — so that’s the honest floor, stated as such. Also swapped the watched channel ID in Code/main.js from C0BBBCER55W to C09F6AAP1PF to match the workspace in the invite link I was handed. Caught one real issue while reviewing: the “Try it” link was a channel permalink ( /archives/C09F6... ), which a non-member hits a sign-in wall on, flagged it, left it in since it’s an internal members link.
Ships:
BigBrother is a 1984-themed Slack bot that turns your workspace into Oceania. It runs five modules: Surveillance tracks message activity across channels and maintains a leaderboard of who’s been most “active” (watched). Telescreen broadcasts Orwellian announcements to the workspace. Police runs sentiment analysis on messages and flags thoughtcrime — positivity is suspicious. Truth rewrites real news headlines in Party-approved doublespeak using NewsAPI + Groq. DM lets you talk directly to Big Brother, who responds in full authoritarian character via LLM. Built with Node.js + Bolt.js over Hack Club Stardance. Big Brother is always watching — especially in #1984....
|
1793242555.3984308
|
1793328955.3984308
|
|
18821
|
Timed. by @Mehmet | Stardance
|
Mehmet
|
2
|
25.0
|
58
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-25T10:47:13Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Timed, a productivity website that you can use to keep timers and get access to the real-life clock. It has a minimalist and satisfying UI that you can keep running in the background for when you need to complete temporal tasks.", "repo": "https://github.com/SameRainbows/Timed.", "demo": "https://timed-focused.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-19T20:15:13Z", "hours": 12.0, "multiplier": 4.88, "payout": 58, "blessing": "neutral", "text": "It started as a basic Python script and has now evolved into a premium, focused, and hyper-minimalist single-page web app. Check out the live clock (with toggleable milliseconds), stopwatch with laps, and countdown timer complete with customized E-flat Major arpeggio bell chimes synthesized on the fly via Web Audio API. Also cleaned up the Python CLI tool to refresh inline and support hardware chimes.", "repo": "https://github.com/SameRainbows/Timed.", "demo": "https://timed-focused.vercel.app/"}]...
|
[{"post_id": 82594, "ts": "202 [{"post_id": 82594, "ts": "2026-10-25T10:45:34Z", "hours": 3.105, "text": "Did some final cleanups on the code."}, {"post_id": 46875, "ts": "2026-08-14T12:43:15Z", "hours": 9.1136, "text": "Updated README and added a few more features ;)"}, {"post_id": 35438, "ts": "2026-07-26T20:55:53Z", "hours": 0.3211, "text": "Cleaned up the repo a"}, {"post_id": 31438, "ts": "2026-07-19T20:12:02Z", "hours": 6.5822, "text": "Hey everyone, I’m back with a massive update for Timed. ! After focusing on other projects for a bit, I decided to return and give this project the thorough cleanup, visual redesign, and feature set it deserves. It has been transformed from an extremely basic prototype into a premium, focused, and hyper-minimalist time hub. Here is what is new in the latest version:### 1. Aesthetic Clean-up & Hyper-Minimalism- Clean Slate Background : Removed the distracting background gradient glow for a clean, uniform deep slate environment.- Logo Refinement : Removed the bullet dot next to the logo for a cleaner top-left header.- Hidden Footer : Removed the copyright text and footer entirely, leaving zero visual clutter.- Tabular Digit Spacing : Styled the clock displays to use tabular monospaced digits, preventing annoying layout shifting when the seconds change. 2. Live Clock & Mode Segregation- ** Hidden Minute Ring on Clock**: The spinning progress ring is now hidden on the Live Clock mode page (to avoid confusion), but it still displays smoothly in Timer and Stopwatch modes.- Interactive Toggles : Tapping the clock display now toggles millisecond view on/off, and there are custom buttons to swap between 12-hour and 24-hour display modes. 3. All-New Stopwatch Mode- Added a full Stopwatch Mode to the web application, featuring millisecond accuracy, controls to pause and resume, and a scrolling lap recording panel. 4. Upgrade Countdown Timer & Presets- Added preset buttons for quick intervals (5m Break, 15m Break, 25m Pomodoro, 50m Focus).- Added an input picker for custom hours, minutes, and seconds. 5. Synthesized Acoustic Bell Chimes- Got rid of the basic, harsh beep sounds.- Coded a custom Web Audio API synthesizer that dynamically triggers a warm, premium E-flat Major arpeggio chime ( Eb4 -> Bb4 -> D5 -> F5 ) using physical acoustic decay curves when the timer completes. 6. Polished Terminal Application ( timerr.py )- Upgraded the CLI python app to refresh in-place ( \\r ) so it doesn’t flood the console output.- Added input validation to prevent user typos from crashing the script.- Built a terminal-based stopwatch with lap tracking.- Upgraded the CLI buzzer to play a beautiful arpeggiated chime using Windows system hardware chimes.### 7. Deployment & GitHub- Deployed the entire static application to Vercel at a clean production URL: timed-focused.vercel.app - Staged, committed, and pushed the updated codebase to the remote GitHub repository at SameRainbows/Timed ."}, {"post_id": 19120, "ts": "2026-06-30T11:11:05Z", "hours": 0.8578, "text": "Some code cleanup. I got little bit of this time internalizing the logic to build on top once the dust settles. Im working on a few other projects rn so cya when I come back."}, {"post_id": 13046, "ts": "2026-06-21T10:25:51Z", "hours": 2.3322, "text": "I finally turned it into a web app. It’s extremely basic, just a live clock and a timer. I honestly didn’t know any JavaScript, so I had some help on that part from Claude. I looked at my old timer.py code, converted it to HTML, and handled the CSS myself for basic styling. It still doesn’t have a live demo yet, but the latest changes are on GitHub."}, {"post_id": 12468, "ts": "2026-06-20T11:12:33Z", "hours": 1.7311, "text": "Welcome to my second log for Timed. Timed is a hub for all your temporal needs. It has the basic features like a clock and timers, and I intend to add all sorts of different things like moon phases, solar events, and way more. Right now, it is a Python file with an audio file so it can run an alert sound, but I intend to make this a Python Flask web app. In this log, I added the following: The code currently uses four libraries: The existing time module inside of Python The datetime library The playsound library msvcrt We have two functions: Timer function: It takes two parameters: the time length in seconds and the direction the timer is going (up or down). Infinite loop function: It checks if any keys are pressed using the msvcrt library. If so, it breaks out of the loop. If not, it uses the datetime library to get the current time, prints it, waits one second, and prints it again. This entire while loop is inside a try-except block. If a KeyboardInterrupt error is seen, it prints “Clock stopped.” We have a variable set to an input to see if the user is going to use the timer or the live clock. If they choose the timer, we ask them for the direction (up or down) and if they will be using minutes. The following code then calls for those parameters."}, {"post_id": 8936, "ts": "2026-06-14T21:06:07Z", "hours": 0.4431, "text": "Making a tool for ALL your time-related needs."}]...
|
Title: Timed. by @Mehmet | Stardance
Devlogs:
Mak Title: Timed. by @Mehmet | Stardance
Devlogs:
Making a tool for ALL your time-related needs.
Welcome to my second log for Timed. Timed is a hub for all your temporal needs. It has the basic features like a clock and timers, and I intend to add all sorts of different things like moon phases, solar events, and way more. Right now, it is a Python file with an audio file so it can run an alert sound, but I intend to make this a Python Flask web app. In this log, I added the following: The code currently uses four libraries: The existing time module inside of Python The datetime library The playsound library msvcrt We have two functions: Timer function: It takes two parameters: the time length in seconds and the direction the timer is going (up or down). Infinite loop function: It checks if any keys are pressed using the msvcrt library. If so, it breaks out of the loop. If not, it uses the datetime library to get the current time, prints it, waits one second, and prints it again. This entire while loop is inside a try-except block. If a KeyboardInterrupt error is seen, it prints “Clock stopped.” We have a variable set to an input to see if the user is going to use the timer or the live clock. If they choose the timer, we ask them for the direction (up or down) and if they will be using minutes. The following code then calls for those parameters.
I finally turned it into a web app. It’s extremely basic, just a live clock and a timer. I honestly didn’t know any JavaScript, so I had some help on that part from Claude. I looked at my old timer.py code, converted it to HTML, and handled the CSS myself for basic styling. It still doesn’t have a live demo yet, but the latest changes are on GitHub.
Some code cleanup. I got little bit of this time internalizing the logic to build on top once the dust settles. Im working on a few other projects rn so cya when I come back.
Hey everyone, I’m back with a massive update for Timed. ! After focusing on other projects for a bit, I decided to return and give this project the thorough cleanup, visual redesign, and feature set it deserves. It has been transformed from an extremely basic prototype into a premium, focused, and hyper-minimalist time hub. Here is what is new in the latest version:### 1. Aesthetic Clean-up & Hyper-Minimalism- Clean Slate Background : Removed the distracting background gradient glow for a clean, uniform deep slate environment.- Logo Refinement : Removed the bullet dot next to the logo for a cleaner top-left header.- Hidden Footer : Removed the copyright text and footer entirely, leaving zero visual clutter.- Tabular Digit Spacing : Styled the clock displays to use tabular monospaced digits, preventing annoying layout shifting when the seconds change. 2. Live Clock & Mode Segregation- ** Hidden Minute Ring on Clock**: The spinning progress ring is now hidden on the Live Clock mode page (to avoid confusion), but it still displays smoothly in Timer and Stopwatch modes.- Interactive Toggles : Tapping the clock display now toggles millisecond view on/off, and there are custom buttons to swap between 12-hour and 24-hour display modes. 3. All-New Stopwatch Mode- Added a full Stopwatch Mode to the web application, featuring millisecond accuracy, controls to pause and resume, and a scrolling lap recording panel. 4. Upgrade Countdown Timer & Presets- Added preset buttons for quick intervals (5m Break, 15m Break, 25m Pomodoro, 50m Focus).- Added an input picker for custom hours, minutes, and seconds. 5. Synthesized Acoustic Bell Chimes- Got rid of the basic, harsh beep sounds.- Coded a custom Web Audio API synthesizer that dynamically triggers a warm, premium E-flat Major arpeggio chime ( Eb4 -> Bb4 -> D5 -> F5 ) using physical acoustic decay curves when the timer completes. 6. Polished Terminal Application ( timerr.py )- Upgraded the CLI python app to refresh in-place ( \r ) so it doesn’t flood the console output.- Added input validation to prevent user typos from crashing the script.- Built a terminal-based stopwatch with lap tracking.- Upgraded the CLI buzzer to play a beautiful arpeggiated chime using Windows system hardware chimes.### 7. Deployment & GitHub- Deployed the entire static application to Vercel at a clean production URL: timed-focused.vercel.app - Staged, committed, and pushed the updated codebase to the remote GitHub repository at SameRainbows/Timed .
Cleaned up the repo a
Updated README and added a few more features ;)
Did some final cleanups on the code.
Ships:
It started as a basic Python script and has now evolved into a premium, focused, and hyper-minimalist single-page web app. Check out the live clock (with toggleable milliseconds), stopwatch with laps, and countdown timer complete with customized E-flat Major arpeggio bell chimes synthesized on the fly via Web Audio API. Also cleaned up the Python CLI tool to refresh inline and support hardware chimes.
I made Timed, a productivity website that you can use to keep timers and get access to the real-life clock. It has a minimalist and satisfying UI that you can keep running in the background for when you need to complete temporal tasks....
|
1793123521.3865361
|
1793209921.3865361
|
|
19519
|
fume extractor by @flyingfish | Stardance
|
flyingfish
|
1
|
25.0
|
124
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-20T04:45:08Z", "hours": 25.0, "multiplier": 5.0, "payout": 124, "blessing": "neutral", "text": "I made a fume extractor for soldering so that you don’t get light headed after soldering for long periods of time", "repo": "https://github.com/dinotiger01/fume-extractor", "demo": ""}]...
|
[{"post_id": 12349, "ts": "202 [{"post_id": 12349, "ts": "2026-06-20T04:36:28Z", "hours": 2.5306, "text": "I just finished the github read me now i am ready to ship"}, {"post_id": 12248, "ts": "2026-06-20T00:26:50Z", "hours": 8.9728, "text": "i just printed the new design and spent a long time assembling and i made some changes after having physically making it. (the picture doesn’t fit in the frame for some reason but it is just the finished fume extractor standing up) legs broken: so after assembling the legs the i found the little flaps on the legs have to big of a gap between the it and the block that is intended to hold it in place. this makes them not do there only purpose. so i redesigned the flaps to have little blocks to hold in place(the new legs are being printed rn so the new ones are not in the picture) the MSC(motor speed controller): so it was like really annoying it kept breaking and it like didn’t do anything and it went against one of my constraints because the potentiometer would stick out of the case so i just kinda removed it and connected the fan directly to the power source so you turn it on and of by just unplugging it."}, {"post_id": 11032, "ts": "2026-06-18T01:54:49Z", "hours": 4.4647, "text": "i printed the old case and it didn’t work at all so i spent all day redesign the case from scratch and i made a lot of changes while i was doing it size: i made everything a bit bigger because things didn’t fit mainly the place where the fan it no screws: i hade screws before because i thought is is just a good way to hold things together how ever i realized while redesigning they don’t work for this project because they are just to big and heavy so i am instead relying on the elasticity of plastic to hold the cover on the little flaps: in the old design i had these tiny flaps that was spoused to increase stability with rails to let it fold up however i made the rails waaay to small so this time i made the rail 5x bigger along with making the flaps longer to increase surface area rails: last time i designed the legs, before i designed the rails that they will go in to this resulted it really bad rails so this time i made the rails first then designed the legs so that it will be stronger because i can actually make strong rails"}, {"post_id": 10360, "ts": "2026-06-17T01:18:44Z", "hours": 4.4553, "text": "i made the circuit for the motor speed controller its really simple. i also got all the git hub repository set up"}, {"post_id": 9635, "ts": "2026-06-16T01:21:52Z", "hours": 4.43, "text": "i am going to make a fume extractor because i solder in my room and that’s not good for you constraints: small(i want it to be under 1ft so it can fit in my desk) expandable(i want a way to move it up and down so it can work when i am soldering something on a stand) flat(i don’t want to have many part stick out so i can put it in my drawer without taking up to much space) stable(i just don’t want it to fall over) small: to make it small i made it out of a small parable fan i repaired expendable: i was thinking about how to do this for a long time and eventually settled on a ladder peg system so you lift it to the high you wand then insert the peg so it holds in place stable: for this i knew i wanted a system where something would extend on the floor to increase surface area how ever i couldn’t find a good way to do this so i settled on two little flaps that go on the bottom of the legs flat: this is why the stability was really hard to figure out but i ended up making a track for the flaps to fold up so they don’t tack up space"}]...
|
Title: fume extractor by @flyingfish | Stardance
Title: fume extractor by @flyingfish | Stardance
Devlogs:
i am going to make a fume extractor because i solder in my room and that’s not good for you constraints: small(i want it to be under 1ft so it can fit in my desk) expandable(i want a way to move it up and down so it can work when i am soldering something on a stand) flat(i don’t want to have many part stick out so i can put it in my drawer without taking up to much space) stable(i just don’t want it to fall over) small: to make it small i made it out of a small parable fan i repaired expendable: i was thinking about how to do this for a long time and eventually settled on a ladder peg system so you lift it to the high you wand then insert the peg so it holds in place stable: for this i knew i wanted a system where something would extend on the floor to increase surface area how ever i couldn’t find a good way to do this so i settled on two little flaps that go on the bottom of the legs flat: this is why the stability was really hard to figure out but i ended up making a track for the flaps to fold up so they don’t tack up space
i made the circuit for the motor speed controller its really simple. i also got all the git hub repository set up
i printed the old case and it didn’t work at all so i spent all day redesign the case from scratch and i made a lot of changes while i was doing it size: i made everything a bit bigger because things didn’t fit mainly the place where the fan it no screws: i hade screws before because i thought is is just a good way to hold things together how ever i realized while redesigning they don’t work for this project because they are just to big and heavy so i am instead relying on the elasticity of plastic to hold the cover on the little flaps: in the old design i had these tiny flaps that was spoused to increase stability with rails to let it fold up however i made the rails waaay to small so this time i made the rail 5x bigger along with making the flaps longer to increase surface area rails: last time i designed the legs, before i designed the rails that they will go in to this resulted it really bad rails so this time i made the rails first then designed the legs so that it will be stronger because i can actually make strong rails
i just printed the new design and spent a long time assembling and i made some changes after having physically making it. (the picture doesn’t fit in the frame for some reason but it is just the finished fume extractor standing up) legs broken: so after assembling the legs the i found the little flaps on the legs have to big of a gap between the it and the block that is intended to hold it in place. this makes them not do there only purpose. so i redesigned the flaps to have little blocks to hold in place(the new legs are being printed rn so the new ones are not in the picture) the MSC(motor speed controller): so it was like really annoying it kept breaking and it like didn’t do anything and it went against one of my constraints because the potentiometer would stick out of the case so i just kinda removed it and connected the fan directly to the power source so you turn it on and of by just unplugging it.
I just finished the github read me now i am ready to ship
Ships:
I made a fume extractor for soldering so that you don’t get light headed after soldering for long periods of time...
|
1793116132.9121253
|
1793202532.9121253
|
|
22053
|
Craftie - A Minecraft Info Slack Bot by @GoldMonke Craftie - A Minecraft Info Slack Bot by @GoldMonke | Stardance...
|
GoldMonke
|
2
|
25.0
|
284
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-27T15:56:53Z", "hours": 17.0, "multiplier": 9.62, "payout": 194, "blessing": "neutral", "text": "I updated Craftie, a bot that can fetch minecraft-related things for slack, and with this ship, discord ! For this ship I added all commands to discord and, for the most challenging part made all messages and some other values configurable. I’m really glad I went on with this challenge as I learned about a lot of new topics going through this. To test the bot yourself on slack, you can join #gold-coding or #bot-spam , and type /craftie-help to get help with the commands, although reading the README.md on github is recommended for more info. The same goes for discord, although the commands there are a bit different, as they’re not prefixed with craftie- . To test the bot there you can either add it to your own discord server or as a personal app using the invite link . The other, easier option is to join my discord server , where the bot is already added and you can test it in #bot-commands .", "repo": "https://github.com/ItsGoldMonke/CraftieBot", "demo": "https://hackclub.enterprise.slack.com/archives/C0BE1K8EW82"}, {"ship_num": 2, "ts": "2026-06-30T03:02:25Z", "hours": 8.0, "multiplier": 12.07, "payout": 90, "blessing": "neutral", "text": "I made a slackbot that displays info on a minecraft server or player and puts that into a nice image or slack block. I had some struggles with creating and sending the image but it was overall a pretty easy project. To test this project you should know you can best use the channels #monke-coding or #bot-spam because otherwise you need to add the bot first to the channel for the image sending to work.", "repo": "https://github.com/ItsGoldMonke/CraftieBot", "demo": "https://hackclub.enterprise.slack.com/archives/C0BE1K8EW82"}]...
|
[{"post_id": 83262, "ts": "202 [{"post_id": 83262, "ts": "2026-10-27T15:43:05Z", "hours": 5.8478, "text": "Finished discord support! I have now completed adding discord support to the bot. After some shuffling around I got the last commands working, and now the bot is fully configurable as well! By editing config.js you can change all kinds of parameters, for example all api urls can be changed (although they should reply in a similar way to work), and you can change default values such as the default icon used, the default port per server type, and the timeout used for requests. You can also configure the width, height and font used for player images. I also There is also a messages.js file now, where you can configure the messages the bot replies with, for example on a certain error and the footer used for discord component v2 embeds."}, {"post_id": 74205, "ts": "2026-09-26T22:19:10Z", "hours": 7.7758, "text": "A lot of changes I started working on this project again after a while and now I already have almost 8 hours to be logged. I have since started working on making this bot also be supported on discord, by first refactoring all my slack commands to be modular so I can easily request server status information I also made the first two slack commands to be on discord: those are the /ping and /status commands. the /ping command just simply replies with a message “pong!”, and the /status command uses discord’s components v2 via discord.js to make the output look as nice as possible. You can see it in the attached screenshot. Some errors I still have though are the following: the online player list gets formatted by discord, like you can see the spoilered text in the image below. the mcstatus api for some reason has been reporting hypixel to be offline mosly for the last ~7 days. I want to fix these errors and also add the other slack commands to discord, and then maybe even look into making the message of the day look better. (colors…??)"}, {"post_id": 45296, "ts": "2026-08-11T17:40:15Z", "hours": 0.6425, "text": "I’m finally back home! After having noticed a bug since the beginning of my vacation in France I’ve been eager to fix it which I’ve now finally been able to do. The API I used for server icon fetching went down / discontinued so I made it use the same api as all others (idk why I used another one in the first place) Other Changes: I’ve also made some other fixes since my last devlog, these are just like simple spelling errors but I also made all requests be fetched with retries, so there is less chance of things breaking. Also when a server is offline the max players is now reported as zero."}, {"post_id": 26940, "ts": "2026-07-12T00:54:28Z", "hours": 1.0378, "text": "A lot of bugfixes I fixed a lot of bugs with the bot causing unnecessary errors and other unintended things. Some of these include: Retrying failed requests (this fixes the images sometimes not generating because somehow once in a while the first request to mcheads fails.) Add better error handling for players. (fixes the message that should happen when trying to fetch a player that does not exist (Wifies reference!!?? /s) ) Now register font separately from command for more performance Fix some errors in logging Changelog af7a9d0 02d92df 77d5917 2f125ae 8a01281 d0738f0 55bfc62 e7bd380 9204f32 b4d7ca4"}, {"post_id": 25665, "ts": "2026-07-10T02:27:43Z", "hours": 0.6331, "text": "Added a ton of debug logging to find out WHYYYY sometimes my bot’s command, /craftie-player will just hang and only place the generating message and not anything else. So now I added TONS of debug logging to (hopefully) finally find out why this happen(s/ed). I also changed the way it puts the image to use axios with a timeout so it can still do something if it fails. let’s hope this will work :)"}, {"post_id": 22429, "ts": "2026-07-04T21:56:58Z", "hours": 0.8586, "text": "Devlog 7 - I don’t even know how I didn’t find this yet Fixed a bug where the bot gives an error if you try to fetch a java server without an srv record. It now first checks if the srvrecord.port object is there in the api request and otherwise it sets the srvPort variable to a supplied port in the command (if given, although I don’t think doing that was even necessery whatsoever)"}, {"post_id": 18891, "ts": "2026-06-30T02:46:51Z", "hours": 0.6967, "text": "Devlog 6 I now made a little fix to the player command to display the correct username and it now shows a full body image. I also wrote a README for the GitHub repo of the bot so it’s easier to understand how the bot works and how to use it."}, {"post_id": 18840, "ts": "2026-06-30T01:18:55Z", "hours": 2.8211, "text": "Good Bots Need Good Styling I made a lot of QoL additions to the bot to make using it more pleasant. To start I added a pfp to the bot so it’s more recognizable, which as of right now is just a pixelated (minecraft) version of my pfp but I want to change it later if I got more time. I also added the command /craftie-player <Name|UUID> where you can get information on players like their uuid and username (although you should already know one of them by using the command) with a nice profile-card like image generated with the canvas library. It also shows the player head, and I want to later add buttons or something like that below to download the skins. I also want to add stuff like account creation name and maybe last three usernames to the image. That’s it for this devlog and maybe I’ll see you in the next one :)"}, {"post_id": 13691, "ts": "2026-06-22T13:24:27Z", "hours": 1.2225, "text": "Better Bedrock Support & SRV ports I changed a lot of the code now to use a java server’s SRV port if it’s defined, so now the server icon’s display right if you don’t define a port. I also made servers without an icon (due to an error or it being a bedrock server) display the default server icon (pack.png in BW). I also started making a new command, /craftie-player which will look up player info like their UUID and skin."}, {"post_id": 13436, "ts": "2026-06-22T00:39:10Z", "hours": 0.8758, "text": "Statuses look good now! I updated the status command to use a slack block kit instead of plain text so now it looks much cleaner. This also allows me to implement more features later like maybe a reload button. I also fixed a bug causing the bot to freak out if the server being queried was offline because soms data wouldn’t be available then and I was requesting it at the wrong time. Now it just displays “Unavailable” for those stats."}, {"post_id": 13379, "ts": "2026-06-21T22:25:07Z", "hours": 1.1619, "text": "I updated the bot to show many more statistics such as the mincraft version and MOTD. It also shows the amount of online players and the specific players that are online if the server announces it."}, {"post_id": 13274, "ts": "2026-06-21T18:54:38Z", "hours": 0.7378, "text": "I finally made the first few commands for the bot! Two commands were from the tutorial (ping and help) and one “from scratch” (of course with help from the tutorial). /craftie-help - tells you all the commands /craftie-ping - tells you the ping between the bot and slack /craftie-status - tells you the status for a server. It is now just saying “Server Online” if the response.online == true and “Server Offline” if false. Next I want to implement custom parameters so you can select what server you want to check the status for. Then I also want to make the status message look nicer."}]...
|
Title: Craftie - A Minecraft Info Slack Bot by @Go Title: Craftie - A Minecraft Info Slack Bot by @GoldMonke | Stardance
Devlogs:
I finally made the first few commands for the bot! Two commands were from the tutorial (ping and help) and one “from scratch” (of course with help from the tutorial). /craftie-help - tells you all the commands /craftie-ping - tells you the ping between the bot and slack /craftie-status - tells you the status for a server. It is now just saying “Server Online” if the response.online == true and “Server Offline” if false. Next I want to implement custom parameters so you can select what server you want to check the status for. Then I also want to make the status message look nicer.
I updated the bot to show many more statistics such as the mincraft version and MOTD. It also shows the amount of online players and the specific players that are online if the server announces it.
Statuses look good now! I updated the status command to use a slack block kit instead of plain text so now it looks much cleaner. This also allows me to implement more features later like maybe a reload button. I also fixed a bug causing the bot to freak out if the server being queried was offline because soms data wouldn’t be available then and I was requesting it at the wrong time. Now it just displays “Unavailable” for those stats.
Better Bedrock Support & SRV ports I changed a lot of the code now to use a java server’s SRV port if it’s defined, so now the server icon’s display right if you don’t define a port. I also made servers without an icon (due to an error or it being a bedrock server) display the default server icon (pack.png in BW). I also started making a new command, /craftie-player which will look up player info like their UUID and skin.
Good Bots Need Good Styling I made a lot of QoL additions to the bot to make using it more pleasant. To start I added a pfp to the bot so it’s more recognizable, which as of right now is just a pixelated (minecraft) version of my pfp but I want to change it later if I got more time. I also added the command /craftie-player <Name|UUID> where you can get information on players like their uuid and username (although you should already know one of them by using the command) with a nice profile-card like image generated with the canvas library. It also shows the player head, and I want to later add buttons or something like that below to download the skins. I also want to add stuff like account creation name and maybe last three usernames to the image. That’s it for this devlog and maybe I’ll see you in the next one :)
Devlog 6 I now made a little fix to the player command to display the correct username and it now shows a full body image. I also wrote a README for the GitHub repo of the bot so it’s easier to understand how the bot works and how to use it.
Devlog 7 - I don’t even know how I didn’t find this yet Fixed a bug where the bot gives an error if you try to fetch a java server without an srv record. It now first checks if the srvrecord.port object is there in the api request and otherwise it sets the srvPort variable to a supplied port in the command (if given, although I don’t think doing that was even necessery whatsoever)
Added a ton of debug logging to find out WHYYYY sometimes my bot’s command, /craftie-player will just hang and only place the generating message and not anything else. So now I added TONS of debug logging to (hopefully) finally find out why this happen(s/ed). I also changed the way it puts the image to use axios with a timeout so it can still do something if it fails. let’s hope this will work :)
A lot of bugfixes I fixed a lot of bugs with the bot causing unnecessary errors and other unintended things. Some of these include: Retrying failed requests (this fixes the images sometimes not generating because somehow once in a while the first request to mcheads fails.) Add better error handling for players. (fixes the message that should happen when trying to fetch a player that does not exist (Wifies reference!!?? /s) ) Now register font separately from command for more performance Fix some errors in logging Changelog af7a9d0 02d92df 77d5917 2f125ae 8a01281 d0738f0 55bfc62 e7bd380 9204f32 b4d7ca4
I’m finally back home! After having noticed a bug since the beginning of my vacation in France I’ve been eager to fix it which I’ve now finally been able to do. The API I used for server icon fetching went down / discontinued so I made it use the same api as all others (idk why I used another one in the first place) Other Changes: I’ve also made some other fixes since my last devlog, these are just like simple spelling errors but I also made all requests be fetched with retries, so there is less chance of things breaking. Also when a server is offline the max players is now reported as zero.
A lot of changes I started working on this project again after a while and now I already have almost 8 hours to be logged. I have since started working on making this bot also be supported on discord, by first refactoring all my slack commands to be modular so I can easily request server status information I also made the first two slack commands to be on discord: those are the /ping and /status commands. the /ping command just simply replies with a message “pong!”, and the /status command uses discord’s components v2 via discord.js to make the output look as nice as possible. You can see it in the attached screenshot. Some errors I still have though are the following: the online player list gets formatted by discord, like you can see the spoilered text in the image below. the mcstatus api for some reason has been reporting hypixel to be offline mosly for the last ~7 days. I want to fix these errors and also add the other slack commands to discord, and then maybe even look into making the message of the day look better. (colors…??)
Finished discord support! I have now completed adding discord support to the bot. After some shuffling around I got the last commands working, and now the bot is fully configurable as well! By editing config.js you can change all kinds of parameters, for example all api urls can be changed (although they should reply in a similar way to work), and you can change default values such as the default icon used, the default port per server type, and the timeout used for requests. You can also configure the width, height and font used for player images. I also There is also a messages.js file now, where you can configure the messages the bot replies with, for example on a certain error and the footer used for discord component v2 embeds.
Ships:
I made a slackbot that displays info on a minecraft server or player and puts that into a nice image or slack block. I had some struggles with creating and sending the image but it was overall a pretty easy project. To test this project you should know you can best use the channels #monke-coding or #bot-spam because otherwise you need to add the bot first to the channel for the image sending to work.
I updated Craftie, a bot that can fetch minecraft-related things for slack, and with this ship, discord ! For this ship I added all commands to discord and, for the most challenging part made all messages and some other values configurable. I’m really glad I went on with this challenge as I learned about a lot of new topics going through this. To test the bot yourself on slack, you can join #gold-coding or #bot-spam , and type /craftie-help to get help with the commands, although reading the README.md on github is recommended for more info. The same goes for discord, although the commands there are a bit different, as they’re not prefixed with craftie- . To test the bot there you can either add it to your own discord server or as a personal app using the invite link . The other, easier option is to join my discord server , where the bot is already added and you can test it in #bot-commands ....
|
1793242379.6517396
|
1793328779.6517396
|
|
25598
|
itinerarey by @nate | Stardance
|
nate
|
1
|
25.0
|
369
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T03:25:36Z", "hours": 25.0, "multiplier": 14.57, "payout": 369, "blessing": "neutral", "text": "Itinerarey is the better way to plan out your trips! When getting ready for a vacation, it can be incredibly stressful to plan out flights, hotels, activities, and more! So, I built itinerarey to make it a bit easier! It uses APIs and web scrapers to compile information from across the internet to have a centralized place to get information. The most challenging part of Itinerarey was the flights and hotels system. There are no free APIs (with good limits) for showing either, so I had to get a bit creative and spend a few hours researching. The flights system runs by contacting an API that runs a python web scraper that is hosted on Render, while the hotels call from an online Booking.com scraper. I am really proud of the recap page, mainly. To me, it feels like a representation of the entire project in its entireity. It shows everything the user did, and it works as a confirmation of every system performing as it should. For testing, please be aware that the render server mmight take up to a minute to load up. Also, due to web scraping being a bit finnicky, some results might not show up. If this happens, try clearing your localstorage and using a new destination. Enjoy your vacations! -nate", "repo": "https://github.com/Np3-0/itinerarey", "demo": "https://itinerarey.vercel.app/"}]...
|
[{"post_id": 73441, "ts": "202 [{"post_id": 73441, "ts": "2026-09-25T03:12:47Z", "hours": 3.2119, "text": "Itinerarey is complete! The last thing that I needed to get done was the recap page, which takes all the data in your localstorage and displays it for you! I had to rewrite how the flights and hotels are displayed to show the booking links, but overall it was pretty simple. The main thing that I am proud of is the budget tracker, which shows the prices for everything, including how much is leftover in the budget! This is done with some pretty simple math, but it definitely ties the project together. Lastly, the user can save a copy of this page to their computer. They can then also reset their localstorage to create a brand new trip! Lastly, I got the readme and license done (id take a look if I were you!), and finished deploying everything on vercel. Overall, I am really happy with how Itinerarey came out. I learned a lot about web scrapping and hosting websites from this project, which I hope will come in handy in the future! Thank you all for the support, stardance has been incredible! feel free to dm me in slack! - nate"}, {"post_id": 72073, "ts": "2026-09-22T03:31:50Z", "hours": 3.2789, "text": "The activities portion of the website is done! I did some research, and it turns out that the best way for me to find information on local events is AI! The way it works is by using Google Gemini along with Zod, which allows me to format my API requests to return in JSON. Since it has the same information each time, I can then just treat it as a regular API call. However, I might change it and put this on the backend to try to hide the API key. Anyways, we are almost at the end! The last major portion of the project is the recap page, where I plan to show all info on the trip, let users download, and maybe more! Today went pretty well, and I am excited to finally get this thing done."}, {"post_id": 70976, "ts": "2026-09-20T04:34:37Z", "hours": 3.3614, "text": "So… quick update, I tore my ACL! havent really been able to do much since, but today I sat down and got work done. Mainly, I got the hotels done! It works pretty similar to flights system, where the user is prompted with a list, and they choose whichever they want. Now, if you remember, I have been struggling with finding a hotel API, since amadeus shut down. Originally, the plan was rapidAPI, but the rate limits are horrid for that. After some very intense googling, I found omkar.cloud ! They have a bunch of web scrappers with a 200/month limit, so their booking.com API works perfectly. I genuinely was considering dropping the project from this, and I am so happy I found something that worked. Now, the future. There is like 10 days left in stardance, and I need to do the activities, final page, and fix deployment. Activities shouldn’t be that dificult, my plan is to use gemini and prompt it for activity ideas, and then format it to look cool? Im going to still do some research. Now, the main issue is deployment. Github pages doesn’t really support having a .env, so I tried switching to vercel. However, I now need to get localstorage (which I had to use as the cookie got too big lol) working on that, plus the flight API and everything else."}, {"post_id": 65159, "ts": "2026-09-10T03:14:31Z", "hours": 2.3381, "text": "Did I get work done on the hotels part? No! BUT, I did some very needed work on the flight system so that it should work in general. The main issue was that there was no way to convert from cities to airport codes, but I sat down and actually got it done. When the user enters a city and goes to the flight screen, a modal now appears. In the background, a function runs that gets the coordinates of the city, and then creates a 100 km circle around the location, returning all airports inside of it! Originally, the plan was to use nominatim for the geolocating, since it’s free, open source, and the goat, but I may have gotten IP banned for having it run 60 times a second for a good few minutes. (This is around 60 times the amount I am supposed to do it). I forgot to remove a variable from a dependency array. ANYWAYS, I used Mapbox instead! I have some experience with it, and its free tier is pretty comprehensive. Once the locations show on the modal, they choose which ones, it reloads to show departures, and then the same system as before applies! This works SO much better, and I’m really proud of the system."}, {"post_id": 61266, "ts": "2026-09-04T03:42:26Z", "hours": 1.16, "text": "So, I got some work done on itinerarey since. Mainly, I’ve been working on error trapping and trying to find a hotel’s API. Firstly, I am trying to use airport-data-js to convert city names to airports, but it returns the incorrect values usually. Otherwise, I got the base for the hotel page done. It’s going to look pretty similar to the flights, just with different information. Currently, I need to find an API that works for hotels, but it’s going to be a bit of a struggle. I tried fast-hotels, but they are no longer maintained, or at least the current version broke on me. Wish me luck!"}, {"post_id": 59366, "ts": "2026-09-01T03:57:08Z", "hours": 1.375, "text": "The flight system is complete! To reiterate how it works, once you put in a date, a render server with an API is called that uses Python to scrape Google Flights and return (hopefully) accurate flight data. Then, a user chooses the flight they want, it gets saved to the cookie, and it does the same actions for the return flight. The main issue I had with this was getting to swap between departure and returns, since it required some refactoring of the code. It wasn’t anything too bad, though. Next up is going to be finding a hotel API. This is going to be probably just as annoying as with the flights, but there is only one way to find out. That’ll be tomorrow, though; I am so tired right now lol. Lastly, I am writing this 3 minutes before my time as a Stardance Ambassador ends. I want to thank the team for letting me take this role; Nay-nay and Alex for their help; and everyone whom I’ve interacted with. While the role is done, I’m going to finish this project!"}, {"post_id": 57779, "ts": "2026-08-30T02:17:46Z", "hours": 0.9856, "text": "Now, the flights will actually show up in the website! Using the API, I get an array, and then each flight is put into a custom object that allows it to be displayed! Each option includes basic info such as airline, price, legs, locations, timings, and more! Now that it is styled, the next goal is to save flights to the cookie, and than rerun the same process for the return flight! Overall, I think it looks pretty good!"}, {"post_id": 52020, "ts": "2026-08-22T01:49:59Z", "hours": 1.9211, "text": "This time is fully my bad, I sort of (100%) forgot about this. ANYWAYS, I got some of the biggest progress done yet. Firstly, I got trips to save as cookies in your browser, since its an easier way for me to store data across the website. dont worry, im not stealing your data or anything lol. Then, I did some research (with help from Claude) and found fast-flights, a Python library that is basically a Google Flights scraper, so it works perfectly. Except it’s a Python library… on a React website. So, I created a seperate repo that contains an API that requests the library and hosted it on render.com. One note is that the links supplied reroute to google flights, so users will have to be careful with choosing correctly. Sadly, theres really no good free options for a flight API (literally everyone shut theirs down lol). Lastly, I connected it all together by writing the base code for querying the API and getting the data back. I do need to actually format it, modify it to work with my data, and display it. But, its a good stopping point for now. By next time, I want to have the flights page looking good, and my API to be more polished!"}, {"post_id": 38419, "ts": "2026-07-31T19:38:47Z", "hours": 1.1278, "text": "So… its been a minute! I’ve been out of state doing an engineering program at ND for the past few weeks, and I am FINALLY back home! So, here’s what I got done today! I finished the layout (for now) on for the planning page. For now, you put in the departure/arrival, number of people, dates, and overall budgets. The worst part of getting it to work was the date picker. I spent like 2 hours researching different date-range pickers and trying them out, such as react aria, react-date-range, and more. Eventually, I settled on cally since its lightweight, easy to customize, and didn’t require me to spend 3 hours making it work! I also created a new input type to shrink the file size down. For the future, I plan to get data to actually save in the app, and then start looking for a flights API. The API is going to be an issue. There is really not a lot of choices for a free and large-scale API for what I want. But, its the internet. Theres gotta be something! the website thats published isn’t updated yet, since I have some code that needs to be implemented before I can redeploy."}, {"post_id": 23955, "ts": "2026-07-07T05:30:43Z", "hours": 2.0186, "text": "I started to get some work done on the planning settings! Mainly, I need to track budgets, dates, and what the user actually wants to do and spend money on. The main issue I am currently having is making the date system work. I am going to do more research, though!"}, {"post_id": 21772, "ts": "2026-07-03T21:28:54Z", "hours": 0.9672, "text": "The home page is completely done! I spent around an hour adding in all of the other info, mainly about how the program works. I also spent a decent amount of time redoing the file structure of the website, just so everything is more organized. Now, I have to find the APIs I need. Google Flights doesn’t have one, so I am going to need to do some deep research."}, {"post_id": 20522, "ts": "2026-07-02T04:20:43Z", "hours": 0.6714, "text": "Been on vacation so progress been slow but here’s what I got done! Mainly, the search bar is done! I haven’t been able to program my custom algorithm yet, so right now it just links to google maps. I tried to mimic websites like Kayak and Google Earth, and I think its pretty decent. The main issue I had was with the website crashing when clicking the search bar. ThreeJS couldnt handle the pointer event (it doesnt really make sense), but with changing the z-order and adding a LOT of e.stoppropagation() fixed it. Overall, good progress, and next post I want to get the home page done!"}, {"post_id": 18112, "ts": "2026-06-29T03:36:57Z", "hours": 0.5631, "text": "Two major things for today: I fixed responsiveness, so it looks better on small screens. Also, I started work on the search bar. I have to style it, but its coming along well! shoutout to my friends @ fallout, wish i was allowed to come with! enjoy!"}, {"post_id": 16726, "ts": "2026-06-27T05:22:25Z", "hours": 0.9508, "text": "Card system works! When you click on a point (I added more), with around 3 per continent except Australia, a popup with basic info, a photo, and a button shows up. The button will eventually go to the itinerary algorithim, but for now just links to google maps. I have to make it responsive, but tomorrow I will (hopefully) finish the base page. check it out here!"}, {"post_id": 15870, "ts": "2026-06-25T19:58:46Z", "hours": 1.4225, "text": "Itinerarey (get it?) is going to be a website where you can put in a plan for a trip and get a full detailed list of what you can do, taking into consideration price, dates, and suggested ideas. I got this idea while waiting at EWR for 3 hours before my flight got cancelled, lol. I was supposed to go to Atlanta, and I would have had a free day by myself. If I had this, I could have figured out what to do. The plan is to take data from APIs to get flights, hotels, and other stuff, and combine it with AI to get a full list of what to do! But, so far, all I got done is the start of the hero page. I want to have a globe spinning in the BG with points that can pop up some ideas, which I got done using globe.gl. The points are not coded in yet to pop up, but that’ll be later."}]...
|
Title: itinerarey by @nate | Stardance
Devlogs:
I Title: itinerarey by @nate | Stardance
Devlogs:
Itinerarey (get it?) is going to be a website where you can put in a plan for a trip and get a full detailed list of what you can do, taking into consideration price, dates, and suggested ideas. I got this idea while waiting at EWR for 3 hours before my flight got cancelled, lol. I was supposed to go to Atlanta, and I would have had a free day by myself. If I had this, I could have figured out what to do. The plan is to take data from APIs to get flights, hotels, and other stuff, and combine it with AI to get a full list of what to do! But, so far, all I got done is the start of the hero page. I want to have a globe spinning in the BG with points that can pop up some ideas, which I got done using globe.gl. The points are not coded in yet to pop up, but that’ll be later.
Card system works! When you click on a point (I added more), with around 3 per continent except Australia, a popup with basic info, a photo, and a button shows up. The button will eventually go to the itinerary algorithim, but for now just links to google maps. I have to make it responsive, but tomorrow I will (hopefully) finish the base page. check it out here!
Two major things for today: I fixed responsiveness, so it looks better on small screens. Also, I started work on the search bar. I have to style it, but its coming along well! shoutout to my friends @ fallout, wish i was allowed to come with! enjoy!
Been on vacation so progress been slow but here’s what I got done! Mainly, the search bar is done! I haven’t been able to program my custom algorithm yet, so right now it just links to google maps. I tried to mimic websites like Kayak and Google Earth, and I think its pretty decent. The main issue I had was with the website crashing when clicking the search bar. ThreeJS couldnt handle the pointer event (it doesnt really make sense), but with changing the z-order and adding a LOT of e.stoppropagation() fixed it. Overall, good progress, and next post I want to get the home page done!
The home page is completely done! I spent around an hour adding in all of the other info, mainly about how the program works. I also spent a decent amount of time redoing the file structure of the website, just so everything is more organized. Now, I have to find the APIs I need. Google Flights doesn’t have one, so I am going to need to do some deep research.
I started to get some work done on the planning settings! Mainly, I need to track budgets, dates, and what the user actually wants to do and spend money on. The main issue I am currently having is making the date system work. I am going to do more research, though!
So… its been a minute! I’ve been out of state doing an engineering program at ND for the past few weeks, and I am FINALLY back home! So, here’s what I got done today! I finished the layout (for now) on for the planning page. For now, you put in the departure/arrival, number of people, dates, and overall budgets. The worst part of getting it to work was the date picker. I spent like 2 hours researching different date-range pickers and trying them out, such as react aria, react-date-range, and more. Eventually, I settled on cally since its lightweight, easy to customize, and didn’t require me to spend 3 hours making it work! I also created a new input type to shrink the file size down. For the future, I plan to get data to actually save in the app, and then start looking for a flights API. The API is going to be an issue. There is really not a lot of choices for a free and large-scale API for what I want. But, its the internet. Theres gotta be something! the website thats published isn’t updated yet, since I have some code that needs to be implemented before I can redeploy.
This time is fully my bad, I sort of (100%) forgot about this. ANYWAYS, I got some of the biggest progress done yet. Firstly, I got trips to save as cookies in your browser, since its an easier way for me to store data across the website. dont worry, im not stealing your data or anything lol. Then, I did some research (with help from Claude) and found fast-flights, a Python library that is basically a Google Flights scraper, so it works perfectly. Except it’s a Python library… on a React website. So, I created a seperate repo that contains an API that requests the library and hosted it on render.com. One note is that the links supplied reroute to google flights, so users will have to be careful with choosing correctly. Sadly, theres really no good free options for a flight API (literally everyone shut theirs down lol). Lastly, I connected it all together by writing the base code for querying the API and getting the data back. I do need to actually format it, modify it to work with my data, and display it. But, its a good stopping point for now. By next time, I want to have the flights page looking good, and my API to be more polished!
Now, the flights will actually show up in the website! Using the API, I get an array, and then each flight is put into a custom object that allows it to be displayed! Each option includes basic info such as airline, price, legs, locations, timings, and more! Now that it is styled, the next goal is to save flights to the cookie, and than rerun the same process for the return flight! Overall, I think it looks pretty good!
The flight system is complete! To reiterate how it works, once you put in a date, a render server with an API is called that uses Python to scrape Google Flights and return (hopefully) accurate flight data. Then, a user chooses the flight they want, it gets saved to the cookie, and it does the same actions for the return flight. The main issue I had with this was getting to swap between departure and returns, since it required some refactoring of the code. It wasn’t anything too bad, though. Next up is going to be finding a hotel API. This is going to be probably just as annoying as with the flights, but there is only one way to find out. That’ll be tomorrow, though; I am so tired right now lol. Lastly, I am writing this 3 minutes before my time as a Stardance Ambassador ends. I want to thank the team for letting me take this role; Nay-nay and Alex for their help; and everyone whom I’ve interacted with. While the role is done, I’m going to finish this project!
So, I got some work done on itinerarey since. Mainly, I’ve been working on error trapping and trying to find a hotel’s API. Firstly, I am trying to use airport-data-js to convert city names to airports, but it returns the incorrect values usually. Otherwise, I got the base for the hotel page done. It’s going to look pretty similar to the flights, just with different information. Currently, I need to find an API that works for hotels, but it’s going to be a bit of a struggle. I tried fast-hotels, but they are no longer maintained, or at least the current version broke on me. Wish me luck!
Did I get work done on the hotels part? No! BUT, I did some very needed work on the flight system so that it should work in general. The main issue was that there was no way to convert from cities to airport codes, but I sat down and actually got it done. When the user enters a city and goes to the flight screen, a modal now appears. In the background, a function runs that gets the coordinates of the city, and then creates a 100 km circle around the location, returning all airports inside of it! Originally, the plan was to use nominatim for the geolocating, since it’s free, open source, and the goat, but I may have gotten IP banned for having it run 60 times a second for a good few minutes. (This is around 60 times the amount I am supposed to do it). I forgot to remove a variable from a dependency array. ANYWAYS, I used Mapbox instead! I have some experience with it, and its free tier is pretty comprehensive. Once the locations show on the modal, they choose which ones, it reloads to show departures, and then the same system as before applies! This works SO much better, and I’m really proud of the system.
So… quick update, I tore my ACL! havent really been able to do much since, but today I sat down and got work done. Mainly, I got the hotels done! It works pretty similar to flights system, where the user is prompted with a list, and they choose whichever they want. Now, if you remember, I have been struggling with finding a hotel API, since amadeus shut down. Originally, the plan was rapidAPI, but the rate limits are horrid for that. After some very intense googling, I found omkar.cloud ! They have a bunch of web scrappers with a 200/month limit, so their booking.com API works perfectly. I genuinely was considering dropping the project from this, and I am so happy I found something that worked. Now, the future. There is like 10 days left in stardance, and I need to do the activities, final page, and fix deployment. Activities shouldn’t be that dificult, my plan is to use gemini and prompt it for activity ideas, and then format it to look cool? Im going to still do some research. Now, the main issue is deployment. Github pages doesn’t really support having a .env, so I tried switching to vercel. However, I now need to get localstorage (which I had to use as the cookie got too big lol) working on that, plus the flight API and everything else.
The activities portion of the website is done! I did some research, and it turns out that the best way for me to find information on local events is AI! The way it works is by using Google Gemini along with Zod, which allows me to format my API requests to return in JSON. Since it has the same information each time, I can then just treat it as a regular API call. However, I might change it and put this on the backend to try to hide the API key. Anyways, we are almost at the end! The last major portion of the project is the recap page, where I plan to show all info on the trip, let users download, and maybe more! Today went pretty well, and I am excited to finally get this thing done.
Itinerarey is complete! The last thing that I needed to get done was the recap page, which takes all the data in your localstorage and displays it for you! I had to rewrite how the flights and hotels are displayed to show the booking links, but overall it was pretty simple. The main thing that I am proud of is the budget tracker, which shows the prices for everything, including how much is leftover in the budget! This is done with some pretty simple math, but it definitely ties the project together. Lastly, the user can save a copy of this page to their computer. They can then also reset their localstorage to create a brand new trip! Lastly, I got the readme and license done (id take a look if I were you!), and finished deploying everything on vercel. Overall, I am really happy with how Itinerarey came out. I learned a lot about web scrapping and hosting websites from this project, which I hope will come in handy in the future! Thank you all for the support, stardance has been incredible! feel free to dm me in slack! - nate
Ships:
Itinerarey is the better way to plan out your trips! When getting ready for a vacation, it can be incredibly stressful to plan out flights, hotels, activities, and more! So, I built itinerarey to make it a bit easier! It uses APIs and web scrapers to compile information from across the internet to have a centralized place to get information. The most challenging part of Itinerarey was the flights and hotels system. There are no free APIs (with good limits) for showing either, so I had to get a bit creative and spend a few hours researching. The flights system runs by contacting an API that runs a python web scraper that is hosted on Render, while the hotels call from an online Booking.com scraper. I am really proud of the recap page, mainly. To me, it feels like a representation of the entire project in its entireity. It shows everything the user did, and it works as a confirmation of every system performing as it should. For testing, please be aware that the render server mmight take up to a minute to load up. Also, due to web scraping being a bit finnicky, some results might not show up. If this happens, try clearing your localstorage and using a new destination. Enjoy your vacations! -nate...
|
1793152500.9376
|
1793238900.9376
|
|
26335
|
My very own WebOS by @Heer | Stardance
|
Heer
|
3
|
25.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T08:01:28Z", "hours": 23.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Heer’s WebOS 🍒 Heer’s WebOS is my first WebOS project, created using HTML, CSS, and JavaScript. When I first started, I didn’t have a particular theme or design in mind. I began by building the basic desktop layout with a topbar, background, dock, and windows, and as I experimented with different colours and styles, I slowly came up with the idea of making everything cherry-themed. I then developed different applications such as Cherry Terminal, Cherry Paint, Cherry Music, Calculator, Screentime, Notes, and the Welcome Window. Each app was given its own functionality while keeping the same soft pink, rounded Cherry aesthetic. I added features like draggable windows, buttons, timers, music controls, calculator operations, pixel painting, and saving notes and drawings using localStorage. As the project grew, I focused on making each part feel connected and creating a consistent experience across the entire WebOS. I experimented with layouts, colours, animations, window designs, and interactive features to make the desktop feel more like a real operating system while still keeping my own style throughout. I also organised the project into separate HTML, CSS, and JavaScript files and deployed it using GitHub Pages. Overall, this project has been a learning process from the very beginning. I started without even knowing what the final design would be, and slowly turned a simple WebOS idea into a complete cherry-themed desktop that feels personal to me. I hope y’all like it!🫶🏻", "repo": "https://github.com/heerrpatel8-bit/My-First-WebOS", "demo": "https://heerrpatel8-bit.github.io/My-First-WebOS/"}, {"ship_num": 2, "ts": "2026-07-05T07:10:20Z", "hours": 1.0, "multiplier": 1.1, "payout": 1, "blessing": "neutral", "text": "I made a Cherry-inspired WebOS. I have always loved cherries so I thought why not make it a lil my way? I had shipped this project before however a few apps were not working very well so I thought of making some more changes. I am an absolute newbie so I am pretty sure there must be more faults but I have tried my best and I hope you guys like it! :D", "repo": "https://github.com/heerrpatel8-bit/My-First-WebOS", "demo": "https://heerrpatel8-bit.github.io/My-First-WebOS/"}, {"ship_num": 3, "ts": "2026-06-28T06:04:08Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have made a WebOS for the first time. It’s cherry themed because I love cherries. It’s not very advanced however I have tried my best. Hope you guys like it!", "repo": "https://github.com/heerrpatel8-bit/My-First-WebOS", "demo": "https://heerrpatel8-bit.github.io/My-First-WebOS/"}]...
|
[{"post_id": 43145, "ts": "202 [{"post_id": 43145, "ts": "2026-08-08T07:50:53Z", "hours": 0.0, "text": "WebOS Devlog 15 ✨ Work Done: Redesigned the Welcome Window to match the Cherry Paint aesthetic. Added a soft pink gradient header with a rounded close button. Updated the window background, typography, and button styling. Added a small cherry decoration to match the overall WebOS theme. Adjusted the spacing between the header, content, and bottom of the window. Changes Made: Reduced the unnecessary gaps inside the window. Made the window shorter and more compact. Improved the overall alignment and proportions. Kept the existing dock unchanged. I will ship it soon!!! 🫶🏻"}, {"post_id": 42709, "ts": "2026-08-07T15:42:49Z", "hours": 3.0, "text": "WebOS Devlog 14 ✨ Work Done: Built the Cherry Notes app. Created the notes window layout with a header, close button, toolbar, editor, and saved notes section. Added features for creating new notes, saving notes, deleting notes, and viewing saved notes. Implemented note loading so previously saved notes appear automatically when opening the app. Added drag functionality so the Notes window can be moved around like other Cherry WebOS apps. Challenges: Debugging issues caused by mismatched HTML classes and CSS selectors. Making sure all buttons were correctly connected to their JavaScript functions. Ensuring the Notes window works consistently with the other draggable WebOS apps. Progress: The Notes app structure and functionality are complete. Users can create, edit, save, and delete notes. Saved notes are displayed in the sidebar and can be reopened. The app now matches the Cherry WebOS style with rounded windows, pink gradients, and a soft interface design. I can’t believe I have almost finished my project. It was super fun to make my WebOS. I will add some final touches before I ship it! I hope it turns out super cool!! 🫶🏻"}, {"post_id": 42104, "ts": "2026-08-06T17:49:50Z", "hours": 2.0, "text": "WebOS Devlog 13 ✨ Work Done: Designed and developed the Cherry Screentime application. Built a functional timer with Start, Pause, and Reset controls. Created a compact window that matches the overall CherryOS aesthetic. Styled the app using the same design language as the Calculator and Pixel Paint, including the gradient header, rounded corners, and cherry-themed color palette. Implemented draggable window functionality and integrated the app into the desktop. Challenges: The window header title wrapped onto two lines due to the compact window width. The title alignment appeared off-center because of a CSS transform issue ( translateX instead of translate ). Fine-tuning the colors, spacing, and sizing to ensure the Screentime app blended seamlessly with the other CherryOS applications. Progress: Successfully completed and polished the Cherry Screentime app. Achieved a consistent visual style across all existing CherryOS applications. CherryOS now includes Welcome Window , Terminal , Cherry Paint , Music Player , Calculator , and Cherry Screentime , bringing the desktop closer to a complete and cohesive experience. 6 apps down, just 1 more to goo! Stay tuned!!! 🫶🏻"}, {"post_id": 41411, "ts": "2026-08-05T16:33:31Z", "hours": 2.0, "text": "WebOS Devlog 12 ✨ Work Done: Completed the design and functionality integration of the Calculator app in CherryOS. Connected calculator buttons with JavaScript click events. Added functionality for numbers, operators, clear button, percentage, and equals button. Fixed the calculator display so it updates correctly when buttons are pressed. Tested different calculations to ensure the calculator works smoothly. Integrated the calculator window with the existing WebOS window system (open, close, and drag functionality). Challenges: The calculator UI was working, but button clicks were not updating the display. Debugged the JavaScript event listener responsible for handling calculator inputs. Found a typo in the dataset property that prevented buttons from reading their values. Verified that the HTML data-value attributes were correctly connected after fixing the JavaScript issue. Progress: Calculator app is now fully functional and stable. CherryOS now has a working calculator alongside other completed apps. 5 apps down, 2 more to gooo! Stay tuned!!!🫶🏻"}, {"post_id": 40225, "ts": "2026-08-03T17:01:42Z", "hours": 3.0, "text": "WebOS Devlog 11 ✨ Work Done: Designed the layout of the CherryOS Music Player window. Added sections for album artwork, song details, playback controls, and progress tracking. Created a structured song system with details like title, artist, audio file, and cover image. Styled the player to match the CherryOS desktop aesthetic. Challenges: Maintaining consistency with the overall CherryOS design. Creating a clean interface while fitting all required controls. Progress: The Music Player has developed into a more complete desktop-style application. The interface now blends with the rest of the WebOS environment. Stay Tuned!! 🫶🏻"}, {"post_id": 38675, "ts": "2026-08-01T05:47:11Z", "hours": 1.0, "text": "WebOS Devlog 10 ✨ Work Done: Continued development of the Pixel Art application for CherryOS. Built the interactive drawing grid and implemented painting, eraser, color picker, and clear canvas functionality. Added a custom save dialog and began implementing local storage so drawings can be saved and reopened later. Challenges: Faced several JavaScript conflicts that temporarily broke the opening, closing, and dragging functionality of multiple windows. Spent time debugging UI layout issues, including oversized toolbar buttons, canvas scaling, and window proportions. Ran into issues with the save system and modal positioning before getting the core functionality working correctly. Progress: Pixel Art is now mostly functional, with drawing, saving, loading, dragging, and window controls in place. Stay tuned!!! 🫶🏻"}, {"post_id": 38348, "ts": "2026-07-31T18:08:54Z", "hours": 3.0, "text": "WebOS Devlog 9 ✨ Started development of the Pixel Art app for my WebOS. Designed the app window to match the existing cherry-inspired interface. Adjusted the layout and resized the window to better fit the desktop aesthetic. Fixed HTML structure issues that were preventing elements from displaying correctly. Next: Implement the interactive drawing grid, color picker, eraser, clear canvas, and save/load functionality. Stay tuned!!! 🫶🏻"}, {"post_id": 37778, "ts": "2026-07-30T18:15:21Z", "hours": 1.0, "text": "WebOS Devlog 8 ✨ Work Done: Added interactivity to the Cherry Terminal by implementing functional commands. Improved the overall user experience by making the terminal draggable across the desktop. Fixed multiple bugs affecting window behavior and terminal functionality. Challenges: Faced issues with JavaScript event handling while implementing the drag feature. Spent time debugging conflicting event listeners and ensuring all terminal features worked together smoothly. Progress: Successfully transformed the terminal from a static design into a functional desktop application. Completed the foundation for future WebOS apps, making it easier to implement similar draggable windows across the project. 2 apps done, 5 more to gooo! 🫶🏻"}, {"post_id": 37142, "ts": "2026-07-29T17:07:09Z", "hours": 0.0, "text": "WebOS Devlog 7 ✨ Work Done: Added working commands (help, clear, date, time, echo, calc, fortune, about). Fixed terminal bugs and ensured command execution works correctly. Further improvements and additional features are planned. Challenges: Debugging JavaScript errors to get terminal commands working. Maintaining the cherry-inspired design while adding functionality. Progress: Designed and integrated the Cherry Terminal into the WebOS. Successfully implemented and tested basic terminal commands."}, {"post_id": 36487, "ts": "2026-07-28T16:57:16Z", "hours": 1.0, "text": "WebOS Devlog 6 ✨ Work Done: Completed the visual design and structure of the Cherry Terminal. Styled the terminal window to align with the overall WebOS aesthetic. Added design elements such as a custom header, window controls, and terminal prompt. JavaScript functionality is currently in progress ; the next step is implementing interactive commands and terminal behaviour. Planning additional visual enhancements and animations to make the terminal feel more polished and immersive. Challenges: Designing a terminal that matched the soft cherry aesthetic of the WebOS while still looking like a functional terminal. Balancing visual appeal with usability to ensure the interface remained clean and easy to navigate. Progress: Finalized the overall layout of the Cherry Terminal window. Designed a soft cherry-themed interface with a pastel header and dark terminal workspace for better contrast. Chose a clean monospace font and refined the colour palette to maintain consistency with the desktop design. Planned the command input area and overall user interface for an interactive terminal experience. 🫶🏻"}, {"post_id": 35865, "ts": "2026-07-27T16:08:50Z", "hours": 1.0, "text": "WebOS Devlog 5 💫 Work Done: Removed the concept of large app cards from the design. Redesigned the navigation flow so apps will launch directly from the home screen dock. Researched cherry-inspired dock designs and began planning the implementation for the next development session. Challenges: The apps section looked disconnected from the home screen, making the overall UI feel inconsistent. Needed to redesign the layout without losing the existing app functionality. Progress: Decided to replace the separate apps section with a floating dock integrated into the home page. Finalized the list of apps for the dock: Personal Info, Terminal, Pixel Colour, Music, Calculator, Screentime, and Notetaker. Planned a cherry-inspired dock to create a more cohesive desktop experience."}, {"post_id": 32883, "ts": "2026-07-22T10:28:18Z", "hours": 0.0, "text": "WebOS Devlog 4 ✨ Debugging My WebOS Project Today I continued working on my WebOS project and focused mainly on debugging and identifying issues in the current build. Work Done: Tested the project to understand which features were working and which ones were causing problems. Started using browser developer tools to inspect the project and look for possible errors. Checked the HTML, CSS, and JavaScript structure since the entire project is currently contained in a single file. Investigated issues with app interactions and screens not opening as expected. Began tracing possible JavaScript problems related to buttons, events, and element connections. Challenges: Some features are still not responding correctly, and I am still working to locate the exact cause. Debugging a large single-file project makes it harder to locate specific issues quickly. Understanding browser console errors and developer tools is taking time, but it is helping narrow down the problems. Next Steps: Continue analyzing JavaScript errors and fixing broken interactions. Test each application and feature separately. Improve the project structure to make future debugging easier. The project is still under development, but each debugging session is helping me understand the system better and move closer to a stable version."}, {"post_id": 22673, "ts": "2026-07-05T07:07:08Z", "hours": 0.0, "text": "WebOS DEVLOG 3: Finished working with my apps. Gonna make a few more changes and then im done!!"}, {"post_id": 22136, "ts": "2026-07-04T13:11:17Z", "hours": 0.0, "text": "WebOS DEVLOG 2: Almost finished the entire project. I do need to make a few more changes but im pretty sure it will be finished in an hour or so!!"}, {"post_id": 16896, "ts": "2026-06-27T13:04:10Z", "hours": 0.0, "text": "I am currently working on a WebOS. This is my first time coding so I will try my best to make it as good as I possibly can. I have almost finished working on my home page."}]...
|
Title: My very own WebOS by @Heer | Stardance
Dev Title: My very own WebOS by @Heer | Stardance
Devlogs:
I am currently working on a WebOS. This is my first time coding so I will try my best to make it as good as I possibly can. I have almost finished working on my home page.
WebOS DEVLOG 2: Almost finished the entire project. I do need to make a few more changes but im pretty sure it will be finished in an hour or so!!
WebOS DEVLOG 3: Finished working with my apps. Gonna make a few more changes and then im done!!
WebOS Devlog 4 ✨ Debugging My WebOS Project Today I continued working on my WebOS project and focused mainly on debugging and identifying issues in the current build. Work Done: Tested the project to understand which features were working and which ones were causing problems. Started using browser developer tools to inspect the project and look for possible errors. Checked the HTML, CSS, and JavaScript structure since the entire project is currently contained in a single file. Investigated issues with app interactions and screens not opening as expected. Began tracing possible JavaScript problems related to buttons, events, and element connections. Challenges: Some features are still not responding correctly, and I am still working to locate the exact cause. Debugging a large single-file project makes it harder to locate specific issues quickly. Understanding browser console errors and developer tools is taking time, but it is helping narrow down the problems. Next Steps: Continue analyzing JavaScript errors and fixing broken interactions. Test each application and feature separately. Improve the project structure to make future debugging easier. The project is still under development, but each debugging session is helping me understand the system better and move closer to a stable version.
WebOS Devlog 5 💫 Work Done: Removed the concept of large app cards from the design. Redesigned the navigation flow so apps will launch directly from the home screen dock. Researched cherry-inspired dock designs and began planning the implementation for the next development session. Challenges: The apps section looked disconnected from the home screen, making the overall UI feel inconsistent. Needed to redesign the layout without losing the existing app functionality. Progress: Decided to replace the separate apps section with a floating dock integrated into the home page. Finalized the list of apps for the dock: Personal Info, Terminal, Pixel Colour, Music, Calculator, Screentime, and Notetaker. Planned a cherry-inspired dock to create a more cohesive desktop experience.
WebOS Devlog 6 ✨ Work Done: Completed the visual design and structure of the Cherry Terminal. Styled the terminal window to align with the overall WebOS aesthetic. Added design elements such as a custom header, window controls, and terminal prompt. JavaScript functionality is currently in progress ; the next step is implementing interactive commands and terminal behaviour. Planning additional visual enhancements and animations to make the terminal feel more polished and immersive. Challenges: Designing a terminal that matched the soft cherry aesthetic of the WebOS while still looking like a functional terminal. Balancing visual appeal with usability to ensure the interface remained clean and easy to navigate. Progress: Finalized the overall layout of the Cherry Terminal window. Designed a soft cherry-themed interface with a pastel header and dark terminal workspace for better contrast. Chose a clean monospace font and refined the colour palette to maintain consistency with the desktop design. Planned the command input area and overall user interface for an interactive terminal experience. 🫶🏻
WebOS Devlog 7 ✨ Work Done: Added working commands (help, clear, date, time, echo, calc, fortune, about). Fixed terminal bugs and ensured command execution works correctly. Further improvements and additional features are planned. Challenges: Debugging JavaScript errors to get terminal commands working. Maintaining the cherry-inspired design while adding functionality. Progress: Designed and integrated the Cherry Terminal into the WebOS. Successfully implemented and tested basic terminal commands.
WebOS Devlog 8 ✨ Work Done: Added interactivity to the Cherry Terminal by implementing functional commands. Improved the overall user experience by making the terminal draggable across the desktop. Fixed multiple bugs affecting window behavior and terminal functionality. Challenges: Faced issues with JavaScript event handling while implementing the drag feature. Spent time debugging conflicting event listeners and ensuring all terminal features worked together smoothly. Progress: Successfully transformed the terminal from a static design into a functional desktop application. Completed the foundation for future WebOS apps, making it easier to implement similar draggable windows across the project. 2 apps done, 5 more to gooo! 🫶🏻
WebOS Devlog 9 ✨ Started development of the Pixel Art app for my WebOS. Designed the app window to match the existing cherry-inspired interface. Adjusted the layout and resized the window to better fit the desktop aesthetic. Fixed HTML structure issues that were preventing elements from displaying correctly. Next: Implement the interactive drawing grid, color picker, eraser, clear canvas, and save/load functionality. Stay tuned!!! 🫶🏻
WebOS Devlog 10 ✨ Work Done: Continued development of the Pixel Art application for CherryOS. Built the interactive drawing grid and implemented painting, eraser, color picker, and clear canvas functionality. Added a custom save dialog and began implementing local storage so drawings can be saved and reopened later. Challenges: Faced several JavaScript conflicts that temporarily broke the opening, closing, and dragging functionality of multiple windows. Spent time debugging UI layout issues, including oversized toolbar buttons, canvas scaling, and window proportions. Ran into issues with the save system and modal positioning before getting the core functionality working correctly. Progress: Pixel Art is now mostly functional, with drawing, saving, loading, dragging, and window controls in place. Stay tuned!!! 🫶🏻
WebOS Devlog 11 ✨ Work Done: Designed the layout of the CherryOS Music Player window. Added sections for album artwork, song details, playback controls, and progress tracking. Created a structured song system with details like title, artist, audio file, and cover image. Styled the player to match the CherryOS desktop aesthetic. Challenges: Maintaining consistency with the overall CherryOS design. Creating a clean interface while fitting all required controls. Progress: The Music Player has developed into a more complete desktop-style application. The interface now blends with the rest of the WebOS environment. Stay Tuned!! 🫶🏻
WebOS Devlog 12 ✨ Work Done: Completed the design and functionality integration of the Calculator app in CherryOS. Connected calculator buttons with JavaScript click events. Added functionality for numbers, operators, clear button, percentage, and equals button. Fixed the calculator display so it updates correctly when buttons are pressed. Tested different calculations to ensure the calculator works smoothly. Integrated the calculator window with the existing WebOS window system (open, close, and drag functionality). Challenges: The calculator UI was working, but button clicks were not updating the display. Debugged the JavaScript event listener responsible for handling calculator inputs. Found a typo in the dataset property that prevented buttons from reading their values. Verified that the HTML data-value attributes were correctly connected after fixing the JavaScript issue. Progress: Calculator app is now fully functional and stable. CherryOS now has a working calculator alongside other completed apps. 5 apps down, 2 more to gooo! Stay tuned!!!🫶🏻
WebOS Devlog 13 ✨ Work Done: Designed and developed the Cherry Screentime application. Built a functional timer with Start, Pause, and Reset controls. Created a compact window that matches the overall CherryOS aesthetic. Styled the app using the same design language as the Calculator and Pixel Paint, including the gradient header, rounded corners, and cherry-themed color palette. Implemented draggable window functionality and integrated the app into the desktop. Challenges: The window header title wrapped onto two lines due to the compact window width. The title alignment appeared off-center because of a CSS transform issue ( translateX instead of translate ). Fine-tuning the colors, spacing, and sizing to ensure the Screentime app blended seamlessly with the other CherryOS applications. Progress: Successfully completed and polished the Cherry Screentime app. Achieved a consistent visual style across all existing CherryOS applications. CherryOS now includes Welcome Window , Terminal , Cherry Paint , Music Player , Calculator , and Cherry Screentime , bringing the desktop closer to a complete and cohesive experience. 6 apps down, just 1 more to goo! Stay tuned!!! 🫶🏻
WebOS Devlog 14 ✨ Work Done: Built the Cherry Notes app. Created the notes window layout with a header, close button, toolbar, editor, and saved notes section. Added features for creating new notes, saving notes, deleting notes, and viewing saved notes. Implemented note loading so previously saved notes appear automatically when opening the app. Added drag functionality so the Notes window can be moved around like other Cherry WebOS apps. Challenges: Debugging issues caused by mismatched HTML classes and CSS selectors. Making sure all buttons were correctly connected to their JavaScript functions. Ensuring the Notes window works consistently with the other draggable WebOS apps. Progress: The Notes app structure and functionality are complete. Users can create, edit, save, and delete notes. Saved notes are displayed in the sidebar and can be reopened. The app now matches the Cherry WebOS style with rounded windows, pink gradients, and a soft interface design. I can’t believe I have almost finished my project. It was super fun to make my WebOS. I will add some final touches before I ship it! I hope it turns out super cool!! 🫶🏻
WebOS Devlog 15 ✨ Work Done: Redesigned the Welcome Window to match the Cherry Paint aesthetic. Added a soft pink gradient header with a rounded close button. Updated the window background, typography, and button styling. Added a small cherry decoration to match the overall WebOS theme. Adjusted the spacing between the header, content, and bottom of the window. Changes Made: Reduced the unnecessary gaps inside the window. Made the window shorter and more compact. Improved the overall alignment and proportions. Kept the existing dock unchanged. I will ship it soon!!! 🫶🏻
Ships:
I have made a WebOS for the first time. It’s cherry themed because I love cherries. It’s not very advanced however I have tried my best. Hope you guys like it!
I made a Cherry-inspired WebOS. I have always loved cherries so I thought why not make it a lil my way? I had shipped this project before however a few apps were not working very well so I thought of making some more changes. I am an absolute newbie so I am pretty sure there must be more faults but I have tried my best and I hope you guys like it! :D
Heer’s WebOS 🍒 Heer’s WebOS is my first WebOS project, created using HTML, CSS, and JavaScript. When I first started, I didn’t have a particular theme or design in mind. I began by building the basic desktop layout with a topbar, background, dock, and windows, and as I experimented with different colours and styles, I slowly came up with the idea of making everything cherry-themed. I then developed different applications such as Cherry Terminal, Cherry Paint, Cherry Music, Calculator, Screentime, Notes, and the Welcome Window. Each app was given its own functionality while keeping the same soft pink, rounded Cherry aesthetic. I added features like draggable windows, buttons, timers, music controls, calculator operations, pixel painting, and saving notes and drawings using localStorage. As the project grew, I focused on making each part feel connected and creating a consistent experience across the entire WebOS. I experimented with layouts, colours, animations, window designs, and interactive features to make the desktop feel more like a real operating system while still keeping my own style throughout. I also organised the project into separate HTML, CSS, and JavaScript files and deployed it using GitHub Pages. Overall, this project has been a learning process from the very beginning. I started without even knowing what the final design would be, and slowly turned a simple WebOS idea into a complete cherry-themed desktop that feels personal to me. I hope y’all like it!🫶🏻...
|
1792882081.6731634
|
1793746081.6731634
|
|
27065
|
monkeyos by @simonproyt | Stardance
|
simonproyt
|
2
|
25.0
|
177
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-20T20:58:19Z", "hours": 18.0, "multiplier": 9.98, "payout": 177, "blessing": "neutral", "text": "I finally turned the concept into a more usable tech demo that has some features and focused on making apps that demo the oses underlying apis in a simple way and polishing the whole os to not have that unfinished concept feeling also if you want to try it out you might need to enable webgpu in your browsers flags settings if its not enabled by default. Thank you for reading and I hope that you found my projects interesting!", "repo": "https://github.com/simonproyt/monkeyos", "demo": "https://simonproyt.github.io/monkeyos/"}, {"ship_num": 2, "ts": "2026-07-02T14:29:44Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So i think this is good as an initial version but i have a lot of work to do on the rendering engine and adding more apps because its kinda bare bones but i will be definitely flushing it out more and making the ui more pretty", "repo": "https://github.com/simonproyt/monkeyos", "demo": "https://simonproyt.github.io/monkeyos/"}]...
|
[{"post_id": 31998, "ts": "202 [{"post_id": 31998, "ts": "2026-07-20T20:46:58Z", "hours": 3.4631, "text": "Backgrounds finally so one of the things missing from the os i think was like some pretty backgrounds cause the os only had that bland dark blue/grey ish simple one color background support but i changed that now and added support for random image background support with NASA APOD or Picsum random as the selectable options in the new settings app"}, {"post_id": 31110, "ts": "2026-07-19T07:45:09Z", "hours": 3.0192, "text": "First game Added snake to the os as a cool way to demo all the rendering sound and storage apis in a fun way and added a few underlying kernel and window manager changes like increasing the oses fps target from 2 to 30 because it was so laggy for games"}, {"post_id": 28805, "ts": "2026-07-15T09:36:37Z", "hours": 2.2514, "text": "More audio stuff piano It’s a piano what more could i say about it midiplayer It’s a retro chiptune style midi player to demo the oses audio capabilities with a cool visualizer"}, {"post_id": 27598, "ts": "2026-07-13T10:16:20Z", "hours": 2.3033, "text": "Added some multimedia features and a basic networking api beep Just a simple pc speaker like beep to test if the sound api is working or not imgview An image viewer thats it nothing special fetch A curl like command that uses the new networking api to fetch stuff trough the browser or if that fails because of crocs trough a proxy api"}, {"post_id": 26606, "ts": "2026-07-11T15:14:12Z", "hours": 1.0986, "text": "Added 3 new commands to the cli mv and grep: its preatty self explanatory what it does if you ever used linux or any other unix like operating system for that matter man: this was kinda hard at first finding where you can find online versions of the manpages from linux that the os can easily get over an api but after a bit of searching i found the tldr pages project and uses that and the github api to download the pages and then strip out the markdown syntax from them and displays them in the terminal."}, {"post_id": 26087, "ts": "2026-07-10T17:50:55Z", "hours": 2.3481, "text": "Added two new apps to the os so after having the libui ui layer implemented i decided to add more apps to demo it like a notepad and a basic file manager"}, {"post_id": 24708, "ts": "2026-07-08T14:01:42Z", "hours": 3.8514, "text": "A pretty big update so after a lot of work i finally added a few features that the os have been missing for ages like a gui library so there could be gui apps not just terminal stuff and a demo calculator app text rendering support to the webgpu engine aero snap like window snapping a dock for window management with a clock and a menu to launch apps Thank you for reading my devlog"}, {"post_id": 20790, "ts": "2026-07-02T14:22:45Z", "hours": 0.9364, "text": "Worked on a ci pipeline to deploy the project automatically to github pages and added a few visual fixes to the project"}, {"post_id": 20013, "ts": "2026-07-01T14:41:16Z", "hours": 1.2564, "text": "Multi windowing is finally supported now but the gui still looks kinda basic the webgpu rendering engine behind everything still doesn’t support text or image rendering so i will be working on that and adding more apps because we only have the terminal"}, {"post_id": 19210, "ts": "2026-06-30T14:03:35Z", "hours": 2.1317, "text": "So we have finally working unix style pipes added to the system and a lot of underlying changes in the kernel for more performance improvements cause the older versions were kinda slow and im trying to fix that"}, {"post_id": 17568, "ts": "2026-06-28T12:24:53Z", "hours": 2.5189, "text": "So this is my first devlog for this project the idea is that to build a rust and wasm based web os that because i taught that using standard html 5 + js would be kinda boring because everyone does that i wanted to do something special so here is the current state of the project: Whats working basic filesystem basic process management a basic shell with rust uutils backed commands Thanks for reading my devlog"}]...
|
Title: monkeyos by @simonproyt | Stardance
Devlog Title: monkeyos by @simonproyt | Stardance
Devlogs:
So this is my first devlog for this project the idea is that to build a rust and wasm based web os that because i taught that using standard html 5 + js would be kinda boring because everyone does that i wanted to do something special so here is the current state of the project: Whats working basic filesystem basic process management a basic shell with rust uutils backed commands Thanks for reading my devlog
So we have finally working unix style pipes added to the system and a lot of underlying changes in the kernel for more performance improvements cause the older versions were kinda slow and im trying to fix that
Multi windowing is finally supported now but the gui still looks kinda basic the webgpu rendering engine behind everything still doesn’t support text or image rendering so i will be working on that and adding more apps because we only have the terminal
Worked on a ci pipeline to deploy the project automatically to github pages and added a few visual fixes to the project
A pretty big update so after a lot of work i finally added a few features that the os have been missing for ages like a gui library so there could be gui apps not just terminal stuff and a demo calculator app text rendering support to the webgpu engine aero snap like window snapping a dock for window management with a clock and a menu to launch apps Thank you for reading my devlog
Added two new apps to the os so after having the libui ui layer implemented i decided to add more apps to demo it like a notepad and a basic file manager
Added 3 new commands to the cli mv and grep: its preatty self explanatory what it does if you ever used linux or any other unix like operating system for that matter man: this was kinda hard at first finding where you can find online versions of the manpages from linux that the os can easily get over an api but after a bit of searching i found the tldr pages project and uses that and the github api to download the pages and then strip out the markdown syntax from them and displays them in the terminal.
Added some multimedia features and a basic networking api beep Just a simple pc speaker like beep to test if the sound api is working or not imgview An image viewer thats it nothing special fetch A curl like command that uses the new networking api to fetch stuff trough the browser or if that fails because of crocs trough a proxy api
More audio stuff piano It’s a piano what more could i say about it midiplayer It’s a retro chiptune style midi player to demo the oses audio capabilities with a cool visualizer
First game Added snake to the os as a cool way to demo all the rendering sound and storage apis in a fun way and added a few underlying kernel and window manager changes like increasing the oses fps target from 2 to 30 because it was so laggy for games
Backgrounds finally so one of the things missing from the os i think was like some pretty backgrounds cause the os only had that bland dark blue/grey ish simple one color background support but i changed that now and added support for random image background support with NASA APOD or Picsum random as the selectable options in the new settings app
Ships:
So i think this is good as an initial version but i have a lot of work to do on the rendering engine and adding more apps because its kinda bare bones but i will be definitely flushing it out more and making the ui more pretty
I finally turned the concept into a more usable tech demo that has some features and focused on making apps that demo the oses underlying apis in a simple way and polishing the whole os to not have that unfinished concept feeling also if you want to try it out you might need to enable webgpu in your browsers flags settings if its not enabled by default. Thank you for reading and I hope that you found my projects interesting!...
|
1793256909.8359022
|
1793343309.8359022
|
|
27935
|
CLI Todolist by @javim-dev | Stardance
|
javim-dev
|
2
|
25.0
|
228
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-06T16:57:20Z", "hours": 18.0, "multiplier": 9.26, "payout": 200, "blessing": "neutral", "text": "I made a simple todolist app that runs on the terminal. It has a beautiful TUI, persistent storage, due dates and much more! I’ve learnt a lot while making this project and how it came out. The devlogs are pretty long so I’ll keep this ship message short, just know that I’ve uploaded a demo video that you can find in the project’s readme :) Check the releases page for binaries: https://github.com/javiermm8/cli-todolist/releases", "repo": "https://github.com/javiermm8/cli-todolist", "demo": "https://github.com/javiermm8/cli-todolist/releases"}, {"ship_num": 2, "ts": "2026-06-29T00:19:33Z", "hours": 7.0, "multiplier": 3.31, "payout": 28, "blessing": "neutral", "text": "A simple cli todolist made using gotui. It has persistent storage on disk too :) There’s a demo video on my latest devlog and on github, binaries are on github too.", "repo": "https://github.com/javiermm8/cli-todolist", "demo": "https://github.com/javiermm8/cli-todolist/releases"}]...
|
[{"post_id": 23578, "ts": "202 [{"post_id": 23578, "ts": "2026-07-06T16:47:02Z", "hours": 3.0692, "text": "Ready to ship I’ve spent these 3h mostly on implementing the reminders feature, sadly I couldn’t find a good enough solution and had to drop the feature. I’ve tested multiple go libraries but just couldn’t find one that reliably sent notifications across all platforms. Also, all of them sent desktop notifications instead of something more terminal-related which is what I had in mind. And then, after fighting with creating a background process for hours I decided that it simply wasn’t worth the effort, so I decided to not implement reminders and delete all reminder-related features already implemented in the UI. The due date feature remains intact. It’s sad but I think it’s the best decision to keep the app consistent and manageable. Chasing processes in activity monitor to stop notification loops was fun though! But not all the time in these 3 hours was wasted. I was able to add a button to reset the due date of a TODO and did a general cleanup of the code to prepare it for release."}, {"post_id": 22466, "ts": "2026-07-04T22:46:37Z", "hours": 3.0142, "text": "More progress I can almost see the next ship, I’ve made a lot of progress. Main improvements: Upgraded the design and functionality of the view that allows the user to change due date and reminder. All due date functionality now work. Some bug fixes + minor improvements: TODOs now keep the correct metadata after any other todo is deleted. Previously, description, due date and reminder used to be swapped between TODOs. Made description input box wrap text instead of letting it go out of the box. Updated help messages. Things left to do: Reminders Add a button to reset the due date and reminder. After spending quite the time working with the time package I now think that our understanding of time is broken. Years should have a set amount of days, months a set amount of days and weeks. It would make my live much easier."}, {"post_id": 21783, "ts": "2026-07-03T21:49:57Z", "hours": 5.8275, "text": "Last devlog of the day I implemented a lot of stuff in this 5 hours. Here you have a list: Help messages on most of the views. A brand new TODO view that allows the user to see more information about a given TODO and change more stuff like it’s due date(not implemented yet), reminders(not implemented yet) and description. A brand new view for changing a given TODO’s due date and reminder toggle. Added a dot at the end of the welcome message. Added a more celebratory way of completing a TODO rather than just deleting it. Added warning when terminal size is too small. bug fixed and small upgrades like remembering the selected item when going back to a list. I already wrote way too much on the last two devlogs and it’s already late so I’ve kept this one brief :)"}, {"post_id": 21445, "ts": "2026-07-03T12:22:41Z", "hours": 0.9067, "text": "Persistent storage works again After almost an hour of coding I was able get persistent storage working again and fix a couple of bugs. In the last devlog I explained that because of the project’s rewrite I disabled persistent storage. The project now asked for the user’s name and supported multiple todolists so the previous logic didn’t work. I thankfully was able to reuse a lot of code from the last version(mostly the file handling stuff). Now the project stores data on disk this way: One .cli-TODO-config.json file which contains the user’s name. One .cli-TODO-data.json file which contains the slice of todolists in json. Both files get stored in the same directory in which the program runs. Bugs fixed: When the user left a todolist view by clicking the title of that todo would still be displayed on the border. Not anymore. Other minor bugs that mostly appeared during the development of persistent storage. Like closing a file too early(then, if I tried to write to it again it would crash the program and leave the terminal in a broken state)."}, {"post_id": 21423, "ts": "2026-07-03T11:15:37Z", "hours": 5.255, "text": "I used to be the number one hater of the stardance review process(you get pretty tired of it after having to review the same slack bot 15 times but with different names) but after reading the feedback other people have left on my shipped projects I’ve changed my mind. Initially I decided to ship this thing quickly so I could get the sticker, but after seeing that a lot of people liked this project(and the Happiness meter too, check it out on my page) I’ve decided to keep improving it with the suggestions reviewers left. I’ll start with fixing the number one complaint, the devlogs. I still stand by my belief of “ship first, talk later” but I recognize that people enjoy reading this devlogs and they also force me to think twice about what I implemented and the decisions I made. Enough talk, what did I do in this 5h of coding time? Well, I basically rewrote the whole thing. Now there’s a new starting flow. Much more personalized, it even asks for your name! I tried to keep the todo selection logic mostly intact because it was a pain to write. Sadly I wanted to implement overflow handling and ended up having to rethink and rewrite a lot of code. Other features I implemented: The app now scales dynamically, filling the whole terminal, like a real TUI. Instead of the fixed values on the previous version. This was a pain to change by itself and took a lot of time to get the correct relative values but I’m quite happy of how it came out. Multiple todolists! A lot of reviewers asked for this and I’m happy to deliver. Things I want to add that reviewers asked for: Due time for the TODOs Maybe a reminder system? I’ll have to look into it, people have asked for this but I’m unsure about leaving a gorutine or a cron job running in the background of a reviewers computer. A more celebratory way of completing a TODO than just deleting it. I won’t change the AI declaration because it still applies to the first ship(even though the second is basically a rewrite) but in this one I tried to use even less and go back to good ol stack overflow. One reviewer asked me to make a mobile app for this, I tried to port it to ios using gomobile but it was a mess and simply not worth the effort so I sent the original go code to an agent and asked it to port it to swift. For a vibedcoded prototype it works pretty well so I’ll explore that option too. I still have to work on the persistent storage, it’s going to have to be more complex. Lastly I would like to thank again to all the reviewers that took the time to write thoughtful reviews, it means a lot to me. Some people even went out of the way to test the builds for windows and linux that I couldn’t test, thanks a lot :)"}, {"post_id": 18028, "ts": "2026-06-29T00:15:29Z", "hours": 7.0603, "text": "I’m tired but it’s finished Seven hours logged this weekend. I made a simple cli todolist made using gotui. It has persistent storage on disk :) Here you have a demo video, binaries are in github too."}]...
|
Title: CLI Todolist by @javim-dev | Stardance
Dev Title: CLI Todolist by @javim-dev | Stardance
Devlogs:
I’m tired but it’s finished Seven hours logged this weekend. I made a simple cli todolist made using gotui. It has persistent storage on disk :) Here you have a demo video, binaries are in github too.
I used to be the number one hater of the stardance review process(you get pretty tired of it after having to review the same slack bot 15 times but with different names) but after reading the feedback other people have left on my shipped projects I’ve changed my mind. Initially I decided to ship this thing quickly so I could get the sticker, but after seeing that a lot of people liked this project(and the Happiness meter too, check it out on my page) I’ve decided to keep improving it with the suggestions reviewers left. I’ll start with fixing the number one complaint, the devlogs. I still stand by my belief of “ship first, talk later” but I recognize that people enjoy reading this devlogs and they also force me to think twice about what I implemented and the decisions I made. Enough talk, what did I do in this 5h of coding time? Well, I basically rewrote the whole thing. Now there’s a new starting flow. Much more personalized, it even asks for your name! I tried to keep the todo selection logic mostly intact because it was a pain to write. Sadly I wanted to implement overflow handling and ended up having to rethink and rewrite a lot of code. Other features I implemented: The app now scales dynamically, filling the whole terminal, like a real TUI. Instead of the fixed values on the previous version. This was a pain to change by itself and took a lot of time to get the correct relative values but I’m quite happy of how it came out. Multiple todolists! A lot of reviewers asked for this and I’m happy to deliver. Things I want to add that reviewers asked for: Due time for the TODOs Maybe a reminder system? I’ll have to look into it, people have asked for this but I’m unsure about leaving a gorutine or a cron job running in the background of a reviewers computer. A more celebratory way of completing a TODO than just deleting it. I won’t change the AI declaration because it still applies to the first ship(even though the second is basically a rewrite) but in this one I tried to use even less and go back to good ol stack overflow. One reviewer asked me to make a mobile app for this, I tried to port it to ios using gomobile but it was a mess and simply not worth the effort so I sent the original go code to an agent and asked it to port it to swift. For a vibedcoded prototype it works pretty well so I’ll explore that option too. I still have to work on the persistent storage, it’s going to have to be more complex. Lastly I would like to thank again to all the reviewers that took the time to write thoughtful reviews, it means a lot to me. Some people even went out of the way to test the builds for windows and linux that I couldn’t test, thanks a lot :)
Persistent storage works again After almost an hour of coding I was able get persistent storage working again and fix a couple of bugs. In the last devlog I explained that because of the project’s rewrite I disabled persistent storage. The project now asked for the user’s name and supported multiple todolists so the previous logic didn’t work. I thankfully was able to reuse a lot of code from the last version(mostly the file handling stuff). Now the project stores data on disk this way: One .cli-TODO-config.json file which contains the user’s name. One .cli-TODO-data.json file which contains the slice of todolists in json. Both files get stored in the same directory in which the program runs. Bugs fixed: When the user left a todolist view by clicking the title of that todo would still be displayed on the border. Not anymore. Other minor bugs that mostly appeared during the development of persistent storage. Like closing a file too early(then, if I tried to write to it again it would crash the program and leave the terminal in a broken state).
Last devlog of the day I implemented a lot of stuff in this 5 hours. Here you have a list: Help messages on most of the views. A brand new TODO view that allows the user to see more information about a given TODO and change more stuff like it’s due date(not implemented yet), reminders(not implemented yet) and description. A brand new view for changing a given TODO’s due date and reminder toggle. Added a dot at the end of the welcome message. Added a more celebratory way of completing a TODO rather than just deleting it. Added warning when terminal size is too small. bug fixed and small upgrades like remembering the selected item when going back to a list. I already wrote way too much on the last two devlogs and it’s already late so I’ve kept this one brief :)
More progress I can almost see the next ship, I’ve made a lot of progress. Main improvements: Upgraded the design and functionality of the view that allows the user to change due date and reminder. All due date functionality now work. Some bug fixes + minor improvements: TODOs now keep the correct metadata after any other todo is deleted. Previously, description, due date and reminder used to be swapped between TODOs. Made description input box wrap text instead of letting it go out of the box. Updated help messages. Things left to do: Reminders Add a button to reset the due date and reminder. After spending quite the time working with the time package I now think that our understanding of time is broken. Years should have a set amount of days, months a set amount of days and weeks. It would make my live much easier.
Ready to ship I’ve spent these 3h mostly on implementing the reminders feature, sadly I couldn’t find a good enough solution and had to drop the feature. I’ve tested multiple go libraries but just couldn’t find one that reliably sent notifications across all platforms. Also, all of them sent desktop notifications instead of something more terminal-related which is what I had in mind. And then, after fighting with creating a background process for hours I decided that it simply wasn’t worth the effort, so I decided to not implement reminders and delete all reminder-related features already implemented in the UI. The due date feature remains intact. It’s sad but I think it’s the best decision to keep the app consistent and manageable. Chasing processes in activity monitor to stop notification loops was fun though! But not all the time in these 3 hours was wasted. I was able to add a button to reset the due date of a TODO and did a general cleanup of the code to prepare it for release.
Ships:
A simple cli todolist made using gotui. It has persistent storage on disk too :) There’s a demo video on my latest devlog and on github, binaries are on github too.
I made a simple todolist app that runs on the terminal. It has a beautiful TUI, persistent storage, due dates and much more! I’ve learnt a lot while making this project and how it came out. The devlogs are pretty long so I’ll keep this ship message short, just know that I’ve uploaded a demo video that you can find in the project’s readme :) Check the releases page for binaries: https://github.com/javiermm8/cli-todolist/releases...
|
1793138138.7738113
|
1793224538.7738113
|
|
29625
|
Investie by @knightfallShashy | Stardance
|
knightfallShashy
|
1
|
25.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-20T03:32:51Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Investie is a full stack investment based research app. You can search any stock, and get an AI summary of its financials and a real DCF valuation with proper market data. I built the stack myself with reflex as the frontend, fastAPI backend, and the postures via sup abase. I used finance for the data, and the anthropic API for the summaries. The hardest part was getting it deployed as it took a really long time to do that especially with the python version mismatch. My proudest accomplishment is probably the DCF engine and the AI summaries page.", "repo": "https://github.com/Shashyster/Investie", "demo": "https://frontend-silver-sun.reflex.run"}]...
|
[{"post_id": 50755, "ts": "202 [{"post_id": 50755, "ts": "2026-08-20T03:29:04Z", "hours": 1.6825, "text": "This is probably my last devlog for Investie. I’ve finished deploying the reflex frontend and fastAPI backend to Render and Reflex. I spent a frustratingly long time fixing the deploy blockers from Yfinance’s rate limiting. I also spent a good amount of time writing an entire README for the whole project. Requirements.txt was a disaster and I spent a long time fixing it and generating it again. Lastly, I fixed the frontend properties and gave it a proper error message for when yahoo limits requests."}, {"post_id": 50122, "ts": "2026-08-19T06:27:21Z", "hours": 2.4925, "text": "First of all I fixed the market page, instead of everything crammed to the left, it’s in the middle now and looks a lot more organized. Secondly I finally connected Anthropic’s API key to the project in- order to give stock summaries. The prompt for summaries took way too long because I kept changing it. The work done really put into perspective how long it takes to come up with the right prompt so that your tokens aren’t being burned. Im planning on investing a lot more money for the API tokens. lastly, Im starting to work the stock cards and making them clickable and a few other changes here and there."}, {"post_id": 47321, "ts": "2026-08-15T06:19:58Z", "hours": 3.2797, "text": "To start off I fixed the number formatting on my DCF, which was initially showing me just raw numbers. I also found out that apparent reflex state vars doesn’t support f- string format lines which was a bit annoying. The next big thing is that I built a full company name feature. Instead of just searching the ticker you can search the company name and a list will pop up. That specifically took a long time to build. Lastly I wired real market data to the stock cards on the homepage, giving it a realism effect. I still have plans on taking it further and making them clickable."}, {"post_id": 38012, "ts": "2026-07-31T04:31:40Z", "hours": 3.515, "text": "I built a pipeline for the DCF valuation logic to connect through the FastAPI endpoints (aka Get/fmp/ticker/get_full_dcf_valuation). I also fixed an issue on the startup with my backend server as fastapi was downgraded while starlette was upgraded. Additionally, I’ve finally made up my mind instead of using fmp by paying $19 a month, im going with yfinance’s free library. The switch made me change ALOT of Fmp code around. Lastly, I’ve started wiring the reflex frontend with the backend and wrote my “state” class. Overall I built new endpoints, changed previous ones, and worked on existing ones with major bug fixes in the middle."}, {"post_id": 33867, "ts": "2026-07-24T04:11:49Z", "hours": 3.6742, "text": "Big frontend push this session. I finished building out all five core pages: Home, Markets, Watchlist, About, and Contact. I also wired up a shared navbar with real routing. The ticker research input now lives on the Markets page instead of Home, freeing up the homepage for additional details. Built out the Home page hero to match a Bloomberg Terminal-inspired design: a dark section with a faint SVG chart-line pattern behind the text, and an “Explore Markets” button that actually routes to /markets. Also I made a scrollable charts section In the top. Overall it was filled with a lot of complicated Reflex design and painful bugs. I’m going to connect the backend and frontend soon though."}, {"post_id": 32772, "ts": "2026-07-22T04:37:30Z", "hours": 2.7183, "text": "Wrapped up the last piece of the core DCF math, then started the actual website since real cash flow data is still held behind the FMP Starter upgrade. I built the WACC math which ties into the Dcf calculation. Additionally, I have started my frontend by installing reflex and starting to work on the site itself. It’s still in it’s starting stages but took a lot of bug fixing."}, {"post_id": 30535, "ts": "2026-07-18T06:01:16Z", "hours": 1.83, "text": "Picked up where I left off with two small FMP cleanup items, then spent most of this session building the actual valuation math. Found out the $19/mo Starter tier does not extend that 5-year cap, it only unlocks the balance sheet/cash flow endpoints and more bandwidth. Every function got hand verified against math I worked out on paper before trusting the code, there is nothing that went in without me being able to explain why the numbers came out the way they did. I have much more screenshots, but didn’t have the time to paste them."}, {"post_id": 26837, "ts": "2026-07-11T21:09:14Z", "hours": 1.8503, "text": "I built out functions to pull income statements, balance sheets, and cash flow statements straight from FMP, following the same pattern as my earlier company profile integration. Income statement worked immediately with real multi-year data for Apple. Balance sheet and cash flow both came back with a 404 though. Apparently, my free-tier FMP account likely doesn’t include full financial statement access, based on comparing their pricing page (that data seems to be behind their $19/mo Starter plan). Rather than paying right away, I’m holding off and treating this as a “figure out before launch” decision."}, {"post_id": 22672, "ts": "2026-07-05T07:05:31Z", "hours": 1.9417, "text": "I finally built out my database session and my first company table model. Aditionally I also wrote a POST/ companies endpoint that takes data, validates it, and saves it to the database. Lastly after so much fixing I finally got a clean 200 response back with Microsoft’s data and a real database ID, so the full loop — request → validate → save → confirm — is working end to end now."}, {"post_id": 20534, "ts": "2026-07-02T04:41:36Z", "hours": 1.7736, "text": "This is my first devlog for Investie. So far I finished installing all my requirements, I made a Fast API server with a few words on it. Additionally, I ended up getting a bunch of important files made that are needed for the project. Lastly, I signed up with SupaBase to launch my site through their network and use it for API key connections. The main part of today was debugging, which took a painfully long time."}]...
|
Title: Investie by @knightfallShashy | Stardance
Title: Investie by @knightfallShashy | Stardance
Devlogs:
This is my first devlog for Investie. So far I finished installing all my requirements, I made a Fast API server with a few words on it. Additionally, I ended up getting a bunch of important files made that are needed for the project. Lastly, I signed up with SupaBase to launch my site through their network and use it for API key connections. The main part of today was debugging, which took a painfully long time.
I finally built out my database session and my first company table model. Aditionally I also wrote a POST/ companies endpoint that takes data, validates it, and saves it to the database. Lastly after so much fixing I finally got a clean 200 response back with Microsoft’s data and a real database ID, so the full loop — request → validate → save → confirm — is working end to end now.
I built out functions to pull income statements, balance sheets, and cash flow statements straight from FMP, following the same pattern as my earlier company profile integration. Income statement worked immediately with real multi-year data for Apple. Balance sheet and cash flow both came back with a 404 though. Apparently, my free-tier FMP account likely doesn’t include full financial statement access, based on comparing their pricing page (that data seems to be behind their $19/mo Starter plan). Rather than paying right away, I’m holding off and treating this as a “figure out before launch” decision.
Picked up where I left off with two small FMP cleanup items, then spent most of this session building the actual valuation math. Found out the $19/mo Starter tier does not extend that 5-year cap, it only unlocks the balance sheet/cash flow endpoints and more bandwidth. Every function got hand verified against math I worked out on paper before trusting the code, there is nothing that went in without me being able to explain why the numbers came out the way they did. I have much more screenshots, but didn’t have the time to paste them.
Wrapped up the last piece of the core DCF math, then started the actual website since real cash flow data is still held behind the FMP Starter upgrade. I built the WACC math which ties into the Dcf calculation. Additionally, I have started my frontend by installing reflex and starting to work on the site itself. It’s still in it’s starting stages but took a lot of bug fixing.
Big frontend push this session. I finished building out all five core pages: Home, Markets, Watchlist, About, and Contact. I also wired up a shared navbar with real routing. The ticker research input now lives on the Markets page instead of Home, freeing up the homepage for additional details. Built out the Home page hero to match a Bloomberg Terminal-inspired design: a dark section with a faint SVG chart-line pattern behind the text, and an “Explore Markets” button that actually routes to /markets. Also I made a scrollable charts section In the top. Overall it was filled with a lot of complicated Reflex design and painful bugs. I’m going to connect the backend and frontend soon though.
I built a pipeline for the DCF valuation logic to connect through the FastAPI endpoints (aka Get/fmp/ticker/get_full_dcf_valuation). I also fixed an issue on the startup with my backend server as fastapi was downgraded while starlette was upgraded. Additionally, I’ve finally made up my mind instead of using fmp by paying $19 a month, im going with yfinance’s free library. The switch made me change ALOT of Fmp code around. Lastly, I’ve started wiring the reflex frontend with the backend and wrote my “state” class. Overall I built new endpoints, changed previous ones, and worked on existing ones with major bug fixes in the middle.
To start off I fixed the number formatting on my DCF, which was initially showing me just raw numbers. I also found out that apparent reflex state vars doesn’t support f- string format lines which was a bit annoying. The next big thing is that I built a full company name feature. Instead of just searching the ticker you can search the company name and a list will pop up. That specifically took a long time to build. Lastly I wired real market data to the stock cards on the homepage, giving it a realism effect. I still have plans on taking it further and making them clickable.
First of all I fixed the market page, instead of everything crammed to the left, it’s in the middle now and looks a lot more organized. Secondly I finally connected Anthropic’s API key to the project in- order to give stock summaries. The prompt for summaries took way too long because I kept changing it. The work done really put into perspective how long it takes to come up with the right prompt so that your tokens aren’t being burned. Im planning on investing a lot more money for the API tokens. lastly, Im starting to work the stock cards and making them clickable and a few other changes here and there.
This is probably my last devlog for Investie. I’ve finished deploying the reflex frontend and fastAPI backend to Render and Reflex. I spent a frustratingly long time fixing the deploy blockers from Yfinance’s rate limiting. I also spent a good amount of time writing an entire README for the whole project. Requirements.txt was a disaster and I spent a long time fixing it and generating it again. Lastly, I fixed the frontend properties and gave it a proper error message for when yahoo limits requests.
Ships:
Investie is a full stack investment based research app. You can search any stock, and get an AI summary of its financials and a real DCF valuation with proper market data. I built the stack myself with reflex as the frontend, fastAPI backend, and the postures via sup abase. I used finance for the data, and the anthropic API for the summaries. The hardest part was getting it deployed as it took a really long time to do that especially with the python version mismatch. My proudest accomplishment is probably the DCF engine and the AI summaries page....
|
1793108857.0688767
|
1793195257.0688767
|
|
34560
|
My very own WebOS by @HexFud | Stardance
|
HexFud
|
4
|
25.0
|
190
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-02T09:57:28Z", "hours": 2.0, "multiplier": 6.13, "payout": 7, "blessing": "neutral", "text": "I built WebOS, a fully functional macOS-style desktop environment that runs entirely in your browser. It’s got a full window management system, a virtual file system (Finder), a Text Editor, a working Terminal, Sticky Notes, and even a built-in web browser. The craziest part of this project was engineering the logic of a whole “operating system” without any backend at all. Everything relies purely on the browser’s localStorage. For example, I wanted users to be able to upload custom wallpapers, but high-res images would immediately hit storage limits and crash the virtual disk. To fix this, I had to build a custom solution using the Canvas API to automatically resize and compress images on the fly before saving them. Getting the desktop interactions to feel actually native was another huge hurdle. I spent a lot of time fine-tuning the marquee selection tool, multi-icon drag-and-drop, and making sure that dropping files straight into a desktop folder worked seamlessly without feeling clunky. I also added new applications like paint, clock, calendar and media player that you can all try out now!", "repo": "https://github.com/HexFud/WebOS/", "demo": "https://hexfud.github.io/WebOS/"}, {"ship_num": 2, "ts": "2026-07-25T15:16:53Z", "hours": 20.0, "multiplier": 8.65, "payout": 171, "blessing": "neutral", "text": "I built WebOS, a fully functional macOS-style desktop environment that runs entirely in your browser. It’s got a full window management system, a virtual file system (Finder), a Text Editor, a working Terminal, Sticky Notes, and even a built-in web browser. The craziest part of this project was engineering the logic of a whole “operating system” without any backend at all. Everything relies purely on the browser’s localStorage. For example, I wanted users to be able to upload custom wallpapers, but high-res images would immediately hit storage limits and crash the virtual disk. To fix this, I had to build a custom solution using the Canvas API to automatically resize and compress images on the fly before saving them. Getting the desktop interactions to feel actually native was another huge hurdle. I spent a lot of time fine-tuning the marquee selection tool, multi-icon drag-and-drop, and making sure that dropping files straight into a desktop folder worked seamlessly without feeling clunky. But honestly, what I’m most proud of is the underlying architecture. I managed to create and most of the new features i have implemented.", "repo": "https://github.com/HexFud/WebOS/", "demo": "https://hexfud.github.io/WebOS/"}, {"ship_num": 3, "ts": "2026-07-19T10:40:35Z", "hours": 2.0, "multiplier": 6.48, "payout": 12, "blessing": "neutral", "text": "I finished and polished my own WebOs, I found a lot of challenges in this path for example troubleshooting my code and fixing bug but in the end i am proud of what I’ve made", "repo": "https://github.com/HexFud/WebOS/", "demo": "https://hexfud.github.io/WebOS/"}, {"ship_num": 4, "ts": "2026-07-14T15:37:14Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finally finished the first milestone of webOs. I added so many things, hope you will like it !", "repo": "https://github.com/HexFud/WebOS/", "demo": "https://hexfud.github.io/WebOS/"}]...
|
[{"post_id": 39373, "ts": "202 [{"post_id": 39373, "ts": "2026-08-02T09:49:08Z", "hours": 2.2639, "text": "Devlog #11 Finally added more applications! What i added so far: Calendar Media Player where you can upload media (video included) and see them into the webos Paint, if you feel creative than you can draw something :) Clock I fixed some bugs with the windows drag and the drag and drop system between folders, also added more wallpaper styles"}, {"post_id": 34630, "ts": "2026-07-25T14:49:13Z", "hours": 9.1864, "text": "Devlog #10 We have antoher big upgrade!!! What I have improved and fixed: Added custom wallpapers! You can now go to Settings and upload your own image (PNG, JPG, or WebP). I built a system that automatically resizes the image to a max of 1920px and compresses it so it doesn’t blow up the browser’s local storage limit. If the file is still somehow too big, I made sure it won’t crash or delete your other saved files and notes. I built a Sticky Notes feature. If you right-click on the desktop, you can now create a new post-it. Every note is fully independent, you can drag them around the screen, pick from 5 different colors, and they actually save locally so they survive if you reload the page. Drag and drop is finally here. I initially built it just for the Explorer app so you could move files between folders, but I realized dragging a file into a folder directly on the desktop wasn’t doing anything. I completely fixed that. Now, if you drag an icon (or multiple selected icons) over a desktop folder, the folder highlights in blue, and dropping it actually moves the files inside. Added a highly requested feature to the Text Editor: a Download .txt button. Now you can actually export whatever you write in the webos straight to your real computer as a standard text file."}, {"post_id": 34261, "ts": "2026-07-24T20:16:50Z", "hours": 8.2689, "text": "Devlog #09 We have big upgrades!!! I will commit them soon to github. What I have improved and fixed: The Text Editor wasn’t actually saving files correctly. It turns out that editing a file was just updating a global temporary field instead of writing to the actual file in the webos. Worse, if you had multiple windows open, they’d overwrite each other. I’ve completely rewritten this. Every window now tracks its own fileId, and saving actually writes the file. The calculator had this bug: if you typed 5+, it would instantly yell “Error” before you could even type the next number. It now ignores incomplete states. Window buttons: now you don’t need sniper aim to close a window anymore. The clickable area for the close/minimize/maximize buttons was literally just the 13px dot. I used some CSS to bump the hitbox up to 22px. They still look exactly the same, but they’re way easier to click. Explorer Views: Grid and List views actually look different now (before they were basically identical). Grid gives you proper tiles, List gives you rows. Finally Finished Mission Control: The component I started building last time is finally up and working. Hitting F3 or clicking the new icon in the dock actually brings up the overlay now. Desktop selection & dragging: You can finally click and drag a rectangle to select multiple icons on the desktop. I had to rewrite the DesktopIcon component to handle group dragging properly, but it feels super smooth now. I also threw in Cmd/Ctrl + A to select all and the Delete key to trash selected items. Search bar: Added a working search bar to the Explorer so you can actually filter files by name. Added ↑ and ↓ arrow key support for command history (finally). I also added a sysinfo command and updated help so it actually tells you what the commands do. Passwords: Added a standard show/hide toggle (the eye icon) to the login and setup screens. New Wallpapers the UI colors were getting a bit monotonous, so I added three new vibrant gradient wallpapers (Ocean, Meadow, Spectrum). P.S. Thanks to all the people that pointed out these issues in the shipping review process"}, {"post_id": 31877, "ts": "2026-07-20T16:59:56Z", "hours": 2.2672, "text": "Devlog #08 Changed the file structure for more redability. In the update there are minor bug fixes"}, {"post_id": 31167, "ts": "2026-07-19T10:37:55Z", "hours": 0.3344, "text": "Devlog #07 Added various features like a functioning browser, dnd mode, updated the bin and the most important i finally managed to make the windows snapping work with a GUI like windows 11"}, {"post_id": 30217, "ts": "2026-07-17T16:58:03Z", "hours": 0.3383, "text": "Devlog #06 Planning to add new features but i am still stuck with some bugs so it won’t be uploaded to github until fixed. Now i am going forward adding even more things"}, {"post_id": 29798, "ts": "2026-07-16T22:35:00Z", "hours": 0.6756, "text": "Devlog #05 Finally we have a big redesign inspired by macOS. I had a lot of bugs in the previous devlog but they’re all gone now (finally). I have in program to add more animations and features"}, {"post_id": 29397, "ts": "2026-07-16T10:16:56Z", "hours": 0.6267, "text": "Devlog #04 Finally fixed the infinity of bugs i had with dragging windows around. Now you can see in the picture that if you try to change the dimension of the window a small shade appears in 1 of the 4 corners"}, {"post_id": 28198, "ts": "2026-07-14T10:24:58Z", "hours": 0.2592, "text": "Devlog #03 Fixed dekstop icon opening and minor bugs"}, {"post_id": 28179, "ts": "2026-07-14T09:45:23Z", "hours": 0.3511, "text": "Added a Create account screen and fixed some animations"}, {"post_id": 28167, "ts": "2026-07-14T09:19:43Z", "hours": 0.7175, "text": "Devlog #01 I finally improved my OS! i recently added new animations a login screen and language change settings"}]...
|
Title: My very own WebOS by @HexFud | Stardance
D Title: My very own WebOS by @HexFud | Stardance
Devlogs:
Devlog #01 I finally improved my OS! i recently added new animations a login screen and language change settings
Added a Create account screen and fixed some animations
Devlog #03 Fixed dekstop icon opening and minor bugs
Devlog #04 Finally fixed the infinity of bugs i had with dragging windows around. Now you can see in the picture that if you try to change the dimension of the window a small shade appears in 1 of the 4 corners
Devlog #05 Finally we have a big redesign inspired by macOS. I had a lot of bugs in the previous devlog but they’re all gone now (finally). I have in program to add more animations and features
Devlog #06 Planning to add new features but i am still stuck with some bugs so it won’t be uploaded to github until fixed. Now i am going forward adding even more things
Devlog #07 Added various features like a functioning browser, dnd mode, updated the bin and the most important i finally managed to make the windows snapping work with a GUI like windows 11
Devlog #08 Changed the file structure for more redability. In the update there are minor bug fixes
Devlog #09 We have big upgrades!!! I will commit them soon to github. What I have improved and fixed: The Text Editor wasn’t actually saving files correctly. It turns out that editing a file was just updating a global temporary field instead of writing to the actual file in the webos. Worse, if you had multiple windows open, they’d overwrite each other. I’ve completely rewritten this. Every window now tracks its own fileId, and saving actually writes the file. The calculator had this bug: if you typed 5+, it would instantly yell “Error” before you could even type the next number. It now ignores incomplete states. Window buttons: now you don’t need sniper aim to close a window anymore. The clickable area for the close/minimize/maximize buttons was literally just the 13px dot. I used some CSS to bump the hitbox up to 22px. They still look exactly the same, but they’re way easier to click. Explorer Views: Grid and List views actually look different now (before they were basically identical). Grid gives you proper tiles, List gives you rows. Finally Finished Mission Control: The component I started building last time is finally up and working. Hitting F3 or clicking the new icon in the dock actually brings up the overlay now. Desktop selection & dragging: You can finally click and drag a rectangle to select multiple icons on the desktop. I had to rewrite the DesktopIcon component to handle group dragging properly, but it feels super smooth now. I also threw in Cmd/Ctrl + A to select all and the Delete key to trash selected items. Search bar: Added a working search bar to the Explorer so you can actually filter files by name. Added ↑ and ↓ arrow key support for command history (finally). I also added a sysinfo command and updated help so it actually tells you what the commands do. Passwords: Added a standard show/hide toggle (the eye icon) to the login and setup screens. New Wallpapers the UI colors were getting a bit monotonous, so I added three new vibrant gradient wallpapers (Ocean, Meadow, Spectrum). P.S. Thanks to all the people that pointed out these issues in the shipping review process
Devlog #10 We have antoher big upgrade!!! What I have improved and fixed: Added custom wallpapers! You can now go to Settings and upload your own image (PNG, JPG, or WebP). I built a system that automatically resizes the image to a max of 1920px and compresses it so it doesn’t blow up the browser’s local storage limit. If the file is still somehow too big, I made sure it won’t crash or delete your other saved files and notes. I built a Sticky Notes feature. If you right-click on the desktop, you can now create a new post-it. Every note is fully independent, you can drag them around the screen, pick from 5 different colors, and they actually save locally so they survive if you reload the page. Drag and drop is finally here. I initially built it just for the Explorer app so you could move files between folders, but I realized dragging a file into a folder directly on the desktop wasn’t doing anything. I completely fixed that. Now, if you drag an icon (or multiple selected icons) over a desktop folder, the folder highlights in blue, and dropping it actually moves the files inside. Added a highly requested feature to the Text Editor: a Download .txt button. Now you can actually export whatever you write in the webos straight to your real computer as a standard text file.
Devlog #11 Finally added more applications! What i added so far: Calendar Media Player where you can upload media (video included) and see them into the webos Paint, if you feel creative than you can draw something :) Clock I fixed some bugs with the windows drag and the drag and drop system between folders, also added more wallpaper styles
Ships:
Finally finished the first milestone of webOs. I added so many things, hope you will like it !
I finished and polished my own WebOs, I found a lot of challenges in this path for example troubleshooting my code and fixing bug but in the end i am proud of what I’ve made
I built WebOS, a fully functional macOS-style desktop environment that runs entirely in your browser. It’s got a full window management system, a virtual file system (Finder), a Text Editor, a working Terminal, Sticky Notes, and even a built-in web browser. The craziest part of this project was engineering the logic of a whole “operating system” without any backend at all. Everything relies purely on the browser’s localStorage. For example, I wanted users to be able to upload custom wallpapers, but high-res images would immediately hit storage limits and crash the virtual disk. To fix this, I had to build a custom solution using the Canvas API to automatically resize and compress images on the fly before saving them. Getting the desktop interactions to feel actually native was another huge hurdle. I spent a lot of time fine-tuning the marquee selection tool, multi-icon drag-and-drop, and making sure that dropping files straight into a desktop folder worked seamlessly without feeling clunky. But honestly, what I’m most proud of is the underlying architecture. I managed to create and most of the new features i have implemented.
I built WebOS, a fully functional macOS-style desktop environment that runs entirely in your browser. It’s got a full window management system, a virtual file system (Finder), a Text Editor, a working Terminal, Sticky Notes, and even a built-in web browser. The craziest part of this project was engineering the logic of a whole “operating system” without any backend at all. Everything relies purely on the browser’s localStorage. For example, I wanted users to be able to upload custom wallpapers, but high-res images would immediately hit storage limits and crash the virtual disk. To fix this, I had to build a custom solution using the Canvas API to automatically resize and compress images on the fly before saving them. Getting the desktop interactions to feel actually native was another huge hurdle. I spent a lot of time fine-tuning the marquee selection tool, multi-icon drag-and-drop, and making sure that dropping files straight into a desktop folder worked seamlessly without feeling clunky. I also added new applications like paint, clock, calendar and media player that you can all try out now!...
|
1793238684.3508494
|
1793325084.3508494
|
|
36719
|
MyWizardpersonalsite by @novcar | Stardance
|
novcar
|
1
|
25.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-14T05:23:10Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a personal website! It was very fun to make. I made a main tab and two other tabs. The Lobby took the most time for formatting . The rest of the tabs were also a fun make. The About me talks about myself and my hobbies. I wanted to add a lot of gifs so I did. I hope you like it!", "repo": "https://github.com/novemberrC/wizardwebsite", "demo": "https://novemberrc.github.io/wizardwebsite/"}]...
|
[{"post_id": 46719, "ts": "202 [{"post_id": 46719, "ts": "2026-08-14T05:08:58Z", "hours": 4.8311, "text": "I finished up the lobby page. I added the about me with hobbies and photos and such. I added a foto hut tab to place photography of mine. I made sure each photo had a border. I added a 404 page. I continued to refit and remake the website and I think I’m finished for now. thank you! I hope you like it!"}, {"post_id": 36852, "ts": "2026-07-29T05:24:14Z", "hours": 4.6722, "text": "adjusted the layout a bit. Im about done and will start going to different tabs now. took me a lil too long lol"}, {"post_id": 35030, "ts": "2026-07-26T06:00:52Z", "hours": 8.8303, "text": "I added another page to my website that I intend to make the index. The layout has updated layered boxes, gifs, and photos."}, {"post_id": 32161, "ts": "2026-07-21T03:58:57Z", "hours": 2.0525, "text": "customizing website - Added a grass theme and concrete stuff. Will change later but I learned a lot about HTML and CSS in the process :D"}, {"post_id": 31642, "ts": "2026-07-20T06:27:59Z", "hours": 4.3092, "text": "I added a bit more to my website and am getting the basics of HTML down"}]...
|
Title: MyWizardpersonalsite by @novcar | Stardance Title: MyWizardpersonalsite by @novcar | Stardance
Devlogs:
I added a bit more to my website and am getting the basics of HTML down
customizing website - Added a grass theme and concrete stuff. Will change later but I learned a lot about HTML and CSS in the process :D
I added another page to my website that I intend to make the index. The layout has updated layered boxes, gifs, and photos.
adjusted the layout a bit. Im about done and will start going to different tabs now. took me a lil too long lol
I finished up the lobby page. I added the about me with hobbies and photos and such. I added a foto hut tab to place photography of mine. I made sure each photo had a border. I added a 404 page. I continued to refit and remake the website and I think I’m finished for now. thank you! I hope you like it!
Ships:
I made a personal website! It was very fun to make. I made a main tab and two other tabs. The Lobby took the most time for formatting . The rest of the tabs were also a fun make. The About me talks about myself and my hobbies. I wanted to add a lot of gifs so I did. I hope you like it!...
|
1793141742.5101073
|
1793228142.5101073
|
|
37640
|
Untitled Core Game by @COYG_KNGPLCJMS | Stardance
|
COYG_KNGPLCJMS
|
1
|
25.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-27T19:48:45Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a simple game in 96 hours for the GMTK game jam. It includes a basic movable character and tasks to complete before the ship blows up. Random Image of me failing:", "repo": "https://github.com/KNGPLCJMS/countdown26GMTK", "demo": "https://kngplcjms.itch.io/ugc-gmtk-2026"}]...
|
[{"post_id": 35987, "ts": "202 [{"post_id": 35987, "ts": "2026-07-27T19:43:54Z", "hours": 1.2667, "text": "Short update: The README didn’t save so I had to redo it. On a positive note, the music seems to work now."}, {"post_id": 35198, "ts": "2026-07-26T13:52:48Z", "hours": 3.7389, "text": "#GMTK Game Jam Final Day As usual the second the game leaves my computer it has multiple issues on the browser. It has lag spikes nearly everywhere and the browser blocks music that is automatically played. I tried to fix some issues but ran out of time to fix it."}, {"post_id": 34844, "ts": "2026-07-25T21:27:42Z", "hours": 10.7539, "text": "GMTK Game Jam Day 4 I also finally figured out how to add newlines. I had to spam Shift + Enter like 30 times and pray my browser doesnt crash. There might be a better way that I couldn’t find. I also forgot to post a devlog before 10 hours so there goes 43 minutes. I mainly worked on creating a playable version that I can polish: Added 10 tasks Created a basic Starting, Level, and End screen Added the Meltdown event that occurs if you run out of time Animated some elements Added Ice physics Made the game actually playable"}, {"post_id": 33859, "ts": "2026-07-24T03:41:45Z", "hours": 4.9872, "text": "GMTK Game Jam Day 2/4: Today I decided to add finish the rooms and the UI. I added basic decorations to the 5 rooms. I also added the timer and added a small indicator that shows what task you have to do."}, {"post_id": 33285, "ts": "2026-07-23T02:20:49Z", "hours": 4.1119, "text": "GMTK Game Jam Day 1/4: I had 4 days to build a game around the theme Countdown. I decided to create a game where you had to navigate a map to complete tasks before a countdown reaches 0. I built a simple map in Godot with multiple rooms I can add to later. I also finished making a controllable player."}]...
|
Title: Untitled Core Game by @COYG_KNGPLCJMS | Sta Title: Untitled Core Game by @COYG_KNGPLCJMS | Stardance
Devlogs:
GMTK Game Jam Day 1/4: I had 4 days to build a game around the theme Countdown. I decided to create a game where you had to navigate a map to complete tasks before a countdown reaches 0. I built a simple map in Godot with multiple rooms I can add to later. I also finished making a controllable player.
GMTK Game Jam Day 2/4: Today I decided to add finish the rooms and the UI. I added basic decorations to the 5 rooms. I also added the timer and added a small indicator that shows what task you have to do.
GMTK Game Jam Day 4 I also finally figured out how to add newlines. I had to spam Shift + Enter like 30 times and pray my browser doesnt crash. There might be a better way that I couldn’t find. I also forgot to post a devlog before 10 hours so there goes 43 minutes. I mainly worked on creating a playable version that I can polish: Added 10 tasks Created a basic Starting, Level, and End screen Added the Meltdown event that occurs if you run out of time Animated some elements Added Ice physics Made the game actually playable
#GMTK Game Jam Final Day As usual the second the game leaves my computer it has multiple issues on the browser. It has lag spikes nearly everywhere and the browser blocks music that is automatically played. I tried to fix some issues but ran out of time to fix it.
Short update: The README didn’t save so I had to redo it. On a positive note, the music seems to work now.
Ships:
I made a simple game in 96 hours for the GMTK game jam. It includes a basic movable character and tasks to complete before the ship blows up. Random Image of me failing:...
|
1792878697.7838936
|
1793742697.7838936
|
|
38139
|
Prism - Infinite Workspace Tool by @kakak_ | Stard Prism - Infinite Workspace Tool by @kakak_ | Stardance...
|
kakak_
|
2
|
25.0
|
463
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-15T15:58:44Z", "hours": 11.0, "multiplier": 18.94, "payout": 260, "blessing": "neutral", "text": "Hi!! By the way, if the project doesn’t work on your end, please just don’t rate it… Anyways, this is Prism! An infinite workspace tool designed to focus your thoughts in a digestible format. I’ve added a lot since the last ship, like accounts, a tutorial, and I’m working on a new dashboard and landing page. I would really appreciate it if you could give me constructive feedback, because it really helps me gauge which features are high-priority and which aren’t. The link is https://prism-beta-beige.vercel.app/ and please enjoy!", "repo": "https://github.com/kakak158/infinite-workspace", "demo": "https://prism-beta-beige.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-29T14:58:47Z", "hours": 14.0, "multiplier": 14.8, "payout": 203, "blessing": "neutral", "text": "Infinite Workspace is an interactive, infinite canvas built for organizing ideas, planning projects, tracking tasks, and even relaxing. Drag, drop, connect, and structure your thoughts freely with custom card nodes. Note Card: Write and format notes with titles and rich text support (⌘B, ⌘I,⌘U). Use them to express ideas or add context to surrounding cards. Task Card: Track goals and check off items with a polished, progress-focused UI and fluid task animations. Parent Card: Act as root/folder nodes to group topics and fields together. Features real-time stat stacking from child cards. Image Card: Display visual content directly on the canvas to complement your notes and project layouts. Connect nodes freely across the infinite canvas. Parent-Child Logic: Connect a green connector to a red connector on a Parent Card to establish child dependencies and hierarchy. Aggregated Stats: Parent cards automatically stack and display stats from connected child nodes. Drag-and-Drop Sidebar: Easily spawn new card nodes directly onto the canvas. Auto-Save: Your workspace state persists automatically in your browser’s localStorage. Smooth Animations: Powered by Motion and GSAP for responsive UI interactions, card creation, task buttons, and loading screens. Built With: Frontend: React, TailwindCSS, ReactFlow Persistence: Browser localStorage Hosting: Netlify", "repo": "https://github.com/kakak158/infinite-workspace", "demo": "https://prism-beta-beige.vercel.app/"}]...
|
[{"post_id": 47587, "ts": "202 [{"post_id": 47587, "ts": "2026-08-15T15:51:45Z", "hours": 3.3319, "text": "Devlog #8 Sorry for the massive gap in devlogs recently! I’ve been flying all across the world, from the UK to Canada to New York (and soon, Texas)! But… I really didn’t do much in these 3hrs that’s worth talking about… Just a bunch of bug fixes with Supabase (mostly a weird glitch where if you logged in and out and in again on your computer, Supabase would delete all your data from the database), some more work on the new dashboard (and all the Supabase troubles that come with it), and a REBRANDING!!! This web-app is now called “Prism” , an infinite workspace platform that can help you refocus your ideas and make them visible and easy to understand. I’ve also switched hosting platform, from Netlify to Vercel (they kept trying make me pay for AI credits, and when I said no they blocked the website ). I’m really excited about this project, and I hope you can see my love and joy poured into it through the web-app and my devlogs! If this is the first devlog you’ve seen, I highly encourage you to try out the app at https://prism-beta-beige.vercel.app/ Thanks, and see you next time!"}, {"post_id": 40383, "ts": "2026-08-03T21:05:21Z", "hours": 8.1108, "text": "Devlog #7 I did it!!!!! I added: Supabase AND Clerk!! New font Tutorial New routes?! Watch the video to fully appreciate all this"}, {"post_id": 36997, "ts": "2026-07-29T13:29:11Z", "hours": 3.9544, "text": "Devlog #6 Hi! I haven’t made a devlog in a while, but i’ve been up to a lot! Let’s get started! I completely redesigned the parent card from the ground up, because I wasn’t happy with the way it looked. I added: Cool stats! and hierarchy… (by the way I made it so you can style the note card now in any way you like using ⌘B, ⌘I and ⌘U) Because of the nature of having every node be able to connect to every node, there is no natural hierarchy. So how can a parent “folder” card exist if there is no hierarchy? Introducing… the red connector on the parent card! If you connect a green connector to a red one on a different parent card, you make the one with the red connector the child and the green the parent! This allows for: Stacking of stats on the cards Better organisation! There’s also an image card now! You’ll see it in the video. I also did some bug fixing, and changed the icons in the sidebar to match the cards. I’ve been thinking hard about what’s next for this project, and I think I’m very happy with it. That being said, it does run on localStorage, which: Is tiny (~5MB) Only saves to your computer. I want this app to be something you can pull out on someone else’s laptop, or on your phone, and localStorage simply can’t do that. Which is why I’m going to be working very hard over the next few days to switch this project over to Supabase. This is going to be a massive overhaul in Infinite Workspace’s backend, especially since I have never used Supabase before (I’m more of a Firebase kind of guy). This means that these devlogs are going to start to get smaller and sparser (as I have to learn Supabase). I’ll try to show the code I’m working with, but UI changes will be practically non-existent from here on out (unless I feel really passionate about something.)"}, {"post_id": 34836, "ts": "2026-07-25T21:06:06Z", "hours": 3.0689, "text": "Devlog #5 I found out today that you can style your yap sessions devlogs, so i’m going to be doing that now! I added: Saving : your workspace now saves to localStorage automatically Parent node : A root node that you can use to group topics and fields together in your workspace Probably more bug fixes that I forgot to include…"}, {"post_id": 34102, "ts": "2026-07-24T16:05:42Z", "hours": 2.9383, "text": "Devlog #4 I’ve made good progress! There is now: A Sidebar The task card to finished now too General bug fixes Ages spent going back to comment all my code! The sidebar is a new way to add nodes, now a drag-and-drop system! See it in action on the video (it might look like i’m not dragging on the screen recording, but I am)! I made the task card look beautiful, polished and finished too! It looks great I think.I’m gonna put my project goals on there so you can see how it looks!"}, {"post_id": 33139, "ts": "2026-07-22T19:39:39Z", "hours": 2.0122, "text": "Devlog #3: I added a new task card! This took a while… It’s not finished, but it’s close! I’ve also been doing some bug hunting to make this project more perfect. I also added cool new animations, using libraries like Motion and GSAP, including a loading screen, and quality-of-life animations, like: the task button the animation for creating a new task or note"}, {"post_id": 33006, "ts": "2026-07-22T15:28:40Z", "hours": 1.1022, "text": "Devlog #2:Basically the entire devlog is in the video, so read the cards in there, but is short: I’ve gotten the canvas working + the note nodes, and I think i’m ready to start making more node types (e.g tasks, links, imgs, etc)."}, {"post_id": 32723, "ts": "2026-07-22T01:44:23Z", "hours": 0.735, "text": "Just made a drawing of my plan. I think it’s gonna look great."}]...
|
Title: Prism - Infinite Workspace Tool by @kakak_ Title: Prism - Infinite Workspace Tool by @kakak_ | Stardance
Devlogs:
Just made a drawing of my plan. I think it’s gonna look great.
Devlog #2:Basically the entire devlog is in the video, so read the cards in there, but is short: I’ve gotten the canvas working + the note nodes, and I think i’m ready to start making more node types (e.g tasks, links, imgs, etc).
Devlog #3: I added a new task card! This took a while… It’s not finished, but it’s close! I’ve also been doing some bug hunting to make this project more perfect. I also added cool new animations, using libraries like Motion and GSAP, including a loading screen, and quality-of-life animations, like: the task button the animation for creating a new task or note
Devlog #4 I’ve made good progress! There is now: A Sidebar The task card to finished now too General bug fixes Ages spent going back to comment all my code! The sidebar is a new way to add nodes, now a drag-and-drop system! See it in action on the video (it might look like i’m not dragging on the screen recording, but I am)! I made the task card look beautiful, polished and finished too! It looks great I think.I’m gonna put my project goals on there so you can see how it looks!
Devlog #5 I found out today that you can style your yap sessions devlogs, so i’m going to be doing that now! I added: Saving : your workspace now saves to localStorage automatically Parent node : A root node that you can use to group topics and fields together in your workspace Probably more bug fixes that I forgot to include…
Devlog #6 Hi! I haven’t made a devlog in a while, but i’ve been up to a lot! Let’s get started! I completely redesigned the parent card from the ground up, because I wasn’t happy with the way it looked. I added: Cool stats! and hierarchy… (by the way I made it so you can style the note card now in any way you like using ⌘B, ⌘I and ⌘U) Because of the nature of having every node be able to connect to every node, there is no natural hierarchy. So how can a parent “folder” card exist if there is no hierarchy? Introducing… the red connector on the parent card! If you connect a green connector to a red one on a different parent card, you make the one with the red connector the child and the green the parent! This allows for: Stacking of stats on the cards Better organisation! There’s also an image card now! You’ll see it in the video. I also did some bug fixing, and changed the icons in the sidebar to match the cards. I’ve been thinking hard about what’s next for this project, and I think I’m very happy with it. That being said, it does run on localStorage, which: Is tiny (~5MB) Only saves to your computer. I want this app to be something you can pull out on someone else’s laptop, or on your phone, and localStorage simply can’t do that. Which is why I’m going to be working very hard over the next few days to switch this project over to Supabase. This is going to be a massive overhaul in Infinite Workspace’s backend, especially since I have never used Supabase before (I’m more of a Firebase kind of guy). This means that these devlogs are going to start to get smaller and sparser (as I have to learn Supabase). I’ll try to show the code I’m working with, but UI changes will be practically non-existent from here on out (unless I feel really passionate about something.)
Devlog #7 I did it!!!!! I added: Supabase AND Clerk!! New font Tutorial New routes?! Watch the video to fully appreciate all this
Devlog #8 Sorry for the massive gap in devlogs recently! I’ve been flying all across the world, from the UK to Canada to New York (and soon, Texas)! But… I really didn’t do much in these 3hrs that’s worth talking about… Just a bunch of bug fixes with Supabase (mostly a weird glitch where if you logged in and out and in again on your computer, Supabase would delete all your data from the database), some more work on the new dashboard (and all the Supabase troubles that come with it), and a REBRANDING!!! This web-app is now called “Prism” , an infinite workspace platform that can help you refocus your ideas and make them visible and easy to understand. I’ve also switched hosting platform, from Netlify to Vercel (they kept trying make me pay for AI credits, and when I said no they blocked the website ). I’m really excited about this project, and I hope you can see my love and joy poured into it through the web-app and my devlogs! If this is the first devlog you’ve seen, I highly encourage you to try out the app at https://prism-beta-beige.vercel.app/ Thanks, and see you next time!
Ships:
Infinite Workspace is an interactive, infinite canvas built for organizing ideas, planning projects, tracking tasks, and even relaxing. Drag, drop, connect, and structure your thoughts freely with custom card nodes. Note Card: Write and format notes with titles and rich text support (⌘B, ⌘I,⌘U). Use them to express ideas or add context to surrounding cards. Task Card: Track goals and check off items with a polished, progress-focused UI and fluid task animations. Parent Card: Act as root/folder nodes to group topics and fields together. Features real-time stat stacking from child cards. Image Card: Display visual content directly on the canvas to complement your notes and project layouts. Connect nodes freely across the infinite canvas. Parent-Child Logic: Connect a green connector to a red connector on a Parent Card to establish child dependencies and hierarchy. Aggregated Stats: Parent cards automatically stack and display stats from connected child nodes. Drag-and-Drop Sidebar: Easily spawn new card nodes directly onto the canvas. Auto-Save: Your workspace state persists automatically in your browser’s localStorage. Smooth Animations: Powered by Motion and GSAP for responsive UI interactions, card creation, task buttons, and loading screens. Built With: Frontend: React, TailwindCSS, ReactFlow Persistence: Browser localStorage Hosting: Netlify
Hi!! By the way, if the project doesn’t work on your end, please just don’t rate it… Anyways, this is Prism! An infinite workspace tool designed to focus your thoughts in a digestible format. I’ve added a lot since the last ship, like accounts, a tutorial, and I’m working on a new dashboard and landing page. I would really appreciate it if you could give me constructive feedback, because it really helps me gauge which features are high-priority and which aren’t. The link is https://prism-beta-beige.vercel.app/ and please enjoy!...
|
1793252944.5389183
|
1793339344.5389183
|
|
41533
|
Infinite Colour Craft by @Lalith | Stardance
|
Lalith
|
2
|
25.0
|
24
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-18T01:49:04Z", "hours": 19.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finally shipping Infinite Colour Craft!! 🎨 The idea came from playing Infinite Craft and wondering what it’d be like if you could mix colours instead of random objects. It started out pretty simple. Just 5 basic colours that you could drag together to discover new ones. But then I thought, what’s the point of discovering all these colours if you can’t actually use them? So I ended up building an entire painting studio with different brushes, blending modes, symmetry tools and a lot more. I also got a bit carried away and added an AI Lab where you draw something and a small neural network tries to guess what it is 😭 There’s also a Grimoire for keeping track of recipes, palettes, quests and daily challenges. The hardest part was getting the mixing and drawing to feel smooth. I spent quite a bit of time messing with the canvas and fixing little things that were annoying while playing. The UI also got really crowded as I kept adding features, so I’ve been trying to clean that up. My favourite part is being able to discover a colour and then immediately use it in a drawing. That’s basically the whole reason I made this. If you’re trying it out, mix a few colours first, then try painting something with them. Also please test the AI drawing challenge because I’m genuinely curious what it thinks your drawings are 💀 Try it here: https://hustlenix.github.io/Infinite-Colour-Craft/ Code: https://github.com/Hustlenix/Infinite-Colour-Craft Would love to know what you think, especially if something breaks!", "repo": "https://github.com/Hustlenix/Infinite-Colour-Craft", "demo": "https://hustlenix.github.io/Infinite-Colour-Craft/"}, {"ship_num": 2, "ts": "2026-08-02T03:02:16Z", "hours": 6.0, "multiplier": 7.35, "payout": 24, "blessing": "neutral", "text": "This is a colour art game kinda thing wher you merge colours and Use them to create master peices in painting area", "repo": "https://github.com/Hustlenix/Infinite-Colour-Craft", "demo": "https://hustlenix.github.io/Infinite-Colour-Craft/"}]...
|
[{"post_id": 80419, "ts": "202 [{"post_id": 80419, "ts": "2026-10-17T16:04:20Z", "hours": 18.5828, "text": "As an update, i have added and AI lab with CNN+an album(Grimorie). Changed the overall design, and added multiplayer mode!"}, {"post_id": 39221, "ts": "2026-08-02T01:38:10Z", "hours": 5.8431, "text": "My lil colour alchemy game with colouring too………."}]...
|
Title: Infinite Colour Craft by @Lalith | Stardanc Title: Infinite Colour Craft by @Lalith | Stardance
Devlogs:
My lil colour alchemy game with colouring too……….
As an update, i have added and AI lab with CNN+an album(Grimorie). Changed the overall design, and added multiplayer mode!
Ships:
This is a colour art game kinda thing wher you merge colours and Use them to create master peices in painting area
Finally shipping Infinite Colour Craft!! 🎨 The idea came from playing Infinite Craft and wondering what it’d be like if you could mix colours instead of random objects. It started out pretty simple. Just 5 basic colours that you could drag together to discover new ones. But then I thought, what’s the point of discovering all these colours if you can’t actually use them? So I ended up building an entire painting studio with different brushes, blending modes, symmetry tools and a lot more. I also got a bit carried away and added an AI Lab where you draw something and a small neural network tries to guess what it is 😭 There’s also a Grimoire for keeping track of recipes, palettes, quests and daily challenges. The hardest part was getting the mixing and drawing to feel smooth. I spent quite a bit of time messing with the canvas and fixing little things that were annoying while playing. The UI also got really crowded as I kept adding features, so I’ve been trying to clean that up. My favourite part is being able to discover a colour and then immediately use it in a drawing. That’s basically the whole reason I made this. If you’re trying it out, mix a few colours first, then try painting something with them. Also please test the AI drawing challenge because I’m genuinely curious what it thinks your drawings are 💀 Try it here: https://hustlenix.github.io/Infinite-Colour-Craft/ Code: https://github.com/Hustlenix/Infinite-Colour-Craft Would love to know what you think, especially if something breaks!...
|
1793141687.1087646
|
1793228087.1087646
|
|
42138
|
My own site! by @Sarahg | Stardance
|
Sarahg
|
1
|
25.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T15:39:38Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Welcome! Here you can learn a little about me while experiencing all of the joys of a paywall, minus the suffering I endured trying and not knowing how to debug the site when it didn’t work. Step right up to experience the three fascinating sections of the website: a log-in page, a sign-in page, and of course a very descriptive article about myself!", "repo": "https://github.com/sloppysarah/aboutme-web", "demo": "https://sloppysarah.github.io/aboutme-web/"}]...
|
[{"post_id": 44037, "ts": "202 [{"post_id": 44037, "ts": "2026-08-09T15:27:34Z", "hours": 1.1722, "text": "I finished up with my website by adding a few more password/username requirements for signing up. I thought about creating more, but frankly I don’t know what else to add or what else I want to add."}, {"post_id": 43614, "ts": "2026-08-08T23:50:56Z", "hours": 1.4644, "text": "I did not do too much today; my time was spent creating some requirements for creating an account (password/username length, allowed characters, etc.). It took me way too long to figure out how to check the strings for non-alphabet and non-number characters, and I may have given up on trying to allow non-English letters… The code stopped working when I tried, and I was too tired to figure out why (though it probably would have only required a simple fix)."}, {"post_id": 43237, "ts": "2026-08-08T11:49:41Z", "hours": 5.1019, "text": "Greetings! Here is what I have been working on: creating a tooltip for the donate button -rewriting/finishing my bio debugging my paywall (you could scroll under it :( ) some minor css/appearance shenanigans I am currently in the midst of creating password/username requirements when you sign up."}, {"post_id": 42303, "ts": "2026-08-06T23:09:50Z", "hours": 5.4297, "text": "What I did: fixed the ads (for now) - they kept having a bunch of warnings in the console because some of my variables were undefined & then they kept going in the main text instead of pop ups added a menu/home bar at top - view more high quality titles! + donate button (opportunity for another annoying pop up!!) Sadly, most of my time was spent debugging and failing at debugging."}, {"post_id": 41928, "ts": "2026-08-06T13:30:06Z", "hours": 6.3794, "text": "What I did: redesigned my website - new font, layout, etc! I am very proud because I made the image get scrolled over when the user scrolls on the page (hopefully you know what I mean) I am in the progress of making new ads that pop up on the site"}, {"post_id": 41075, "ts": "2026-08-05T01:10:28Z", "hours": 4.4192, "text": "The majority of these 4 hours were spent fiddling around with javascript and css because I don’t know what I’m doing. Added: header bg - took an egregious amount of time because I didn’t know how to make the color extend from edge to edge scroll issue - my header bg made it so you can move left/right, which I don’t want Hopefully this won’t matter though, because I think I’m going to scrap my current design and try to make the website look less ugly. ads which appear - currently I am struggling with event listeners, so you can’t close them yet. :("}, {"post_id": 40728, "ts": "2026-08-04T13:21:37Z", "hours": 0.6056, "text": "Unfortunately a lot of my time spent on this project (6 hrs) wasn’t tracked, but I am in the midst of creating my “about me” website. I was a bit bored by just making a generic one, as I assumed it would essentially just be css and therefore look quite bad because my skills are…lacking. As a result, I decided to make a paywall. If you want to read my bio you have to bypass it. So far, the paywall is pretty basic; you just have to sign up to get past it. But I am proud because I learned about some new things (local storage, how much I hate css)!! I am hopefully going to make my website more annoying, though, as it’s supposed to emulate a spammy one."}]...
|
Title: My own site! by @Sarahg | Stardance
Devlog Title: My own site! by @Sarahg | Stardance
Devlogs:
Unfortunately a lot of my time spent on this project (6 hrs) wasn’t tracked, but I am in the midst of creating my “about me” website. I was a bit bored by just making a generic one, as I assumed it would essentially just be css and therefore look quite bad because my skills are…lacking. As a result, I decided to make a paywall. If you want to read my bio you have to bypass it. So far, the paywall is pretty basic; you just have to sign up to get past it. But I am proud because I learned about some new things (local storage, how much I hate css)!! I am hopefully going to make my website more annoying, though, as it’s supposed to emulate a spammy one.
The majority of these 4 hours were spent fiddling around with javascript and css because I don’t know what I’m doing. Added: header bg - took an egregious amount of time because I didn’t know how to make the color extend from edge to edge scroll issue - my header bg made it so you can move left/right, which I don’t want Hopefully this won’t matter though, because I think I’m going to scrap my current design and try to make the website look less ugly. ads which appear - currently I am struggling with event listeners, so you can’t close them yet. :(
What I did: redesigned my website - new font, layout, etc! I am very proud because I made the image get scrolled over when the user scrolls on the page (hopefully you know what I mean) I am in the progress of making new ads that pop up on the site
What I did: fixed the ads (for now) - they kept having a bunch of warnings in the console because some of my variables were undefined & then they kept going in the main text instead of pop ups added a menu/home bar at top - view more high quality titles! + donate button (opportunity for another annoying pop up!!) Sadly, most of my time was spent debugging and failing at debugging.
Greetings! Here is what I have been working on: creating a tooltip for the donate button -rewriting/finishing my bio debugging my paywall (you could scroll under it :( ) some minor css/appearance shenanigans I am currently in the midst of creating password/username requirements when you sign up.
I did not do too much today; my time was spent creating some requirements for creating an account (password/username length, allowed characters, etc.). It took me way too long to figure out how to check the strings for non-alphabet and non-number characters, and I may have given up on trying to allow non-English letters… The code stopped working when I tried, and I was too tired to figure out why (though it probably would have only required a simple fix).
I finished up with my website by adding a few more password/username requirements for signing up. I thought about creating more, but frankly I don’t know what else to add or what else I want to add.
Ships:
Welcome! Here you can learn a little about me while experiencing all of the joys of a paywall, minus the suffering I endured trying and not knowing how to debug the site when it didn’t work. Step right up to experience the three fascinating sections of the website: a log-in page, a sign-in page, and of course a very descriptive article about myself!...
|
1793249487.325183
|
1793335887.325183
|
|
42445
|
My first unity game :D by @nova_ | Stardance
|
nova_
|
1
|
25.0
|
406
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T22:59:02Z", "hours": 25.0, "multiplier": 16.42, "payout": 406, "blessing": "neutral", "text": "Welcome to Smooshed! This is a platformer (and my first game) using Unity! BEST PLAYED IN FULLSCREEN How to Play: Movement: Arrow Keys or WASD (with either w, up arrow, or the space bar to jump) T to revert to the last checkpoint R to revert smoosh state C to dash P to pause What is it: You play as a ball (but a cool ball trust me) and are navigating through a dark, winter landscape to reach the end (the goal). However, you are graced with one power, and one power only: The Power to Be Smooshed 😭. Essentially, by getting hit into a wall by moving platforms, you can become either shorter or taller, letting you fit into gaps or inaccessible areas. Credits for assets: Lanterns - https://www.vecteezy.com/png/72636919-pixel-art-lantern-with-soft-glow and https://karsiori.itch.io/free-pixel-art-lantern-pack Music - https://pixabay.com/music/small-drama-background-piano-loop-589657/ Images that I did not draw - uhhh Toby Fox for the tree and my pfp 🥹 https://ca.pinterest.com/pin/915638168004709266/ CHALLENGES: THIS WAS MY FIRST EVER GAME (aside for scratch) so it was a hard but I did learn a lot. I’ve learned Java, so coding in C# wasn’t too bad, it just took me a bit to figure out how Unity works. After that, I was smooth sailing besides for issues with the jump mechanic (very important for a platformer ik but the plinko level interfered with it and caused some jumps to not register), the plinko mechanic itself, the snow falling and dissipating when it hits an object, and figuring out how to use the canvas/camera/lighting mechanics. But once I figured out the basics, I was pretty much set ❤️🔥 FEEDBACK IS ALWAYS APPRECIATED also heres a video of me “speedrunning the whole game” (theres ur playthrough i wanted to attach it here but it wouldnt let me): https://vimeo.com/1236899085?share=copy&fl=sv&fe=ci (srry for the bad quality its a screen recording go play it yourself 🥹)", "repo": "https://github.com/Avi823/first2dgame", "demo": "https://nova-23.itch.io/smooshed"}]...
|
[{"post_id": 80511, "ts": "202 [{"post_id": 80511, "ts": "2026-10-17T22:26:28Z", "hours": 1.1, "text": "SOOOO ITS TIME TO SHIP YAYYYYY: Finishing Touches: Changed the background music out, fixed the final level up, added a win area, put it on itch.io ( https://nova-23.itch.io/smooshed ) (loading screen kinda sucks 😔) Also, fixed the lighting problem and the lanterns, making the lanterns sort of act as guides and added some more dialogue. (IGNORE THE GIANT SLIDER WHEN U HIT PLAY IT LOOKS SMALL I PROMISE )"}, {"post_id": 79426, "ts": "2026-10-13T22:48:10Z", "hours": 3.5567, "text": "well well well. its time to ship (soon)… but uh heres what i did… i changed it to night and added snow (looks yellow/golden right now might have to change). very cool ik to make sure you can still see i added lanterns (which i did not draw all these sprites i got em from https://karsiori.itch.io/free-pixel-art-lantern-pack [pretty cool btw they work nicely and everything is already formatted into individual pngs + no background 🥹]) i also fixed that plinko level so that the ball you drop actually bounces off the plinko pieces and once it hits the portal you teleport to the final level, i fixed the final level up as well, and added three levels in between the dropper and plinko that teach you how to dash!!! (c to dash it will help A LOT especially for the final level ) also, rn one part of the final level requires you to run into the wall and sort of hook onto the side, then dash onto the platform? (i didnt add sliding down walls yet so i feel like i can kinda keep this wall jump feature lowkey ) well, gonna add those lanterns later and then ill ship probably ❤️🔥 what if i just add deltarune references everywhere 😭 (i have one already )"}, {"post_id": 73320, "ts": "2026-09-24T21:13:01Z", "hours": 4.4722, "text": "im a buku buku RAHHH 🥹 well its been a while…so uh lemme show u what ive been working on added a more simple level 5 (after that scary dropper which might be the hardest level rn ) might add more filler levels between the bigger levels so theres more build up now the main thing,uhhh i lowkey turned one of the levels into plinko i was bored ok. its still a wip (might add a custom sprite for the plinko pegs feels wrong to just use the wall texture) but it works !!! Your camera swaps over to the other sprite (which is just a plinko ball) and the aim is to simply drop it into the portal to get to the next level its very cool trust me . and then probably a final (if not the final level) its a giant tower ! (bit scary but should be alr!) now…whats next? so prob gonna add more of em filler levels, add a ending screen, r key for resetting to last checkpoint + last timestate (for plinko ) and more dialogue. also gonna find a new background music task still havent gotten around to it. See yall later ❤️🔥"}, {"post_id": 61778, "ts": "2026-09-04T21:04:16Z", "hours": 2.9458, "text": "I was bored so uhhh heres what i did Levels 3 and 4 (Level 3 is a normal level but does have a secret area ) and level 4 is a dropper For now, level 4s kinda rudimentary (im planning on changing some of the shapes around and add custom sprites for those spikes as well cuz its boring rn) But the secret area is pretty cool (it has hidden dialogue as well by the way). To reach it, you have to stay smooshed while doing all of level 3 and then instead of entering the blue portal go under to the white portal. (The portal isn’t white btw i created an animation for it where it glitches in place [changing colors + vibrating around sporatically]). And it leads to… . I was bored OK so i added the EGG ROOM (where normally you can get an egg in deltarune). Also made it the animated tree and everything and added music triggers for new areas and stuff (so for now its just the actual egg room music). And i really want to keep this reference (i really do ) but uh this is also copyrighted so im prob gonna replace it with some non copyrighted tree thats similar to this and change the music as well (i dont want to compose the music cuz thatll take me WAY too long ) so ill keep it in for now but its not gonna make the final cut unfortunately ill just be a reference to the room and not like the actual room sprites and what not (cuz i also dont want to use his art in my game so itll just be a placeholder ig ). Also added a volume slider just in case you wanted to mute the music or smthn ."}, {"post_id": 57053, "ts": "2026-08-29T04:08:25Z", "hours": 2.6008, "text": "I hate walls. They laugh at me as i fall into the void, phasing through them . Alr well I’ve been drawing sprites and implementing them!!! At least the ground is nice it lets me walk on it first try . The walls however decided to add a bunch of funny little tiny holes in them so that the player can just barely walk through and slip into the void. I fixed this (finally 😭) and (now having the basic sprites) will add more levels in the future 🥹 (still gotta get rid of the copyrighted music. oh well something for later ) also fixed some scaling issues with the tutorial dude!!!"}, {"post_id": 54913, "ts": "2026-08-26T04:06:53Z", "hours": 1.4886, "text": "Copyright issues Unfortunately the song I chose is copyrighted (figured that out a while ago just didn’t want to address the issue until now) so i might have to make my own music for the game. I also finalized the tutorial, added a rudimentary level 1 and CHECKPOINTS . To Do: More (and i mean MORE levels). Secrets (prob just gonna throw a bunch of references in the game and call it a day And finally: Saving the game (and maybe level select if im feeling nice) im not sure if i should add more sprites (im eh at drawing, unless i really put some time into it) so maybe for the first ship i keep default walls and stuff aside for the secrets (which i will def lock in for) and i dunno maybe the next devlog will be music (will be fun to try only really experimented in garage band for school)"}, {"post_id": 47138, "ts": "2026-08-14T20:13:05Z", "hours": 1.9828, "text": "Added a tutorial and a dialogue box (the person is just my pfp for now, but will change later) also created dialogue triggers + animated text. Now gonna do the first lvl and add the dialogue for portals (and maybe a new mechanic or fix dashing cuz rn its kinda unnecessary) also that thing at the top is just my cursor"}, {"post_id": 43024, "ts": "2026-08-08T02:17:38Z", "hours": 1.3972, "text": "Alr SO i added my sprites for the player (still need to fix the issue with it still being a ball in the beginning). I have also added a loading screen, and added torque for fun spinning :D (next thing to do is probably make custom sprites for ground background that stuff, make all the sprites look better 😭 + fix starting scale)"}, {"post_id": 41421, "ts": "2026-08-05T16:49:38Z", "hours": 1.1881, "text": "Created sprite, added music (rn its just https://www.youtube.com/watch?v=tIkkW55bu_k ) and will add sprite to game later (im bad at drawing if you were wondering why it took so long )"}, {"post_id": 41036, "ts": "2026-08-04T23:21:58Z", "hours": 0.465, "text": "Smoosh physics"}, {"post_id": 40359, "ts": "2026-08-03T20:14:35Z", "hours": 1.6203, "text": "added portal colors, moving platforms, and smooshing (as a game feature kinda looks like a bug rn but im going to fix it) So for smooshing you need to be pushed into the ground or a wall by a moving platform in order to become taller or shorter. This will allow you to fit into certain areas and access new areas that you previously could not access. Still fixing it though."}, {"post_id": 39829, "ts": "2026-08-03T02:41:33Z", "hours": 1.0319, "text": "Added dashing (using c) + portals for teleporting"}, {"post_id": 39064, "ts": "2026-08-01T19:07:43Z", "hours": 0.8611, "text": "Created basic movement, simple platform and sprite, + ground check to prevent infinite jumping"}]...
|
Title: My first unity game :D by @nova_ | Stardanc Title: My first unity game :D by @nova_ | Stardance
Devlogs:
Created basic movement, simple platform and sprite, + ground check to prevent infinite jumping
Added dashing (using c) + portals for teleporting
added portal colors, moving platforms, and smooshing (as a game feature kinda looks like a bug rn but im going to fix it) So for smooshing you need to be pushed into the ground or a wall by a moving platform in order to become taller or shorter. This will allow you to fit into certain areas and access new areas that you previously could not access. Still fixing it though.
Smoosh physics
Created sprite, added music (rn its just https://www.youtube.com/watch?v=tIkkW55bu_k ) and will add sprite to game later (im bad at drawing if you were wondering why it took so long )
Alr SO i added my sprites for the player (still need to fix the issue with it still being a ball in the beginning). I have also added a loading screen, and added torque for fun spinning :D (next thing to do is probably make custom sprites for ground background that stuff, make all the sprites look better 😭 + fix starting scale)
Added a tutorial and a dialogue box (the person is just my pfp for now, but will change later) also created dialogue triggers + animated text. Now gonna do the first lvl and add the dialogue for portals (and maybe a new mechanic or fix dashing cuz rn its kinda unnecessary) also that thing at the top is just my cursor
Copyright issues Unfortunately the song I chose is copyrighted (figured that out a while ago just didn’t want to address the issue until now) so i might have to make my own music for the game. I also finalized the tutorial, added a rudimentary level 1 and CHECKPOINTS . To Do: More (and i mean MORE levels). Secrets (prob just gonna throw a bunch of references in the game and call it a day And finally: Saving the game (and maybe level select if im feeling nice) im not sure if i should add more sprites (im eh at drawing, unless i really put some time into it) so maybe for the first ship i keep default walls and stuff aside for the secrets (which i will def lock in for) and i dunno maybe the next devlog will be music (will be fun to try only really experimented in garage band for school)
I hate walls. They laugh at me as i fall into the void, phasing through them . Alr well I’ve been drawing sprites and implementing them!!! At least the ground is nice it lets me walk on it first try . The walls however decided to add a bunch of funny little tiny holes in them so that the player can just barely walk through and slip into the void. I fixed this (finally 😭) and (now having the basic sprites) will add more levels in the future 🥹 (still gotta get rid of the copyrighted music. oh well something for later ) also fixed some scaling issues with the tutorial dude!!!
I was bored so uhhh heres what i did Levels 3 and 4 (Level 3 is a normal level but does have a secret area ) and level 4 is a dropper For now, level 4s kinda rudimentary (im planning on changing some of the shapes around and add custom sprites for those spikes as well cuz its boring rn) But the secret area is pretty cool (it has hidden dialogue as well by the way). To reach it, you have to stay smooshed while doing all of level 3 and then instead of entering the blue portal go under to the white portal. (The portal isn’t white btw i created an animation for it where it glitches in place [changing colors + vibrating around sporatically]). And it leads to… . I was bored OK so i added the EGG ROOM (where normally you can get an egg in deltarune). Also made it the animated tree and everything and added music triggers for new areas and stuff (so for now its just the actual egg room music). And i really want to keep this reference (i really do ) but uh this is also copyrighted so im prob gonna replace it with some non copyrighted tree thats similar to this and change the music as well (i dont want to compose the music cuz thatll take me WAY too long ) so ill keep it in for now but its not gonna make the final cut unfortunately ill just be a reference to the room and not like the actual room sprites and what not (cuz i also dont want to use his art in my game so itll just be a placeholder ig ). Also added a volume slider just in case you wanted to mute the music or smthn .
im a buku buku RAHHH 🥹 well its been a while…so uh lemme show u what ive been working on added a more simple level 5 (after that scary dropper which might be the hardest level rn ) might add more filler levels between the bigger levels so theres more build up now the main thing,uhhh i lowkey turned one of the levels into plinko i was bored ok. its still a wip (might add a custom sprite for the plinko pegs feels wrong to just use the wall texture) but it works !!! Your camera swaps over to the other sprite (which is just a plinko ball) and the aim is to simply drop it into the portal to get to the next level its very cool trust me . and then probably a final (if not the final level) its a giant tower ! (bit scary but should be alr!) now…whats next? so prob gonna add more of em filler levels, add a ending screen, r key for resetting to last checkpoint + last timestate (for plinko ) and more dialogue. also gonna find a new background music task still havent gotten around to it. See yall later ❤️🔥
well well well. its time to ship (soon)… but uh heres what i did… i changed it to night and added snow (looks yellow/golden right now might have to change). very cool ik to make sure you can still see i added lanterns (which i did not draw all these sprites i got em from https://karsiori.itch.io/free-pixel-art-lantern-pack [pretty cool btw they work nicely and everything is already formatted into individual pngs + no background 🥹]) i also fixed that plinko level so that the ball you drop actually bounces off the plinko pieces and once it hits the portal you teleport to the final level, i fixed the final level up as well, and added three levels in between the dropper and plinko that teach you how to dash!!! (c to dash it will help A LOT especially for the final level ) also, rn one part of the final level requires you to run into the wall and sort of hook onto the side, then dash onto the platform? (i didnt add sliding down walls yet so i feel like i can kinda keep this wall jump feature lowkey ) well, gonna add those lanterns later and then ill ship probably ❤️🔥 what if i just add deltarune references everywhere 😭 (i have one already )
SOOOO ITS TIME TO SHIP YAYYYYY: Finishing Touches: Changed the background music out, fixed the final level up, added a win area, put it on itch.io ( https://nova-23.itch.io/smooshed ) (loading screen kinda sucks 😔) Also, fixed the lighting problem and the lanterns, making the lanterns sort of act as guides and added some more dialogue. (IGNORE THE GIANT SLIDER WHEN U HIT PLAY IT LOOKS SMALL I PROMISE )
Ships:
Welcome to Smooshed! This is a platformer (and my first game) using Unity! BEST PLAYED IN FULLSCREEN How to Play: Movement: Arrow Keys or WASD (with either w, up arrow, or the space bar to jump) T to revert to the last checkpoint R to revert smoosh state C to dash P to pause What is it: You play as a ball (but a cool ball trust me) and are navigating through a dark, winter landscape to reach the end (the goal). However, you are graced with one power, and one power only: The Power to Be Smooshed 😭. Essentially, by getting hit into a wall by moving platforms, you can become either shorter or taller, letting you fit into gaps or inaccessible areas. Credits for assets: Lanterns - https://www.vecteezy.com/png/72636919-pixel-art-lantern-with-soft-glow and https://karsiori.itch.io/free-pixel-art-lantern-pack Music - https://pixabay.com/music/small-drama-background-piano-loop-589657/ Images that I did not draw - uhhh Toby Fox for the tree and my pfp 🥹 https://ca.pinterest.com/pin/915638168004709266/ CHALLENGES: THIS WAS MY FIRST EVER GAME (aside for scratch) so it was a hard but I did learn a lot. I’ve learned Java, so coding in C# wasn’t too bad, it just took me a bit to figure out how Unity works. After that, I was smooth sailing besides for issues with the jump mechanic (very important for a platformer ik but the plinko level interfered with it and caused some jumps to not register), the plinko mechanic itself, the snow falling and dissipating when it hits an object, and figuring out how to use the canvas/camera/lighting mechanics. But once I figured out the basics, I was pretty much set ❤️🔥 FEEDBACK IS ALWAYS APPRECIATED also heres a video of me “speedrunning the whole game” (theres ur playthrough i wanted to attach it here but it wouldnt let me): https://vimeo.com/1236899085?share=copy&fl=sv&fe=ci (srry for the bad quality its a screen recording go play it yourself 🥹)...
|
1793155954.709059
|
1793242354.709059
|
|
43529
|
Airplane 3D model :D by @6matylda | Stardance
|
6matylda
|
1
|
25.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T22:23:30Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Made an airplane 3D model in Onshape, which can be 3D printed and even turned into an RC! This airplane features two engines, NACA 4412 wings, a wingspan of 910mm (35.8in) and a fuselage length of about 730mm (28.7in). — This was my first big project in Onshape, so I came across a lot of challenges while modelling, such as not being able to hollow out the wings and tail because they were too thin, trouble with making the dihedral (upwards) angle of the wings, and problems with lofting the nosecone (I learned to use composite curves as the lofting paths). — I overcame these problems by experimenting, though; for the hollowing wings out problem, I realized making an outer layer was a lot easier than hollowing the inside, and for the nosecone problem, after investigating, I came across composite curves, which was something really helpful to learn. — To test the project, you can download the file on the GitHub. The features list is organized into folders for each part. — The engines are provisional, so I recommend to add your own if you’re going to print this model to ensure it’s durable and easy to print!", "repo": "https://github.com/6matylda/Stardance-Airplane-3D-model", "demo": "https://cad.onshape.com/documents/d811ccb7f19883caa2712b5f/w/4bb6a2feac3b5eb07ce2f1bf/e/5de39268565f4e4cfc2bf3e9?renderMode=0&uiState=6a73d768b21ca79e95eaa222"}]...
|
[{"post_id": 68885, "ts": "202 [{"post_id": 68885, "ts": "2026-09-15T23:11:40Z", "hours": 3.0044, "text": "Devlog #9: I am back!! I remade the wings, which are hollow. — I figured the other wings had some problems (the upwards (dihedral) angle was too high, and this same angle wasn’t equally distributed throughout the wings, and the wings were hard to hollow because of the way they intersected the fuselage (the face at the start wasn’t flat, which complicated it)). — Made the new wings by using the same sketch on a different plane with an inclination of 6 degrees, then re-lofting the wings and finally using the “thicken” tool with a thickness of 0.6mm. — Next to do: add internal structures for support"}, {"post_id": 59315, "ts": "2026-09-01T01:22:01Z", "hours": 6.1083, "text": "Devlog #8: fought for roughly 5 hours to hollow out the tail. Also hollowed the engines. — I tried so many ways to hollow the tail, like using the “shell” and “hollow” tool, extruding inwards, etc. so, what I did, was to use the “thicken” tool to make a shell that was 0.6mm thick. While I wanted the original model to be hollowed inwards, I think rather making the exterior thicker still worked quite well. — As for the engines, unlike the tail, it was pretty easy as it just required to use the shell hollow tool. Also, the engines are 0.6mm thick now and the pylon is 0.4mm! (A pylon is the mount of the engine that connects to the wing C:) — now, I need to remake the wings because of their geometry to hollow them out :)"}, {"post_id": 53538, "ts": "2026-08-24T04:01:21Z", "hours": 0.6875, "text": "Devlog #7: hollowed out the belly and the nosecone — at first, I was super confused on how to hollow out round parts like those of lofts, so after a quick google search I discovered a tool, Shell. I’m so happy I found out about it because otherwise I would be fighting to extrude each part for hours lol. Like the fuselage, the belly and nosecone have 0.6mm of thickness (~0.0236 for the Americans!) — As for hollowing the nosecone, I struggled a bit because the inside and outside were unidimensional and floating, (I basically left a gap of 0.6mm between them) but I figured it was because I had made the windshield before hollowing the nosecone out, so I pushed the intersect booleans of the windshield and nosecone to the very end of the features list, which fixed it, as you can see in the ss! — next to do: figure a way to hollow out the wings and tail surfaces (I tried, but I had a couple problems due to the geometry)"}, {"post_id": 51730, "ts": "2026-08-21T15:48:56Z", "hours": 2.3822, "text": "Devlog #6: Made the windshield and hollowed out the middle of the fuselage and the belly. — For the windshield, made a sketch on the top plane and extruded it, then created an intersect boolean to separate overlapping parts of the nosecone. — For hollowing the fuselage, I separated the nosecone so it would be easier to visualize changes. then hollowed part of the fuselage and left a thickness of 0.6mm. I did this by going in the sketches and creating a smaller copy of the sketch and extruding that out as a “remove”. I also did this for part of the belly, but I still have to hollow out the curved parts like lofts. — To do next: hollow out the nosecone, tail and belly :) — also: if I happen to modify the model so its suitable for an RC, the engines are provisional so I may change them in the future so they fit a standard EDF."}, {"post_id": 49926, "ts": "2026-08-18T21:53:27Z", "hours": 1.4033, "text": "devlog #5: Finished the engines!! tbh I thought they would be a lot harder to make due to the complex geometry, but it was actually quite fun! I made the engine by first sketching the nacelle and revolving that, I then made the pylon/strut that holds the engine, and finally the blades, which I made by lofting a rectangle at different angles and distances."}, {"post_id": 48610, "ts": "2026-08-17T02:25:27Z", "hours": 1.0989, "text": "Devlog #4: I lied in my last devlog, I decided to make the wings before the frontal windows because I already learned how to do that by making the tail! I made the top view shape first and then added the airfoil by lofting it by parts. The airfoil is a NACA4412. I did spend like 40 minutes trying to figure out how to make the wings dihedral and give them shape 😭 but so far I’m so proud of how it’s turning out. I feel like the engines are gonna be pretty hard to model but I’m up for the challenge! I’m excited to finish it and see how it turns out. :)"}, {"post_id": 44159, "ts": "2026-08-09T18:50:53Z", "hours": 2.36, "text": "Devlog #3: made the tail of the airplane. I made each stabilizer by sketching out and extruding the base, then shaped the width with a remove extrude and added some fillets to make it smooth. Next I’ll be making the frontal/cockpit windows :)"}, {"post_id": 41651, "ts": "2026-08-06T00:35:58Z", "hours": 1.3961, "text": "Making an airplane in Onshape devlog #2: made the fuselage a bit longer. I came across a couple problems (the parts weren’t generating) cuz I had to delete some reference points and sketches in order to extrude the fuselage, but I fixed it by re-lofting the empennage and modifying the base sketches of it. I also expanded the belly. Next up I am gonna make the rudder and elevators :)"}, {"post_id": 40917, "ts": "2026-08-04T19:05:21Z", "hours": 6.9631, "text": "Devlog #1: making an airliner. I spent the first 3-4 hours making the sketches. I encountered a lot of problems with making the lofts (the lines weren’t connecting) so it didn’t extrude correctly. I fixed that by making composite curves. I then encountered the problem that the radome wasn’t smooth so I made ellipses to form the nose shape and extruded it. I continued by making the empennage and did the same as with the nose. I finished the fuselage and the belly today. Any advice is rlly appreciated :)"}]...
|
Title: Airplane 3D model :D by @6matylda | Stardan Title: Airplane 3D model :D by @6matylda | Stardance
Devlogs:
Devlog #1: making an airliner. I spent the first 3-4 hours making the sketches. I encountered a lot of problems with making the lofts (the lines weren’t connecting) so it didn’t extrude correctly. I fixed that by making composite curves. I then encountered the problem that the radome wasn’t smooth so I made ellipses to form the nose shape and extruded it. I continued by making the empennage and did the same as with the nose. I finished the fuselage and the belly today. Any advice is rlly appreciated :)
Making an airplane in Onshape devlog #2: made the fuselage a bit longer. I came across a couple problems (the parts weren’t generating) cuz I had to delete some reference points and sketches in order to extrude the fuselage, but I fixed it by re-lofting the empennage and modifying the base sketches of it. I also expanded the belly. Next up I am gonna make the rudder and elevators :)
Devlog #3: made the tail of the airplane. I made each stabilizer by sketching out and extruding the base, then shaped the width with a remove extrude and added some fillets to make it smooth. Next I’ll be making the frontal/cockpit windows :)
Devlog #4: I lied in my last devlog, I decided to make the wings before the frontal windows because I already learned how to do that by making the tail! I made the top view shape first and then added the airfoil by lofting it by parts. The airfoil is a NACA4412. I did spend like 40 minutes trying to figure out how to make the wings dihedral and give them shape 😭 but so far I’m so proud of how it’s turning out. I feel like the engines are gonna be pretty hard to model but I’m up for the challenge! I’m excited to finish it and see how it turns out. :)
devlog #5: Finished the engines!! tbh I thought they would be a lot harder to make due to the complex geometry, but it was actually quite fun! I made the engine by first sketching the nacelle and revolving that, I then made the pylon/strut that holds the engine, and finally the blades, which I made by lofting a rectangle at different angles and distances.
Devlog #6: Made the windshield and hollowed out the middle of the fuselage and the belly. — For the windshield, made a sketch on the top plane and extruded it, then created an intersect boolean to separate overlapping parts of the nosecone. — For hollowing the fuselage, I separated the nosecone so it would be easier to visualize changes. then hollowed part of the fuselage and left a thickness of 0.6mm. I did this by going in the sketches and creating a smaller copy of the sketch and extruding that out as a “remove”. I also did this for part of the belly, but I still have to hollow out the curved parts like lofts. — To do next: hollow out the nosecone, tail and belly :) — also: if I happen to modify the model so its suitable for an RC, the engines are provisional so I may change them in the future so they fit a standard EDF.
Devlog #7: hollowed out the belly and the nosecone — at first, I was super confused on how to hollow out round parts like those of lofts, so after a quick google search I discovered a tool, Shell. I’m so happy I found out about it because otherwise I would be fighting to extrude each part for hours lol. Like the fuselage, the belly and nosecone have 0.6mm of thickness (~0.0236 for the Americans!) — As for hollowing the nosecone, I struggled a bit because the inside and outside were unidimensional and floating, (I basically left a gap of 0.6mm between them) but I figured it was because I had made the windshield before hollowing the nosecone out, so I pushed the intersect booleans of the windshield and nosecone to the very end of the features list, which fixed it, as you can see in the ss! — next to do: figure a way to hollow out the wings and tail surfaces (I tried, but I had a couple problems due to the geometry)
Devlog #8: fought for roughly 5 hours to hollow out the tail. Also hollowed the engines. — I tried so many ways to hollow the tail, like using the “shell” and “hollow” tool, extruding inwards, etc. so, what I did, was to use the “thicken” tool to make a shell that was 0.6mm thick. While I wanted the original model to be hollowed inwards, I think rather making the exterior thicker still worked quite well. — As for the engines, unlike the tail, it was pretty easy as it just required to use the shell hollow tool. Also, the engines are 0.6mm thick now and the pylon is 0.4mm! (A pylon is the mount of the engine that connects to the wing C:) — now, I need to remake the wings because of their geometry to hollow them out :)
Devlog #9: I am back!! I remade the wings, which are hollow. — I figured the other wings had some problems (the upwards (dihedral) angle was too high, and this same angle wasn’t equally distributed throughout the wings, and the wings were hard to hollow because of the way they intersected the fuselage (the face at the start wasn’t flat, which complicated it)). — Made the new wings by using the same sketch on a different plane with an inclination of 6 degrees, then re-lofting the wings and finally using the “thicken” tool with a thickness of 0.6mm. — Next to do: add internal structures for support
Ships:
Made an airplane 3D model in Onshape, which can be 3D printed and even turned into an RC! This airplane features two engines, NACA 4412 wings, a wingspan of 910mm (35.8in) and a fuselage length of about 730mm (28.7in). — This was my first big project in Onshape, so I came across a lot of challenges while modelling, such as not being able to hollow out the wings and tail because they were too thin, trouble with making the dihedral (upwards) angle of the wings, and problems with lofting the nosecone (I learned to use composite curves as the lofting paths). — I overcame these problems by experimenting, though; for the hollowing wings out problem, I realized making an outer layer was a lot easier than hollowing the inside, and for the nosecone problem, after investigating, I came across composite curves, which was something really helpful to learn. — To test the project, you can download the file on the GitHub. The features list is organized into folders for each part. — The engines are provisional, so I recommend to add your own if you’re going to print this model to ensure it’s durable and easy to print!...
|
1793148511.0427759
|
1793234911.0427759
|
|
43890
|
SarSynth by @manayp | Stardance
|
manayp
|
2
|
25.0
|
410
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T18:34:17Z", "hours": 8.0, "multiplier": 11.91, "payout": 101, "blessing": "neutral", "text": "This innovation is something that I am proud about in SarSynth since it combines both technology and Indian classical music. SarSynth turns your camera into a musical instrument with the ability to play swaras using hand gestures while using ragas, instruments, tanpura, among other concepts. Getting the gesture recognition and the playing of music using the system was what I enjoyed most in the process of creating SarSynth. SarSynth can recognize hand poses, translate them into notes, and even incorporate features such as different ragas, synthetic instruments, training games, and tuner. I had many mishaps and stuff because in this new update I focused on the TOOLS which was not needed but I just did it. But in the same time I honestly also learned some new things so for me personally it was a win-win situation even though a bit of time was wasted in bugs and other random mishaps. In general, I believe that SarSynth is a nice application since it incorporates Indian classical music in an interactive manner and in addition to learning a lot through this experience especially when trying to debug different systems. And I hope you guys liked it. If you guys have any suggestions or things to add lemme know in slack. Thank you and adios. Note: This update is for the tools only.", "repo": "https://github.com/manayparikh1/sarsynth", "demo": "https://golden-pudding-d83524.netlify.app/"}, {"ship_num": 2, "ts": "2026-08-10T19:35:04Z", "hours": 17.0, "multiplier": 18.38, "payout": 309, "blessing": "neutral", "text": "What have you created? Sargam Synth - an instrument of Indian music which you can play through gestures of your hands in front of a webcam. Left hand defines the swara depending on the number of fingers raised (1 = Sa, 2 = Re, etc. up to Ni), while right hand controls the volume, tone and ornamental variations. Sargam Synth includes 37 ragas and scales, eight synthetic instruments, like sitar and bansuri, tanpura drone and three training games. What was difficult? Developing reliable gesture recognition system - my initial prototype reacted to each frame from the webcam, so a lost frame cut the sound and any transition between the postures produced false notes. I solved this problem by making each finger press steady for 90 milliseconds before it is recognized and remembering the last known position of a hand when it is not currently recognized. The sound of sitar was the second difficulty because it is a synthetic oscillation simulating vibration of the string, not just the simple oscillator. What are you proud of? It’s properly tuned — when playing Ga in Yaman scale you actually hear 5/4 pure interval rather than somewhat different one a piano would provide you. And it even knows how to teach you — all swaras demonstrate their respective fingering on the screen, both hands show you fingers captured by the camera. Thus, if a pose is not recognized, you will immediately understand if it’s you or the tracker who fails to recognize. Overall it had been an amazing journey and its lowkey fun to use with a bit of practice and stuff (I added a guide below for fingerings just incase)… What should people know in order to try it? Allow the camera, and don’t forget about this: Left hand chooses the tone, right hand makes the sound appear — nothing plays until your right hand is raised. If your hands appear inverted, there is a Swap hand detection option in Settings menu that will correct it for you in one tap. No camera? Then press Continue without camera and play using clicks on the swaras or A S D F G H J keys.", "repo": "https://github.com/manayparikh1/sarsynth", "demo": "https://golden-pudding-d83524.netlify.app/"}]...
|
[{"post_id": 49025, "ts": "202 [{"post_id": 49025, "ts": "2026-08-17T16:48:32Z", "hours": 2.1342, "text": "So first of all yes I finished my readme. By finished I mean updated because I added tools. There are 6 distinct tools I created which are in indian style and it works pretty well. I also learned some new stuff from claude like I didnt know too. I learned some stuff in this long session like I never knew that if you set the opaqueness to 1.2 instead of 1 it will be dead code because apparently 1 and 1.1 is the same thing which to be honest is fairly the same. Lol I know this is kinda lame but for some reason it surprises me a lot. I also learned what npm run build does…according to claude it means it checks errors and stuff which personally for some reason I did not know that either… In my project theres some dead space in some areas of the tools pages but thats fine because tbh I was aiming for that because to show its simplicity and stuff lol. The biggest thing that stumped me though was the error in toolspage.tsx…. it says theres an error with the connection of the pages but I think its just a glitch because its all connected right with all the files in the right space so overall I just think thats an error or a glitch. Special thx to claude and vs code suggestions because they helped me learn stuff and made my life easier and possibly faster in some sorta of way so thx. Claude and vs code and github copilot also helped me push my files faster and more efficient so thx. Overall this is my last devlog and I had a great time making this and it went really well (at times lol) and if you guys like this make sure to possibly follow and like some of my devlogs and if you dont then contact me in slack if you have anything I should change or add or even fix lol. Thanks and adioss."}, {"post_id": 48563, "ts": "2026-08-17T00:23:54Z", "hours": 0.4247, "text": "So I did 115 ish lines for the tuner and claude did like 50-65 percent of it because mostly it was repeats of other stuff but also a bit of new stuff in it especailly the logical part of it. So this was actually my second last file so I juse gotta finish the CSS for everything and I am going to be done. Also I found out that the <ToolShell function that I created had glitches or idk something was happening but I fixed it and realized it was a spelling mistake lol. I spend 3 min on solving that so its fine… Ok so the tuner I was working on is basically going to do exactly what your thinking of its going to tune instruments or even your voice using cents which is a thing for tuners that shows its close or far. Overall its going veryy well so lets see if my css goes well or not adioss."}, {"post_id": 48515, "ts": "2026-08-16T22:12:19Z", "hours": 1.3925, "text": "So basically I am almost done… So all my files for the extra tools were supposed to be much more longer but because I do not wanna spend too much time on this project I shortened each file by 200 ish lines with the help of Claude and my wits. So I finished all the tools so far, but I just have like one more left. And I also have to do the CSS which I have to make so that will take some time. During this phase, I worked on improving the whole SarSynth interface, designing a dark theme with gold accents and creating the whole layer of UI elements which feels stable and high-performance. I defined the CSS variables for the whole interface, its colors, font styles, and panel styles, made the camera backdrop with mirrored video and vignette with smooth transition of opacity. Top bar design took much of my effort, as I designed the fields with labels, custom selects with gradients and arrows, hint texts, buttons with icons and Devanagari tanpura switch with activated and inactive states. After that, I added the pose list functionality with glyphs for melody and expression, mono-font labels and muted notes. Readout part and the layout as a whole received tuning of spacing and blur effect, and at the same time, I was solving various irritating problems such as proper placement of select-element arrows, right background for backdrop, and visual matching of components. Overall I believe I am 80 percent done the tools code and everything but that will all be resolved and established soo adios cya in my next log….."}, {"post_id": 47072, "ts": "2026-08-14T18:16:23Z", "hours": 1.8797, "text": "So I completed the TheoryReference.tsx and finally just now completed the TaalMetronome.tsx. I also researched various types of taals and beats for the metronome and I learned new things and concepts which include vibhag, sam, tali, and khali. And to be honest claude and chatgpt helped in coding chunks which just made my coding and stuff faster. So overall I had good enough progresss in the last 1-2 hours so yep. I completed the development of my fully cycle-based taal metronome today. In this project, I have FINALLY developed a system that would be based on the concepts of vibhag, sam, tali, and khali rather than the conventional method of bar-based counting. I created a complete set of taals that contain information about their vibhag structure, khali, bols, and notes. Then, I coded the system to dynamically create matra counts, accent patterns, and vibhag markers. The audio engine is now powered by an advanced Web Audio scheduler that allows pre-scheduling of clicks, takes care of subdivisions and accent playback so that the structure of taal is perceivable to the user via sound. I have also incorporated tap tempo with averaging and reset functionality with “const” placed in numerous lines which will not change anything. Special thanks to vs code because it gave me auto suggestions which auto fixed my code which actually helped me a lot because honestly I suck at typing fast lol. I also pushed many commits in github so its all active and ongoing. More will also have to be fixed though soo stay tuned and adiossssssssss. So overall I have good progress and I will see you in the next devlog adioss."}, {"post_id": 46108, "ts": "2026-08-13T03:01:22Z", "hours": 1.2167, "text": "After almost an hour I finally completed 2 files. I completed the ToolsPage.tsx fully and the ScaleFinder.tsx…. Now I havent really fully tested the toolspage one but the scalefinder one works (I tested it with onecompilor and it works great. So my first tool is finally completed and working now I just gotta keep going at it and finish a few more…So I am done for today and personally I got a good amount done. I am still running into a few errors in the ToolsPage.tsx but 100 percent thats because of the imports because currently I do not have some of the pages but it willl get fixed. And today I finished about 250-300 + lines of code and thanks to chatgpt and claude because they taught me a lot of things including blurb…honestly I am not that good at this coding language but I am still learning. Adiosss see u in the next devlog…"}, {"post_id": 46042, "ts": "2026-08-12T23:37:29Z", "hours": 1.4278, "text": "So this is my first devlog of the new ship and I thought a lot and wondered a lot of what else to add. And now I know. I am adding internal tools to it like a whole page which can be easily accessed. So far I have completed toolAudio.ts and it was about 130 ish lines of code and overall it works well. And yeah so I spent 50 minutes just writing 80 ish lines of code which is pretty not that bad but I slowed down because I changed my ideas mid writing… and also my github got reset or something somehow and alll my commit messages are gone so I have restarted with another repository with new commits. And also I made the most crap mistake ever so instead of making the folder in SRC I made it in localhistory which wasted SOO MUCH of my time. BUT I just copy pasted my code into the right place so overall its all good now. Ill see you guys later. Stay tuned for the upcoming tools. Thanks. ADIOSS"}, {"post_id": 44771, "ts": "2026-08-10T19:28:37Z", "hours": 0.7036, "text": "So in the past half and hour I did a lot and yes this is actually my final devlog this time. Ok so I finished the css around like 100-200 lines of code but it was light because the color scheme sorta connected with the theme anyway… I ran into a few alignment errors like it was blocking my whole screen but I fixed it so thats solved. I also updatted my readme about the games. Below I added a picture of my finger guide SarSynth it just shows how all your fingers should be aligned and for what and personally dha and ni is the hardest but with practice (like 5-10min) you can get used to it. I made it with Canva it took like 2 Minutes because the pictures I didnt really count towards my time just the making and alignments were counted. Overall thank you and goodbye."}, {"post_id": 44733, "ts": "2026-08-10T17:53:30Z", "hours": 1.1725, "text": "I fixed the Tanpura instrumental background track and now it works more properly because last time it was glitching even when I spammed it so it is fine now just a small JS error. I also finished the games logic its 3 simple games which you will come to know soon… In total it is about 250 lines of code which is fairly simple but the games are actually nice in my opinion. And soon I will be making a sort of guide on how to position your fingers for each note which includes Sa, Re, Ga, Ma, Pa, Dha, Ni, Sa. But tbh I have everything thats needed but it doesent hurt to give a bit of teaching because honestly even though I made it, it was pretty hard doing the dha and ni because my hands were keep forgetting the placement but after some time and practice I got it (10 min lol)… So lets see what happens next… Byee and ADioss"}, {"post_id": 44415, "ts": "2026-08-10T04:46:56Z", "hours": 0.6417, "text": "Ok so my README.md is done after like 1 ish hour in total. I incorporated as much as I could including a license in the bottom and honestly this is my first time not writing it raw and actually using hashtags and asterisks to make the text look better in the readme so it went well. I hosted it and was going to ship it. I showed it to my sibling and my feedback was “can you make it not that fun its kinda boring” so that obviously struck me inside considering the effort I put into this so what I did next was crazy. So as you know I was gonna ship it but instead I mapped out a way where I can add small games into it like GUESS THE RAGA and more which I will incorporate later. So sorry Guys I will need to add a bit more before I can ship it but I got this. Adioss."}, {"post_id": 44320, "ts": "2026-08-10T00:14:15Z", "hours": 0.3931, "text": "The front page was zoomed in a bit which was because of the css which I figured out after going through the CSS so that I fixed. Claude helped me a ton just now because I told it to make me 8 different panels in the front page which lead to a page and claude did that which was nice but for some reason it wrote 600 lines of css which is wild because there is not much that was added just colour and a bit of shadows but its fine because its just panels. OK then off hackatime I did my own little research and basically MY IDEA was to make a panel of each instrument that was incorporated in this project and write a 1 paragraph historical perspective of each instrument and overall it worked out pretty well but AGAIN a sizing issue occurred due to claude and I told claude 4 times to fix it but it could not for some reason And then I went in and figured it out lol it was the most funniest mistake…the css was on 2x zoom and my browser was also on 2x zoom for some reason. So yeahh… that has been solved now I also worked on my readme a bit like 2-3 sentences ish. So overall in these last 25 minutes I got through a lot of progress…"}, {"post_id": 44258, "ts": "2026-08-09T21:45:42Z", "hours": 0.7853, "text": "Over the past 45 Minutes or so I have been writing my readme and organizing some files. In all my other projects my readmes were always the worst part of my project but not anymore starting from now. I learned how to write readmes with more efficiency by adding # and * which basically makes text bigger and also bold or italic. So far I wrote the overview on what my project actually is and I have also wrote some of the philosophy and design goals which include data in jots. I also completed the tech stack and computer vision data which is in the same section as the design goals. Overall I am like 20 ish percent done the Readme and my folders are properly organized and I am done that section now."}, {"post_id": 44188, "ts": "2026-08-09T19:49:37Z", "hours": 1.6772, "text": "TODAY WAS CRAZY and this may be my last devlog I’ve spent today creating the entire visual backbone of the app, and now finally feel that the UI actually has some personality and doesn’t consist of random pieces. To start with, I defined a complete theme in :root – all golds, teals, ink shades, subdued overlays, panel colors, and two font stacks – so all the elements of the app draw colors from one consistent palette. Next, I created the layout guidelines for html, body and #root, and implemented the backdrop system – mirrored camera feed, vignette gradients, and stage layer below the canvas. Finally, I added the top bar styling, dropdowns, hint text, icon buttons, and tanpura toggle styling using the gold/teal accent language. I included the UI for the pose list, the readout section with Devanagari + monospace swara display, and the stat blocks with small capital letter labels. And now, I have the help and settings panels with blurred glass background, gold section headers, chips, toggles, and sliders. In addition, I designed the footer banner and the whole start overlay consisting of the brand logo, tagline, buttons, loading animation, error message, and legal disclaimer, so that the app can have a nice onboarding screen. Last but not least, I provided the full responsive layout for small screens so that UI elements will be reorganized on mobile devices properly. Overall, this stylesheet became the core of the application UI design. SO overall it works pretty well and its amazing and I made it indian because I am personally indian. So overall this is prolly note my last devlog but LETS SEE. Adioss."}, {"post_id": 43519, "ts": "2026-08-08T20:46:51Z", "hours": 0.9217, "text": "HII guys so heres what I did in the last hour… I spent a good amount of time was spent working on the design of the interface. Finally, I would say that now the interface looks like a finished product rather than some temporary solution. As the first step, I set up a complete theme via CSS variables in :root. In particular, there were colors for the background which should be dark, golden accents, teal expression color, ink text, muted overlays, as well as font stacks of Devanagari and monospace. All those settings in one place immediately gave the interface much better structure and increased convenience of further editing. Further, I adjusted the global layout to make the app take the full screen and have a nice dark mode design, fitting into the overall musical concept of the project. Then, I designed the camera backdrop including the mirrored video feed, vignette gradients, and stage layer. It provides the project with a moody and atmospheric design. After the backdrop was completed, I turned to designing the top bar which includes the design of fields, labels, dropdowns, hint text, and icon buttons. I added select styles with gold arrows, blurring effect, and transition on hover to make all of these elements responsive and clean. Then, I created the tanpura toggle button with its teal glow and devanagari title, which fits very well into the overall Indian classical theme. Finally, I added styles for the pose list and pose glyphs, which include small circles that represent poses, pose names, and subdued note labels. In short, this was the process that turned the plain UI into an actual design. And now I also tested it BUT ima keep it a surprise for yall so I guess stay tuned for the next devlog loll adioss. (I pasted a few of the theme colours in the code below…"}, {"post_id": 43411, "ts": "2026-08-08T17:10:30Z", "hours": 1.2394, "text": "So heres what happened… In the last hour Claude generated well over 600 lines of new code, covering roughly 70% of the work, and while it dramatically sped me up the alternative was that my entire project instantly threw errors because none of it was connected together yet. While trying to make some sense of the chaos it dawned on me I had an entirely abandoned folder within my project called Components that was full of React components – HelpPanel, Readout, SettingsPanel, StartOverlay, TopBar – that I’d previously created but never attached to anything, and the kicker was my project wasn’t even set up to buildReact. My package.json didn’t contain react or react-dom, tsconfig.json had no JSX support, and my main.tsx was just vanilla JS with a button, and a tag masquerading as a UI element. So I decide to just bite the bullet and hook up React to my project for real. I install React, ReactDOM, and the types for both. Add a vite plugin in a new vite.config.ts, update tsconfig.json’s jsx compiler option to “react-jsx”, write an actual App.tsx that owns the top-level application state (my Performer engine, configuration, the live snapshot of what’s playing, and the state of the camera module) and passing that down into all the components so that the top bar, readout, panels and start screen actually did things. I wire it into my existing drawScene() function via the canvas, I implement some keyboard shortcuts for notes(A-L), octave raises/lowers(Z/X) and tanpura playback(space). I also implement pointer support for playing notes via click and drag without a camera attached. Two things I spotted and removed was a React StrictMode wrap, which would immediately break AudioContext and my handtracking model by remounting them when they just shouldn’t. I also had an import mistmatch between App with braces and a default exported App. Lastly I added a real index.html with a where React mounts and styled the top bar, readout, panels, and start overlay with a whole new styles.css. I was able to clear down all of Claude’s errors, get TSC output zero errors(tsc –noEmit) and build."}, {"post_id": 42783, "ts": "2026-08-07T17:47:04Z", "hours": 1.4017, "text": "Today’s process of working on scene.ts has certainly been one of the most complex parts of my work, since this file involves practically every visual and interaction mechanism I have designed. The imports for degree poses, snapshots and hand tracking points have been implemented and the constants for melody and expression colors, Devanagari fonts, monospace labels and the whole hand skeleton map were defined. Also, the SceneLabel and SceneInput interfaces were implemented; these two mechanisms serve as a sort of backbone for all the information needed by the renderer, such as hands, poses, thresholds, reachable degrees, video size, etc. Then, the geometry helper methods such as roundRect() and ribbonGeometry() were implemented; these methods determine how the swara ribbon would be drawn and how every cell would scale based on window size. Lastly, the drawScene() method is now partially implemented; at the moment it takes care of projection from camera coordinates, drawing of the octaves ladder, ribbon itself, intensity meter and conditional drawings of both hands with landmarks, tone lean arcs, gamak waves and role tags. However, since this file is extremely large and complex, it results in numerous TypeScript errors such as undefined functions, type mismatches, unresolved references, and half-written helper methods like drawPoseGlyph(), which are used before the rest of the code is written. Some errors stem from hand tracking processing, some come from the ribbon rendering code, and some are generated by the math code responsible for resizing the video stream. At this point, the code has reached that chaotic state when the structure starts taking form while the compiler throws numerous errors due to the incomplete file. However, despite the chaos, I have managed to make the ribbon rendering code work, the octave ladder operational, and the hand skeleton drawing code properly working, which means that the visual layer is already being created. I am still working on the code, and hopefully, when more code will be written, many of the above errors will disappear automatically. But yeah overall I fixed them overtime so now I am gonna start the COMPONENTS section around 200+ lines will be written I hope unless an error occurs lets see!!!"}, {"post_id": 42683, "ts": "2026-08-07T15:15:51Z", "hours": 0.5711, "text": "So I was busy getting down deep into scene.ts, where I’m about half way done with the code necessary to render the hand tracking visual layer. Scene.ts is huge and highly interconnected, bringing in pose definition data, Devanagari/roman naming, ribbon geometry data, skeleton structuring, projector calculation, and all the UI controls to display swara, articulation, gamak, tone lean, and expression-hand behaviors. I got all the constants wired in, the skeleton mapping, the tip detection set, the margining mechanism, the complete SceneInput interface, and I began wiring up the drawScene() function pipeline responsible for the octave ladder, ribbon, intensity meter, and hands overlays. Despite having a good structural backbone in place, I’m encountering a crazy amount of errors – some from TypeScript whining about type mismatches, some from missing imports, and some because drawPoseGlyph() or some other functions aren’t written yet but referenced. There are just too many red lines at this point that I cannot tell which are legit obstacles, and which are only temporary noise from not-yet-written parts. However, the basic rendering code is coming together, the projector calculation works, and the skeleton hand-drawing process seems to be halfway there. I’m not finished coding yet, and so I’m hoping that once things come together, a lot of these errors will clear up as the file is completed. Right now, the code is quite a mess, but at least I’m getting somewhere, and the whole scene code system will become operational. So lets see how it goes see ya’ll later adioss."}, {"post_id": 42241, "ts": "2026-08-06T21:11:38Z", "hours": 1.6803, "text": "The day became one of those big pushes where each individual piece I worked on became part of a much bigger picture, and it truly seems that today marked one of the largest leaps forward in the entire process. Claude assisted me in my work throughout the day not only with small bugs but with several large problems standing in my way and thus allowed me to successfully stabilize the entire workflow. Once I managed to deal with the problems, I returned to main.tsx and properly fixed the rendering flow along with ensuring that the components were mounted correctly. The key accomplishment was managing to get the performer.ts file fully rendered and working, which is a great achievement considering that this particular file deals with handling the camera feed, recognizing finger positions, and turning those positions into musical gestures. The moment that it actually worked was a feeling of unlocking another level of the project altogether. My entire objective with this application is to create something where one hand can perform the Indian classical notes of sa, re, ga, ma, pa, dha, ni, sa using the finger position to do so, akin to the bansuri or sargam software, and at the same time having the other hand trigger background sounds such as the tanpura drone sound to produce the atmosphere of the Hindustani classical music. The achievement of making the logic of the camera recognize and respond to the gestures makes the entire idea into a reality. This session is definitely one of those milestones since with the main.tsx file sorted out, performer.tsx rendered successfully, and the gesture pipeline behaving the way I envisioned it, there is no stopping what I want to achieve next. And again claude helped soo much in giving big code blocks especially when there were large errors. SO overall great but it could go better because right now it looks like crap."}, {"post_id": 42004, "ts": "2026-08-06T15:28:18Z", "hours": 1.0119, "text": "Today, I ended up doing more backend setup than what I had expected to do today, in that, after executing the terminal commands to set up the project environment, there were created two files, namely package.json and tsconfig.json, totaling over a thousand lines of configurations. Although mostly being boilerplate, the creation of the two files marked a huge milestone for me in the sense that the project had now become a TypeScript-based one rather than the earlier looser one. After doing that, I then proceeded into the main codebase to modify main.tsx by refactoring the old code. However, my major achievement was the completion of hands.ts, which is one of the harder pieces of codes in the project, in that it deals with hand-tracking, gesture recognition, and all the movement-related logic in the project. I feel really satisfied in doing this file because it is one of those modules that would allow us to implement lots of other features in the future, and seeing the results of my hard work compile successfully after so much setup was truly satisfying. After implementing all the configurations, making changes in the main entry point file, and completing hands.ts, things went pretty well. Overall everything worked out well and I finally figured out the issue lol it was because I did not have these packages so thank you to Claude because it told me what to put in terminal."}, {"post_id": 41663, "ts": "2026-08-06T01:02:52Z", "hours": 2.8281, "text": "Today ended up being one of the most efficient, yet very chaotic coding sessions that I’ve had in a while, because I have managed to finish the entire audio file and the entire engine.ts file, which is essentially one of the key aspects of my entire project, and grew to become more than 700 lines long at the end. Even though I was able to get a lot done, the process was far from being easy, as I encountered some really stubborn errors that would stop the project from running entirely, which were mostly connected to some problems with main.ts file and the Vite configuration, which I did not even know was misconfigured and causing silent problems in the process. I spent far too much time on figuring out the real reasons for those errors until Claude helped me to finally get an idea of what’s really going on. In the process of debugging I found some duplicated code in the engine, which made me quite angry, since it resulted in wasting a lot of time chasing some bugs that occurred due to my mistake when copy-pasting code earlier. Now that I managed to get the engine running at last, I created a little localhost test where I play a sitar sound in order to make sure that the audio stream is functional in real life, and hearing the one little note played made me feel so relieved, knowing that the whole thing really works and not just some theory written in the folder. Now that I have finished all that, I am going to continue to work with hands.ts, which is the part responsible for detecting the hand movements and gestures, and I am excited to see what happens. I also wanna add more instruments which will not be hard but lets see btw I also added a tanpura soo lets see how that goes. See you guys in the next devlog lets see what happens next…Adiosss."}, {"post_id": 40974, "ts": "2026-08-04T21:01:59Z", "hours": 1.7672, "text": "Today was quite productive – more so than I anticipated at the start – and I finished with something on the order of 400-600 lines of code, most of which were devoted to implementing the entire music module in full with its poses.ts, ragas.ts, and swaras.ts, which I have put together in a clean and working fashion without any odd edge cases and inconsistencies. I think it was very satisfying to see that I had finally managed to put all of the pieces together into one coherent system. Next up was the JavaScript part of the audio pipeline which was much faster to implement than I anticipated because once I figured out the general architecture of it, I managed to do it pretty quickly. Claude helped me a little here and there with some hints and clarifications, but the actual implementation was relatively simple after all that. Today turned out to be one of those productive coding sessions where you just seem to get a lot done and end up with a very well-structured and organized system on your hands. So yeah overall I am like 15-20 percent done I think but its really based on how the rest goes especially the camera tracking my hands lets see."}]...
|
Title: SarSynth by @manayp | Stardance
Devlogs:
T Title: SarSynth by @manayp | Stardance
Devlogs:
Today was quite productive – more so than I anticipated at the start – and I finished with something on the order of 400-600 lines of code, most of which were devoted to implementing the entire music module in full with its poses.ts, ragas.ts, and swaras.ts, which I have put together in a clean and working fashion without any odd edge cases and inconsistencies. I think it was very satisfying to see that I had finally managed to put all of the pieces together into one coherent system. Next up was the JavaScript part of the audio pipeline which was much faster to implement than I anticipated because once I figured out the general architecture of it, I managed to do it pretty quickly. Claude helped me a little here and there with some hints and clarifications, but the actual implementation was relatively simple after all that. Today turned out to be one of those productive coding sessions where you just seem to get a lot done and end up with a very well-structured and organized system on your hands. So yeah overall I am like 15-20 percent done I think but its really based on how the rest goes especially the camera tracking my hands lets see.
Today ended up being one of the most efficient, yet very chaotic coding sessions that I’ve had in a while, because I have managed to finish the entire audio file and the entire engine.ts file, which is essentially one of the key aspects of my entire project, and grew to become more than 700 lines long at the end. Even though I was able to get a lot done, the process was far from being easy, as I encountered some really stubborn errors that would stop the project from running entirely, which were mostly connected to some problems with main.ts file and the Vite configuration, which I did not even know was misconfigured and causing silent problems in the process. I spent far too much time on figuring out the real reasons for those errors until Claude helped me to finally get an idea of what’s really going on. In the process of debugging I found some duplicated code in the engine, which made me quite angry, since it resulted in wasting a lot of time chasing some bugs that occurred due to my mistake when copy-pasting code earlier. Now that I managed to get the engine running at last, I created a little localhost test where I play a sitar sound in order to make sure that the audio stream is functional in real life, and hearing the one little note played made me feel so relieved, knowing that the whole thing really works and not just some theory written in the folder. Now that I have finished all that, I am going to continue to work with hands.ts, which is the part responsible for detecting the hand movements and gestures, and I am excited to see what happens. I also wanna add more instruments which will not be hard but lets see btw I also added a tanpura soo lets see how that goes. See you guys in the next devlog lets see what happens next…Adiosss.
Today, I ended up doing more backend setup than what I had expected to do today, in that, after executing the terminal commands to set up the project environment, there were created two files, namely package.json and tsconfig.json, totaling over a thousand lines of configurations. Although mostly being boilerplate, the creation of the two files marked a huge milestone for me in the sense that the project had now become a TypeScript-based one rather than the earlier looser one. After doing that, I then proceeded into the main codebase to modify main.tsx by refactoring the old code. However, my major achievement was the completion of hands.ts, which is one of the harder pieces of codes in the project, in that it deals with hand-tracking, gesture recognition, and all the movement-related logic in the project. I feel really satisfied in doing this file because it is one of those modules that would allow us to implement lots of other features in the future, and seeing the results of my hard work compile successfully after so much setup was truly satisfying. After implementing all the configurations, making changes in the main entry point file, and completing hands.ts, things went pretty well. Overall everything worked out well and I finally figured out the issue lol it was because I did not have these packages so thank you to Claude because it told me what to put in terminal.
The day became one of those big pushes where each individual piece I worked on became part of a much bigger picture, and it truly seems that today marked one of the largest leaps forward in the entire process. Claude assisted me in my work throughout the day not only with small bugs but with several large problems standing in my way and thus allowed me to successfully stabilize the entire workflow. Once I managed to deal with the problems, I returned to main.tsx and properly fixed the rendering flow along with ensuring that the components were mounted correctly. The key accomplishment was managing to get the performer.ts file fully rendered and working, which is a great achievement considering that this particular file deals with handling the camera feed, recognizing finger positions, and turning those positions into musical gestures. The moment that it actually worked was a feeling of unlocking another level of the project altogether. My entire objective with this application is to create something where one hand can perform the Indian classical notes of sa, re, ga, ma, pa, dha, ni, sa using the finger position to do so, akin to the bansuri or sargam software, and at the same time having the other hand trigger background sounds such as the tanpura drone sound to produce the atmosphere of the Hindustani classical music. The achievement of making the logic of the camera recognize and respond to the gestures makes the entire idea into a reality. This session is definitely one of those milestones since with the main.tsx file sorted out, performer.tsx rendered successfully, and the gesture pipeline behaving the way I envisioned it, there is no stopping what I want to achieve next. And again claude helped soo much in giving big code blocks especially when there were large errors. SO overall great but it could go better because right now it looks like crap.
So I was busy getting down deep into scene.ts, where I’m about half way done with the code necessary to render the hand tracking visual layer. Scene.ts is huge and highly interconnected, bringing in pose definition data, Devanagari/roman naming, ribbon geometry data, skeleton structuring, projector calculation, and all the UI controls to display swara, articulation, gamak, tone lean, and expression-hand behaviors. I got all the constants wired in, the skeleton mapping, the tip detection set, the margining mechanism, the complete SceneInput interface, and I began wiring up the drawScene() function pipeline responsible for the octave ladder, ribbon, intensity meter, and hands overlays. Despite having a good structural backbone in place, I’m encountering a crazy amount of errors – some from TypeScript whining about type mismatches, some from missing imports, and some because drawPoseGlyph() or some other functions aren’t written yet but referenced. There are just too many red lines at this point that I cannot tell which are legit obstacles, and which are only temporary noise from not-yet-written parts. However, the basic rendering code is coming together, the projector calculation works, and the skeleton hand-drawing process seems to be halfway there. I’m not finished coding yet, and so I’m hoping that once things come together, a lot of these errors will clear up as the file is completed. Right now, the code is quite a mess, but at least I’m getting somewhere, and the whole scene code system will become operational. So lets see how it goes see ya’ll later adioss.
Today’s process of working on scene.ts has certainly been one of the most complex parts of my work, since this file involves practically every visual and interaction mechanism I have designed. The imports for degree poses, snapshots and hand tracking points have been implemented and the constants for melody and expression colors, Devanagari fonts, monospace labels and the whole hand skeleton map were defined. Also, the SceneLabel and SceneInput interfaces were implemented; these two mechanisms serve as a sort of backbone for all the information needed by the renderer, such as hands, poses, thresholds, reachable degrees, video size, etc. Then, the geometry helper methods such as roundRect() and ribbonGeometry() were implemented; these methods determine how the swara ribbon would be drawn and how every cell would scale based on window size. Lastly, the drawScene() method is now partially implemented; at the moment it takes care of projection from camera coordinates, drawing of the octaves ladder, ribbon itself, intensity meter and conditional drawings of both hands with landmarks, tone lean arcs, gamak waves and role tags. However, since this file is extremely large and complex, it results in numerous TypeScript errors such as undefined functions, type mismatches, unresolved references, and half-written helper methods like drawPoseGlyph(), which are used before the rest of the code is written. Some errors stem from hand tracking processing, some come from the ribbon rendering code, and some are generated by the math code responsible for resizing the video stream. At this point, the code has reached that chaotic state when the structure starts taking form while the compiler throws numerous errors due to the incomplete file. However, despite the chaos, I have managed to make the ribbon rendering code work, the octave ladder operational, and the hand skeleton drawing code properly working, which means that the visual layer is already being created. I am still working on the code, and hopefully, when more code will be written, many of the above errors will disappear automatically. But yeah overall I fixed them overtime so now I am gonna start the COMPONENTS section around 200+ lines will be written I hope unless an error occurs lets see!!!
So heres what happened… In the last hour Claude generated well over 600 lines of new code, covering roughly 70% of the work, and while it dramatically sped me up the alternative was that my entire project instantly threw errors because none of it was connected together yet. While trying to make some sense of the chaos it dawned on me I had an entirely abandoned folder within my project called Components that was full of React components – HelpPanel, Readout, SettingsPanel, StartOverlay, TopBar – that I’d previously created but never attached to anything, and the kicker was my project wasn’t even set up to buildReact. My package.json didn’t contain react or react-dom, tsconfig.json had no JSX support, and my main.tsx was just vanilla JS with a button, and a tag masquerading as a UI element. So I decide to just bite the bullet and hook up React to my project for real. I install React, ReactDOM, and the types for both. Add a vite plugin in a new vite.config.ts, update tsconfig.json’s jsx compiler option to “react-jsx”, write an actual App.tsx that owns the top-level application state (my Performer engine, configuration, the live snapshot of what’s playing, and the state of the camera module) and passing that down into all the components so that the top bar, readout, panels and start screen actually did things. I wire it into my existing drawScene() function via the canvas, I implement some keyboard shortcuts for notes(A-L), octave raises/lowers(Z/X) and tanpura playback(space). I also implement pointer support for playing notes via click and drag without a camera attached. Two things I spotted and removed was a React StrictMode wrap, which would immediately break AudioContext and my handtracking model by remounting them when they just shouldn’t. I also had an import mistmatch between App with braces and a default exported App. Lastly I added a real index.html with a where React mounts and styled the top bar, readout, panels, and start overlay with a whole new styles.css. I was able to clear down all of Claude’s errors, get TSC output zero errors(tsc –noEmit) and build.
HII guys so heres what I did in the last hour… I spent a good amount of time was spent working on the design of the interface. Finally, I would say that now the interface looks like a finished product rather than some temporary solution. As the first step, I set up a complete theme via CSS variables in :root. In particular, there were colors for the background which should be dark, golden accents, teal expression color, ink text, muted overlays, as well as font stacks of Devanagari and monospace. All those settings in one place immediately gave the interface much better structure and increased convenience of further editing. Further, I adjusted the global layout to make the app take the full screen and have a nice dark mode design, fitting into the overall musical concept of the project. Then, I designed the camera backdrop including the mirrored video feed, vignette gradients, and stage layer. It provides the project with a moody and atmospheric design. After the backdrop was completed, I turned to designing the top bar which includes the design of fields, labels, dropdowns, hint text, and icon buttons. I added select styles with gold arrows, blurring effect, and transition on hover to make all of these elements responsive and clean. Then, I created the tanpura toggle button with its teal glow and devanagari title, which fits very well into the overall Indian classical theme. Finally, I added styles for the pose list and pose glyphs, which include small circles that represent poses, pose names, and subdued note labels. In short, this was the process that turned the plain UI into an actual design. And now I also tested it BUT ima keep it a surprise for yall so I guess stay tuned for the next devlog loll adioss. (I pasted a few of the theme colours in the code below…
TODAY WAS CRAZY and this may be my last devlog I’ve spent today creating the entire visual backbone of the app, and now finally feel that the UI actually has some personality and doesn’t consist of random pieces. To start with, I defined a complete theme in :root – all golds, teals, ink shades, subdued overlays, panel colors, and two font stacks – so all the elements of the app draw colors from one consistent palette. Next, I created the layout guidelines for html, body and #root, and implemented the backdrop system – mirrored camera feed, vignette gradients, and stage layer below the canvas. Finally, I added the top bar styling, dropdowns, hint text, icon buttons, and tanpura toggle styling using the gold/teal accent language. I included the UI for the pose list, the readout section with Devanagari + monospace swara display, and the stat blocks with small capital letter labels. And now, I have the help and settings panels with blurred glass background, gold section headers, chips, toggles, and sliders. In addition, I designed the footer banner and the whole start overlay consisting of the brand logo, tagline, buttons, loading animation, error message, and legal disclaimer, so that the app can have a nice onboarding screen. Last but not least, I provided the full responsive layout for small screens so that UI elements will be reorganized on mobile devices properly. Overall, this stylesheet became the core of the application UI design. SO overall it works pretty well and its amazing and I made it indian because I am personally indian. So overall this is prolly note my last devlog but LETS SEE. Adioss.
Over the past 45 Minutes or so I have been writing my readme and organizing some files. In all my other projects my readmes were always the worst part of my project but not anymore starting from now. I learned how to write readmes with more efficiency by adding # and * which basically makes text bigger and also bold or italic. So far I wrote the overview on what my project actually is and I have also wrote some of the philosophy and design goals which include data in jots. I also completed the tech stack and computer vision data which is in the same section as the design goals. Overall I am like 20 ish percent done the Readme and my folders are properly organized and I am done that section now.
The front page was zoomed in a bit which was because of the css which I figured out after going through the CSS so that I fixed. Claude helped me a ton just now because I told it to make me 8 different panels in the front page which lead to a page and claude did that which was nice but for some reason it wrote 600 lines of css which is wild because there is not much that was added just colour and a bit of shadows but its fine because its just panels. OK then off hackatime I did my own little research and basically MY IDEA was to make a panel of each instrument that was incorporated in this project and write a 1 paragraph historical perspective of each instrument and overall it worked out pretty well but AGAIN a sizing issue occurred due to claude and I told claude 4 times to fix it but it could not for some reason And then I went in and figured it out lol it was the most funniest mistake…the css was on 2x zoom and my browser was also on 2x zoom for some reason. So yeahh… that has been solved now I also worked on my readme a bit like 2-3 sentences ish. So overall in these last 25 minutes I got through a lot of progress…
Ok so my README.md is done after like 1 ish hour in total. I incorporated as much as I could including a license in the bottom and honestly this is my first time not writing it raw and actually using hashtags and asterisks to make the text look better in the readme so it went well. I hosted it and was going to ship it. I showed it to my sibling and my feedback was “can you make it not that fun its kinda boring” so that obviously struck me inside considering the effort I put into this so what I did next was crazy. So as you know I was gonna ship it but instead I mapped out a way where I can add small games into it like GUESS THE RAGA and more which I will incorporate later. So sorry Guys I will need to add a bit more before I can ship it but I got this. Adioss.
I fixed the Tanpura instrumental background track and now it works more properly because last time it was glitching even when I spammed it so it is fine now just a small JS error. I also finished the games logic its 3 simple games which you will come to know soon… In total it is about 250 lines of code which is fairly simple but the games are actually nice in my opinion. And soon I will be making a sort of guide on how to position your fingers for each note which includes Sa, Re, Ga, Ma, Pa, Dha, Ni, Sa. But tbh I have everything thats needed but it doesent hurt to give a bit of teaching because honestly even though I made it, it was pretty hard doing the dha and ni because my hands were keep forgetting the placement but after some time and practice I got it (10 min lol)… So lets see what happens next… Byee and ADioss
So in the past half and hour I did a lot and yes this is actually my final devlog this time. Ok so I finished the css around like 100-200 lines of code but it was light because the color scheme sorta connected with the theme anyway… I ran into a few alignment errors like it was blocking my whole screen but I fixed it so thats solved. I also updatted my readme about the games. Below I added a picture of my finger guide SarSynth it just shows how all your fingers should be aligned and for what and personally dha and ni is the hardest but with practice (like 5-10min) you can get used to it. I made it with Canva it took like 2 Minutes because the pictures I didnt really count towards my time just the making and alignments were counted. Overall thank you and goodbye.
So this is my first devlog of the new ship and I thought a lot and wondered a lot of what else to add. And now I know. I am adding internal tools to it like a whole page which can be easily accessed. So far I have completed toolAudio.ts and it was about 130 ish lines of code and overall it works well. And yeah so I spent 50 minutes just writing 80 ish lines of code which is pretty not that bad but I slowed down because I changed my ideas mid writing… and also my github got reset or something somehow and alll my commit messages are gone so I have restarted with another repository with new commits. And also I made the most crap mistake ever so instead of making the folder in SRC I made it in localhistory which wasted SOO MUCH of my time. BUT I just copy pasted my code into the right place so overall its all good now. Ill see you guys later. Stay tuned for the upcoming tools. Thanks. ADIOSS
After almost an hour I finally completed 2 files. I completed the ToolsPage.tsx fully and the ScaleFinder.tsx…. Now I havent really fully tested the toolspage one but the scalefinder one works (I tested it with onecompilor and it works great. So my first tool is finally completed and working now I just gotta keep going at it and finish a few more…So I am done for today and personally I got a good amount done. I am still running into a few errors in the ToolsPage.tsx but 100 percent thats because of the imports because currently I do not have some of the pages but it willl get fixed. And today I finished about 250-300 + lines of code and thanks to chatgpt and claude because they taught me a lot of things including blurb…honestly I am not that good at this coding language but I am still learning. Adiosss see u in the next devlog…
So I completed the TheoryReference.tsx and finally just now completed the TaalMetronome.tsx. I also researched various types of taals and beats for the metronome and I learned new things and concepts which include vibhag, sam, tali, and khali. And to be honest claude and chatgpt helped in coding chunks which just made my coding and stuff faster. So overall I had good enough progresss in the last 1-2 hours so yep. I completed the development of my fully cycle-based taal metronome today. In this project, I have FINALLY developed a system that would be based on the concepts of vibhag, sam, tali, and khali rather than the conventional method of bar-based counting. I created a complete set of taals that contain information about their vibhag structure, khali, bols, and notes. Then, I coded the system to dynamically create matra counts, accent patterns, and vibhag markers. The audio engine is now powered by an advanced Web Audio scheduler that allows pre-scheduling of clicks, takes care of subdivisions and accent playback so that the structure of taal is perceivable to the user via sound. I have also incorporated tap tempo with averaging and reset functionality with “const” placed in numerous lines which will not change anything. Special thanks to vs code because it gave me auto suggestions which auto fixed my code which actually helped me a lot because honestly I suck at typing fast lol. I also pushed many commits in github so its all active and ongoing. More will also have to be fixed though soo stay tuned and adiossssssssss. So overall I have good progress and I will see you in the next devlog adioss.
So basically I am almost done… So all my files for the extra tools were supposed to be much more longer but because I do not wanna spend too much time on this project I shortened each file by 200 ish lines with the help of Claude and my wits. So I finished all the tools so far, but I just have like one more left. And I also have to do the CSS which I have to make so that will take some time. During this phase, I worked on improving the whole SarSynth interface, designing a dark theme with gold accents and creating the whole layer of UI elements which feels stable and high-performance. I defined the CSS variables for the whole interface, its colors, font styles, and panel styles, made the camera backdrop with mirrored video and vignette with smooth transition of opacity. Top bar design took much of my effort, as I designed the fields with labels, custom selects with gradients and arrows, hint texts, buttons with icons and Devanagari tanpura switch with activated and inactive states. After that, I added the pose list functionality with glyphs for melody and expression, mono-font labels and muted notes. Readout part and the layout as a whole received tuning of spacing and blur effect, and at the same time, I was solving various irritating problems such as proper placement of select-element arrows, right background for backdrop, and visual matching of components. Overall I believe I am 80 percent done the tools code and everything but that will all be resolved and established soo adios cya in my next log…..
So I did 115 ish lines for the tuner and claude did like 50-65 percent of it because mostly it was repeats of other stuff but also a bit of new stuff in it especailly the logical part of it. So this was actually my second last file so I juse gotta finish the CSS for everything and I am going to be done. Also I found out that the <ToolShell function that I created had glitches or idk something was happening but I fixed it and realized it was a spelling mistake lol. I spend 3 min on solving that so its fine… Ok so the tuner I was working on is basically going to do exactly what your thinking of its going to tune instruments or even your voice using cents which is a thing for tuners that shows its close or far. Overall its going veryy well so lets see if my css goes well or not adioss.
So first of all yes I finished my readme. By finished I mean updated because I added tools. There are 6 distinct tools I created which are in indian style and it works pretty well. I also learned some new stuff from claude like I didnt know too. I learned some stuff in this long session like I never knew that if you set the opaqueness to 1.2 instead of 1 it will be dead code because apparently 1 and 1.1 is the same thing which to be honest is fairly the same. Lol I know this is kinda lame but for some reason it surprises me a lot. I also learned what npm run build does…according to claude it means it checks errors and stuff which personally for some reason I did not know that either… In my project theres some dead space in some areas of the tools pages but thats fine because tbh I was aiming for that because to show its simplicity and stuff lol. The biggest thing that stumped me though was the error in toolspage.tsx…. it says theres an error with the connection of the pages but I think its just a glitch because its all connected right with all the files in the right space so overall I just think thats an error or a glitch. Special thx to claude and vs code suggestions because they helped me learn stuff and made my life easier and possibly faster in some sorta of way so thx. Claude and vs code and github copilot also helped me push my files faster and more efficient so thx. Overall this is my last devlog and I had a great time making this and it went really well (at times lol) and if you guys like this make sure to possibly follow and like some of my devlogs and if you dont then contact me in slack if you have anything I should change or add or even fix lol. Thanks and adioss.
Ships:
What have you created? Sargam Synth - an instrument of Indian music which you can play through gestures of your hands in front of a webcam. Left hand defines the swara depending on the number of fingers raised (1 = Sa, 2 = Re, etc. up to Ni), while right hand controls the volume, tone and ornamental variations. Sargam Synth includes 37 ragas and scales, eight synthetic instruments, like sitar and bansuri, tanpura drone and three training games. What was difficult? Developing reliable gesture recognition system - my initial prototype reacted to each frame from the webcam, so a lost frame cut the sound and any transition between the postures produced false notes. I solved this problem by making each finger press steady for 90 milliseconds before it is recognized and remembering the last known position of a hand when it is not currently recognized. The sound of sitar was the second difficulty because it is a synthetic oscillation simulating vibration of the string, not just the simple oscillator. What are you proud of? It’s properly tuned — when playing Ga in Yaman scale you actually hear 5/4 pure interval rather than somewhat different one a piano would provide you. And it even knows how to teach you — all swaras demonstrate their respective fingering on the screen, both hands show you fingers captured by the camera. Thus, if a pose is not recognized, you will immediately understand if it’s you or the tracker who fails to recognize. Overall it had been an amazing journey and its lowkey fun to use with a bit of practice and stuff (I added a guide below for fingerings just incase)… What should people know in order to try it? Allow the camera, and don’t forget about this: Left hand chooses the tone, right hand makes the sound appear — nothing plays until your right hand is raised. If your hands appear inverted, there is a Swap hand detection option in Settings menu that will correct it for you in one tap. No camera? Then press Continue without camera and play using clicks on the swaras or A S D F G H J keys.
This innovation is something that I am proud about in SarSynth since it combines both technology and Indian classical music. SarSynth turns your camera into a musical instrument with the ability to play swaras using hand gestures while using ragas, instruments, tanpura, among other concepts. Getting the gesture recognition and the playing of music using the system was what I enjoyed most in the process of creating SarSynth. SarSynth can recognize hand poses, translate them into notes, and even incorporate features such as different ragas, synthetic instruments, training games, and tuner. I had many mishaps and stuff because in this new update I focused on the TOOLS which was not needed but I just did it. But in the same time I honestly also learned some new things so for me personally it was a win-win situation even though a bit of time was wasted in bugs and other random mishaps. In general, I believe that SarSynth is a nice application since it incorporates Indian classical music in an interactive manner and in addition to learning a lot through this experience especially when trying to debug different systems. And I hope you guys liked it. If you guys have any suggestions or things to add lemme know in slack. Thank you and adios. Note: This update is for the tools only....
|
1793116448.7626684
|
1793202848.7626684
|
|
45227
|
XUtil by @XeroDay | Stardance
|
XeroDay
|
1
|
25.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-05T10:31:42Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "XUtil is a Minecraft utility mod for version 26.2, written in Java on the Fabric loader. It adds small quality of life features that the base game is missing, all behind a clickable in game GUI!! THE ULTIMATE MINECRAFT AUTOMATION MOD - FOR THE PROS! A ClickGUI opened with the DEL (configurable from keybinds settings) key. Draggable windows, a search bar, and every module gets its own keybind you set from the menu. A macro system. You chain tasks like attack, use, wait, walk, jump and loops, and gate them behind conditions like “health below 20” or “hunger below full”. Macros run on a key, on a toggle, or every tick. I use it for an auto eat macro that eats whenever the hunger bar drops (quite useful hehe). A recorder that captures movement, look, hotbar, held keys and module toggles, saves them as a small JSON file, and plays them back. It resets to the start position every loop and can be dropped into a macro as a replay task. Plus a world info HUD, auto tool, sprint, fullbright, zoom, break indicator and target highlight. The game also has API for addons, so you don’t have to edit the source, but you can make a separate mod, add this mod as requirement, and you can add custom modules/macros !! Future Updates: I am working on Biomes Locator, I am still researching on it, the Minecraft Biomes are based on World Climates, so we can basically track down the estimated biome location without the world seed if we can locate the climate change parameter!!! (There’s no mod for this currently, so if I make this happen, it might be world changing xD). Though, perlin noise is pretty random for climate parameters, but I am sure I can estimate based on nearby biomes and eventually come up with a proper method!! Stay Tuned ! </3 Everything is configurable from the in game GUI or the JSON files in the config folder. Repo: https://github.com/X3r0Day/XUtil", "repo": "https://github.com/X3r0Day/XUtil", "demo": "https://github.com/X3r0Day/XUtil/releases"}]...
|
[{"post_id": 62085, "ts": "202 [{"post_id": 62085, "ts": "2026-09-05T10:23:40Z", "hours": 0.3064, "text": "#XUtil Demo!! XUtil is a Minecraft utility mod for version 26.2, written in Java on the Fabric loader. It adds small quality of life features that the base game is missing, all behind a clickable in game GUI There’s a Macro system to automate Tasks like a Pro You can also record your own actions and then either replay it, or add it in your macro (yes you can actually add replay inside macro too!! :0) The mod is very easy to customize, you can create your own Addons too!! What’s even cooler than that? It have it’s own API handler that can handle multiple addons so you don’t need to edit the source code just make a new mod and use this mod as it’s requirement Repo: https://github.com/X3r0Day/XUtil"}, {"post_id": 62071, "ts": "2026-09-05T09:44:51Z", "hours": 0.5503, "text": "XUtil is Done! XUtil is an Minecraft Fabric 26.2 mod that provides you the best automation capability for single & multiplayer servers! With this, you can easily dominate repeated tasks, create custom macros, create custom recordings which you can then replay There’s also Quality of Life features like AutoTools, Break Indicators, and more! I still have to do few optimizations But it supports Addons!! You can create your own Addons easily and add custom categories and modules !!"}, {"post_id": 62040, "ts": "2026-09-05T08:09:57Z", "hours": 5.5144, "text": "Recording Module - Minecraft Finally, I am done with adding a recording module, that records all the user action and then repeat them, making it very useful for the automation! It records everything you do in game. Movement, the way you look around, which hotbar slot you had out, when you held jump or attack. Then it plays it back exactly. Bind a record key, press it to start, press it again to stop. The recording saves automatically and shows up in the Recorder menu, ready to play with a second key. There’s a loop toggle, and every recording has its own mouse lock so your input won’t affect the play !!"}, {"post_id": 58305, "ts": "2026-08-30T17:58:24Z", "hours": 19.0897, "text": "XUtil #1 Hi guys! I have been working on XUtil since very long now without a devlog, so I decided to why not make a devlog The whole reason XUtil exists is macros. I wanted to build a macro engine for Minecraft 26.2 that could chain actions together, react to conditions, and run while I do something else. The first macro I actually finished is the one in the video above: hold any food, drain your hunger, and it eats automatically the moment the bar drops, then stops when you’re full. Enjoy the background song"}]...
|
Title: XUtil by @XeroDay | Stardance
Devlogs:
XUt Title: XUtil by @XeroDay | Stardance
Devlogs:
XUtil #1 Hi guys! I have been working on XUtil since very long now without a devlog, so I decided to why not make a devlog The whole reason XUtil exists is macros. I wanted to build a macro engine for Minecraft 26.2 that could chain actions together, react to conditions, and run while I do something else. The first macro I actually finished is the one in the video above: hold any food, drain your hunger, and it eats automatically the moment the bar drops, then stops when you’re full. Enjoy the background song
Recording Module - Minecraft Finally, I am done with adding a recording module, that records all the user action and then repeat them, making it very useful for the automation! It records everything you do in game. Movement, the way you look around, which hotbar slot you had out, when you held jump or attack. Then it plays it back exactly. Bind a record key, press it to start, press it again to stop. The recording saves automatically and shows up in the Recorder menu, ready to play with a second key. There’s a loop toggle, and every recording has its own mouse lock so your input won’t affect the play !!
XUtil is Done! XUtil is an Minecraft Fabric 26.2 mod that provides you the best automation capability for single & multiplayer servers! With this, you can easily dominate repeated tasks, create custom macros, create custom recordings which you can then replay There’s also Quality of Life features like AutoTools, Break Indicators, and more! I still have to do few optimizations But it supports Addons!! You can create your own Addons easily and add custom categories and modules !!
#XUtil Demo!! XUtil is a Minecraft utility mod for version 26.2, written in Java on the Fabric loader. It adds small quality of life features that the base game is missing, all behind a clickable in game GUI There’s a Macro system to automate Tasks like a Pro You can also record your own actions and then either replay it, or add it in your macro (yes you can actually add replay inside macro too!! :0) The mod is very easy to customize, you can create your own Addons too!! What’s even cooler than that? It have it’s own API handler that can handle multiple addons so you don’t need to edit the source code just make a new mod and use this mod as it’s requirement Repo: https://github.com/X3r0Day/XUtil
Ships:
XUtil is a Minecraft utility mod for version 26.2, written in Java on the Fabric loader. It adds small quality of life features that the base game is missing, all behind a clickable in game GUI!! THE ULTIMATE MINECRAFT AUTOMATION MOD - FOR THE PROS! A ClickGUI opened with the DEL (configurable from keybinds settings) key. Draggable windows, a search bar, and every module gets its own keybind you set from the menu. A macro system. You chain tasks like attack, use, wait, walk, jump and loops, and gate them behind conditions like “health below 20” or “hunger below full”. Macros run on a key, on a toggle, or every tick. I use it for an auto eat macro that eats whenever the hunger bar drops (quite useful hehe). A recorder that captures movement, look, hotbar, held keys and module toggles, saves them as a small JSON file, and plays them back. It resets to the start position every loop and can be dropped into a macro as a replay task. Plus a world info HUD, auto tool, sprint, fullbright, zoom, break indicator and target highlight. The game also has API for addons, so you don’t have to edit the source, but you can make a separate mod, add this mod as requirement, and you can add custom modules/macros !! Future Updates: I am working on Biomes Locator, I am still researching on it, the Minecraft Biomes are based on World Climates, so we can basically track down the estimated biome location without the world seed if we can locate the climate change parameter!!! (There’s no mod for this currently, so if I make this happen, it might be world changing xD). Though, perlin noise is pretty random for climate parameters, but I am sure I can estimate based on nearby biomes and eventually come up with a proper method!! Stay Tuned ! </3 Everything is configurable from the in game GUI or the JSON files in the config folder. Repo: https://github.com/X3r0Day/XUtil...
|
1793137876.6951172
|
1793224276.6951172
|
|
46890
|
Relay by @aydinmrnv | Stardance
|
aydinmrnv
|
1
|
25.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-19T06:07:21Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built relay: a tool that lets you create workflows that run on your github actions. You can have a automated workflow that takes a issue ticket to a pull request ready for you to review. It uses your existing ai subscriptions to run the ai agents, and executes the actions in your github repo.", "repo": "https://github.com/aydinmrnv/relay", "demo": "https://relay-olive-omega.vercel.app/"}]...
|
[{"post_id": 80897, "ts": "202 [{"post_id": 80897, "ts": "2026-10-19T06:03:50Z", "hours": 2.1869, "text": "Prepared for shipping the project, cleaned up some bugs, finished the demo wf, and minor changes"}, {"post_id": 76968, "ts": "2026-10-05T07:17:35Z", "hours": 1.8036, "text": "fixed bug where integrations would randomly deauthenticate, added mcp support for linear in codex, and cleaned up some ui elements"}, {"post_id": 76011, "ts": "2026-10-02T01:14:35Z", "hours": 3.8756, "text": "Implemented login with codex, made a demo environment at /play, and added to npm, also fixed bugs on landing page and dashboard"}, {"post_id": 75476, "ts": "2026-09-30T06:25:08Z", "hours": 1.4658, "text": "Integrated auth for integrations allowing users to connect other services to relay"}, {"post_id": 73870, "ts": "2026-09-26T07:08:14Z", "hours": 1.3831, "text": "Fixed worktree manager, updated dashboard ui, cleaned up landing page, and added support for bring your own subscription on codex and claude"}, {"post_id": 73314, "ts": "2026-09-24T20:46:51Z", "hours": 1.6728, "text": "Updated landing page, set up azure vm for cloud workflow runners, and fixed the node workflow builder, and set up clerk authentication"}, {"post_id": 72989, "ts": "2026-09-24T05:37:08Z", "hours": 1.6531, "text": "Developed the web interface for building agentic workflows, fixed linear integration, and added support for bring your own subscription for AI providers"}, {"post_id": 72542, "ts": "2026-09-23T05:23:05Z", "hours": 1.4292, "text": "working on the cross-agent communication, and support for linear tickets"}, {"post_id": 46545, "ts": "2026-08-13T20:57:55Z", "hours": 3.2497, "text": "Added the ability to create a workspace without a ticket, added error logs, fixed pipeline bugs"}, {"post_id": 46154, "ts": "2026-08-13T05:24:30Z", "hours": 1.1706, "text": "Added support for codex harness, and made some changes to the workflows and system level prompt that go to the agents (i also now use relay to work on relay itself sometimes)"}, {"post_id": 46069, "ts": "2026-08-13T00:46:39Z", "hours": 3.6433, "text": "Re designed the CLI UX and updated the review model consistency, i also fixed a bug where it would stay at plan mode and not move on"}, {"post_id": 45586, "ts": "2026-08-12T05:28:34Z", "hours": 1.6531, "text": "I am working on implementing the ai agent harness which will allow users to use their existing claude or codex subscriptions inside of my tool using oAuth link"}]...
|
Title: Relay by @aydinmrnv | Stardance
Devlogs:
I Title: Relay by @aydinmrnv | Stardance
Devlogs:
I am working on implementing the ai agent harness which will allow users to use their existing claude or codex subscriptions inside of my tool using oAuth link
Re designed the CLI UX and updated the review model consistency, i also fixed a bug where it would stay at plan mode and not move on
Added support for codex harness, and made some changes to the workflows and system level prompt that go to the agents (i also now use relay to work on relay itself sometimes)
Added the ability to create a workspace without a ticket, added error logs, fixed pipeline bugs
working on the cross-agent communication, and support for linear tickets
Developed the web interface for building agentic workflows, fixed linear integration, and added support for bring your own subscription for AI providers
Updated landing page, set up azure vm for cloud workflow runners, and fixed the node workflow builder, and set up clerk authentication
Fixed worktree manager, updated dashboard ui, cleaned up landing page, and added support for bring your own subscription on codex and claude
Integrated auth for integrations allowing users to connect other services to relay
Implemented login with codex, made a demo environment at /play, and added to npm, also fixed bugs on landing page and dashboard
fixed bug where integrations would randomly deauthenticate, added mcp support for linear in codex, and cleaned up some ui elements
Prepared for shipping the project, cleaned up some bugs, finished the demo wf, and minor changes
Ships:
I built relay: a tool that lets you create workflows that run on your github actions. You can have a automated workflow that takes a issue ticket to a pull request ready for you to review. It uses your existing ai subscriptions to run the ai agents, and executes the actions in your github repo....
|
1793155944.5538213
|
1793242344.5538213
|
|
47215
|
Gotcha - Clip what Happened by @Shaarav4795 | Star Gotcha - Clip what Happened by @Shaarav4795 | Stardance...
|
Shaarav4795
|
1
|
25.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-09T07:41:27Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Gotcha, an app for iOS that allows users to clip and record what has already happened. The user leaves the app open and when they hear something they want to record they simply tap the button and it clips it. Then they can edit it (add subtitles, caption, pictures, etc) and then export or share. The most challenging part was definitely the clip editor as there were so many bugs and the UI was annoying to make. To use the app just click on the TestFlight URL and then you can download the app.", "repo": "https://github.com/Shaarav4795/Gotcha", "demo": "https://testflight.apple.com/join/nvfjcUC5"}]...
|
[{"post_id": 62034, "ts": "202 [{"post_id": 62034, "ts": "2026-09-05T08:00:40Z", "hours": 1.5417, "text": "I’m officially done!!! I added the README and uploaded to Testflight! This took around 50% longer than it should have for a few reasons 1) there were a few bugs when I tested on my dad’s iphone compared to my phone 2) app store connect was being finnicky regarding the rules… But now I’m done and very very happy with the result!"}, {"post_id": 60121, "ts": "2026-09-02T09:18:24Z", "hours": 1.7131, "text": "I’m now officially done with the app! I added an onboarding flow so the app can prompt for mic perms… I also added a dark mode cos I didn’t want any low light ppl (looking at you fellow raters) to feel like they saw the sun… I also added the app icon (i should have added it before but I kinda forgot) which I made in Canva super easily and then imported to Icon Composer… Now I just need to make a README, publish to Testflight and I’ll be done"}, {"post_id": 58792, "ts": "2026-08-31T11:31:15Z", "hours": 3.6333, "text": "I implemented Shortcuts into the app! This was relatively straightforward in terms of the scope… However I really enjoyed adding this as it made the app feel “complete” as every app has shortcuts…"}, {"post_id": 55457, "ts": "2026-08-27T10:00:16Z", "hours": 3.4306, "text": "I implemented a live activity feature to the app. So basically now in the dynamic island it shows you a live activity from Gotcha so you can quickly capture. The same goes for the lock screen. I found it really fun to add these features in as I’ve never implemented live activities before."}, {"post_id": 53710, "ts": "2026-08-24T11:51:06Z", "hours": 1.1875, "text": "I got the sharing feature to work now so you can actually do something with your recordings :) theres not much else to say here apart from now the app is basically an MVP and now i’m just gonna add nice to have features…"}, {"post_id": 53596, "ts": "2026-08-24T06:48:32Z", "hours": 5.1922, "text": "I made the clips editor work!!! After a lot of work and a bunch of time I managed to finally do the impossible. It genuinely was so difficult to make anything at all work such as the subtitles not working until I figured out you have to test on real device, the waveform looking weird, the app either feeling slow, laggy or jittery and the fact that the trimming logic wasn’t working. Anyways, now that I finished, I’m really happy with how it feels to use now and even more so now that I added features I wasn’t planning to add (like the volume boost feature and the dragging element feature)…"}, {"post_id": 50173, "ts": "2026-08-19T08:58:49Z", "hours": 3.6322, "text": "I made the tap to capture button work. The app uses up to 90MB of RAM when idle (the audio file itslef taking up up to 30MB) and it keeps a rolling 1, 2 or 3 minute buffer period. So after the time that the user sets (default 2 mins) old audio is discarded. When the suer feels they have caught a moment they wanna clip, they just open the app and press capture. Then the app saves it as a wav file. It was a bit tricky to get background audio and lock screen recording working (so that means you can have the app open in the background while you are doing something else). I also made it so when the app is out of focus it displays a huge message on the screen telling the user not to quit the app from the app switcher otherwise it won’t record. Overall I feel I made a lot of progress in this session and now I need to make the clip editor work (the part I’m dreading) and add some nice to have features…. but yeah for now the app works!"}, {"post_id": 48757, "ts": "2026-08-17T09:04:31Z", "hours": 5.1097, "text": "I scaffolded the UI for the project. First I initialised the Xcode project for iOS and then I made the home screen UI page. I went for a big button with a waveform inside (which doesn’t work rn). But after that it felt plain so I added like a recent clips list under it to make it more interesting and I added 2 stats as well. I also made the full Clips page and I designed the clips editor. This part took the longest cos I didnt wanna overcommit myself but I wanted to still challenge myself so I added like 5 tools that should not be tooo difficult to add. I also designed the settings page with setting that will be added and thats pretty much it :) comment (if anyone sees) if the UI looks good or not."}]...
|
Title: Gotcha - Clip what Happened by @Shaarav4795 Title: Gotcha - Clip what Happened by @Shaarav4795 | Stardance
Devlogs:
I scaffolded the UI for the project. First I initialised the Xcode project for iOS and then I made the home screen UI page. I went for a big button with a waveform inside (which doesn’t work rn). But after that it felt plain so I added like a recent clips list under it to make it more interesting and I added 2 stats as well. I also made the full Clips page and I designed the clips editor. This part took the longest cos I didnt wanna overcommit myself but I wanted to still challenge myself so I added like 5 tools that should not be tooo difficult to add. I also designed the settings page with setting that will be added and thats pretty much it :) comment (if anyone sees) if the UI looks good or not.
I made the tap to capture button work. The app uses up to 90MB of RAM when idle (the audio file itslef taking up up to 30MB) and it keeps a rolling 1, 2 or 3 minute buffer period. So after the time that the user sets (default 2 mins) old audio is discarded. When the suer feels they have caught a moment they wanna clip, they just open the app and press capture. Then the app saves it as a wav file. It was a bit tricky to get background audio and lock screen recording working (so that means you can have the app open in the background while you are doing something else). I also made it so when the app is out of focus it displays a huge message on the screen telling the user not to quit the app from the app switcher otherwise it won’t record. Overall I feel I made a lot of progress in this session and now I need to make the clip editor work (the part I’m dreading) and add some nice to have features…. but yeah for now the app works!
I made the clips editor work!!! After a lot of work and a bunch of time I managed to finally do the impossible. It genuinely was so difficult to make anything at all work such as the subtitles not working until I figured out you have to test on real device, the waveform looking weird, the app either feeling slow, laggy or jittery and the fact that the trimming logic wasn’t working. Anyways, now that I finished, I’m really happy with how it feels to use now and even more so now that I added features I wasn’t planning to add (like the volume boost feature and the dragging element feature)…
I got the sharing feature to work now so you can actually do something with your recordings :) theres not much else to say here apart from now the app is basically an MVP and now i’m just gonna add nice to have features…
I implemented a live activity feature to the app. So basically now in the dynamic island it shows you a live activity from Gotcha so you can quickly capture. The same goes for the lock screen. I found it really fun to add these features in as I’ve never implemented live activities before.
I implemented Shortcuts into the app! This was relatively straightforward in terms of the scope… However I really enjoyed adding this as it made the app feel “complete” as every app has shortcuts…
I’m now officially done with the app! I added an onboarding flow so the app can prompt for mic perms… I also added a dark mode cos I didn’t want any low light ppl (looking at you fellow raters) to feel like they saw the sun… I also added the app icon (i should have added it before but I kinda forgot) which I made in Canva super easily and then imported to Icon Composer… Now I just need to make a README, publish to Testflight and I’ll be done
I’m officially done!!! I added the README and uploaded to Testflight! This took around 50% longer than it should have for a few reasons 1) there were a few bugs when I tested on my dad’s iphone compared to my phone 2) app store connect was being finnicky regarding the rules… But now I’m done and very very happy with the result!
Ships:
I made Gotcha, an app for iOS that allows users to clip and record what has already happened. The user leaves the app open and when they hear something they want to record they simply tap the button and it clips it. Then they can edit it (add subtitles, caption, pictures, etc) and then export or share. The most challenging part was definitely the clip editor as there were so many bugs and the UI was annoying to make. To use the app just click on the TestFlight URL and then you can download the app....
|
1793145225.7044141
|
1793231625.7044141
|
|
52996
|
SatelliteTracker by @wal | Stardance
|
wal
|
1
|
25.0
|
384
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T19:32:53Z", "hours": 25.0, "multiplier": 15.61, "payout": 384, "blessing": "neutral", "text": "Hi everyone! I made a project called “SatelliteTracker”. So this is a cool app that tracks satellites real time built on JS and Globe.jl The project shows different satellites (not all of them, because otherwise there would be around 10 000 of them), and also can show you visible satellites based on the location you picked. The most challenging part was making it lol. The whole purpose of this project for me was to learn JS, which i for shure did, but anyways it was soo overwhelming. I am really proud of how it turned out, it looks super good, and i am proud that i commited with my idea, because now i get to show everyone this project to get a reaction like: “Yoo thats so cool!”. Apart from the jokes, i am really proud to have learned a new language and to have come out of my comfort zone. Things you should know-Starlink satellites dont always load! And also i made warnings in the console so you could see what works and what doesnt. Also, please dont refresh the page too often, otherwise celestrack will stop accepting yo requests…and you will have a looser window, you dont want that! Thank you everyone, enjoy!", "repo": "https://github.com/walterm4lon-coder/SatelliteTracker", "demo": "https://walterm4lon-coder.github.io/SatelliteTracker/"}]...
|
[{"post_id": 71899, "ts": "202 [{"post_id": 71899, "ts": "2026-09-21T18:48:20Z", "hours": 3.9111, "text": "I IMAGINED, I PROGRAMMED, I CONQUERED. The Satellite tracker might just be done! Changes!! 1. VISUALS holy hell it was harder than i expected but i made it. so i added stars, cool buttons, cool font, and allat. I am really proud of this work, because it looks really cool now 2. Loading Screen now this one is so cool, i really like how it turned out and it was pretty easy to make it. But i was honestly so tired at that point that i just wrote the first stuff that came into my mind. but i still think it turned out cool. 3. A lot of warnings! Now, for debugging, and just for sole purpose of a user, i added warnings, so when celestrack is not fetching because of extended use or its own problems (like with starlink sometimes) it just warns u and skips it. If you have reached your IP request limit to celestrack, then you will just have a longer running of loading screen and a message that you can see on the photo. (i have it because i have refreshed the page too much) AI Declaration Now in this devlog i want to also sum up how i used ai. So the sole purpose of his project was for me to learn JS, and this project was really hard for me, so i used AI of course. Mainly i used it so it gave me the general idea of the code that i should have for my ideas, and then i changed it and shaped it so that it turned out the way it did now. Also it helped me with complex tasks, like visible satellites and all the complex stuff, and, of course, debugging. But i still did it myself, and apart from doing this i was also doing a 12 hour course on JS by BroCode, shoutout to him btw! Final thoughts Well, this project was cool but waaaay harder than i expected, thats why i had to use ai. This will definitely help me in my further projects, and i am really proud of the final version. This taught me a lot, and i shure am happy to continue my journey as an engineer (i wanna be a hardware one, but for stardance its just way easier to star with software for me, so might as well learn programming too.). This is also my final project for stardance, and i am really happy. Thank you to everyone who supported me on this project, 100+ views consistently is crazy! See you somewhere in the world, the real world…"}, {"post_id": 66842, "ts": "2026-09-12T19:19:13Z", "hours": 8.8169, "text": "Stars, Satellites, and all the shiny things… Oh, wait, just satellites here.. anyways This devlog took sooo long, but now the only thing thats left is style. For now, progress: 1. All passes and Visible ones You can now see, which ones you can actually see, and which ones are blocked by earth shadow and allat. All passes ore just 0 degrees above the horizon, and visible ones are: above 10 degrees should be outside the earth shadow for us to see should be pretty dark outside should be from a group, that CelesTrack considers bright enough for us to see 2. Satellites already over u group basically the satellites that u can see already. Since those satellites are already in right time above the horizon, we dont have to wait for them, i just divide all satellites in 2 groups, where one is ones over u, and others are the ones we have to wait for, using arleadyup - true or false 3. When you click on a satellite, it actually shows it DAMNNNN I LOVE THIS FEATURE and also it shows a path. 4. 403 warning error Now, when the server answers with 403 error, for example starlink that i have some problems with, programm just skips it. 5.Camera lock in on both pages Self explainatory Plans The most important one: i might delete the starlink satellites. They just dont appear most of the time because of the server, so better drop tham so i didnt have any problems when i ship the project. Apart from that, i the only thing thats left is to add that cool style i wanted hell yeah. Thank you all if you made it so far! Sya on the next one"}, {"post_id": 62032, "ts": "2026-09-05T07:57:07Z", "hours": 6.7536, "text": "Look out of your window. Are those stars, or just satellites? Well, now you can find out, because i added the tracker page, that allows you to see, what satellites pass your selected location. I wont lie. JS is still pretty hard for me, so for this i had to use AI to help me out. But i still manage to understand almost everything from the code, so i hope its ok :) How the hell does it work? This was really tough for me to understand for the code, so for you i will make it easier. Basically, i have 2 libraries, my satellite.js, that is responsible, you guessed it, for satellites and all the info about it, and d3-geo, which is a 3d earth. When you click on the globe, the programm checks if its land or water, because i wanted it to only check satellites on land. How does it do it? Using world - atlas, that has all the coordinates of the land on the earth. If its land, then the programm for every satellite looks its way for every 30 seconds on a period of 24 hours and looks, when its going to be seen on your horizon (must be 40 degrees because of all the trees and buildings). It memorizes the first and last moment above the 40 degree mark on horizon and then it gives the results seen on the screenshot, sorted with time. Flaws, suggestions, ect. So for now it just spits out the info about sattelites, but maybe you have an idea how to make it more visual? i have no idea for now, because i dont want it to be just 60 red dots and everuthing around the point you selected. One idea i had is if you pick any sattelite of the given ones, it shows its path, but it sounds hard as hell, i may use ai again to help me… IF YOU HAVE ANY SUGGESTIONS ABOUT MY PROJECT PLEASE MENTION THEM! I WILL BE MORE THAN HAPPY TO IMPLIMENT IDEAS I LIKED!!! Of course, mentioning the suggestor. Plans Im planningin the end to add that old 90s nasa computer green/black vibe, i really am stoked to see how it will turn out. Thanks! Sorry for not devlogging earlier, was locked in on finishing the whole page"}, {"post_id": 56598, "ts": "2026-08-28T12:42:50Z", "hours": 3.9256, "text": "Wow thats hard. ##Okay, so for the progress i ve made: 1. I added A LOT of other sattelites. So now its not 1, but around 50 or 60, im not shure really. Now there are different kinds of them: -habitated ones, like ISS, Tiangong and so on, and i didnt make a limit on them because theyre the most valuable and recognisable. -CelesTrak, the brightest ones you can clearly see in the sky -GPS satellites -Starlink, but only around 20 -weather ones, like NOAA and GOES 2. every group that i named has their own color! In the future i want to make it so that you could pick only a specific group. 3. What line the satellite will follow. I believe i didnt do this on my previous devlog, anyway, i just show the line that it follows in the period of 90 mins. It goes +- 1 time around the globe, so you could see lol. yeah!"}, {"post_id": 52558, "ts": "2026-08-22T18:43:46Z", "hours": 1.2072, "text": "Started my Satellite Tracker! This project is basically tracking satellites and their orbits in real time. What have i done for now? ###1 . Connected satellite (ISS) info from celestrak. org This basically grabs the info, like name and coordinates 2. Created our planet 3. Added a dot for satellite 4. When you press on it, it spits out info about it, like speed and altitude. Im only learning JS, so i am currently using Claude to navigate me through the whole process and help me with the code, but i try to understand it very hard and i do learn!"}]...
|
Title: SatelliteTracker by @wal | Stardance
Devlo Title: SatelliteTracker by @wal | Stardance
Devlogs:
Started my Satellite Tracker! This project is basically tracking satellites and their orbits in real time. What have i done for now? ###1 . Connected satellite (ISS) info from celestrak. org This basically grabs the info, like name and coordinates 2. Created our planet 3. Added a dot for satellite 4. When you press on it, it spits out info about it, like speed and altitude. Im only learning JS, so i am currently using Claude to navigate me through the whole process and help me with the code, but i try to understand it very hard and i do learn!
Wow thats hard. ##Okay, so for the progress i ve made: 1. I added A LOT of other sattelites. So now its not 1, but around 50 or 60, im not shure really. Now there are different kinds of them: -habitated ones, like ISS, Tiangong and so on, and i didnt make a limit on them because theyre the most valuable and recognisable. -CelesTrak, the brightest ones you can clearly see in the sky -GPS satellites -Starlink, but only around 20 -weather ones, like NOAA and GOES 2. every group that i named has their own color! In the future i want to make it so that you could pick only a specific group. 3. What line the satellite will follow. I believe i didnt do this on my previous devlog, anyway, i just show the line that it follows in the period of 90 mins. It goes +- 1 time around the globe, so you could see lol. yeah!
Look out of your window. Are those stars, or just satellites? Well, now you can find out, because i added the tracker page, that allows you to see, what satellites pass your selected location. I wont lie. JS is still pretty hard for me, so for this i had to use AI to help me out. But i still manage to understand almost everything from the code, so i hope its ok :) How the hell does it work? This was really tough for me to understand for the code, so for you i will make it easier. Basically, i have 2 libraries, my satellite.js, that is responsible, you guessed it, for satellites and all the info about it, and d3-geo, which is a 3d earth. When you click on the globe, the programm checks if its land or water, because i wanted it to only check satellites on land. How does it do it? Using world - atlas, that has all the coordinates of the land on the earth. If its land, then the programm for every satellite looks its way for every 30 seconds on a period of 24 hours and looks, when its going to be seen on your horizon (must be 40 degrees because of all the trees and buildings). It memorizes the first and last moment above the 40 degree mark on horizon and then it gives the results seen on the screenshot, sorted with time. Flaws, suggestions, ect. So for now it just spits out the info about sattelites, but maybe you have an idea how to make it more visual? i have no idea for now, because i dont want it to be just 60 red dots and everuthing around the point you selected. One idea i had is if you pick any sattelite of the given ones, it shows its path, but it sounds hard as hell, i may use ai again to help me… IF YOU HAVE ANY SUGGESTIONS ABOUT MY PROJECT PLEASE MENTION THEM! I WILL BE MORE THAN HAPPY TO IMPLIMENT IDEAS I LIKED!!! Of course, mentioning the suggestor. Plans Im planningin the end to add that old 90s nasa computer green/black vibe, i really am stoked to see how it will turn out. Thanks! Sorry for not devlogging earlier, was locked in on finishing the whole page
Stars, Satellites, and all the shiny things… Oh, wait, just satellites here.. anyways This devlog took sooo long, but now the only thing thats left is style. For now, progress: 1. All passes and Visible ones You can now see, which ones you can actually see, and which ones are blocked by earth shadow and allat. All passes ore just 0 degrees above the horizon, and visible ones are: above 10 degrees should be outside the earth shadow for us to see should be pretty dark outside should be from a group, that CelesTrack considers bright enough for us to see 2. Satellites already over u group basically the satellites that u can see already. Since those satellites are already in right time above the horizon, we dont have to wait for them, i just divide all satellites in 2 groups, where one is ones over u, and others are the ones we have to wait for, using arleadyup - true or false 3. When you click on a satellite, it actually shows it DAMNNNN I LOVE THIS FEATURE and also it shows a path. 4. 403 warning error Now, when the server answers with 403 error, for example starlink that i have some problems with, programm just skips it. 5.Camera lock in on both pages Self explainatory Plans The most important one: i might delete the starlink satellites. They just dont appear most of the time because of the server, so better drop tham so i didnt have any problems when i ship the project. Apart from that, i the only thing thats left is to add that cool style i wanted hell yeah. Thank you all if you made it so far! Sya on the next one
I IMAGINED, I PROGRAMMED, I CONQUERED. The Satellite tracker might just be done! Changes!! 1. VISUALS holy hell it was harder than i expected but i made it. so i added stars, cool buttons, cool font, and allat. I am really proud of this work, because it looks really cool now 2. Loading Screen now this one is so cool, i really like how it turned out and it was pretty easy to make it. But i was honestly so tired at that point that i just wrote the first stuff that came into my mind. but i still think it turned out cool. 3. A lot of warnings! Now, for debugging, and just for sole purpose of a user, i added warnings, so when celestrack is not fetching because of extended use or its own problems (like with starlink sometimes) it just warns u and skips it. If you have reached your IP request limit to celestrack, then you will just have a longer running of loading screen and a message that you can see on the photo. (i have it because i have refreshed the page too much) AI Declaration Now in this devlog i want to also sum up how i used ai. So the sole purpose of his project was for me to learn JS, and this project was really hard for me, so i used AI of course. Mainly i used it so it gave me the general idea of the code that i should have for my ideas, and then i changed it and shaped it so that it turned out the way it did now. Also it helped me with complex tasks, like visible satellites and all the complex stuff, and, of course, debugging. But i still did it myself, and apart from doing this i was also doing a 12 hour course on JS by BroCode, shoutout to him btw! Final thoughts Well, this project was cool but waaaay harder than i expected, thats why i had to use ai. This will definitely help me in my further projects, and i am really proud of the final version. This taught me a lot, and i shure am happy to continue my journey as an engineer (i wanna be a hardware one, but for stardance its just way easier to star with software for me, so might as well learn programming too.). This is also my final project for stardance, and i am really happy. Thank you to everyone who supported me on this project, 100+ views consistently is crazy! See you somewhere in the world, the real world…
Ships:
Hi everyone! I made a project called “SatelliteTracker”. So this is a cool app that tracks satellites real time built on JS and Globe.jl The project shows different satellites (not all of them, because otherwise there would be around 10 000 of them), and also can show you visible satellites based on the location you picked. The most challenging part was making it lol. The whole purpose of this project for me was to learn JS, which i for shure did, but anyways it was soo overwhelming. I am really proud of how it turned out, it looks super good, and i am proud that i commited with my idea, because now i get to show everyone this project to get a reaction like: “Yoo thats so cool!”. Apart from the jokes, i am really proud to have learned a new language and to have come out of my comfort zone. Things you should know-Starlink satellites dont always load! And also i made warnings in the console so you could see what works and what doesnt. Also, please dont refresh the page too often, otherwise celestrack will stop accepting yo requests…and you will have a looser window, you dont want that! Thank you everyone, enjoy!...
|
1793152335.987161
|
1793238735.987161
|
|
57893
|
Poopsweeper🐶💩 by @matyi | Stardance
|
matyi
|
1
|
25.0
|
180
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T20:30:22Z", "hours": 25.0, "multiplier": 7.3, "payout": 180, "blessing": "neutral", "text": "Hello guys! I am happy that I am finally able to ship Poopsweeper. I had worked a lot on this project and was heavily motivated at the start of it, but sadly I started slacking off in the last few days. However, I could push through it and finally finish the project. It was my most challenging idea so far, because of the logic of the whole game. Although most of the time I was really frustrated with it because I just couldn’t figure out how it had to work, I eventually got it to work. I had used AI for this project, but only for explaining stuff (more in the readme). When I showed my progress to my friends, they were all amazed by it and even started playing it in their free time. A funny memory I got from the project was when I was nearly finished with it, and I decided to show it to my I.T. teacher, Mr. John, who is a really interesting figure. He is funny-looking and acts funny, so most of the time we have a laugh about him. When he tried the game, he criticized the name of the project, saying that it’s inappropriate and that I should work on my naming. After he tried the game and failed, he just said “good”, which we then started laughing at because of the way he said it. I am really thankful to Stardance for getting me to do something and actually improve my skills and even rewarding me. Here is how the game works: the game is basically just a Minesweeper variant that has dog poop and bags instead of the traditional mines and flags. The idea came from my dog, Csoki. He is the reason why I was so motivated to finish this whole project. The whole game has about 1058 lines of code :) Website link: https://poop.matyi.top", "repo": "https://github.com/CSOKIIKA69/poopsweeper", "demo": "https://poop.matyi.top"}]...
|
[{"post_id": 79145, "ts": "202 [{"post_id": 79145, "ts": "2026-10-12T20:09:35Z", "hours": 8.315, "text": "FINALLY FINISHED HTML: Added efficiency to the results CSS: Made the main menu look a little better on bigger screens JS: Made timeSec global Added results display Adjusted 3BV display Fixed if statement Added exploreZero function Added tBV function The link is poop.matyi.top!"}, {"post_id": 74251, "ts": "2026-09-27T02:03:44Z", "hours": 7.8533, "text": "Poopsweeper Devlog #2 What I’ve done CSS: Changed class ‘bomb’ to ‘bombflag’ Changed the board’s and the cells’ colors HTML: Replaced the function on the click of the menu buttons Added restartGame function to button in board-header JS: Added flag, gameOver variable Disabled ContextMenu Cleaned up setDiff function Finished handleFlagCounter, function Added endGame function Added revealColor function Finished revealEmptyCell function Finished and cleaned up revealCell function Added placeFlag function Added mobile check Added restartGame function Cleaned up and finished createBoard function What is yet to be done Adding a leaderboard Adding the timer Adding a proper winning and losing system Adding CSS for PC Fixing the look of the counters Adding back buttons When clicking a cell that has all of its flags placed, it reveals the neighbours AI Usage Used it to explain how the whole website should be built up Guiding me with the code, what needs to be added, how it needs to be, what I don’t need, what to improve on No Spoon-feeding (I don’t ask for code from the AI) Website preview - Please give me feedback If you are visiting on PC, press Ctrl + Shift + M to switch into responsive mode, allowing you to use the phone version of the website!"}, {"post_id": 63651, "ts": "2026-09-07T16:00:06Z", "hours": 8.5047, "text": "Poopsweeper Devlog #1 In the red squares are the screenshots of the mobile version, blue is of the PC What I’ve done so far Finished the look for mobile Finished with HTML Cleaned / cleaning up the .js file and the functions in it What is yet to be done Adding the logistics Adding a leaderboard Adding CSS for PC AI Usage Used it to explain how the whole website should be built up Guiding me with the code, what needs to be added, how it needs to be, what I don’t need, what to imporve on No Spoon-feeding (I don’t ask for code from the AI) Website preview"}]...
|
Title: Poopsweeper🐶💩 by @matyi | Stardance
Devlog Title: Poopsweeper🐶💩 by @matyi | Stardance
Devlogs:
Poopsweeper Devlog #1 In the red squares are the screenshots of the mobile version, blue is of the PC What I’ve done so far Finished the look for mobile Finished with HTML Cleaned / cleaning up the .js file and the functions in it What is yet to be done Adding the logistics Adding a leaderboard Adding CSS for PC AI Usage Used it to explain how the whole website should be built up Guiding me with the code, what needs to be added, how it needs to be, what I don’t need, what to imporve on No Spoon-feeding (I don’t ask for code from the AI) Website preview
Poopsweeper Devlog #2 What I’ve done CSS: Changed class ‘bomb’ to ‘bombflag’ Changed the board’s and the cells’ colors HTML: Replaced the function on the click of the menu buttons Added restartGame function to button in board-header JS: Added flag, gameOver variable Disabled ContextMenu Cleaned up setDiff function Finished handleFlagCounter, function Added endGame function Added revealColor function Finished revealEmptyCell function Finished and cleaned up revealCell function Added placeFlag function Added mobile check Added restartGame function Cleaned up and finished createBoard function What is yet to be done Adding a leaderboard Adding the timer Adding a proper winning and losing system Adding CSS for PC Fixing the look of the counters Adding back buttons When clicking a cell that has all of its flags placed, it reveals the neighbours AI Usage Used it to explain how the whole website should be built up Guiding me with the code, what needs to be added, how it needs to be, what I don’t need, what to improve on No Spoon-feeding (I don’t ask for code from the AI) Website preview - Please give me feedback If you are visiting on PC, press Ctrl + Shift + M to switch into responsive mode, allowing you to use the phone version of the website!
FINALLY FINISHED HTML: Added efficiency to the results CSS: Made the main menu look a little better on bigger screens JS: Made timeSec global Added results display Adjusted 3BV display Fixed if statement Added exploreZero function Added tBV function The link is poop.matyi.top!
Ships:
Hello guys! I am happy that I am finally able to ship Poopsweeper. I had worked a lot on this project and was heavily motivated at the start of it, but sadly I started slacking off in the last few days. However, I could push through it and finally finish the project. It was my most challenging idea so far, because of the logic of the whole game. Although most of the time I was really frustrated with it because I just couldn’t figure out how it had to work, I eventually got it to work. I had used AI for this project, but only for explaining stuff (more in the readme). When I showed my progress to my friends, they were all amazed by it and even started playing it in their free time. A funny memory I got from the project was when I was nearly finished with it, and I decided to show it to my I.T. teacher, Mr. John, who is a really interesting figure. He is funny-looking and acts funny, so most of the time we have a laugh about him. When he tried the game, he criticized the name of the project, saying that it’s inappropriate and that I should work on my naming. After he tried the game and failed, he just said “good”, which we then started laughing at because of the way he said it. I am really thankful to Stardance for getting me to do something and actually improve my skills and even rewarding me. Here is how the game works: the game is basically just a Minesweeper variant that has dog poop and bags instead of the traditional mines and flags. The idea came from my dog, Csoki. He is the reason why I was so motivated to finish this whole project. The whole game has about 1058 lines of code :) Website link: https://poop.matyi.top...
|
1793199104.6055524
|
1793285504.6055524
|
|
58792
|
rememberance by @Tyo | Stardance
|
Tyo
|
1
|
25.0
|
331
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-27T14:28:52Z", "hours": 25.0, "multiplier": 13.41, "payout": 331, "blessing": "neutral", "text": "Remember me~ Oh shoot! Rememberance!~ Is a game I had in a dream!~ Imagine you had the biggest amnesia that you don’t even remember your name! Well then, 24 hours, find it, find other information about you and confront God!! Maybe?", "repo": "https://github.com/SteelyxEpic/Rememberance", "demo": "https://tyoepic.itch.io/rememberance"}]...
|
[{"post_id": 74487, "ts": "202 [{"post_id": 74487, "ts": "2026-09-27T14:23:34Z", "hours": 1.5094, "text": "It’s finally done! The ending, the VA, the everything! YESS, I can finally slep _"}, {"post_id": 73622, "ts": "2026-09-25T14:44:04Z", "hours": 8.2239, "text": "ARGHHHH, it’s been a week!~ and I’ve been busy adding all the voicelines and LOREEE into the gamee!~~~ All I need more is to do some more polishing and package it up into a sweet deal! p.s stardance is continuing until october! which means more time to finish this project!!! (I’m genuinely so burned out :p)"}, {"post_id": 69044, "ts": "2026-09-16T08:34:45Z", "hours": 2.3375, "text": "Quick break to add a lil bit of Sound effect!~~~ Okie that’s all, back to making the LOREEEE. Hehe~"}, {"post_id": 68951, "ts": "2026-09-16T03:12:18Z", "hours": 2.2036, "text": "The last room!!!! The last room has been added and therefore it’s now finally time to add contenttttt! Yey!~~~ <3 The plan is simple, you find notes, cassettes and other items to piece together who you are. Then when the day ends, God will ask for who you are, answer right and you wake from this nightmare. Answer wrong and you will dwell in eternity…. OMG I can’t wait to add all the LORE (if you can’t tell, I love game theory hehe~ :3) okie bai!"}, {"post_id": 67080, "ts": "2026-09-13T04:04:09Z", "hours": 1.5656, "text": "Hi Hi!~~~ Kinda small today but I just really wanna show you guys what I did!!!! I finally made the mirrors workinggggg!!!!! AND I LOVE IT <3 it’s exactly how I imagined the mirrors to act!!! Anyways, that’s all!~ I’m gonna go actually make the puzzles now. Bai~~"}, {"post_id": 66563, "ts": "2026-09-12T12:17:25Z", "hours": 3.0983, "text": "Woah! More kewl stuff!~ The lights are still out but I have reached an agreement, this game is like a rougelite, however the only thing carried over is information on yourself, and within 7 days, you have to have all the information about yourself. Yea! Keys are universal in this so it can unlock any type of door or other containers. That’s all, cya!~"}, {"post_id": 66002, "ts": "2026-09-11T14:56:46Z", "hours": 2.3408, "text": "Another day, another something I wanted to add! This time it’s the really cool Interaction circle. I thought it would be fun to add it and also allows me to be able to help in a lot of things like, using items in the future wink wink anyways that’s all! I think I wanna try my hands on something more extraterrestrial next, hehe~ cya! <3"}, {"post_id": 64612, "ts": "2026-09-09T04:08:46Z", "hours": 3.4489, "text": "Time for something new! I had this idea since I started godot while making the best minigame game ever (true to title :3) so I’m doing it now!~ I started off with this ominous little safe that took me much longer than I expected to make and also a bunch of artwork!~ (like 30 different drawings :p) hopefully the rest of the parts would be smooth sailing and I can finally make the game of my dreams (literally! Hehe~)"}]...
|
Title: rememberance by @Tyo | Stardance
Devlogs:
Title: rememberance by @Tyo | Stardance
Devlogs:
Time for something new! I had this idea since I started godot while making the best minigame game ever (true to title :3) so I’m doing it now!~ I started off with this ominous little safe that took me much longer than I expected to make and also a bunch of artwork!~ (like 30 different drawings :p) hopefully the rest of the parts would be smooth sailing and I can finally make the game of my dreams (literally! Hehe~)
Another day, another something I wanted to add! This time it’s the really cool Interaction circle. I thought it would be fun to add it and also allows me to be able to help in a lot of things like, using items in the future wink wink anyways that’s all! I think I wanna try my hands on something more extraterrestrial next, hehe~ cya! <3
Woah! More kewl stuff!~ The lights are still out but I have reached an agreement, this game is like a rougelite, however the only thing carried over is information on yourself, and within 7 days, you have to have all the information about yourself. Yea! Keys are universal in this so it can unlock any type of door or other containers. That’s all, cya!~
Hi Hi!~~~ Kinda small today but I just really wanna show you guys what I did!!!! I finally made the mirrors workinggggg!!!!! AND I LOVE IT <3 it’s exactly how I imagined the mirrors to act!!! Anyways, that’s all!~ I’m gonna go actually make the puzzles now. Bai~~
The last room!!!! The last room has been added and therefore it’s now finally time to add contenttttt! Yey!~~~ <3 The plan is simple, you find notes, cassettes and other items to piece together who you are. Then when the day ends, God will ask for who you are, answer right and you wake from this nightmare. Answer wrong and you will dwell in eternity…. OMG I can’t wait to add all the LORE (if you can’t tell, I love game theory hehe~ :3) okie bai!
Quick break to add a lil bit of Sound effect!~~~ Okie that’s all, back to making the LOREEEE. Hehe~
ARGHHHH, it’s been a week!~ and I’ve been busy adding all the voicelines and LOREEE into the gamee!~~~ All I need more is to do some more polishing and package it up into a sweet deal! p.s stardance is continuing until october! which means more time to finish this project!!! (I’m genuinely so burned out :p)
It’s finally done! The ending, the VA, the everything! YESS, I can finally slep _
Ships:
Remember me~ Oh shoot! Rememberance!~ Is a game I had in a dream!~ Imagine you had the biggest amnesia that you don’t even remember your name! Well then, 24 hours, find it, find other information about you and confront God!! Maybe?...
|
1793152497.9883711
|
1793238897.9883711
|
|
59695
|
LP Calculator by @TurtleGod | Stardance
|
TurtleGod
|
1
|
25.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-18T04:03:24Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a flask app that is currently being hosted on vercel that calculates loyalty points with American Airlines. It is supposed to be better than the other options out there by providing a cleaner, more intuitive UI, with new features with a timeline showing status progression. What was challenging with this was kinda just figuring out the web-end of it. I normally only code backend stuff so this is one of the few times where I had to work on a full frontend without getting someone else to help me. (I did use AI to assist me with this task though). In the end, I did persevere and I’m appreciative of the end result I have created. Picture 1 shows the map view of the website, and Picture 2 shows the loyalty timeline.", "repo": "https://github.com/TurtleGod7/LP-calculator", "demo": "https://lp-calculator-three.vercel.app"}]...
|
[{"post_id": 69948, "ts": "202 [{"post_id": 69948, "ts": "2026-09-18T03:40:59Z", "hours": 3.6178, "text": "Devlog #3 - the final one? Hi, so I’ve been working on minor stuff. added a light mode my eyes hurt looking at this T_T pic 1 fixed weird rending issue with trans-pacific flights added the LP bonus tiers from AA website pic 2 (yes I turned dark mode back on) To be honest, this is as much as I can think of, I really don’t want the scope of this project to get too far fetched with trip optimization as it’s supposed to be a cool looking tool, not really a planning agent. Probably my next project will be creating a personal website."}, {"post_id": 66358, "ts": "2026-09-12T04:39:09Z", "hours": 2.3864, "text": "Devlog 2 (How did I just realize markdown works here 😭) Anyways , so things I added. Not really much, i’m kinda running out of ideas of what to add since the project has been mostly fleshed out so here are just cool things I thought to add: Modified Trip Render Logic Issue: Used to keep shifting a reference frame along a flattened list of segments Effect: If trips are added in a certain way, it can put marker rendering at far distances on the map Solution: Changed to localize on origin of each trip, leading to renderings to center around 1 map (Refer to Pic 1) Expanded map view on loyalty timeline Just zooms out on all trips Kinda looks cool :) (Refer to Pic 1) Airport Website/Wikipedia Links you to the airports webpage when clicking on its tooltip Random renaming Made some names more consistent, reduced unneeded files"}, {"post_id": 64586, "ts": "2026-09-09T02:59:10Z", "hours": 18.9711, "text": "I realized stardance was a thing, and I had this project I wanted to add that I had been working on. Currently, it has the ability to add multiple trips, each with multiple segments, with each being able to be compared. This can be used to maximize loyalty status with AA, and has a cleaner UI with extra features, like the loyalty timeline. (1st image is initial starting page, 2nd image is the loyalty timeline, 3rd image is an example trip in the webpage)."}]...
|
Title: LP Calculator by @TurtleGod | Stardance
De Title: LP Calculator by @TurtleGod | Stardance
Devlogs:
I realized stardance was a thing, and I had this project I wanted to add that I had been working on. Currently, it has the ability to add multiple trips, each with multiple segments, with each being able to be compared. This can be used to maximize loyalty status with AA, and has a cleaner UI with extra features, like the loyalty timeline. (1st image is initial starting page, 2nd image is the loyalty timeline, 3rd image is an example trip in the webpage).
Devlog 2 (How did I just realize markdown works here 😭) Anyways , so things I added. Not really much, i’m kinda running out of ideas of what to add since the project has been mostly fleshed out so here are just cool things I thought to add: Modified Trip Render Logic Issue: Used to keep shifting a reference frame along a flattened list of segments Effect: If trips are added in a certain way, it can put marker rendering at far distances on the map Solution: Changed to localize on origin of each trip, leading to renderings to center around 1 map (Refer to Pic 1) Expanded map view on loyalty timeline Just zooms out on all trips Kinda looks cool :) (Refer to Pic 1) Airport Website/Wikipedia Links you to the airports webpage when clicking on its tooltip Random renaming Made some names more consistent, reduced unneeded files
Devlog #3 - the final one? Hi, so I’ve been working on minor stuff. added a light mode my eyes hurt looking at this T_T pic 1 fixed weird rending issue with trans-pacific flights added the LP bonus tiers from AA website pic 2 (yes I turned dark mode back on) To be honest, this is as much as I can think of, I really don’t want the scope of this project to get too far fetched with trip optimization as it’s supposed to be a cool looking tool, not really a planning agent. Probably my next project will be creating a personal website.
Ships:
I made a flask app that is currently being hosted on vercel that calculates loyalty points with American Airlines. It is supposed to be better than the other options out there by providing a cleaner, more intuitive UI, with new features with a timeline showing status progression. What was challenging with this was kinda just figuring out the web-end of it. I normally only code backend stuff so this is one of the few times where I had to work on a full frontend without getting someone else to help me. (I did use AI to assist me with this task though). In the end, I did persevere and I’m appreciative of the end result I have created. Picture 1 shows the map view of the website, and Picture 2 shows the loyalty timeline....
|
1793202496.4623091
|
1793288896.4623091
|
|
21247
|
Builder's Toolkit by @netheriteREX | Stardance
|
netheriteREX
|
0
|
24.99
|
0
|
[]
|
[{"post_id": 60555, "ts": "202 [{"post_id": 60555, "ts": "2026-09-02T23:39:49Z", "hours": 11.3547, "text": "The Drafting Table… Made for the Builder’s Toolkit Minecraft Mod Important changes The drafting table is finally out! With it, you can edit the colors of a banner’s patterns without having to waste wool and dye to replace it. Unfortunately, I won’t be adding the player head functionality, as actually getting a skin requires a paid API, and I’m not making this project paid in any way. Star this project on Github, and enjoy the glitches :)"}, {"post_id": 30413, "ts": "2026-07-17T22:29:34Z", "hours": 9.0017, "text": "Player Head and Banner Overhaul (sorta) For the newbies (YES THAT INCLUDES YOU) There are certain cool building techniques that, unfortunately, are exclusive to commands. With this Fabric mod, you can use player heads, have invisible item frames, pose armor stands, and create complex particle designs, all from the comfort of your crafting table! Important changes Player heads are now obtainable in survival! You can craft them by surrounding a piece of obsidian with clay balls. Changing the skin will be sorted out by the time the next devlog releases. In vanilla Minecraft, banners only get 6 layers for their design. If you abuse commands or use an NBT editor, you can get a banner with 16 layers, but I think that’s an odd limitation. With this mod, that cap is expanded to 16 layers (have fun making a layer for each dye in the game). You can still duplicate the banner or add it to a shield like normal. Plans If you look in the project’s Github (consider starring it btw), I am planning to add a block that can both edit a player head’s skin and change the color for any banner layer. For the former, the block will generate 3 dyes that you need to collect to change the skin. Ultimately, I want this to feel like a quick little side adventure for players. Add a particle painter to the game. The particle can be configured by including certain items in a crafting table, and there are two modes. One spawns particles at the player’s position, and the other paints particles onto blocks (y’know, like an actual paintbrush) thanks for actually reading! (also consider starring the project on Github ) because I never want to see a Mixin ever again."}, {"post_id": 20903, "ts": "2026-07-02T17:03:13Z", "hours": 4.6317, "text": "A new Minecraft mod! What is it about tho?? There are certain cool building techniques that, unfortunately, are exclusive to commands. With this Fabric mod, you can use player heads, have invisible item frames, pose armor stands, and create complex particle designs, all from the comfort of your crafting table! Where am I at? I have added an item called a clear dye, which is used to make armor stands and item frames invisible. You can clear this effect by right-clicking with a water bottle. Lastly, you can add ARMS© to the armor stand by right-clicking with 2 sticks. Plans (feel free to dm me on Slack for ideas btw) Create debug renderer for invis’d armor stands Create item/UI for posing armor stands Add a particle painter to the game. The particle can be configured by including certain items in a crafting table, and there are two modes. One spawns particles at the player’s position, and the other paints particles onto blocks (y’know, like an actual paintbrush) also have these nice development images"}]...
|
Title: Builder's Toolkit by @netheriteREX | St Title: Builder's Toolkit by @netheriteREX | Stardance
Devlogs:
A new Minecraft mod! What is it about tho?? There are certain cool building techniques that, unfortunately, are exclusive to commands. With this Fabric mod, you can use player heads, have invisible item frames, pose armor stands, and create complex particle designs, all from the comfort of your crafting table! Where am I at? I have added an item called a clear dye, which is used to make armor stands and item frames invisible. You can clear this effect by right-clicking with a water bottle. Lastly, you can add ARMS© to the armor stand by right-clicking with 2 sticks. Plans (feel free to dm me on Slack for ideas btw) Create debug renderer for invis’d armor stands Create item/UI for posing armor stands Add a particle painter to the game. The particle can be configured by including certain items in a crafting table, and there are two modes. One spawns particles at the player’s position, and the other paints particles onto blocks (y’know, like an actual paintbrush) also have these nice development images
Player Head and Banner Overhaul (sorta) For the newbies (YES THAT INCLUDES YOU) There are certain cool building techniques that, unfortunately, are exclusive to commands. With this Fabric mod, you can use player heads, have invisible item frames, pose armor stands, and create complex particle designs, all from the comfort of your crafting table! Important changes Player heads are now obtainable in survival! You can craft them by surrounding a piece of obsidian with clay balls. Changing the skin will be sorted out by the time the next devlog releases. In vanilla Minecraft, banners only get 6 layers for their design. If you abuse commands or use an NBT editor, you can get a banner with 16 layers, but I think that’s an odd limitation. With this mod, that cap is expanded to 16 layers (have fun making a layer for each dye in the game). You can still duplicate the banner or add it to a shield like normal. Plans If you look in the project’s Github (consider starring it btw), I am planning to add a block that can both edit a player head’s skin and change the color for any banner layer. For the former, the block will generate 3 dyes that you need to collect to change the skin. Ultimately, I want this to feel like a quick little side adventure for players. Add a particle painter to the game. The particle can be configured by including certain items in a crafting table, and there are two modes. One spawns particles at the player’s position, and the other paints particles onto blocks (y’know, like an actual paintbrush) thanks for actually reading! (also consider starring the project on Github ) because I never want to see a Mixin ever again.
The Drafting Table… Made for the Builder’s Toolkit Minecraft Mod Important changes The drafting table is finally out! With it, you can edit the colors of a banner’s patterns without having to waste wool and dye to replace it. Unfortunately, I won’t be adding the player head functionality, as actually getting a skin requires a paid API, and I’m not making this project paid in any way. Star this project on Github, and enjoy the glitches :)...
|
1793263810.0638354
|
1793868610.0638354
|
|
48109
|
Driver for DIY 6-Axis Robotic Arm by @Hummelkoenig Driver for DIY 6-Axis Robotic Arm by @Hummelkoenig | Stardance...
|
Hummelkoenig
|
0
|
24.97
|
0
|
[]
|
[{"post_id": 74649, "ts": "202 [{"post_id": 74649, "ts": "2026-09-27T21:01:40Z", "hours": 14.0586, "text": "Update 5 I was coding the software for the Raspberry Pi 5 and Pico. For communication, I set up a communication protocol with an exact syntax so that the programs can understand the commands. The Pico has all the commands as inputs, converts them into pulse signals, handles all the parallel pulses, and keeps the Pi updated on the status of the components. The Pi hosts a website on localhost:5000 where the user can enter all the data and select the mode. The Pi then converts the inputs into a command and sends it to the Pico. In the future, the Pi will create a digital clone of the arm, where you can simply enter the coordinates and the Pi will handle all the calculations for the kinematics. I also wired all the necessary connections, but I didn’t get a chance to CNC-cut the other parts of the case. For the base plate, I 3D-printed one. Luckily, my print bed was just big enough by a few millimeters. Next, I will try to get everything working together and make a video of it to submit. Sadly, I won’t be able to finish everything in the next few days before the deadline."}, {"post_id": 51952, "ts": "2026-08-21T22:19:59Z", "hours": 6.7428, "text": "Update 4 The last few days, I was designing the case and fixing bugs and problems on my PCB. First, I laid out all the components I need to minimise the space and wiring. I came up with the idea that I could use the power supply (the silver shiny metal box) as the base and put the stepper drivers (the black boxes with the green connectors, TB6600s) on top, facing upwards with the connectors on top. This way they are compact and easy to wire. I only had to find a way to attach them to something underneath, so I designed a layer between the top of the power supply and the feet of the drivers. The Raspberry Pi (the red and white box) is almost the same size as one driver, so I can put it at the front of the line of drivers. The same goes for the PCB I designed. I also had to keep in mind that the USB cable needs space and that the Raspberry Pi 5 is powered via USB-C on the top. While planning the box, I noticed that I also have to cool the drivers. Luckily, I found some old PC fans in my storage with almost the perfect dimensions: 80 × 80 × 20 mm. They were really practical because I had some space left on the left side of the drivers, and one fan can provide airflow for three of the six drivers. So I was really lucky that I already had two of them. The only problem I will have with them is connecting them. One fan only has two wires, 12 V and GND. That’s not really a problem; I just have to add another voltage level to the box. The other fan has four wires, which is a bit more complex. I haven’t done the research on that yet, but I will hopefully figure it out. I know that two of the wires are 12 V and GND, and the other two are for PWM/control and RPM feedback. I still had some GPIOs left on my PCB, so I also added connectors for them, which could be really helpful for controlling the fans. I’m not sure yet if or how I can use them, though. If you know anything about this or have some ideas, I would be happy to get some comments, so please write something if you want! After figuring out the layout, I opened Fusion 360. I was also thinking about which material I should use for the case. 3D printing would be easy, but at this size it would take a long time, use a lot of filament, and my 3D printer is too small anyway. So what other options do I have? Metal would also be a good material, but I can’t weld or bend it, and CNC machining metal would be expensive and heavy for something that doesn’t really need to be made out of metal. So there was one final option: WOOD. My father has some plywood lying around, so it would basically cost me nothing and is relatively easy to work with. Unfortunately, I’m sometimes a perfectionist when my German side kicks in, and I’m also not the best at woodworking. But I can do CAD. So I came up with the idea that wood could actually work if I can find somebody with a CNC machine to cut it. Disclaimer: I haven’t asked anybody yet, but next Tuesday I’m going to ask around at the local workshop to see if I can use a CNC machine there. Otherwise, I might have to wait until the end of the holidays in three weeks and ask my teacher. But like I said, I already designed the whole box. I used the layout I figured out, the dimensions of all the components, and a wall thickness of 9 mm, based on the plywood I have available. Instead of just putting everything into a simple rectangular box, I designed the inside around the components themselves. This should keep everything in place and hopefully make the wiring cleaner. I also added ventilation slots to the case so the air from the fans has a way to move through the enclosure instead of just blowing against the drivers. I also already added all the holes at their hopefully perfect positions. I will use M3 and M4 screws, as well as some wood screws that I will hopefully find somewhere in the box in the garage."}, {"post_id": 47725, "ts": "2026-08-15T20:32:27Z", "hours": 2.6733, "text": "PCB Design I designed the PCB, trying to keep all components as compact and close together as possible. I had some difficulties deciding on the layout, especially because of the position of the USB port, where a cable will need to be connected later. I also had to consider the appropriate trace widths for the different signals and power connections. Later, I added M3 mounting holes to make it possible to securely mount the PCB."}, {"post_id": 47482, "ts": "2026-08-15T12:39:28Z", "hours": 0.35, "text": "I wrote down the plan based on all the thoughts and little sketches that were scattered around my desk. Explanation: The robot arm has six stepper motors for its six degrees of freedom (DOF). These motors require drivers, so I will use six TB6600 stepper motor drivers. I chose them because they are reliable, can handle the voltage and current required by my stepper motors, and I already had bought six of them for this project. I also tested TMC2209 drivers from BigTreeTech, but I could not get them to work reliably with my Arduino and the stepper motors I bought. During testing, I also fried several of the drivers. The stepper drivers are controlled by a motion controller based on a Raspberry Pi Pico. It calculates the required steps and speeds based on commands received from the RP5 via USB and sends the corresponding STEP/DIR signals to the drivers. The Raspberry Pi Pico is powered through a DC-DC buck converter. I chose this setup because I am concerned about potentially damaging the RP5. The Pico is also connected to seven limit switches, which are used to home the robot arm. I have seven switches because I had one pin spare, which I plan to use for another function later. In addition, the controller has an enable-control LED and three servo outputs, which I will need for additional functions and could connect because I still had three GPIO pins available. The six stepper drivers are powered by a 500 W, 24 V, 21 A power supply."}, {"post_id": 47453, "ts": "2026-08-15T11:51:47Z", "hours": 1.1492, "text": "I was drawing circuit diagram from part research and sketches assigning the footprints. Sadly I wasn’t Recording my self doing all the research, I was making a plan searching for parts testet some things, but thes like 5 h don’t count now what is realy sad. Now I will make the sketches go online and I explain more the plan befor i proceed with desining the PCB."}]...
|
Title: Driver for DIY 6-Axis Robotic Arm by @Humme Title: Driver for DIY 6-Axis Robotic Arm by @Hummelkoenig | Stardance
Devlogs:
I was drawing circuit diagram from part research and sketches assigning the footprints. Sadly I wasn’t Recording my self doing all the research, I was making a plan searching for parts testet some things, but thes like 5 h don’t count now what is realy sad. Now I will make the sketches go online and I explain more the plan befor i proceed with desining the PCB.
I wrote down the plan based on all the thoughts and little sketches that were scattered around my desk. Explanation: The robot arm has six stepper motors for its six degrees of freedom (DOF). These motors require drivers, so I will use six TB6600 stepper motor drivers. I chose them because they are reliable, can handle the voltage and current required by my stepper motors, and I already had bought six of them for this project. I also tested TMC2209 drivers from BigTreeTech, but I could not get them to work reliably with my Arduino and the stepper motors I bought. During testing, I also fried several of the drivers. The stepper drivers are controlled by a motion controller based on a Raspberry Pi Pico. It calculates the required steps and speeds based on commands received from the RP5 via USB and sends the corresponding STEP/DIR signals to the drivers. The Raspberry Pi Pico is powered through a DC-DC buck converter. I chose this setup because I am concerned about potentially damaging the RP5. The Pico is also connected to seven limit switches, which are used to home the robot arm. I have seven switches because I had one pin spare, which I plan to use for another function later. In addition, the controller has an enable-control LED and three servo outputs, which I will need for additional functions and could connect because I still had three GPIO pins available. The six stepper drivers are powered by a 500 W, 24 V, 21 A power supply.
PCB Design I designed the PCB, trying to keep all components as compact and close together as possible. I had some difficulties deciding on the layout, especially because of the position of the USB port, where a cable will need to be connected later. I also had to consider the appropriate trace widths for the different signals and power connections. Later, I added M3 mounting holes to make it possible to securely mount the PCB.
Update 4 The last few days, I was designing the case and fixing bugs and problems on my PCB. First, I laid out all the components I need to minimise the space and wiring. I came up with the idea that I could use the power supply (the silver shiny metal box) as the base and put the stepper drivers (the black boxes with the green connectors, TB6600s) on top, facing upwards with the connectors on top. This way they are compact and easy to wire. I only had to find a way to attach them to something underneath, so I designed a layer between the top of the power supply and the feet of the drivers. The Raspberry Pi (the red and white box) is almost the same size as one driver, so I can put it at the front of the line of drivers. The same goes for the PCB I designed. I also had to keep in mind that the USB cable needs space and that the Raspberry Pi 5 is powered via USB-C on the top. While planning the box, I noticed that I also have to cool the drivers. Luckily, I found some old PC fans in my storage with almost the perfect dimensions: 80 × 80 × 20 mm. They were really practical because I had some space left on the left side of the drivers, and one fan can provide airflow for three of the six drivers. So I was really lucky that I already had two of them. The only problem I will have with them is connecting them. One fan only has two wires, 12 V and GND. That’s not really a problem; I just have to add another voltage level to the box. The other fan has four wires, which is a bit more complex. I haven’t done the research on that yet, but I will hopefully figure it out. I know that two of the wires are 12 V and GND, and the other two are for PWM/control and RPM feedback. I still had some GPIOs left on my PCB, so I also added connectors for them, which could be really helpful for controlling the fans. I’m not sure yet if or how I can use them, though. If you know anything about this or have some ideas, I would be happy to get some comments, so please write something if you want! After figuring out the layout, I opened Fusion 360. I was also thinking about which material I should use for the case. 3D printing would be easy, but at this size it would take a long time, use a lot of filament, and my 3D printer is too small anyway. So what other options do I have? Metal would also be a good material, but I can’t weld or bend it, and CNC machining metal would be expensive and heavy for something that doesn’t really need to be made out of metal. So there was one final option: WOOD. My father has some plywood lying around, so it would basically cost me nothing and is relatively easy to work with. Unfortunately, I’m sometimes a perfectionist when my German side kicks in, and I’m also not the best at woodworking. But I can do CAD. So I came up with the idea that wood could actually work if I can find somebody with a CNC machine to cut it. Disclaimer: I haven’t asked anybody yet, but next Tuesday I’m going to ask around at the local workshop to see if I can use a CNC machine there. Otherwise, I might have to wait until the end of the holidays in three weeks and ask my teacher. But like I said, I already designed the whole box. I used the layout I figured out, the dimensions of all the components, and a wall thickness of 9 mm, based on the plywood I have available. Instead of just putting everything into a simple rectangular box, I designed the inside around the components themselves. This should keep everything in place and hopefully make the wiring cleaner. I also added ventilation slots to the case so the air from the fans has a way to move through the enclosure instead of just blowing against the drivers. I also already added all the holes at their hopefully perfect positions. I will use M3 and M4 screws, as well as some wood screws that I will hopefully find somewhere in the box in the garage.
Update 5 I was coding the software for the Raspberry Pi 5 and Pico. For communication, I set up a communication protocol with an exact syntax so that the programs can understand the commands. The Pico has all the commands as inputs, converts them into pulse signals, handles all the parallel pulses, and keeps the Pi updated on the status of the components. The Pi hosts a website on localhost:5000 where the user can enter all the data and select the mode. The Pi then converts the inputs into a command and sends it to the Pico. In the future, the Pi will create a digital clone of the arm, where you can simply enter the coordinates and the Pi will handle all the calculations for the kinematics. I also wired all the necessary connections, but I didn’t get a chance to CNC-cut the other parts of the case. For the base plate, I 3D-printed one. Luckily, my print bed was just big enough by a few millimeters. Next, I will try to get everything working together and make a video of it to submit. Sadly, I won’t be able to finish everything in the next few days before the deadline....
|
1793213394.2358124
|
1793818194.2358124
|
|
24105
|
completely normal maze game by @thatshushi17 | Sta completely normal maze game by @thatshushi17 | Stardance...
|
thatshushi17
|
0
|
24.94
|
0
|
[]
|
[{"post_id": 30096, "ts": "202 [{"post_id": 30096, "ts": "2026-07-17T12:23:59Z", "hours": 24.9419, "text": "1. completely normal maze game ive had this idea for an engine/game for a while now, where you explore some completely normal mazes. im not sure why i wanted to do this, since i wasnt really planning on making the world have anything interesting like portals that you dont notice silently teleport you allowing for impossible geometry or anything like that. the progress so far so, super quickly, heres what ive done so far in order: create some super quick and dirty code to just test the pygame-moderngl setup im using implemented the proper player and 3d dda setup, with some basic voxel generation horribly failed at implementing collision moved to polishing the project with stuff like a RoomBuilder to help create rooms, finalising the general data flow for the rooms, porting over my old implementation of oklab in python adding some basic portal logic theres still a lot to take care of, but this is basically all of the core functionality, so hurrah! some technical details you can skip over this to the gallery if you just want to see the end result of what ive made, but i want to show off some of the cool implementation details and design decisions (because i like showing off :P) the world’s data firstly, the world is stored as voxel data. specifically, each voxel stores 4 channels of data, each having 16 bits. since a cube has 6 faces, im storing the data for 2 faces per channel. so, each face has 8 bits of data, and theres one extra channel left over. the face data is split in such a way that minimises operations gpu side, and also allows me to store loads of different types of data (like portals, colored/textured walls, or stained glass). because of this specific setup, there are actually two sources of truth for a specific wall, depending on where youre looking from. this means a wall can be green on one side, and red on the other! its a nice little side-effect thatll be really nice when designing levels later on. the RoomBuilder this is a cool one. its a class i made to abstract the lower level details of designing a level. you can design a stage with its methods without ever needing to touch the voxel data by hand. its quite simple so far, but itll grow alongside the project. it will also guide the implementation of the level designer mode, whenever i get around to that 👀 where next? again, theres a lot of stuff i still want to implement. making it so the portals can rotate your sense of ‘up’ is a big one, but theres also stuff like harnessing the full power of the color system to completely shatter the players understanding of where they are, or getting my revenge on collision. adding entity rendering (hopefully like gmod pngs lol) is something i want aswell. ill keep working on this till i get two blahaj so you probably wont need to wait long for more progress. see you!"}]...
|
Title: completely normal maze game by @thatshushi1 Title: completely normal maze game by @thatshushi17 | Stardance
Devlogs:
1. completely normal maze game ive had this idea for an engine/game for a while now, where you explore some completely normal mazes. im not sure why i wanted to do this, since i wasnt really planning on making the world have anything interesting like portals that you dont notice silently teleport you allowing for impossible geometry or anything like that. the progress so far so, super quickly, heres what ive done so far in order: create some super quick and dirty code to just test the pygame-moderngl setup im using implemented the proper player and 3d dda setup, with some basic voxel generation horribly failed at implementing collision moved to polishing the project with stuff like a RoomBuilder to help create rooms, finalising the general data flow for the rooms, porting over my old implementation of oklab in python adding some basic portal logic theres still a lot to take care of, but this is basically all of the core functionality, so hurrah! some technical details you can skip over this to the gallery if you just want to see the end result of what ive made, but i want to show off some of the cool implementation details and design decisions (because i like showing off :P) the world’s data firstly, the world is stored as voxel data. specifically, each voxel stores 4 channels of data, each having 16 bits. since a cube has 6 faces, im storing the data for 2 faces per channel. so, each face has 8 bits of data, and theres one extra channel left over. the face data is split in such a way that minimises operations gpu side, and also allows me to store loads of different types of data (like portals, colored/textured walls, or stained glass). because of this specific setup, there are actually two sources of truth for a specific wall, depending on where youre looking from. this means a wall can be green on one side, and red on the other! its a nice little side-effect thatll be really nice when designing levels later on. the RoomBuilder this is a cool one. its a class i made to abstract the lower level details of designing a level. you can design a stage with its methods without ever needing to touch the voxel data by hand. its quite simple so far, but itll grow alongside the project. it will also guide the implementation of the level designer mode, whenever i get around to that 👀 where next? again, theres a lot of stuff i still want to implement. making it so the portals can rotate your sense of ‘up’ is a big one, but theres also stuff like harnessing the full power of the color system to completely shatter the players understanding of where they are, or getting my revenge on collision. adding entity rendering (hopefully like gmod pngs lol) is something i want aswell. ill keep working on this till i get two blahaj so you probably wont need to wait long for more progress. see you!...
|
1792659001.0975082
|
1793263801.0975082
|