|
49555
|
MY OWN WEBSITE by @vardaankatyal | Stardance
|
vardaankatyal
|
1
|
0.52
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-17T09:35:47Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website for myself depicting my skills in computer science .Checking for some errors in my code was challenging thats why i used gpt to help rest i did myself… Also i am proud that i made this website in 30mins. So, if you open and check my website in pc and phone the animation varies a lot", "repo": "https://github.com/vardaankatyal-netizen/zero-hunger", "demo": "https://zero-hunger-tan.vercel.app/"}]...
|
[{"post_id": 49438, "ts": "202 [{"post_id": 49438, "ts": "2026-08-18T08:56:14Z", "hours": 0.5183, "text": "completed with writing readme"}, {"post_id": 48191, "ts": "2026-08-16T14:17:16Z", "hours": 0.2667, "text": "THE ANIMATION PART OF MY WEBSITE"}]...
|
Title: MY OWN WEBSITE by @vardaankatyal | Stardanc Title: MY OWN WEBSITE by @vardaankatyal | Stardance
Devlogs:
THE ANIMATION PART OF MY WEBSITE
completed with writing readme
Ships:
I made a website for myself depicting my skills in computer science .Checking for some errors in my code was challenging thats why i used gpt to help rest i did myself… Also i am proud that i made this website in 30mins. So, if you open and check my website in pc and phone the animation varies a lot...
|
1793681633.9416778
|
1793768033.9416778
|
|
36484
|
GlassOS - My very own WebOS by @Ayon | Stardance
|
Ayon
|
3
|
12.0
|
41
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-27T05:41:01Z", "hours": 5.0, "multiplier": 6.22, "payout": 14, "blessing": "neutral", "text": "I have added a working mock terminal and VSCode application in the webos. Also, added a startup animation like the legacy bios. Gemini helped a lot helping in the VSCode UI.", "repo": "https://github.com/amiayon8/glassOS", "demo": "https://glassos.thenicedev.xyz/"}, {"ship_num": 2, "ts": "2026-07-19T08:47:50Z", "hours": 3.0, "multiplier": 10.09, "payout": 27, "blessing": "neutral", "text": "Just completed my WebOS and it’s now ready for WebOS 2 mission! Updates in v2: Added full screen Prompt Added game library Added calculator app Added calendar app Added hackatime widget", "repo": "https://github.com/amiayon8/glassOS", "demo": "https://glassos.thenicedev.xyz/"}, {"ship_num": 3, "ts": "2026-07-18T09:48:48Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an operating system just in the browser. It features a functional weather app, taskbar, battery details and a browser. It was very challenging to make the app windows and draggable taskbar apps. I took help from AI for this.", "repo": "https://github.com/amiayon8/glassOS", "demo": "https://glassos.thenicedev.xyz/"}]...
|
[{"post_id": 35627, "ts": "202 [{"post_id": 35627, "ts": "2026-07-27T05:39:48Z", "hours": 0.3397, "text": "Startup animation like the legacy BIOS"}, {"post_id": 35624, "ts": "2026-07-27T05:20:51Z", "hours": 0.7106, "text": "I have added the terminal in VSCode. Terminal Commands: run [file] Execute file JS/TS code node Execute specified JS file ls, pwd, cd [dir] Navigate directory structure cat, touch, rm File inspection and edits cp, mv Copy or rename files echo [> file] Print text or write to file grep, find, wc Search and inspect content head, tail View line subsets date, env, history System tools clear, reset Manage terminal state"}, {"post_id": 35276, "ts": "2026-07-26T16:11:02Z", "hours": 2.2989, "text": "Created a VSCode interface. Now working on terminal"}, {"post_id": 34474, "ts": "2026-07-25T06:34:14Z", "hours": 0.3172, "text": "Changed the chrome new tab to my GlassTab. Also, fixed calculator as the ratings told to update. Next: VSCode Update."}, {"post_id": 32586, "ts": "2026-07-21T21:14:32Z", "hours": 0.8772, "text": "Updated basic UI and the window control buttons. Shifted to mac styled buttons"}, {"post_id": 31126, "ts": "2026-07-19T08:47:02Z", "hours": 0.4839, "text": "Just completed my WebOS and it’s now ready for WebOS 2 mission! Updates in v2 Added full screen Prompt Added game library Added calculator app Added calendar app Added hackatime widget"}, {"post_id": 31119, "ts": "2026-07-19T08:13:28Z", "hours": 0.9, "text": "Integrating HackaTime directly to my GlassOS"}, {"post_id": 30678, "ts": "2026-07-18T13:29:50Z", "hours": 1.2603, "text": "Started working on GlassOS v2 Progress in v2: Added full screen Prompt Added game library Added calculator app Added calendar app Added camera app Windows updated"}, {"post_id": 30602, "ts": "2026-07-18T09:47:02Z", "hours": 0.3467, "text": "Added weather widget and time to the home screen. Done for now."}, {"post_id": 30581, "ts": "2026-07-18T08:50:27Z", "hours": 1.1178, "text": "Created an weather app for my Operating System. Absolute glassmorphism"}, {"post_id": 30525, "ts": "2026-07-18T05:30:33Z", "hours": 0.54, "text": "Just built the Chrome App for my Operating system! Chrome works but just for the sites without iFrame Restrictions. My portfolio site works fine but the HackClub sites, google and such things don’t work"}, {"post_id": 30516, "ts": "2026-07-18T04:41:39Z", "hours": 0.4111, "text": "Created the login screen with 4-digit pin and a cute astronaut."}, {"post_id": 30503, "ts": "2026-07-18T04:09:40Z", "hours": 0.3033, "text": "Just added the battery details to the OS. The battery details work just fine. Couldn’t do for the networks as the browser doesn’t allow this. Next: Apps and widgets."}, {"post_id": 30203, "ts": "2026-07-17T16:22:00Z", "hours": 1.3061, "text": "Hey, this is the first day of my custom in-browser Operating System. This is the first devlog of this project. I have just made the Navbar with some cool hover and click effects."}]...
|
Title: GlassOS - My very own WebOS by @Ayon | Star Title: GlassOS - My very own WebOS by @Ayon | Stardance
Devlogs:
Hey, this is the first day of my custom in-browser Operating System. This is the first devlog of this project. I have just made the Navbar with some cool hover and click effects.
Just added the battery details to the OS. The battery details work just fine. Couldn’t do for the networks as the browser doesn’t allow this. Next: Apps and widgets.
Created the login screen with 4-digit pin and a cute astronaut.
Just built the Chrome App for my Operating system! Chrome works but just for the sites without iFrame Restrictions. My portfolio site works fine but the HackClub sites, google and such things don’t work
Created an weather app for my Operating System. Absolute glassmorphism
Added weather widget and time to the home screen. Done for now.
Started working on GlassOS v2 Progress in v2: Added full screen Prompt Added game library Added calculator app Added calendar app Added camera app Windows updated
Integrating HackaTime directly to my GlassOS
Just completed my WebOS and it’s now ready for WebOS 2 mission! Updates in v2 Added full screen Prompt Added game library Added calculator app Added calendar app Added hackatime widget
Updated basic UI and the window control buttons. Shifted to mac styled buttons
Changed the chrome new tab to my GlassTab. Also, fixed calculator as the ratings told to update. Next: VSCode Update.
Created a VSCode interface. Now working on terminal
I have added the terminal in VSCode. Terminal Commands: run [file] Execute file JS/TS code node Execute specified JS file ls, pwd, cd [dir] Navigate directory structure cat, touch, rm File inspection and edits cp, mv Copy or rename files echo [> file] Print text or write to file grep, find, wc Search and inspect content head, tail View line subsets date, env, history System tools clear, reset Manage terminal state
Startup animation like the legacy BIOS
Ships:
I made an operating system just in the browser. It features a functional weather app, taskbar, battery details and a browser. It was very challenging to make the app windows and draggable taskbar apps. I took help from AI for this.
Just completed my WebOS and it’s now ready for WebOS 2 mission! Updates in v2: Added full screen Prompt Added game library Added calculator app Added calendar app Added hackatime widget
I have added a working mock terminal and VSCode application in the webos. Also, added a startup animation like the legacy bios. Gemini helped a lot helping in the VSCode UI....
|
1793681635.0840628
|
1793768035.0840628
|
|
4520
|
My awesome macropad! by @Magic12 | Stardance
|
Magic12
|
1
|
3.81
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-21T13:32:05Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a macropad that i might use for shortcuts on games and etc, this summer i took up a challenge to learn something new and i came across this and i can proudly say that i learnt a LOTT, from 2 am crashout on not being able to get fusion to work to making amazing assemblies, i came a long way with just one project. this was my first project but not the last.", "repo": "https://github.com/Dhruv2212-star/Macropad", "demo": ""}]...
|
[{"post_id": 23303, "ts": "202 [{"post_id": 23303, "ts": "2026-07-06T05:37:45Z", "hours": 0.8125, "text": "finished the main parts of the macropad such as PCB mapping and traces with CAD planning and designing"}, {"post_id": 12734, "ts": "2026-06-20T20:24:20Z", "hours": 2.7544, "text": "macropad"}]...
|
Title: My awesome macropad! by @Magic12 | Stardanc Title: My awesome macropad! by @Magic12 | Stardance
Devlogs:
macropad
finished the main parts of the macropad such as PCB mapping and traces with CAD planning and designing
Ships:
i made a macropad that i might use for shortcuts on games and etc, this summer i took up a challenge to learn something new and i came across this and i can proudly say that i learnt a LOTT, from 2 am crashout on not being able to get fusion to work to making amazing assemblies, i came a long way with just one project. this was my first project but not the last....
|
1793681636.3168013
|
1793768036.3168013
|
|
49560
|
Synapse by @AbdurRehman | Stardance
|
AbdurRehman
|
1
|
20.0
|
383
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-20T18:37:24Z", "hours": 20.0, "multiplier": 19.0, "payout": 383, "blessing": "neutral", "text": "I made Synapse, an interactive visualization of neural activity in the human brain. It simulates a network of connected neurons and signals between them. My goal wasn’t to create an accurate model of the human brain but to create something visually compelling. The most challenging part was keeping everything performant since there are a lot of line segments, custom shaders, raycasting so that took a while. Also making the entire experience look good too took a lot of effort but I am proud of how everything looks in the end!", "repo": "https://github.com/RealAbdurRehman/synapse", "demo": "https://synapse-ruddy-delta.vercel.app"}]...
|
[{"post_id": 51190, "ts": "202 [{"post_id": 51190, "ts": "2026-08-20T18:08:31Z", "hours": 3.0606, "text": "Since the last dev log, I added an animated background and improved the lightning effects to make the scene look better. I also redesigned the loading screen and made the visualization configurable by adding a customization panel where users can control things like neuron count and connections per neuron. I also finished the README and added some final touches before deploying the app. Well, that finishes this project."}, {"post_id": 50837, "ts": "2026-08-20T08:45:33Z", "hours": 3.1586, "text": "I added a transparent brain model with fresnel effect that creates a cool looking rim around the edges of the brain. I also added a subtle animation to the effect making everything look more alive. I also added post processing effects like depth of field, vignette, chromatic aberration, and film grain. The depth of field also focuses on neurons when hovering over them making interaction feel much more immersive. Next, I’ll work on improving the background and camera and stuff."}, {"post_id": 50773, "ts": "2026-08-20T04:30:58Z", "hours": 3.1242, "text": "I added user interaction to the neurons. Neurons can now respond to the user when hovered and clicked which sends cool looking signals making everything interactive. I also added hover effects to highlight neurons under the cursor. Next, I’ll work on adding the final visuals."}, {"post_id": 49428, "ts": "2026-08-18T08:21:11Z", "hours": 2.4647, "text": "I added signal propagation between connected neurons. Signals now travel along the connections which propagate through nearby neurons with controlled probability and decay. I also tuned the settings so that they don’t become too dense or overwhelming. I also changed the neuron behavior so neurons react when they forward a signal, making the everything look like a real brain. Next, I’ll start adding user interaction."}, {"post_id": 49352, "ts": "2026-08-18T03:57:04Z", "hours": 2.5061, "text": "I added the connections between neurons. I first implemented simple straight line connections, then changed them into smooth curved paths. After that, I made the curves irregular, giving everything a more natural appearance rather than having every connection follow the same type of curve. Next, I’ll probably add interactivity of some sort."}, {"post_id": 48932, "ts": "2026-08-17T14:27:11Z", "hours": 2.1336, "text": "I continued improving the neural visualization by making the neurons look more visually impressive and natural. I added a glowing effect, different neuron sizes, and subtle pulsing so the neurons feel more alive instead of looking like static points. I also optimized the neuron system to improve how the neurons are generated and rendered making everything more efficient. Next, I’ll add other effects."}, {"post_id": 48807, "ts": "2026-08-17T10:47:25Z", "hours": 2.7111, "text": "I continued building the neural visualization by implementing a neuron system by randomly placing points in a box to generating neurons based on an actual brain model. I used a point in mesh approach basically using raycasting so neurons are only placed within the brain’s geometry. The current approach works, but generating the neurons is like really slow because each position has to be checked against the brain mesh, and if it isn’t inside, the system keeps trying until it finds a valid position. Next, I’ll improve the neuron placement by making it more efficient."}, {"post_id": 48149, "ts": "2026-08-16T13:21:31Z", "hours": 0.9894, "text": "Set up the project’s foundation by creating the Vite project with TypeScript, integrating Three.js and Tailwind CSS, and configuring the initial 3D scene with a camera, renderer, and orbit controls. I also created the Git repository for the project. and a short README for now. Next, I’ll start planning and building this app."}]...
|
Title: Synapse by @AbdurRehman | Stardance
Devlog Title: Synapse by @AbdurRehman | Stardance
Devlogs:
Set up the project’s foundation by creating the Vite project with TypeScript, integrating Three.js and Tailwind CSS, and configuring the initial 3D scene with a camera, renderer, and orbit controls. I also created the Git repository for the project. and a short README for now. Next, I’ll start planning and building this app.
I continued building the neural visualization by implementing a neuron system by randomly placing points in a box to generating neurons based on an actual brain model. I used a point in mesh approach basically using raycasting so neurons are only placed within the brain’s geometry. The current approach works, but generating the neurons is like really slow because each position has to be checked against the brain mesh, and if it isn’t inside, the system keeps trying until it finds a valid position. Next, I’ll improve the neuron placement by making it more efficient.
I continued improving the neural visualization by making the neurons look more visually impressive and natural. I added a glowing effect, different neuron sizes, and subtle pulsing so the neurons feel more alive instead of looking like static points. I also optimized the neuron system to improve how the neurons are generated and rendered making everything more efficient. Next, I’ll add other effects.
I added the connections between neurons. I first implemented simple straight line connections, then changed them into smooth curved paths. After that, I made the curves irregular, giving everything a more natural appearance rather than having every connection follow the same type of curve. Next, I’ll probably add interactivity of some sort.
I added signal propagation between connected neurons. Signals now travel along the connections which propagate through nearby neurons with controlled probability and decay. I also tuned the settings so that they don’t become too dense or overwhelming. I also changed the neuron behavior so neurons react when they forward a signal, making the everything look like a real brain. Next, I’ll start adding user interaction.
I added user interaction to the neurons. Neurons can now respond to the user when hovered and clicked which sends cool looking signals making everything interactive. I also added hover effects to highlight neurons under the cursor. Next, I’ll work on adding the final visuals.
I added a transparent brain model with fresnel effect that creates a cool looking rim around the edges of the brain. I also added a subtle animation to the effect making everything look more alive. I also added post processing effects like depth of field, vignette, chromatic aberration, and film grain. The depth of field also focuses on neurons when hovering over them making interaction feel much more immersive. Next, I’ll work on improving the background and camera and stuff.
Since the last dev log, I added an animated background and improved the lightning effects to make the scene look better. I also redesigned the loading screen and made the visualization configurable by adding a customization panel where users can control things like neuron count and connections per neuron. I also finished the README and added some final touches before deploying the app. Well, that finishes this project.
Ships:
I made Synapse, an interactive visualization of neural activity in the human brain. It simulates a network of connected neurons and signals between them. My goal wasn’t to create an accurate model of the human brain but to create something visually compelling. The most challenging part was keeping everything performant since there are a lot of line segments, custom shaders, raycasting so that took a while. Also making the entire experience look good too took a lot of effort but I am proud of how everything looks in the end!...
|
1793681637.5104983
|
1793768037.5104983
|
|
29191
|
My Crochet Website! by @Delilah | Stardance
|
Delilah
|
1
|
32.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-26T09:21:28Z", "hours": 32.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created a crochet business website. Making a business website was quite challenging since I never created a website this huge. Especially trying to figure out on how to make individual product pages for each product without making an html for every product was challenging, since that was my first time doing that, and using localStorage for the cart was challenging, since that was my first time using localStorage. I’m proud that I managed to make a website like that, it might have taken me awhile to do it but I never gave up on it. There are unfinished websites of mine but I didn’t want to fail another project. So I’m really glad I went through with it. For everyone visiting my website you should know that everything is static, I haven’t created databases so you can’t actually order anything, unless you really want one of my crochet products you can use the contact page to write your message and it will be sent to my email.", "repo": "https://github.com/diditek8-byte/My-Crochet-Website", "demo": "https://diditek8-byte.github.io/My-Crochet-Website/"}]...
|
[{"post_id": 34043, "ts": "202 [{"post_id": 34043, "ts": "2026-07-24T14:15:47Z", "hours": 0.8261, "text": "Finally finished with the hard part. So I managed to figure the layout issue out for when my cart was empty. Then I focused on my checkout button since I can’t use stripe for now I decided to just use alerts and make the products vanish from the cart after. Now the last part is to make my website responsive, and I’m good to go."}, {"post_id": 34008, "ts": "2026-07-24T12:22:24Z", "hours": 7.63, "text": "I’ve been working on my cart for a while at first I had to fix some layout issues and then I had to figure out a way on how to even make a cart with local storage. At first I made the add to cart button from my product.html save the product and then put it inside the cart. After that I tried to delete the product using the trash icon . Then I focused on the quantity plus and minus buttons, so when you pressed the buttons it would show the number of quantity on the input and the price right next to it would multiplicate or differentiate depending on the button you pressed. The total of the products would also show below where the checkout button is, which I still have to modify so it will do at least something. I also managed to make a what if the cart was empty but it looks kinda rough so I’ll be working on that."}, {"post_id": 31753, "ts": "2026-07-20T12:07:15Z", "hours": 4.0728, "text": "Just finished the cart layout. It was pretty hard especially since at first I started using table in html but confused td with tr so when I switched from td to tr everything looked a mess and had to start from scratch. After that I became sick of the table element and just started using div and now I’m just glad it doesn’t look bad. Now I’ll be focusing on the logic part using javascript."}, {"post_id": 31147, "ts": "2026-07-19T09:58:32Z", "hours": 3.3497, "text": "I am finished with the products page and now I’ll go on with the 2nd last thing on my list. Please feel free to look at my other devlogs and give me feedback. I would love to hear your opinion on my layout."}, {"post_id": 27592, "ts": "2026-07-13T09:48:16Z", "hours": 14.2933, "text": "I’ve made a bunch of modifications but I still need to work on a few things. I hope y’all like it."}, {"post_id": 20157, "ts": "2026-07-01T18:17:26Z", "hours": 1.1311, "text": "Trying to make everything fast and pretty later. I’m not sure about the design choice, either like that or everything has that pink color."}, {"post_id": 19941, "ts": "2026-07-01T12:01:38Z", "hours": 0.5086, "text": "Currently working on my crochet website. It definitely needs a lot of work."}]...
|
Title: My Crochet Website! by @Delilah | Stardance Title: My Crochet Website! by @Delilah | Stardance
Devlogs:
Currently working on my crochet website. It definitely needs a lot of work.
Trying to make everything fast and pretty later. I’m not sure about the design choice, either like that or everything has that pink color.
I’ve made a bunch of modifications but I still need to work on a few things. I hope y’all like it.
I am finished with the products page and now I’ll go on with the 2nd last thing on my list. Please feel free to look at my other devlogs and give me feedback. I would love to hear your opinion on my layout.
Just finished the cart layout. It was pretty hard especially since at first I started using table in html but confused td with tr so when I switched from td to tr everything looked a mess and had to start from scratch. After that I became sick of the table element and just started using div and now I’m just glad it doesn’t look bad. Now I’ll be focusing on the logic part using javascript.
I’ve been working on my cart for a while at first I had to fix some layout issues and then I had to figure out a way on how to even make a cart with local storage. At first I made the add to cart button from my product.html save the product and then put it inside the cart. After that I tried to delete the product using the trash icon . Then I focused on the quantity plus and minus buttons, so when you pressed the buttons it would show the number of quantity on the input and the price right next to it would multiplicate or differentiate depending on the button you pressed. The total of the products would also show below where the checkout button is, which I still have to modify so it will do at least something. I also managed to make a what if the cart was empty but it looks kinda rough so I’ll be working on that.
Finally finished with the hard part. So I managed to figure the layout issue out for when my cart was empty. Then I focused on my checkout button since I can’t use stripe for now I decided to just use alerts and make the products vanish from the cart after. Now the last part is to make my website responsive, and I’m good to go.
Ships:
I created a crochet business website. Making a business website was quite challenging since I never created a website this huge. Especially trying to figure out on how to make individual product pages for each product without making an html for every product was challenging, since that was my first time doing that, and using localStorage for the cart was challenging, since that was my first time using localStorage. I’m proud that I managed to make a website like that, it might have taken me awhile to do it but I never gave up on it. There are unfinished websites of mine but I didn’t want to fail another project. So I’m really glad I went through with it. For everyone visiting my website you should know that everything is static, I haven’t created databases so you can’t actually order anything, unless you really want one of my crochet products you can use the contact page to write your message and it will be sent to my email....
|
1793681638.7362003
|
1793768038.7362003
|
|
38804
|
doddle cat ware by @Slear69_githud | Stardance
|
Slear69_githud
|
2
|
13.0
|
47
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-10T20:46:37Z", "hours": 6.0, "multiplier": 7.32, "payout": 47, "blessing": "neutral", "text": "in this ship there are 5 game in total andd yess like this is :)", "repo": "https://github.com/slear69/catt_ware", "demo": "https://catss-lovee.itch.io/doddle-cats-ware67"}, {"ship_num": 2, "ts": "2026-07-29T17:56:56Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "okkkk this is the project the last game is not that good but i will try to add animations", "repo": "https://github.com/slear69/catt_ware", "demo": "https://catss-lovee.itch.io/doddle-cats-ware67"}]...
|
[{"post_id": 65570, "ts": "202 [{"post_id": 65570, "ts": "2026-09-10T19:54:07Z", "hours": 2.8553, "text": "in the 5ft game you have to PET THE CAT :3 12 time with a and d"}, {"post_id": 64682, "ts": "2026-09-09T08:45:30Z", "hours": 1.8453, "text": "4th minigame :) in here you have to dodge the incoming water"}, {"post_id": 63845, "ts": "2026-09-07T20:32:07Z", "hours": 1.7367, "text": "New stuff : 1. new font , 2. new animation , and better 3rd game"}, {"post_id": 37171, "ts": "2026-07-29T17:55:26Z", "hours": 1.3411, "text": "FOR EVRY ONE WHO WILLMAKE THIS MISSON !!!!! if you want to post it on itch io the seance have to be in the same folder where everything is i mean in the ress: \\ folder this was the problem for me i hope it helps"}, {"post_id": 36701, "ts": "2026-07-28T22:31:10Z", "hours": 5.3025, "text": "i have most of the game done only the player left"}]...
|
Title: doddle cat ware by @Slear69_githud | Starda Title: doddle cat ware by @Slear69_githud | Stardance
Devlogs:
i have most of the game done only the player left
FOR EVRY ONE WHO WILLMAKE THIS MISSON !!!!! if you want to post it on itch io the seance have to be in the same folder where everything is i mean in the ress: \ folder this was the problem for me i hope it helps
New stuff : 1. new font , 2. new animation , and better 3rd game
4th minigame :) in here you have to dodge the incoming water
in the 5ft game you have to PET THE CAT :3 12 time with a and d
Ships:
okkkk this is the project the last game is not that good but i will try to add animations
in this ship there are 5 game in total andd yess like this is :)...
|
1793681639.9282222
|
1793768039.9282222
|
|
30073
|
vamp by @e__l | Stardance
|
e__l
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-23T00:47:10Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Made a Vampire Survivors-inspired game! First time building something like this, so it was a challenge. Visuals are simple, but it runs. If you spot any bugs, let me know I’d love to improve it", "repo": "https://github.com/satvikIsGoingMental/idk", "demo": "https://mrcheese2009.itch.io/vamp-2"}]...
|
[{"post_id": 33236, "ts": "202 [{"post_id": 33236, "ts": "2026-07-22T23:35:17Z", "hours": 5.1925, "text": "Vampire Survivor-like HTML game."}]...
|
Title: vamp by @e__l | Stardance
Devlogs:
Vampire Title: vamp by @e__l | Stardance
Devlogs:
Vampire Survivor-like HTML game.
Ships:
Made a Vampire Survivors-inspired game! First time building something like this, so it was a challenge. Visuals are simple, but it runs. If you spot any bugs, let me know I’d love to improve it...
|
1793681641.1752663
|
1793768041.1752663
|
|
54269
|
JAINIL by @jainilgringlani | Stardance
|
jainilgringlani
|
2
|
6.0
|
5
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-05T05:45:13Z", "hours": 4.0, "multiplier": 1.19, "payout": 5, "blessing": "neutral", "text": "i made my personal site", "repo": "https://github.com/jainilgringlani499-cloud/JAINIL-GRINGLANI", "demo": "https://jainilgringlani499-cloud.github.io/"}, {"ship_num": 2, "ts": "2026-08-28T09:22:49Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I HAVE MADE MY PERSONAL SITE . THE MOST CHALLENGING THING WAS TO SOLVE ERROR OF CSS . ALTOUHG I DONE IT . I AM VERY PROUD OF MY TROUBLESHOOTING SKILLS", "repo": "https://github.com/jainilgringlani499-cloud/JAINIL-GRINGLANI", "demo": "https://jainilgringlani499-cloud.github.io/"}]...
|
[{"post_id": 61379, "ts": "202 [{"post_id": 61379, "ts": "2026-09-04T08:17:00Z", "hours": 3.9686, "text": "I am working on my personal portfolio .Like again building it from scratch because it was rejected."}, {"post_id": 56493, "ts": "2026-08-28T09:02:45Z", "hours": 0.8158, "text": "like i was facing a problem in doing my work because i wanted a rest"}, {"post_id": 55152, "ts": "2026-08-26T17:00:59Z", "hours": 1.4342, "text": "I am working on my personal portfolio."}]...
|
Title: JAINIL by @jainilgringlani | Stardance
Dev Title: JAINIL by @jainilgringlani | Stardance
Devlogs:
I am working on my personal portfolio.
like i was facing a problem in doing my work because i wanted a rest
I am working on my personal portfolio .Like again building it from scratch because it was rejected.
Ships:
I HAVE MADE MY PERSONAL SITE . THE MOST CHALLENGING THING WAS TO SOLVE ERROR OF CSS . ALTOUHG I DONE IT . I AM VERY PROUD OF MY TROUBLESHOOTING SKILLS
i made my personal site...
|
1793681642.078732
|
1793768042.078732
|
|
30535
|
First Project and Website by @Bullfrog | Stardance
|
Bullfrog
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-05T12:33:27Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a very rudimentary personal website. It was hard to get used to how HTML and CSS work together and how the syntax is, it’s quite different from object languages. I’m quite happy with the general skeleton that I’ve made but I think the thing I’m most “proud” of is the navigation bar. I’m not sure why but I just found it so cool. To be honest, the only reason I’m shipping such an unfinished project is to get the free sticker for shipping within a certain time. However, do not fret for I will most likely come back to this project and make it look really cool. Also, as far as creative CSS goes, my CSS is incredibly basic, but I hope it counts as original considering it is something somewhat unique to who I am.", "repo": "https://github.com/TheBullfrogEngineer/First-Personal-Site", "demo": "https://thebullfrogengineer.github.io/First-Personal-Site/"}]...
|
[{"post_id": 22669, "ts": "202 [{"post_id": 22669, "ts": "2026-07-05T06:59:13Z", "hours": 0.5331, "text": "I got the nav bar looking a lot cleaner. I also got the information down in my paragraphs and got the positioning and styles of the texts the way I want it."}, {"post_id": 22609, "ts": "2026-07-05T04:53:53Z", "hours": 1.5478, "text": "Okay, I’ve got a bit more experience and knowledge now. I’ve added a functioning nav bar and I’ve got the color scheme pretty much down. Once I get some effects and more information I’m gonna ship. I think I wanna add a dark mode though."}, {"post_id": 21939, "ts": "2026-07-04T04:17:22Z", "hours": 0.4433, "text": "This is what it is looking like so far. This is one of my first introductions to HTML, so obviously it isn’t much. But I’m currently watching a guide on HTML and slowing improving the website. I hope to make it swamp themed to match with my name and be like really aesthetic and everything. Hopefully this will be an incredibly informative project."}]...
|
Title: First Project and Website by @Bullfrog | St Title: First Project and Website by @Bullfrog | Stardance
Devlogs:
This is what it is looking like so far. This is one of my first introductions to HTML, so obviously it isn’t much. But I’m currently watching a guide on HTML and slowing improving the website. I hope to make it swamp themed to match with my name and be like really aesthetic and everything. Hopefully this will be an incredibly informative project.
Okay, I’ve got a bit more experience and knowledge now. I’ve added a functioning nav bar and I’ve got the color scheme pretty much down. Once I get some effects and more information I’m gonna ship. I think I wanna add a dark mode though.
I got the nav bar looking a lot cleaner. I also got the information down in my paragraphs and got the positioning and styles of the texts the way I want it.
Ships:
I made a very rudimentary personal website. It was hard to get used to how HTML and CSS work together and how the syntax is, it’s quite different from object languages. I’m quite happy with the general skeleton that I’ve made but I think the thing I’m most “proud” of is the navigation bar. I’m not sure why but I just found it so cool. To be honest, the only reason I’m shipping such an unfinished project is to get the free sticker for shipping within a certain time. However, do not fret for I will most likely come back to this project and make it look really cool. Also, as far as creative CSS goes, my CSS is incredibly basic, but I hope it counts as original considering it is something somewhat unique to who I am....
|
1793681643.2389934
|
1793768043.2389934
|
|
39634
|
My own site! by @rush | Stardance
|
rush
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-05T12:21:05Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my first ever website as a beginner at coding!", "repo": "https://github.com/integrusabusiness/MyWebsite", "demo": "https://integrusabusiness.github.io/MyWebsite/#home"}]...
|
[{"post_id": 41263, "ts": "202 [{"post_id": 41263, "ts": "2026-08-05T11:32:26Z", "hours": 0.7192, "text": "Added colours and more content to my website!"}, {"post_id": 40995, "ts": "2026-08-04T21:26:01Z", "hours": 0.6617, "text": "Today, I worked on making my personal website better and started writing “About me”!"}, {"post_id": 40336, "ts": "2026-08-03T19:35:49Z", "hours": 0.5147, "text": "Today I made my nav bar!"}]...
|
Title: My own site! by @rush | Stardance
Devlogs: Title: My own site! by @rush | Stardance
Devlogs:
Today I made my nav bar!
Today, I worked on making my personal website better and started writing “About me”!
Added colours and more content to my website!
Ships:
I made my first ever website as a beginner at coding!...
|
1793681644.431069
|
1793768044.431069
|
|
31819
|
CentauriLink by @dewandeljack | Stardance
|
dewandeljack
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-29T10:50:09Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "It is an remote and local app to access your own 3D printer from elegoo (supports: CC1) the ETA time system was not easy to fix after a bug. Also the app optimizing was a big thing to do.", "repo": "https://github.com/CentauriLink/RemoteAccess", "demo": "https://play.google.com/store/apps/details?id=com.centaurilink.centaurilink"}]...
|
[{"post_id": 35896, "ts": "202 [{"post_id": 35896, "ts": "2026-07-27T16:59:14Z", "hours": 0.5483, "text": "I have updated and added new functions to the app"}]...
|
Title: CentauriLink by @dewandeljack | Stardance
Title: CentauriLink by @dewandeljack | Stardance
Devlogs:
I have updated and added new functions to the app
Ships:
It is an remote and local app to access your own 3D printer from elegoo (supports: CC1) the ETA time system was not easy to fix after a bug. Also the app optimizing was a big thing to do....
|
1793681647.7328734
|
1793768047.7328734
|
|
49572
|
Nexus AI – Customer Support Agent by @Mohanaryan | Nexus AI – Customer Support Agent by @Mohanaryan | Stardance...
|
Mohanaryan
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T13:17:47Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "NexusAI is an AI-powered customer support assistant built with Python and Streamlit. It uses semantic search with Sentence Transformers and cosine similarity to retrieve relevant answers from a customer-support knowledge base. The app provides real-time customer responses, retrieval confidence scoring, BLEU-based response evaluation, chat history, and CSV report export. I built and tested the project locally, focusing on making the interface simple and easy to use while learning more about semantic retrieval, NLP evaluation, and Streamlit. Tech: Python • Streamlit • Sentence Transformers • scikit-learn • NLTK • Pandas", "repo": "https://github.com/mohithkumar3413/nexus-ai-customer-support-agent", "demo": "https://youtu.be/lDnPkIN7MbI?si=RyjuZfs4S9Td45cu"}]...
|
[{"post_id": 49558, "ts": "202 [{"post_id": 49558, "ts": "2026-08-18T13:11:05Z", "hours": 0.4603, "text": "Today I continued working on NexusAI, my AI-powered customer support project.I focused on getting the Streamlit application running properly on my Mac and testing the main customer-support flow. I successfully launched the app locally and tested the knowledge-base retrieval with different customer queries.I also checked the interface and made sure the chat, confidence score, BLEU evaluation, and CSV export features are working together.Next, I want to continue testing the responses and improve the overall user experience.#AI #Python #Streamlit #CustomerSupport #BuildInPublic"}, {"post_id": 48849, "ts": "2026-08-17T12:18:15Z", "hours": 0.3442, "text": "Today I continued working on my Nexus AI Customer Support Agent. I connected the project with Hackatime and spent time testing the project locally in VS Code. I also checked the session handling and existing Clear Conversation feature and made sure the application was running properly.This was a useful session because I got more familiar with tracking development time and working with an existing AI project. I’m planning to continue improving the user experience and adding more useful features."}]...
|
Title: Nexus AI – Customer Support Agent by @Mohan Title: Nexus AI – Customer Support Agent by @Mohanaryan | Stardance
Devlogs:
Today I continued working on my Nexus AI Customer Support Agent. I connected the project with Hackatime and spent time testing the project locally in VS Code. I also checked the session handling and existing Clear Conversation feature and made sure the application was running properly.This was a useful session because I got more familiar with tracking development time and working with an existing AI project. I’m planning to continue improving the user experience and adding more useful features.
Today I continued working on NexusAI, my AI-powered customer support project.I focused on getting the Streamlit application running properly on my Mac and testing the main customer-support flow. I successfully launched the app locally and tested the knowledge-base retrieval with different customer queries.I also checked the interface and made sure the chat, confidence score, BLEU evaluation, and CSV export features are working together.Next, I want to continue testing the responses and improve the overall user experience.#AI #Python #Streamlit #CustomerSupport #BuildInPublic
Ships:
NexusAI is an AI-powered customer support assistant built with Python and Streamlit. It uses semantic search with Sentence Transformers and cosine similarity to retrieve relevant answers from a customer-support knowledge base. The app provides real-time customer responses, retrieval confidence scoring, BLEU-based response evaluation, chat history, and CSV report export. I built and tested the project locally, focusing on making the interface simple and easy to use while learning more about semantic retrieval, NLP evaluation, and Streamlit. Tech: Python • Streamlit • Sentence Transformers • scikit-learn • NLTK • Pandas...
|
1793681648.8777242
|
1793768048.8777242
|
|
40484
|
RaidenScript by @RaidenTechnology | Stardance
|
RaidenTechnology
|
2
|
58.97
|
231
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-23T11:46:51Z", "hours": 31.0, "multiplier": 10.41, "payout": 104, "blessing": "neutral", "text": "RaidenScript v0.2 Update I wrote RaidenScript (RS) from scratch in C++20 as a small embeddable scripting language. In Ship #1 I had it running in three hosts. Since then I gave it a browser you can try it in, and I turned the Minecraft host into a real game running on a live server. I put the language in a browser. I compiled the C API to WebAssembly, served it from GitHub Pages, and wrote an editor with a Run button and four example programs: raidentechnology.github.io/raidenscript. I send nothing to a server; the page is the interpreter. I stopped treating the Minecraft host as a demo. I wrote 144 commits on it since the last devlog, and I keep the rules out of Java entirely: they sit in one .rai file the server loads at boot and reloads while players are online. I wrote a whole farming layer as script rules. Every crop got its own tool with its own level and rarity ladder, and I added tool enchants, XP bottles, an upgrade bench, and a 20 minute contest with medals and a shop of its own. I added pests. Twelve species, a spawn engine I tied to whatever crop is planted, a five-tier vacuum to kill them with, and a loot table I hooked into the same farming-luck stat every other system reads. I built a garden around it: 8 plots, a regeneration engine that rebuilds 13 farm patterns, 76 visitor NPCs I gave 53 signed skins, and a copper economy I priced off the live Bazaar API instead of numbers I made up. I added one host primitive, taslakModel, and let the script choose the model an item wears. Adding an item is now a script edit and nothing else. I fixed three bugs the live server found and no test of mine would have. An item-identity gate was cancelling every right click unconditionally, so the grappling hook silently never fired. The area hoe was catching its own synthetic event and moving the stack twice. And one wrong price in a shop table was failing the entire script at boot. Why did I do it like this? Because I think a language is judged by what runs on it, not by its grammar. The strongest thing I can say about my embedding API is that a 10,000 line ruleset runs on it every night, on a real server, with real players. Because I lose reviewers at the install wall. For Ship #1 I asked people to clone a repo and build it with MinGW. Now I ask for one click, and I am handing them the same interpreter, not a simplified twin. Because every rule I move out of Java is a rule I can change without a restart. I left no compile step in the script layer, so /rai reload changes the balance of a live game between two swings of a sword. Because item models were the last thing still forcing me into Java. I closed that hole, and I now keep the Java side as infrastructure only: it knows how to talk to the server and nothing about what the game is. Because I wanted the contest, the pests and the visitor queue to stress the C boundary. I pass numbers in the array and let strings travel beside it, and not one of these systems made me widen that contract. Because a bug a player hits at 2 AM is worth more to me than a bug I find in my own suite. All three above came from the server. Source (MIT): github.com/RaidenTechnology/raidenscript", "repo": "https://github.com/RaidenTechnology/raidenscript", "demo": "https://raidentechnology.github.io/raidenscript/"}, {"ship_num": 2, "ts": "2026-07-28T10:10:56Z", "hours": 7.0, "multiplier": 17.73, "payout": 127, "blessing": "neutral", "text": "RaidenScript v0.1 — an embeddable scripting language written from scratch in C++20. WHAT IT IS A small language (29 keywords) with Python’s readability and JavaScript’s runtime model, built to go inside another program and make it scriptable. The same interpreter runs in three hosts, and each one has a working demo in the repo: Terminal — native binary, “rai program.rai”, plus a REPL Browser — C API compiled to WebAssembly, running an animated store page JVM — C API through JNI, running a Paper Minecraft plugin The demo link is my shipped game STAR BREAKER: one of its weapons is not defined in the game at all, it is a RaidenScript file the game loads and runs through the WebAssembly build. WHAT IS IN IT Lexer, parser, resolver, tree-walking interpreter and REPL, all hand-written; no parser generator, no dependencies. 16 example programs that double as the regression suite, 20 C API checks, 7 WebAssembly checks, zero compiler warnings. A recursion-depth guard so a runaway script raises a catchable error instead of killing the host process — verified separately on native, wasm and the JVM. The cover image was computed pixel by pixel by a RaidenScript program (demo/kapak/kapak-ascii.rai) — no graphics library, in the program or in the language. HOW TO TRY IT git clone, then “make” (w64devkit/MinGW on Windows, gcc elsewhere), then “rai examples/01-temeller.rai”, or just “rai” for the REPL. The README is a full manual: language guide, standard library, embedding walkthrough. Known limits are written down there rather than hidden: an exception escaping a host function leaks stack, string += is quadratic, and a script returning a string to rs_call still yields 0. AI SPLIT The design of the language and its core — lexer, parser, resolver, interpreter, REPL, C API, string channel — is mine and was written by me. The host bindings, the demo apps, and this week’s seven interpreter bug fixes are AI-written from my designs and my audit. Logged hours are my editor time only. Source (MIT): github.com/RaidenTechnology/raidenscript", "repo": "https://github.com/RaidenTechnology/raidenscript", "demo": "https://raidentechnology.github.io/raidenscript/"}]...
|
[{"post_id": 53014, "ts": "202 [{"post_id": 53014, "ts": "2026-08-23T12:15:50Z", "hours": 20.9703, "text": "RaidenScript: the cover is a program, not a picture I gave the project a red and black cover, and I did it without opening an image editor. The cover generator is a RaidenScript program that prints a plain PPM to stdout, so I changed the palette in the script and ran it again: three radial glows, a faint grid, a vertical gradient on the bolt, and a 5x7 bitmap font that is data inside the file, not a system font. It computes 315,000 pixels in 43 seconds. That is my tree-walking interpreter doing arithmetic in a while loop, with no graphics library in the program and none in the language. My first render was wrong and I had to say so. The old cover put a turquoise bolt on a violet field, so the contrast came from hue. In red on red there is no hue left to lean on, and the bolt sank into the background. I cut the background glow to a third and pushed the bolt to a near-white core, so the contrast now comes from brightness. I cleaned the repository behind it. My README still linked to SPEC.md and WORKLOG.md after I deleted them, so anyone cloning it hit two dead links on the front page. I removed those links and rewrote the root README and two demo READMEs without tables. Why did I do it like this? Because a cover drawn in an image editor says nothing about my language, and a cover computed by it is the smallest honest benchmark I own. If the language cannot fill 315,000 pixels, I want to know that before someone else finds out. Because 43 seconds is a real number and I am not hiding it. It is fine for a cover I render once, and it is exactly why a bytecode VM sits on my roadmap instead of being marked done. Because a README that points at files I deleted is a promise I broke to whoever clones the repo, and that is the first thing a reviewer sees."}, {"post_id": 46568, "ts": "2026-08-13T21:53:11Z", "hours": 30.61, "text": "The loop that fixes the language is written in the language Since the last devlog the work split in two: a development loop that RaidenScript now drives itself, and a repository that finally stopped mixing the language with a game server. selfdev - the decision logic is a .rai file tools/selfdev.rai holds the loop’s rules: pick an area nobody touched last round, run the build, read the log, call the pass green or red, append its own entry to a round journal. Under it sits tools/rsdev.cpp, a sys.* host built on the same C API the browser game and the Minecraft plugin already use. The language had three hosts. The fourth one is its own toolchain. Pass 2 taught it what not to trust. tools/selfdev-build.cmd reported EXIT=0 for a run that failed to link. The cause is not in the language at all: exit /b inside a ( … ) » log 2>&1 block does not end a .cmd script, so control falls through to the final exit /b 0. A loop whose whole contract is “exit 0 means green” can commit on red - and it did once, on stale .o files. The rule now is read the log, not the exit code, and it is written in capitals at the top of SELFDEV-NOTES.md because I expect to forget it. What the passes actually fixed String building was quadratic. At 60,000 pieces: s += x took 1879 ms, s = s + x took 2382 ms, against a list.push + join baseline of 54 ms - 35x and 44x. Strings stay immutable (SPEC section 2), the fix is ownership: when the slot is the only owner, append in place. Both forms now run in about 25 ms. The indexed form d[k] += x was a separate code path and stayed quadratic after the first fix, so it took a second pass to catch. The measurement size was part of the test. At 24,000 pieces the s = s + x check passed green: 288 KB fits in L2 and quadratic copying looks cheap in cache. At 60,000 (720 KB) both went red. f-strings could not hold a quoted string inside an interpolation, although SPEC 9/3 said they could. f”{sys.read(“a.txt”)}” was a syntax error. The spec was right and the parser was wrong. A blank line in a CRLF file closed a block early. The lone \\r counted as content - the kind of bug that only shows up on someone else’s machine. Two C API bugs: rs_call could return an empty error message, and a nested rs_call corrupted the string channel of the outer primitive. The JVM bridge silently collapsed an int-returning host primitive to 0. Silent zeros are the worst class: the plugin keeps running and the numbers are simply wrong. 68 C API checks green, zero compiler warnings, sanitizer run clean. 29 keywords, still capped at 30. No C API signature changed. The branch split 227 commits had piled up unpushed and 216 of them were the Minecraft plugin demo. I reset main to origin, cherry-picked only the 13 language and tooling commits, and left the rest on its own branch. main is the language. Nothing else goes there. Most of the time logged on this project since the last devlog went into that plugin demo - the JVM binding exercised against a real server - and that branch is not on GitHub yet. The language fixes above came out of the unattended loop.I read every pass and hand-picked what entered main. The design, the spec and the original src/ are mine. Logged hours are my editor time only."}, {"post_id": 36295, "ts": "2026-07-28T09:44:35Z", "hours": 0.5578, "text": "Seven bugs, and the ones that were never reachable Last devlog promised a depth counter for the crash that hit all three hosts. I built it, then kept reading instead of building, and the audit found six more. THE COUNTER A script that recurses too deep does not raise an error. It kills the process. On a Minecraft server that means every player drops and the log has not one line about it - no Java exception, no hs_err file, exit code 127. The tempting fix is a bigger stack, but that only moves the wall: with -Xss16m the JVM dies at ~5000 frames instead of ~500, the same way. So the interpreter counts instead. Every script call goes through one function, and past the limit it raises an ordinary Error - catchable with try/catch, readable through rs_last_error. Picking the number mattered more than writing it. My notes said “4000”, my measurements said that was useless: native and wasm hit the wall near 1000 frames, a default JVM thread at ~500, because each script frame costs about 1.7 KB of native stack. A limit above the wall protects nobody. So: 800, and the JNI bridge drops it to 400 because it knows what stack it stands on. The counter also has to be restored no matter HOW a call exits - return, return signal, or exception. My restore lines covered two of those three paths; a destructor covers all three and cannot be forgotten. A CRASH ANY SCRIPT COULD TRIGGER \"a,b\".split(5) That was enough to kill the host. split assumed its argument was a string, dereferenced a checked cast without checking it, and got a null pointer. Eight builtins had the same line copied into them. In a standalone language that is a segfault. In an embedded one, any script author can take down the server with a typo. It is now a type error naming the method. OPERATORS THAT WERE NEVER REACHABLE The lexer produced tokens for & | ^ « ». The interpreter had the arithmetic for all five. Every test passed. But no rule in the parser ever read those tokens, so “flags & 4” got “expression expected, found ‘&’”, and the code in the other two layers had never once run. Three layers agreeing on a feature is not the same as three layers connected by it. The fix was four precedence levels, ordered like Python and C - no new keywords, so the language stays at 29 of 30. THE SMALL ONES throw Error(“amount missing”) reached the host as “”: the CLI path pulled out the message field, the embedding path did not. 2 ** 64 wrapped silently to 0. 1 « 64 was undefined behaviour - on x86 the CPU takes the shift count modulo 64, so it quietly evaluates to 1. And an exception thrown from a single-expression lambda left the interpreter in the lambda’s scope, so the catch block ran against the wrong variables. WHERE IT STANDS The C API suite is 20 checks now, five written for these bugs; the wasm suite 7; 11 examples still run; zero warnings. The guard is verified on native, wasm and JNI separately, and in each one the process was still alive after the limit was hit. Three problems stay open, in the README rather than hidden: an exception escaping a host function leaks stack, string += is quadratic, and a script returning a string to rs_call still yields 0. ON THE AI SPLIT This changes what I said last time, so I am saying it plainly. Until now AI had not touched src/. This round it did: I asked it to audit the interpreter and fix what it found, and the C++ in these seven fixes is AI-written from that audit. The language itself - lexer, parser, resolver, interpreter, REPL, C API, string channel - is still my design and was written by me. Host bindings and demo apps were already AI-written from my designs, as I said last devlog. Logged hours are my editor time only."}, {"post_id": 36104, "ts": "2026-07-27T23:51:06Z", "hours": 3.3964, "text": "One interpreter, three hosts Last devlog my language could define a weapon in my shipped game. Since then it left the browser too, and the way out taught me more than the way in. STRINGS WITHOUT LYING ABOUT NUMBERS The C boundary only carried doubles. That was a deliberate choice: a number is copied, so nobody has to ask who owns it. Then I tried to write a bank UI and stopped in the first ten minutes. An IBAN is text. An error message is text. The tempting fix is to pass a handle: “this double is really an index into a string table”. I did not do it. A contract like that is invisible, and the first time somebody misreads it the program moves the wrong money without a warning. So strings travel BESIDE the numbers instead of inside them. args[] did not change by a single byte, rs_host_fn kept its signature, and my already-shipped game’s bridge kept working untouched. Text is pulled by the script, not pushed by the host: script: iban = ui.input(\"iban\") host : reads the field name, returns the value THE 64 KILOBYTE FLOOR Then I asked whether the language could drive an animated web page, and measured instead of guessing. 490,000 host calls per second. 200 elements updated twice each = 1.45 ms, nine percent of a frame. Fine. What was not fine: recursion died at depth 130. Not with an error - with memory corruption. After it, the whole WebAssembly module was dead; I could not even open a fresh VM on it. Emscripten’s default stack is 64 KB, and a tree-walking interpreter spends several C++ frames per script frame. Adding -sSTACK_SIZE=8MB moved the safe depth past 1000 and turned overflow into a catchable error. Cost: the .wasm grew by three bytes. Then a worse one. If a host function throws, the exception unwinds through the interpreter’s frames without restoring the stack pointer, and that space never comes back. I measured the drift: 5,000 escaping exceptions took the safe depth from 1000 to 937. At 50,000 the module died. Fix: never let an exception cross the boundary - catch it in the bridge. THE THIRD HOST Then JNI, and the language went into a Minecraft server. Same C header, a different bridge, and the design copied deliberately: numbers in the array, strings in the channel beside it. The plugin is a custom enchanting table. Sixteen enchants, seven rarity tiers, slot limits per rarity, conflicts, an XP cost curve, and the block of text drawn on the item - all of it in one .rai file. The Java side is two classes that do not contain a single enchant name. Stats are written into the schema my existing combat plugin already reads, so enchants change real damage without one line changing in the plugins that were already there. Because there is no compile step, /rai reload changes the rules while players are online. A live server found a bug I had not: NamespacedKey only accepts [a-z0-9/._-] and my enchant ids are camelCase. The bridge’s catch turned what would have been a crash into a log line, and the log line named the key. THE SAME BUG THREE TIMES Native: depth 1000, then a silent death, exit code 127. WebAssembly: 130, then corruption. JVM: 500, then the whole server dies with no Java exception and no crash log. One cause - I recurse on the native stack and never count the depth. Three hosts made it obvious in a way one host never would have. That counter is next. ON THE AI SPLIT The core is mine: lexer, parser, resolver, interpreter, REPL, C API, the string channel. AI has not touched src/ and I checked the history before writing this. The host bindings and the demos are AI-written from my designs - the browser binding, the JNI bridge, and three demo apps. Logged hours are my editor time only."}, {"post_id": 35952, "ts": "2026-07-27T18:45:08Z", "hours": 2.4036, "text": "My language now defines a weapon in my shipped game Phase 1 gave RaidenScript a lexer, parser, resolver, interpreter and REPL. Today it got a design change of its own, and a way out of the terminal. TWO KEYWORDS, AND WHY THE FIRST VERSION WAS WEAK I had one keyword for pulling code in: use. I wanted hardware code to look different from application code, so I proposed include for boards and import for everything else. That rule was weak and I want to be honest about why. If include serial and import math do exactly the same thing, nothing stops anyone writing include math. A guide the compiler cannot check is not a guide, it is a convention with a syntax bill. So the difference moved onto something the compiler can enforce: import resolved at runtime: std library, a git repo, a pinned version include resolved when the host builds you in include now refuses quoted paths and @ “v0.3.1” version tags outright. On an ESP32 there is no filesystem and nothing to fetch, so a dependency needing the network at load time simply cannot be an include. Hardware and software separate as a side effect of a rule about resolution time — that is what earns two keywords instead of one. A file may use both, and that is the point: that is what a bridge looks like. 29 keywords now, hard-capped at 30 until v1.0. One slot left, and I would rather leave it empty than spend it on a synonym. A BUG ONLY TURKISH COULD PRODUCE Renaming use to import across 20 files, a bulk find-and-replace uppercased an i into U+0130 — the Turkish dotted capital, because in Turkish that is what the uppercase of i is. My editor did the case change in my own locale and handed C++ a character it cannot compile. The irony is sharp. RaidenScript deliberately accepts UTF-8 identifiers, so a Turkish variable name is legal in the language I am building. The language I am building it in has no such patience. OUT OF THE TERMINAL Then the embedding work: a C API, a WASM build, and one weapon. The C API was not the hard part. Lifetime was. Function values hold RAW pointers into the AST, and a host calls a script function long after loading it — so the VM has to own the source, the tree and the interpreter, and destroy them in the right order. One VM, one script; numbers across the boundary, not JSON. Then WASM aborted on the first return statement. Emscripten disables C++ exceptions by default, and this interpreter carries return, break and thrown errors on C++ exceptions. -fwasm-exceptions fixes it. The JS-based alternative would mean a trip to JavaScript on every single function return — unusable for a tree-walker. And the payoff: STAR BREAKER, the game I shipped last week, now has a weapon whose definition is not in the game. scripts/plazma.rai holds its damage, fire rate, spread and the shape of its shot. The engine calls fire(angle), the script calls back with game.spawnBullet, and the engine makes the bullets. The script only says where. Rarity, levels, reforges, evolution — all of it still works, untouched. The weapon is an ordinary table entry that happens to be filled from a language I wrote. I added a weapon rather than moving one: the game is shipped and its balance measured, so adding risks nothing. If the WASM fails to load, the weapon simply is not there. ON THE AI SPLIT The design is mine — the two keywords, the bridge pattern, the decision to add rather than move. I wrote the first pass of the rename; AI reviewed it, found what was missing, and wrote most of the embedding layer with me directing. That is more AI than my last devlog claimed, and I would rather correct it than let it stand. Repo (MIT): github.com/RaidenTechnology/raidenscript"}, {"post_id": 35673, "ts": "2026-07-27T08:35:48Z", "hours": 0.8014, "text": "I wrote a programming language. It runs. RaidenScript is an embeddable scripting language — the kind that goes inside another program and makes it programmable. It borrows readability from Python, the runtime model from JavaScript, optional types from C++, and declarative UI from HTML. Phase 1 is done: lexer, AST, parser, resolver, tree-walking interpreter, REPL. ~5,150 lines of C++20, zero warnings under -Wall -Wextra -Wpedantic -Wshadow -Wconversion. WHAT I DID FIRST WAS NOT WRITE CODE Phase 0 was pure design: a spec, a grammar, and 15 example programs — and no compiler at all. Writing those examples found 16 defects in the spec before a single line of the implementation existed. Two of them would have forced a rewrite later: Conditional expressions (a if cond else b) were missing from the grammar entirely — I typed one by reflex in example 4 and it couldn’t parse. => followed by { was genuinely ambiguous: block, or map literal? I took JavaScript’s answer — after =>, { is always a block, and returning a map needs ({…}). Finding this while writing the parser would have cost days. Then the parser found a third: my rule that brace-blocks suppress indentation was just wrong. It makes this impossible to write: register(\"hit\", (e) => { if e.critical: damage = damage * 2 }) Parentheses hold one expression; brace blocks hold statements, and statements need block structure. DECISIONS I’M HAPPY WITH Only nil and false are falsy. 0 and “” are truthy, which kills the classic if-count bug at the root. / always returns a float; // is integer division. C’s silent truncation is a bug factory. No package registry, ever. Modules resolve straight from a git repo, Go-style. I built the diagnostics engine before the lexer, because error messages bolted on afterwards always stay bolted on. Columns count UTF-8 characters, not bytes — so the caret lands correctly when a variable is named sayaç. Real output, Turkish for now (English messages are on the list): hata: beklenmeyen ‘!’ –> test.rai:3:7 | 3 | c = 5 ! 3 | ^ | = ipucu: olumsuzlama için ‘not’ kullan THE PART THAT MADE ME GRIN Example 15 is a calculator — a lexer, a Pratt parser and an evaluator, written in RaidenScript. I wrote it in Phase 0 as a rehearsal for the C++ I hadn’t written yet. Now it runs on the interpreter it was a rehearsal for: 2 ^ 3 ^ 2 gives 512, right-associative, not 64. The REPL I wrote by hand, and it immediately earned its keep by finding a bug nothing else could: Source::fromFile stripped the UTF-8 BOM, but the constructor didn’t. The REPL was the first code path to build a Source from an in-memory string instead of a file, so piped input carried a BOM into the lexer, which glued it onto the first identifier. A new entry point finds bugs no amount of staring finds. ON THE AI SPLIT The design is mine — spec, grammar, naming, and every decision above. Phases 0-6 of the implementation were written with AI assistance (Claude); the REPL, step 7, I wrote myself, and that is the mode from here on: I write the code, AI reviews it. WHAT’S NEXT Not phase 2. I’m skipping types and the bytecode VM and going straight to embedding — because a tree-walking interpreter is plenty fast for mod scripts, which run on events, not in the render loop. The goal: compile to WASM, bind a game.* API, and define one weapon in my published game STAR BREAKER using a language I wrote. A language nobody uses is a toy. A language shipping in a real product is not. Repo (MIT): github.com/RaidenTechnology/raidenscript"}]...
|
Title: RaidenScript by @RaidenTechnology | Stardan Title: RaidenScript by @RaidenTechnology | Stardance
Devlogs:
I wrote a programming language. It runs. RaidenScript is an embeddable scripting language — the kind that goes inside another program and makes it programmable. It borrows readability from Python, the runtime model from JavaScript, optional types from C++, and declarative UI from HTML. Phase 1 is done: lexer, AST, parser, resolver, tree-walking interpreter, REPL. ~5,150 lines of C++20, zero warnings under -Wall -Wextra -Wpedantic -Wshadow -Wconversion. WHAT I DID FIRST WAS NOT WRITE CODE Phase 0 was pure design: a spec, a grammar, and 15 example programs — and no compiler at all. Writing those examples found 16 defects in the spec before a single line of the implementation existed. Two of them would have forced a rewrite later: Conditional expressions (a if cond else b) were missing from the grammar entirely — I typed one by reflex in example 4 and it couldn’t parse. => followed by { was genuinely ambiguous: block, or map literal? I took JavaScript’s answer — after =>, { is always a block, and returning a map needs ({…}). Finding this while writing the parser would have cost days. Then the parser found a third: my rule that brace-blocks suppress indentation was just wrong. It makes this impossible to write: register("hit", (e) => { if e.critical: damage = damage * 2 }) Parentheses hold one expression; brace blocks hold statements, and statements need block structure. DECISIONS I’M HAPPY WITH Only nil and false are falsy. 0 and “” are truthy, which kills the classic if-count bug at the root. / always returns a float; // is integer division. C’s silent truncation is a bug factory. No package registry, ever. Modules resolve straight from a git repo, Go-style. I built the diagnostics engine before the lexer, because error messages bolted on afterwards always stay bolted on. Columns count UTF-8 characters, not bytes — so the caret lands correctly when a variable is named sayaç. Real output, Turkish for now (English messages are on the list): hata: beklenmeyen ‘!’ –> test.rai:3:7 | 3 | c = 5 ! 3 | ^ | = ipucu: olumsuzlama için ‘not’ kullan THE PART THAT MADE ME GRIN Example 15 is a calculator — a lexer, a Pratt parser and an evaluator, written in RaidenScript. I wrote it in Phase 0 as a rehearsal for the C++ I hadn’t written yet. Now it runs on the interpreter it was a rehearsal for: 2 ^ 3 ^ 2 gives 512, right-associative, not 64. The REPL I wrote by hand, and it immediately earned its keep by finding a bug nothing else could: Source::fromFile stripped the UTF-8 BOM, but the constructor didn’t. The REPL was the first code path to build a Source from an in-memory string instead of a file, so piped input carried a BOM into the lexer, which glued it onto the first identifier. A new entry point finds bugs no amount of staring finds. ON THE AI SPLIT The design is mine — spec, grammar, naming, and every decision above. Phases 0-6 of the implementation were written with AI assistance (Claude); the REPL, step 7, I wrote myself, and that is the mode from here on: I write the code, AI reviews it. WHAT’S NEXT Not phase 2. I’m skipping types and the bytecode VM and going straight to embedding — because a tree-walking interpreter is plenty fast for mod scripts, which run on events, not in the render loop. The goal: compile to WASM, bind a game.* API, and define one weapon in my published game STAR BREAKER using a language I wrote. A language nobody uses is a toy. A language shipping in a real product is not. Repo (MIT): github.com/RaidenTechnology/raidenscript
My language now defines a weapon in my shipped game Phase 1 gave RaidenScript a lexer, parser, resolver, interpreter and REPL. Today it got a design change of its own, and a way out of the terminal. TWO KEYWORDS, AND WHY THE FIRST VERSION WAS WEAK I had one keyword for pulling code in: use. I wanted hardware code to look different from application code, so I proposed include for boards and import for everything else. That rule was weak and I want to be honest about why. If include serial and import math do exactly the same thing, nothing stops anyone writing include math. A guide the compiler cannot check is not a guide, it is a convention with a syntax bill. So the difference moved onto something the compiler can enforce: import resolved at runtime: std library, a git repo, a pinned version include resolved when the host builds you in include now refuses quoted paths and @ “v0.3.1” version tags outright. On an ESP32 there is no filesystem and nothing to fetch, so a dependency needing the network at load time simply cannot be an include. Hardware and software separate as a side effect of a rule about resolution time — that is what earns two keywords instead of one. A file may use both, and that is the point: that is what a bridge looks like. 29 keywords now, hard-capped at 30 until v1.0. One slot left, and I would rather leave it empty than spend it on a synonym. A BUG ONLY TURKISH COULD PRODUCE Renaming use to import across 20 files, a bulk find-and-replace uppercased an i into U+0130 — the Turkish dotted capital, because in Turkish that is what the uppercase of i is. My editor did the case change in my own locale and handed C++ a character it cannot compile. The irony is sharp. RaidenScript deliberately accepts UTF-8 identifiers, so a Turkish variable name is legal in the language I am building. The language I am building it in has no such patience. OUT OF THE TERMINAL Then the embedding work: a C API, a WASM build, and one weapon. The C API was not the hard part. Lifetime was. Function values hold RAW pointers into the AST, and a host calls a script function long after loading it — so the VM has to own the source, the tree and the interpreter, and destroy them in the right order. One VM, one script; numbers across the boundary, not JSON. Then WASM aborted on the first return statement. Emscripten disables C++ exceptions by default, and this interpreter carries return, break and thrown errors on C++ exceptions. -fwasm-exceptions fixes it. The JS-based alternative would mean a trip to JavaScript on every single function return — unusable for a tree-walker. And the payoff: STAR BREAKER, the game I shipped last week, now has a weapon whose definition is not in the game. scripts/plazma.rai holds its damage, fire rate, spread and the shape of its shot. The engine calls fire(angle), the script calls back with game.spawnBullet, and the engine makes the bullets. The script only says where. Rarity, levels, reforges, evolution — all of it still works, untouched. The weapon is an ordinary table entry that happens to be filled from a language I wrote. I added a weapon rather than moving one: the game is shipped and its balance measured, so adding risks nothing. If the WASM fails to load, the weapon simply is not there. ON THE AI SPLIT The design is mine — the two keywords, the bridge pattern, the decision to add rather than move. I wrote the first pass of the rename; AI reviewed it, found what was missing, and wrote most of the embedding layer with me directing. That is more AI than my last devlog claimed, and I would rather correct it than let it stand. Repo (MIT): github.com/RaidenTechnology/raidenscript
One interpreter, three hosts Last devlog my language could define a weapon in my shipped game. Since then it left the browser too, and the way out taught me more than the way in. STRINGS WITHOUT LYING ABOUT NUMBERS The C boundary only carried doubles. That was a deliberate choice: a number is copied, so nobody has to ask who owns it. Then I tried to write a bank UI and stopped in the first ten minutes. An IBAN is text. An error message is text. The tempting fix is to pass a handle: “this double is really an index into a string table”. I did not do it. A contract like that is invisible, and the first time somebody misreads it the program moves the wrong money without a warning. So strings travel BESIDE the numbers instead of inside them. args[] did not change by a single byte, rs_host_fn kept its signature, and my already-shipped game’s bridge kept working untouched. Text is pulled by the script, not pushed by the host: script: iban = ui.input("iban") host : reads the field name, returns the value THE 64 KILOBYTE FLOOR Then I asked whether the language could drive an animated web page, and measured instead of guessing. 490,000 host calls per second. 200 elements updated twice each = 1.45 ms, nine percent of a frame. Fine. What was not fine: recursion died at depth 130. Not with an error - with memory corruption. After it, the whole WebAssembly module was dead; I could not even open a fresh VM on it. Emscripten’s default stack is 64 KB, and a tree-walking interpreter spends several C++ frames per script frame. Adding -sSTACK_SIZE=8MB moved the safe depth past 1000 and turned overflow into a catchable error. Cost: the .wasm grew by three bytes. Then a worse one. If a host function throws, the exception unwinds through the interpreter’s frames without restoring the stack pointer, and that space never comes back. I measured the drift: 5,000 escaping exceptions took the safe depth from 1000 to 937. At 50,000 the module died. Fix: never let an exception cross the boundary - catch it in the bridge. THE THIRD HOST Then JNI, and the language went into a Minecraft server. Same C header, a different bridge, and the design copied deliberately: numbers in the array, strings in the channel beside it. The plugin is a custom enchanting table. Sixteen enchants, seven rarity tiers, slot limits per rarity, conflicts, an XP cost curve, and the block of text drawn on the item - all of it in one .rai file. The Java side is two classes that do not contain a single enchant name. Stats are written into the schema my existing combat plugin already reads, so enchants change real damage without one line changing in the plugins that were already there. Because there is no compile step, /rai reload changes the rules while players are online. A live server found a bug I had not: NamespacedKey only accepts [a-z0-9/._-] and my enchant ids are camelCase. The bridge’s catch turned what would have been a crash into a log line, and the log line named the key. THE SAME BUG THREE TIMES Native: depth 1000, then a silent death, exit code 127. WebAssembly: 130, then corruption. JVM: 500, then the whole server dies with no Java exception and no crash log. One cause - I recurse on the native stack and never count the depth. Three hosts made it obvious in a way one host never would have. That counter is next. ON THE AI SPLIT The core is mine: lexer, parser, resolver, interpreter, REPL, C API, the string channel. AI has not touched src/ and I checked the history before writing this. The host bindings and the demos are AI-written from my designs - the browser binding, the JNI bridge, and three demo apps. Logged hours are my editor time only.
Seven bugs, and the ones that were never reachable Last devlog promised a depth counter for the crash that hit all three hosts. I built it, then kept reading instead of building, and the audit found six more. THE COUNTER A script that recurses too deep does not raise an error. It kills the process. On a Minecraft server that means every player drops and the log has not one line about it - no Java exception, no hs_err file, exit code 127. The tempting fix is a bigger stack, but that only moves the wall: with -Xss16m the JVM dies at ~5000 frames instead of ~500, the same way. So the interpreter counts instead. Every script call goes through one function, and past the limit it raises an ordinary Error - catchable with try/catch, readable through rs_last_error. Picking the number mattered more than writing it. My notes said “4000”, my measurements said that was useless: native and wasm hit the wall near 1000 frames, a default JVM thread at ~500, because each script frame costs about 1.7 KB of native stack. A limit above the wall protects nobody. So: 800, and the JNI bridge drops it to 400 because it knows what stack it stands on. The counter also has to be restored no matter HOW a call exits - return, return signal, or exception. My restore lines covered two of those three paths; a destructor covers all three and cannot be forgotten. A CRASH ANY SCRIPT COULD TRIGGER "a,b".split(5) That was enough to kill the host. split assumed its argument was a string, dereferenced a checked cast without checking it, and got a null pointer. Eight builtins had the same line copied into them. In a standalone language that is a segfault. In an embedded one, any script author can take down the server with a typo. It is now a type error naming the method. OPERATORS THAT WERE NEVER REACHABLE The lexer produced tokens for & | ^ « ». The interpreter had the arithmetic for all five. Every test passed. But no rule in the parser ever read those tokens, so “flags & 4” got “expression expected, found ‘&’”, and the code in the other two layers had never once run. Three layers agreeing on a feature is not the same as three layers connected by it. The fix was four precedence levels, ordered like Python and C - no new keywords, so the language stays at 29 of 30. THE SMALL ONES throw Error(“amount missing”) reached the host as “”: the CLI path pulled out the message field, the embedding path did not. 2 ** 64 wrapped silently to 0. 1 « 64 was undefined behaviour - on x86 the CPU takes the shift count modulo 64, so it quietly evaluates to 1. And an exception thrown from a single-expression lambda left the interpreter in the lambda’s scope, so the catch block ran against the wrong variables. WHERE IT STANDS The C API suite is 20 checks now, five written for these bugs; the wasm suite 7; 11 examples still run; zero warnings. The guard is verified on native, wasm and JNI separately, and in each one the process was still alive after the limit was hit. Three problems stay open, in the README rather than hidden: an exception escaping a host function leaks stack, string += is quadratic, and a script returning a string to rs_call still yields 0. ON THE AI SPLIT This changes what I said last time, so I am saying it plainly. Until now AI had not touched src/. This round it did: I asked it to audit the interpreter and fix what it found, and the C++ in these seven fixes is AI-written from that audit. The language itself - lexer, parser, resolver, interpreter, REPL, C API, string channel - is still my design and was written by me. Host bindings and demo apps were already AI-written from my designs, as I said last devlog. Logged hours are my editor time only.
The loop that fixes the language is written in the language Since the last devlog the work split in two: a development loop that RaidenScript now drives itself, and a repository that finally stopped mixing the language with a game server. selfdev - the decision logic is a .rai file tools/selfdev.rai holds the loop’s rules: pick an area nobody touched last round, run the build, read the log, call the pass green or red, append its own entry to a round journal. Under it sits tools/rsdev.cpp, a sys.* host built on the same C API the browser game and the Minecraft plugin already use. The language had three hosts. The fourth one is its own toolchain. Pass 2 taught it what not to trust. tools/selfdev-build.cmd reported EXIT=0 for a run that failed to link. The cause is not in the language at all: exit /b inside a ( … ) » log 2>&1 block does not end a .cmd script, so control falls through to the final exit /b 0. A loop whose whole contract is “exit 0 means green” can commit on red - and it did once, on stale .o files. The rule now is read the log, not the exit code, and it is written in capitals at the top of SELFDEV-NOTES.md because I expect to forget it. What the passes actually fixed String building was quadratic. At 60,000 pieces: s += x took 1879 ms, s = s + x took 2382 ms, against a list.push + join baseline of 54 ms - 35x and 44x. Strings stay immutable (SPEC section 2), the fix is ownership: when the slot is the only owner, append in place. Both forms now run in about 25 ms. The indexed form d[k] += x was a separate code path and stayed quadratic after the first fix, so it took a second pass to catch. The measurement size was part of the test. At 24,000 pieces the s = s + x check passed green: 288 KB fits in L2 and quadratic copying looks cheap in cache. At 60,000 (720 KB) both went red. f-strings could not hold a quoted string inside an interpolation, although SPEC 9/3 said they could. f”{sys.read(“a.txt”)}” was a syntax error. The spec was right and the parser was wrong. A blank line in a CRLF file closed a block early. The lone \r counted as content - the kind of bug that only shows up on someone else’s machine. Two C API bugs: rs_call could return an empty error message, and a nested rs_call corrupted the string channel of the outer primitive. The JVM bridge silently collapsed an int-returning host primitive to 0. Silent zeros are the worst class: the plugin keeps running and the numbers are simply wrong. 68 C API checks green, zero compiler warnings, sanitizer run clean. 29 keywords, still capped at 30. No C API signature changed. The branch split 227 commits had piled up unpushed and 216 of them were the Minecraft plugin demo. I reset main to origin, cherry-picked only the 13 language and tooling commits, and left the rest on its own branch. main is the language. Nothing else goes there. Most of the time logged on this project since the last devlog went into that plugin demo - the JVM binding exercised against a real server - and that branch is not on GitHub yet. The language fixes above came out of the unattended loop.I read every pass and hand-picked what entered main. The design, the spec and the original src/ are mine. Logged hours are my editor time only.
RaidenScript: the cover is a program, not a picture I gave the project a red and black cover, and I did it without opening an image editor. The cover generator is a RaidenScript program that prints a plain PPM to stdout, so I changed the palette in the script and ran it again: three radial glows, a faint grid, a vertical gradient on the bolt, and a 5x7 bitmap font that is data inside the file, not a system font. It computes 315,000 pixels in 43 seconds. That is my tree-walking interpreter doing arithmetic in a while loop, with no graphics library in the program and none in the language. My first render was wrong and I had to say so. The old cover put a turquoise bolt on a violet field, so the contrast came from hue. In red on red there is no hue left to lean on, and the bolt sank into the background. I cut the background glow to a third and pushed the bolt to a near-white core, so the contrast now comes from brightness. I cleaned the repository behind it. My README still linked to SPEC.md and WORKLOG.md after I deleted them, so anyone cloning it hit two dead links on the front page. I removed those links and rewrote the root README and two demo READMEs without tables. Why did I do it like this? Because a cover drawn in an image editor says nothing about my language, and a cover computed by it is the smallest honest benchmark I own. If the language cannot fill 315,000 pixels, I want to know that before someone else finds out. Because 43 seconds is a real number and I am not hiding it. It is fine for a cover I render once, and it is exactly why a bytecode VM sits on my roadmap instead of being marked done. Because a README that points at files I deleted is a promise I broke to whoever clones the repo, and that is the first thing a reviewer sees.
Ships:
RaidenScript v0.1 — an embeddable scripting language written from scratch in C++20. WHAT IT IS A small language (29 keywords) with Python’s readability and JavaScript’s runtime model, built to go inside another program and make it scriptable. The same interpreter runs in three hosts, and each one has a working demo in the repo: Terminal — native binary, “rai program.rai”, plus a REPL Browser — C API compiled to WebAssembly, running an animated store page JVM — C API through JNI, running a Paper Minecraft plugin The demo link is my shipped game STAR BREAKER: one of its weapons is not defined in the game at all, it is a RaidenScript file the game loads and runs through the WebAssembly build. WHAT IS IN IT Lexer, parser, resolver, tree-walking interpreter and REPL, all hand-written; no parser generator, no dependencies. 16 example programs that double as the regression suite, 20 C API checks, 7 WebAssembly checks, zero compiler warnings. A recursion-depth guard so a runaway script raises a catchable error instead of killing the host process — verified separately on native, wasm and the JVM. The cover image was computed pixel by pixel by a RaidenScript program (demo/kapak/kapak-ascii.rai) — no graphics library, in the program or in the language. HOW TO TRY IT git clone, then “make” (w64devkit/MinGW on Windows, gcc elsewhere), then “rai examples/01-temeller.rai”, or just “rai” for the REPL. The README is a full manual: language guide, standard library, embedding walkthrough. Known limits are written down there rather than hidden: an exception escaping a host function leaks stack, string += is quadratic, and a script returning a string to rs_call still yields 0. AI SPLIT The design of the language and its core — lexer, parser, resolver, interpreter, REPL, C API, string channel — is mine and was written by me. The host bindings, the demo apps, and this week’s seven interpreter bug fixes are AI-written from my designs and my audit. Logged hours are my editor time only. Source (MIT): github.com/RaidenTechnology/raidenscript
RaidenScript v0.2 Update I wrote RaidenScript (RS) from scratch in C++20 as a small embeddable scripting language. In Ship #1 I had it running in three hosts. Since then I gave it a browser you can try it in, and I turned the Minecraft host into a real game running on a live server. I put the language in a browser. I compiled the C API to WebAssembly, served it from GitHub Pages, and wrote an editor with a Run button and four example programs: raidentechnology.github.io/raidenscript. I send nothing to a server; the page is the interpreter. I stopped treating the Minecraft host as a demo. I wrote 144 commits on it since the last devlog, and I keep the rules out of Java entirely: they sit in one .rai file the server loads at boot and reloads while players are online. I wrote a whole farming layer as script rules. Every crop got its own tool with its own level and rarity ladder, and I added tool enchants, XP bottles, an upgrade bench, and a 20 minute contest with medals and a shop of its own. I added pests. Twelve species, a spawn engine I tied to whatever crop is planted, a five-tier vacuum to kill them with, and a loot table I hooked into the same farming-luck stat every other system reads. I built a garden around it: 8 plots, a regeneration engine that rebuilds 13 farm patterns, 76 visitor NPCs I gave 53 signed skins, and a copper economy I priced off the live Bazaar API instead of numbers I made up. I added one host primitive, taslakModel, and let the script choose the model an item wears. Adding an item is now a script edit and nothing else. I fixed three bugs the live server found and no test of mine would have. An item-identity gate was cancelling every right click unconditionally, so the grappling hook silently never fired. The area hoe was catching its own synthetic event and moving the stack twice. And one wrong price in a shop table was failing the entire script at boot. Why did I do it like this? Because I think a language is judged by what runs on it, not by its grammar. The strongest thing I can say about my embedding API is that a 10,000 line ruleset runs on it every night, on a real server, with real players. Because I lose reviewers at the install wall. For Ship #1 I asked people to clone a repo and build it with MinGW. Now I ask for one click, and I am handing them the same interpreter, not a simplified twin. Because every rule I move out of Java is a rule I can change without a restart. I left no compile step in the script layer, so /rai reload changes the balance of a live game between two swings of a sword. Because item models were the last thing still forcing me into Java. I closed that hole, and I now keep the Java side as infrastructure only: it knows how to talk to the server and nothing about what the game is. Because I wanted the contest, the pests and the visitor queue to stress the C boundary. I pass numbers in the array and let strings travel beside it, and not one of these systems made me widen that contract. Because a bug a player hits at 2 AM is worth more to me than a bug I find in my own suite. All three above came from the server. Source (MIT): github.com/RaidenTechnology/raidenscript...
|
1793681650.0560734
|
1793768050.0560734
|
|
52163
|
ThirdView by @shivakaushal | Stardance
|
shivakaushal
|
2
|
21.0
|
144
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-31T06:33:18Z", "hours": 15.0, "multiplier": 7.18, "payout": 105, "blessing": "neutral", "text": "The project is finally complete, by the way. It was completed a month ago. But i really forgot this. Right now thirdview max uses two search @visual and @vocal , by the help of this. Evrything is working. t was fun when I was making it.", "repo": "https://github.com/ThisShivaKaushal/ThirdView-Max", "demo": "https://thirdviewmax.vercel.app"}, {"ship_num": 2, "ts": "2026-08-23T11:57:29Z", "hours": 6.0, "multiplier": 6.82, "payout": 39, "blessing": "neutral", "text": "I made ThirdView - you type a description of a scene and it jumps straight to that moment in a video, instead of scrubbing through the timeline forever. It runs fully in the browser using CLIP through Transformer.js, no uploads, no server. The hard part was getting an actual ML model to run smoothly with zero backend, plus CLIP wasn’t built for video, so figuring out how often to sample frames took a lot of trial and error. What we’re proud of is that it just works fully private, fully free, and it actually fixes something that annoys us every single time we watch something not together, without turning into some bloated overengineered app.", "repo": "https://github.com/ThisShivaKaushal/ThirdView-Max", "demo": "https://thirdviewmax.vercel.app"}]...
|
[{"post_id": 85361, "ts": "202 [{"post_id": 85361, "ts": "2026-10-31T06:30:26Z", "hours": 4.3994, "text": "Right now, I just commit my code, because at the last time, i skip this project without writing devlog and committing. The stardance is going to end, so I just going to ship it and the project is wroking perfectly."}, {"post_id": 71013, "ts": "2026-09-20T06:28:36Z", "hours": 0.9111, "text": "I have changed the UI, and some elements are hidden, because when we upload video then it appears. And now I’m going to write the logic(Javascript), i’m too fast because I have already made it, so basic things don’t take much time, but now i’m going to work on logic, and i also have to add some more features, so i think it usually takes 3-4 hours, and then the projects will get completed."}, {"post_id": 70990, "ts": "2026-09-20T05:14:27Z", "hours": 0.4422, "text": "HTML is completed, now I have to style it, and have to make the logic. Because our project is completely base on logic, so the javascript will be too long. Nd i also suffer sometimes with making logic, and let see what happen:D"}, {"post_id": 70487, "ts": "2026-09-19T08:41:14Z", "hours": 2.0139, "text": "Hey Everyone, I’m going to continue my ThirdView project again but this time, its name will be Thirdview Max, because it is the updated version, so. Now, you can also see the old version at github, which is at another repo. But Thirdview Max have more and extra feature then Thirdview, now it can give accurate result, but in past I said that it also have feature, by which you can just paste link, nd find the part. But because, i have to fetch the video in .mp4 first, which is difficult part, I tried, but i failed. That’s why I decided to skip this feature. and the main things, the Ui is going to completely change."}, {"post_id": 58121, "ts": "2026-08-30T13:56:28Z", "hours": 0.5769, "text": "#Devlog:6 of #Ship:2 I have made these files, but now my logic has hit a limitation because YouTube doesn’t allow frame extraction. To solve this, we are using a public API which helps a lot with YouTube search. I use yt-dlp to resolve the YouTube URL, specifically using an Invidious public API. I know it might get shut down sometimes by YouTube, but what can we do? I will use my own yt-dlp backend to get a CORS-friendly video stream. By doing this, we can access the YouTube video as a .mp4 file, which allows us to extract frames. Let’s see if it works perfectly or not. However, my own backend will work for only 7 days because it is an open-source project."}, {"post_id": 58009, "ts": "2026-08-30T10:54:52Z", "hours": 2.6042, "text": "#Devlog:5 of #Ship:2 I have made my UI, and now I have to write the logic. The best part is that I have messed up my style.css file. I want to improve it more, but I got confused with my colors. I gave names to the colors, but in the end, I could not understand my own color pattern or what I had decided to use each color for. By the way, I think the UI looks good. Now, let’s talk about the UI features: I have made the header sticky and also added a blur effect to it. Instead of taking YouTube’s color palette, I used a popular palette from coolors.co because I liked it at first sight. You can see the UI below."}, {"post_id": 57238, "ts": "2026-08-29T10:45:40Z", "hours": 0.9719, "text": "#Devlog:4 of #Ship:2 I have made the HTML, and now I’m working on the CSS. I am making the UI look good. By the way, I think I have done only 30-40% of the CSS, and I think I’ll try to complete it today. Then, I’ll start focusing on the logic, like JavaScript, because it is our main stuff. I’d take inspiration from YouTube, like using YouTube’s color palette, and the structure is like the old one."}, {"post_id": 57189, "ts": "2026-08-29T09:24:01Z", "hours": 0.2992, "text": "#Devlog:3 of #Ship:2 I have just put my real hosted website into maintenance mode. Normally, if I push code to GitHub, Vercel automatically hosts the new version. If someone visits suddenly during that time, they might think the website has a code error. That’s why I created a vercel.json file a week ago and now pushed it to GitHub. Now, I can continuously make changes for a while without any tension related to the main website, because it always shows that it is in maintenance."}, {"post_id": 57145, "ts": "2026-08-29T07:49:32Z", "hours": 0.5208, "text": "#Devlog:2 of #Ship:2 I have implemented two things: 1.Now you can paste the link of a YouTube video and it will help you find the timestamp. Although I have just created the HTML, this time I didn’t have an idea of how I will grab the frames. By the way, I think I’ll try to download the video in low quality, and then grab the frames. If anyone has any ideas, just let me know, or I’ll try to serch and understand an easier way. 2. I have implemented a new model (Audio Model). In the Shipwright review video, I saw that the reviewer typed “MrBeast saying ‘Red Light,’” and my website at that time was only able to search through visuals. But now it can walk through the vocal parts. It converts the video’s audio into text, and then it will match the query. But here’s an error: we can’t check the query’s exact result matching percentage, and it may create some problems. By the way, when you search, it has two options like @visual and @vocal . So when you select one, it only runs that one model. But if you have added say or said, then it also runs both things simultaneously. If you only put one thing, then it runs one model only, so it saves memory and works fast. But let’s suppose you didn’t select either one; then for accurate results, it runs both models."}, {"post_id": 57108, "ts": "2026-08-29T06:36:15Z", "hours": 0.7319, "text": "#Devlog:1 of #Ship:2 Hi guys, when I shipped my first project, 2-3 people said that I used AI. I really did use it, but in different ways, and now I am also feeling ashamed of myself. Why? Because that was my first project, and my manner of writing code is not good, I even dn’t like what I write myself. That’s why I used AI by giving it my own code and tellng it to make it professional, understandable, and much more. That was my mistake, but now after searching a lot, I understand it didn’t matter. So now I am going to write this project again with some more features, and mainly the UI, which looked very cheap (and I know people were also saying it is AI—by the way, I took color decisions from AI). But now, instead of asking any AI out of fear of making mistakes, that fear has gone, and I am going to design everything by myself. However, my JavaScript is a little bit weak, so I am gong to use AI for learning purposes, but now I will upload the raw code that I write. By the way, the new feature will contain a YouTube video link."}, {"post_id": 53602, "ts": "2026-08-24T07:22:10Z", "hours": 0.7489, "text": "Another new feature, I copied it from Github, because I have used it many time."}, {"post_id": 53591, "ts": "2026-08-24T06:28:53Z", "hours": 0.47, "text": "I built the Thirdview project, but after shipping it, I received requests to make the design more appealing. I didn’t love the original look either, so I am redesigning the UI and adding more color. By the way, I am also working on a new feature—see if you can guess what it is!"}, {"post_id": 52890, "ts": "2026-08-23T08:37:28Z", "hours": 0.9194, "text": "Guys, I was suffering from a problem. When my friends and I watch any movies or something else, mostly anime, then we surely find a scene where me and my boys melt. And when we meet physically, we have to tell each other about that. And this is the most time-consuming part. My one friend who doesn’t even know the episode, then how can we think he will remember the timestamp? That’s why, by the way, I’m also like my friend. That’s why I built this app. It means you just have to upload the videos and then tell about the scene, like, “the main character, who wears yellow clothes, is beating the man,” and you will get the timestamp without any problem. Now, my friends and I don’t have to waste more than 30 minutes for just a 10- to 15-second clip in a one-hour episode. Maybe we can get the correct timestamp in just two or three minutes. Hold a minute. If you are lucky, then you might get the correct timestamp randomly. But I know our and your luck are not that great. And it’s just HTML, CSS, and JavaScript. By the way, let me tell you how it is working. For this, you can read the README.md. For the trial, you can visit thirdview.vercel.app. By the way, for most people, it is just extra storage. But for me, this is my first project, such a great project I made. Bye-bye. Just visit the repo. Oh, and it completely works locally, means in the browser, but it’s not connected to the cloud. That’s why it may be slow. I have just host my project on Vercel, and I will ship this project today after making a show video."}, {"post_id": 52402, "ts": "2026-08-22T15:03:55Z", "hours": 4.8003, "text": "My first project is almost ready to ship! I can’t wait to show you guys. It’s just HTML, CSS, and JavaScript, but it solves a really annoying problem in our friend group. I’ll try to publish it tomorrow. Bye for now!"}]...
|
Title: ThirdView by @shivakaushal | Stardance
Dev Title: ThirdView by @shivakaushal | Stardance
Devlogs:
My first project is almost ready to ship! I can’t wait to show you guys. It’s just HTML, CSS, and JavaScript, but it solves a really annoying problem in our friend group. I’ll try to publish it tomorrow. Bye for now!
Guys, I was suffering from a problem. When my friends and I watch any movies or something else, mostly anime, then we surely find a scene where me and my boys melt. And when we meet physically, we have to tell each other about that. And this is the most time-consuming part. My one friend who doesn’t even know the episode, then how can we think he will remember the timestamp? That’s why, by the way, I’m also like my friend. That’s why I built this app. It means you just have to upload the videos and then tell about the scene, like, “the main character, who wears yellow clothes, is beating the man,” and you will get the timestamp without any problem. Now, my friends and I don’t have to waste more than 30 minutes for just a 10- to 15-second clip in a one-hour episode. Maybe we can get the correct timestamp in just two or three minutes. Hold a minute. If you are lucky, then you might get the correct timestamp randomly. But I know our and your luck are not that great. And it’s just HTML, CSS, and JavaScript. By the way, let me tell you how it is working. For this, you can read the README.md. For the trial, you can visit thirdview.vercel.app. By the way, for most people, it is just extra storage. But for me, this is my first project, such a great project I made. Bye-bye. Just visit the repo. Oh, and it completely works locally, means in the browser, but it’s not connected to the cloud. That’s why it may be slow. I have just host my project on Vercel, and I will ship this project today after making a show video.
I built the Thirdview project, but after shipping it, I received requests to make the design more appealing. I didn’t love the original look either, so I am redesigning the UI and adding more color. By the way, I am also working on a new feature—see if you can guess what it is!
Another new feature, I copied it from Github, because I have used it many time.
#Devlog:1 of #Ship:2 Hi guys, when I shipped my first project, 2-3 people said that I used AI. I really did use it, but in different ways, and now I am also feeling ashamed of myself. Why? Because that was my first project, and my manner of writing code is not good, I even dn’t like what I write myself. That’s why I used AI by giving it my own code and tellng it to make it professional, understandable, and much more. That was my mistake, but now after searching a lot, I understand it didn’t matter. So now I am going to write this project again with some more features, and mainly the UI, which looked very cheap (and I know people were also saying it is AI—by the way, I took color decisions from AI). But now, instead of asking any AI out of fear of making mistakes, that fear has gone, and I am going to design everything by myself. However, my JavaScript is a little bit weak, so I am gong to use AI for learning purposes, but now I will upload the raw code that I write. By the way, the new feature will contain a YouTube video link.
#Devlog:2 of #Ship:2 I have implemented two things: 1.Now you can paste the link of a YouTube video and it will help you find the timestamp. Although I have just created the HTML, this time I didn’t have an idea of how I will grab the frames. By the way, I think I’ll try to download the video in low quality, and then grab the frames. If anyone has any ideas, just let me know, or I’ll try to serch and understand an easier way. 2. I have implemented a new model (Audio Model). In the Shipwright review video, I saw that the reviewer typed “MrBeast saying ‘Red Light,’” and my website at that time was only able to search through visuals. But now it can walk through the vocal parts. It converts the video’s audio into text, and then it will match the query. But here’s an error: we can’t check the query’s exact result matching percentage, and it may create some problems. By the way, when you search, it has two options like @visual and @vocal . So when you select one, it only runs that one model. But if you have added say or said, then it also runs both things simultaneously. If you only put one thing, then it runs one model only, so it saves memory and works fast. But let’s suppose you didn’t select either one; then for accurate results, it runs both models.
#Devlog:3 of #Ship:2 I have just put my real hosted website into maintenance mode. Normally, if I push code to GitHub, Vercel automatically hosts the new version. If someone visits suddenly during that time, they might think the website has a code error. That’s why I created a vercel.json file a week ago and now pushed it to GitHub. Now, I can continuously make changes for a while without any tension related to the main website, because it always shows that it is in maintenance.
#Devlog:4 of #Ship:2 I have made the HTML, and now I’m working on the CSS. I am making the UI look good. By the way, I think I have done only 30-40% of the CSS, and I think I’ll try to complete it today. Then, I’ll start focusing on the logic, like JavaScript, because it is our main stuff. I’d take inspiration from YouTube, like using YouTube’s color palette, and the structure is like the old one.
#Devlog:5 of #Ship:2 I have made my UI, and now I have to write the logic. The best part is that I have messed up my style.css file. I want to improve it more, but I got confused with my colors. I gave names to the colors, but in the end, I could not understand my own color pattern or what I had decided to use each color for. By the way, I think the UI looks good. Now, let’s talk about the UI features: I have made the header sticky and also added a blur effect to it. Instead of taking YouTube’s color palette, I used a popular palette from coolors.co because I liked it at first sight. You can see the UI below.
#Devlog:6 of #Ship:2 I have made these files, but now my logic has hit a limitation because YouTube doesn’t allow frame extraction. To solve this, we are using a public API which helps a lot with YouTube search. I use yt-dlp to resolve the YouTube URL, specifically using an Invidious public API. I know it might get shut down sometimes by YouTube, but what can we do? I will use my own yt-dlp backend to get a CORS-friendly video stream. By doing this, we can access the YouTube video as a .mp4 file, which allows us to extract frames. Let’s see if it works perfectly or not. However, my own backend will work for only 7 days because it is an open-source project.
Hey Everyone, I’m going to continue my ThirdView project again but this time, its name will be Thirdview Max, because it is the updated version, so. Now, you can also see the old version at github, which is at another repo. But Thirdview Max have more and extra feature then Thirdview, now it can give accurate result, but in past I said that it also have feature, by which you can just paste link, nd find the part. But because, i have to fetch the video in .mp4 first, which is difficult part, I tried, but i failed. That’s why I decided to skip this feature. and the main things, the Ui is going to completely change.
HTML is completed, now I have to style it, and have to make the logic. Because our project is completely base on logic, so the javascript will be too long. Nd i also suffer sometimes with making logic, and let see what happen:D
I have changed the UI, and some elements are hidden, because when we upload video then it appears. And now I’m going to write the logic(Javascript), i’m too fast because I have already made it, so basic things don’t take much time, but now i’m going to work on logic, and i also have to add some more features, so i think it usually takes 3-4 hours, and then the projects will get completed.
Right now, I just commit my code, because at the last time, i skip this project without writing devlog and committing. The stardance is going to end, so I just going to ship it and the project is wroking perfectly.
Ships:
I made ThirdView - you type a description of a scene and it jumps straight to that moment in a video, instead of scrubbing through the timeline forever. It runs fully in the browser using CLIP through Transformer.js, no uploads, no server. The hard part was getting an actual ML model to run smoothly with zero backend, plus CLIP wasn’t built for video, so figuring out how often to sample frames took a lot of trial and error. What we’re proud of is that it just works fully private, fully free, and it actually fixes something that annoys us every single time we watch something not together, without turning into some bloated overengineered app.
The project is finally complete, by the way. It was completed a month ago. But i really forgot this. Right now thirdview max uses two search @visual and @vocal , by the help of this. Evrything is working. t was fun when I was making it....
|
1793681651.2736647
|
1793768051.2736647
|
|
52177
|
645 Run Club by @k_nilesh | Stardance
|
k_nilesh
|
1
|
13.0
|
29
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-21T05:36:06Z", "hours": 13.0, "multiplier": 2.93, "payout": 29, "blessing": "neutral", "text": "I built 645 Run Club, a running community platform designed to bring runners together through runs, challenges, events, and community activities. The most challenging part was making the website functional beyond just the frontend, especially working with the backend, APIs, data handling, and fixing unexpected bugs. I’m proud that I took an idea and turned it into a real working project while learning how different parts of a full-stack application connect together. To test it, people can visit the 645 Run Club website, explore the available features, and sign up or log in where required to experience the platform.", "repo": "https://github.com/k-nilesh04/645-running-club", "demo": "https://645-running-club.vercel.app/"}]...
|
[{"post_id": 51453, "ts": "202 [{"post_id": 51453, "ts": "2026-08-21T05:33:12Z", "hours": 13.0578, "text": "645 Run Club is a community-based running platform/club that I’m building to bring people together through running and fitness. The idea is to create a space where people can join runs, participate in challenges and events, track their progress, and stay motivated with a community. I’m currently working on the website and backend, making the platform functional and building the features needed to manage members, runs, events, and communication."}]...
|
Title: 645 Run Club by @k_nilesh | Stardance
Devl Title: 645 Run Club by @k_nilesh | Stardance
Devlogs:
645 Run Club is a community-based running platform/club that I’m building to bring people together through running and fitness. The idea is to create a space where people can join runs, participate in challenges and events, track their progress, and stay motivated with a community. I’m currently working on the website and backend, making the platform functional and building the features needed to manage members, runs, events, and communication.
Ships:
I built 645 Run Club, a running community platform designed to bring runners together through runs, challenges, events, and community activities. The most challenging part was making the website functional beyond just the frontend, especially working with the backend, APIs, data handling, and fixing unexpected bugs. I’m proud that I took an idea and turned it into a real working project while learning how different parts of a full-stack application connect together. To test it, people can visit the 645 Run Club website, explore the available features, and sign up or log in where required to experience the platform....
|
1793681652.4754777
|
1793768052.4754777
|
|
40299
|
My first slack bot! by @body-35 | Stardance
|
body-35
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-27T23:31:25Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I do a slack bot with slash command /my-glitchy-bot-ping - Check latency /my-glitchy-bot-help - Show this menu /my-glitchy-bot-catfact - Random cat fact /my-glitchy-bot-joke - Random joke and I’m really proud of my self for my hard work", "repo": "https://github.com/Body-530/my-Glitchy-bot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0BLDDB6UL9"}]...
|
[{"post_id": 36080, "ts": "202 [{"post_id": 36080, "ts": "2026-07-27T23:04:25Z", "hours": 0.5278, "text": "yaaaa!❤️🔥❤️🔥 really excited to share my first slack bot with 4 slash commands Bot build with Node.js and Slack BOT for the Hack Club (My Glitchy-Bot) is a 24/7 Bot on Hack Club Nest and responds to custome slash commands using the Slack API"}]...
|
Title: My first slack bot! by @body-35 | Stardance Title: My first slack bot! by @body-35 | Stardance
Devlogs:
yaaaa!❤️🔥❤️🔥 really excited to share my first slack bot with 4 slash commands Bot build with Node.js and Slack BOT for the Hack Club (My Glitchy-Bot) is a 24/7 Bot on Hack Club Nest and responds to custome slash commands using the Slack API
Ships:
I do a slack bot with slash command /my-glitchy-bot-ping - Check latency /my-glitchy-bot-help - Show this menu /my-glitchy-bot-catfact - Random cat fact /my-glitchy-bot-joke - Random joke and I’m really proud of my self for my hard work...
|
1793681653.6189337
|
1793768053.6189337
|
|
54297
|
Zolt by @perr | Stardance
|
perr
|
1
|
25.99
|
118
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T17:45:21Z", "hours": 9.0, "multiplier": 12.82, "payout": 118, "blessing": "neutral", "text": "a tiny zig web server that speaks luau. when user request the server run the lua code and return them. kinda like php but with lua.", "repo": "https://github.com/iluvicecream/zolt", "demo": "https://zolt-doc.perr.dev/"}]...
|
[{"post_id": 73102, "ts": "202 [{"post_id": 73102, "ts": "2026-09-24T11:53:37Z", "hours": 2.3825, "text": "Template I guess so before all zolt app are written using .lua file and write to the response using echo which led to kind of bad dx so after the last ship there were some review on some kind of tsx like language so i been working on that and here zolt template build on top of go html/template with a lua block it will become a default way of writing app using zolt while .lua will be use for shared module and library"}, {"post_id": 72608, "ts": "2026-09-23T10:30:13Z", "hours": 3.2419, "text": "Documentation! just deploy a new version of documentation site and the go rewrite is complete! from the last update i also added http_request.header[“string”] let you get the header value http_request.query[“string”] let you get the parameters from request query http_request.method get the request method allow you to support POST and others turbokit module allow you to quickly create turbo-frame after this i will be working on form support so you can really build a web app with it"}, {"post_id": 71241, "ts": "2026-09-20T14:49:47Z", "hours": 1.5731, "text": "Merge!! no more experimental-go branch the go rewrite has been merge to the master branch along with the new releases 0.4.0 with support for windows too!. the documentation is currently wip so no doc yet sadd T_T but that the next thing am working on"}, {"post_id": 70774, "ts": "2026-09-19T18:57:20Z", "hours": 1.3961, "text": "Core Function is here after the go rewrite i have now implement 3 core function back but with some changes from zig version so when the go merge it will be a breaking changes http_set_status(status: int) let you set http response code such as 404 500 403 http_content_type(type: string) let you set content type header for usecase like json api http_header_add(key: string,value: string) let you add to the headers i also implement require for loading module and bring back hol now as htmlkit so yea looking forward to merge the go branch into main in a few days but it will 100% be a breaking changes not that who cared anyways except me cuz am the only one using it and now i have to fix my code"}, {"post_id": 68687, "ts": "2026-09-15T15:23:34Z", "hours": 5.3967, "text": "Sadly, There is such thing as a wrong decision when i first set out to make zolt i figure it will be a good place to learn zig i mean it such a small project just a simple http server that execute lua. but then i started using it myself and kept needing more feature but sadly even tho this project started as a way to learn zig. i just didn’t really click with it thus when implementing feature i kept having to relies a lot on codex. So what? so i started a new branch call experimental-go that contain a go rewrite of zoltd plan to be as much backward compatible as possible but not fully as zig zoltd use luau while go zoltd use gopher lua but otherwise i will try and implement all function in zig Naming even tho the project is being rewritten in go. the name will still remain zolt cuz golt sound worse What zolt go version like right now i just implement a lua runtime based on gopher-lua and implement 2 function echo() and print()"}, {"post_id": 64828, "ts": "2026-09-09T14:43:40Z", "hours": 1.845, "text": "HOL (Html On Lua) so from the last ship someone suggest that there should be a tsx like syntax that allow you to write html easier and i agree with that writing the whole layout in echo is a pain so i make hol a pretty simple html builder that ship with zolt so you can just import it anywhere without having to download it and am looking forward to add more feature such as native support for each element instead of H(“h1”) you can just do h1(“Header”) something like that"}, {"post_id": 60425, "ts": "2026-09-02T18:48:14Z", "hours": 1.1506, "text": "Query ! i added new api to the lua vm call request.query it accept 1 parameters field: string and return a string so if your url is host/?field1=value running request.query(“field1”) will return “value”"}, {"post_id": 56766, "ts": "2026-08-28T17:34:39Z", "hours": 0.9775, "text": "Quick Start i have added new entry to documentation such as installation using the new install script and your first zolt web guide along with lua api reference. for the zolt i have move status() and header() api into response.status() and response.header() to align more with request.path() and change webroot from current working dir to config parent dir."}, {"post_id": 55590, "ts": "2026-08-27T15:20:23Z", "hours": 2.4436, "text": "Documentation!! so i been working on a documentation for zolt with guess what zolt well the doc right now is pretty barebone with just intro and install for now but it is made with zolt,html,css,js i also use hotwire turbo and stimulus, and it also use this cute font by creators of grug. ( https://handdrawn.software/grug/ ) you can access the doc page here https://zolt-doc.perr.dev"}, {"post_id": 55153, "ts": "2026-08-26T17:01:52Z", "hours": 3.0167, "text": "Devlog 2 so from the last time i added new api such as require allow you to load other luau file and use them as a module header add header to the response status set http status code for the response with require you can now create function that help you build, for example i created a render module that help me to render html easier without having to deal with writing html tags manually apart from new api there has been a lot of changes behind the scene such as concurrency and performance improvements for the next devlog i will be working on adding api support for query params , form data , json body , and cookies so that you can build more complex web app with zolt! not only that am working on a documentation site that will also serve as an example on how to build web app using zolt"}, {"post_id": 54679, "ts": "2026-08-25T18:50:55Z", "hours": 2.7939, "text": "Zolt so this is php but with lua instead. well i wanted to learn zig and lately i been working on php project, and i just really love how stuff seem so simple but i kinda hate php syntax and the server around it. so yea here zolt it a zig web server that read the lua file you are requesting via query path then use luau to run it and give you the response. right now it just a plain text response but more coming!"}]...
|
Title: Zolt by @perr | Stardance
Devlogs:
Zolt so Title: Zolt by @perr | Stardance
Devlogs:
Zolt so this is php but with lua instead. well i wanted to learn zig and lately i been working on php project, and i just really love how stuff seem so simple but i kinda hate php syntax and the server around it. so yea here zolt it a zig web server that read the lua file you are requesting via query path then use luau to run it and give you the response. right now it just a plain text response but more coming!
Devlog 2 so from the last time i added new api such as require allow you to load other luau file and use them as a module header add header to the response status set http status code for the response with require you can now create function that help you build, for example i created a render module that help me to render html easier without having to deal with writing html tags manually apart from new api there has been a lot of changes behind the scene such as concurrency and performance improvements for the next devlog i will be working on adding api support for query params , form data , json body , and cookies so that you can build more complex web app with zolt! not only that am working on a documentation site that will also serve as an example on how to build web app using zolt
Documentation!! so i been working on a documentation for zolt with guess what zolt well the doc right now is pretty barebone with just intro and install for now but it is made with zolt,html,css,js i also use hotwire turbo and stimulus, and it also use this cute font by creators of grug. ( https://handdrawn.software/grug/ ) you can access the doc page here https://zolt-doc.perr.dev
Quick Start i have added new entry to documentation such as installation using the new install script and your first zolt web guide along with lua api reference. for the zolt i have move status() and header() api into response.status() and response.header() to align more with request.path() and change webroot from current working dir to config parent dir.
Query ! i added new api to the lua vm call request.query it accept 1 parameters field: string and return a string so if your url is host/?field1=value running request.query(“field1”) will return “value”
HOL (Html On Lua) so from the last ship someone suggest that there should be a tsx like syntax that allow you to write html easier and i agree with that writing the whole layout in echo is a pain so i make hol a pretty simple html builder that ship with zolt so you can just import it anywhere without having to download it and am looking forward to add more feature such as native support for each element instead of H(“h1”) you can just do h1(“Header”) something like that
Sadly, There is such thing as a wrong decision when i first set out to make zolt i figure it will be a good place to learn zig i mean it such a small project just a simple http server that execute lua. but then i started using it myself and kept needing more feature but sadly even tho this project started as a way to learn zig. i just didn’t really click with it thus when implementing feature i kept having to relies a lot on codex. So what? so i started a new branch call experimental-go that contain a go rewrite of zoltd plan to be as much backward compatible as possible but not fully as zig zoltd use luau while go zoltd use gopher lua but otherwise i will try and implement all function in zig Naming even tho the project is being rewritten in go. the name will still remain zolt cuz golt sound worse What zolt go version like right now i just implement a lua runtime based on gopher-lua and implement 2 function echo() and print()
Core Function is here after the go rewrite i have now implement 3 core function back but with some changes from zig version so when the go merge it will be a breaking changes http_set_status(status: int) let you set http response code such as 404 500 403 http_content_type(type: string) let you set content type header for usecase like json api http_header_add(key: string,value: string) let you add to the headers i also implement require for loading module and bring back hol now as htmlkit so yea looking forward to merge the go branch into main in a few days but it will 100% be a breaking changes not that who cared anyways except me cuz am the only one using it and now i have to fix my code
Merge!! no more experimental-go branch the go rewrite has been merge to the master branch along with the new releases 0.4.0 with support for windows too!. the documentation is currently wip so no doc yet sadd T_T but that the next thing am working on
Documentation! just deploy a new version of documentation site and the go rewrite is complete! from the last update i also added http_request.header[“string”] let you get the header value http_request.query[“string”] let you get the parameters from request query http_request.method get the request method allow you to support POST and others turbokit module allow you to quickly create turbo-frame after this i will be working on form support so you can really build a web app with it
Template I guess so before all zolt app are written using .lua file and write to the response using echo which led to kind of bad dx so after the last ship there were some review on some kind of tsx like language so i been working on that and here zolt template build on top of go html/template with a lua block it will become a default way of writing app using zolt while .lua will be use for shared module and library
Ships:
a tiny zig web server that speaks luau. when user request the server run the lua code and return them. kinda like php but with lua....
|
1793681654.751976
|
1793768054.751976
|
|
54298
|
Quickfix by @shlokchavan | Stardance
|
shlokchavan
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-29T13:58:10Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "my project is that helps to repair your texts and it makes you fast to text without any worry it is very nice for our daily life", "repo": "https://github.com/sangeetachavan9881-ux/frictionless", "demo": "https://sangeetachavan9881-ux.github.io/frictionless/"}]...
|
[{"post_id": 57345, "ts": "202 [{"post_id": 57345, "ts": "2026-08-29T13:54:15Z", "hours": 0.4303, "text": "working on errors and they are fixed"}, {"post_id": 57313, "ts": "2026-08-29T12:59:47Z", "hours": 3.0658, "text": "i am working on my quickfix project errors"}]...
|
Title: Quickfix by @shlokchavan | Stardance
Devlo Title: Quickfix by @shlokchavan | Stardance
Devlogs:
i am working on my quickfix project errors
working on errors and they are fixed
Ships:
my project is that helps to repair your texts and it makes you fast to text without any worry it is very nice for our daily life...
|
1793681655.973518
|
1793768055.973518
|
|
54299
|
MeowMeow by @Dxkshh | Stardance
|
Dxkshh
|
1
|
3.59
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-02T05:54:33Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built MeowMeow My chaotic little corner of the internet that looks exactly like my bedroom after a 3AM coding session messy, loud, covered in stickers, and full of cats. It’s a portfolio that refuses to be clean or corporate, complete with floating text, a fake music player, project cards for stuff like WebTab and enough Gen-Z energy to make LinkedIn cry. The CSS was the real boss fight getting all the overlapping elements, glitch vibes, hover chaos, and that “everything is slightly broken on purpose” feel to actually work without the whole page collapsing was painful, especially keeping it somewhat usable on phone while still looking unhinged. I’m genuinely proud of how much personality it ended up having; it feels like me instead of another boring template. You can check the whole thing out live at https://Dxkshh-Codee.github.io/MeowMeow/ .", "repo": "https://github.com/Dxkshh-Codee/MeowMeow", "demo": "https://Dxkshh-Codee.github.io/MeowMeow/"}]...
|
[{"post_id": 60646, "ts": "202 [{"post_id": 60646, "ts": "2026-09-03T04:30:59Z", "hours": 0.595, "text": "DEVLOG 4 REWORKED ON THE DARK MODE IN CSS TO MAKE IT LOOK BETTER!! YOU GUYS CAN CHECK IT OUT AT https://dxkshh-codee.github.io/MeowMeow/ AND LET ME KNOW IF THERE IS SOMETHING TO CHANGE!!"}, {"post_id": 60048, "ts": "2026-09-02T04:52:33Z", "hours": 1.1392, "text": "DEVLOG 3 MY PERSONAL SITE IS READY !! ADD SOME TOUCH UPS TO IT IN CSS!!"}, {"post_id": 56491, "ts": "2026-08-28T08:59:51Z", "hours": 0.7311, "text": "DEVLOG 2 I’ve completed the HTML structure for my MeowMeow!"}, {"post_id": 55031, "ts": "2026-08-26T13:44:34Z", "hours": 0.8233, "text": "DEVLOG 1 Working on HTML for MeowMeow"}]...
|
Title: MeowMeow by @Dxkshh | Stardance
Devlogs:
D Title: MeowMeow by @Dxkshh | Stardance
Devlogs:
DEVLOG 1 Working on HTML for MeowMeow
DEVLOG 2 I’ve completed the HTML structure for my MeowMeow!
DEVLOG 3 MY PERSONAL SITE IS READY !! ADD SOME TOUCH UPS TO IT IN CSS!!
DEVLOG 4 REWORKED ON THE DARK MODE IN CSS TO MAKE IT LOOK BETTER!! YOU GUYS CAN CHECK IT OUT AT https://dxkshh-codee.github.io/MeowMeow/ AND LET ME KNOW IF THERE IS SOMETHING TO CHANGE!!
Ships:
I built MeowMeow My chaotic little corner of the internet that looks exactly like my bedroom after a 3AM coding session messy, loud, covered in stickers, and full of cats. It’s a portfolio that refuses to be clean or corporate, complete with floating text, a fake music player, project cards for stuff like WebTab and enough Gen-Z energy to make LinkedIn cry. The CSS was the real boss fight getting all the overlapping elements, glitch vibes, hover chaos, and that “everything is slightly broken on purpose” feel to actually work without the whole page collapsing was painful, especially keeping it somewhat usable on phone while still looking unhinged. I’m genuinely proud of how much personality it ended up having; it feels like me instead of another boring template. You can check the whole thing out live at https://Dxkshh-Codee.github.io/MeowMeow/ ....
|
1793681657.1377163
|
1793768057.1377163
|
|
44701
|
StudyBuddy by @Vedant_Daga | Stardance
|
Vedant_Daga
|
2
|
76.0
|
1064
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-12T03:35:26Z", "hours": 23.0, "multiplier": 18.54, "payout": 436, "blessing": "neutral", "text": "StudyBuddy - https://trystudybuddy.vercel.app fyi before u try it: reading runs on a free model with a shared daily cap, and ship day is way more traffic than a normal day. please use the sample worksheets wherever u can (they’re the first thing on the upload page, one click) and upload at most one of ur own pdfs for the next day or two. if the homepage says the free reads are used up, the samples still work. what it does upload a worksheet pdf. it reads every question off the page, tags each one by topic, and works out the answer key. u mark which ones u got wrong and it brings them back on an FSRS schedule (the algo anki uses). across every test u upload it turns “i got 12 wrong” into “ur bad at ratios”. what changed since last time runs on openrouter’s free tier instead of my gpu. not a proof of concept anymore one worksheet is ~4 requests instead of ~42. pages are read in groups the site says when the day’s free reads are running low. clear about the trial: 3 worksheets free, then still free, u just add questions by hand or plug in ur own key. what was hard free models reason before they answer and bill that against the output limit which ends up causing an error, but its really hard to figure out the embedding-only shortcut for sorting looked fine and was wrong a third of the time so fixed it", "repo": "https://github.com/DagaVedant/StudyBuddy", "demo": "https://trystudybuddy.vercel.app/"}, {"ship_num": 2, "ts": "2026-08-19T19:30:17Z", "hours": 53.0, "multiplier": 12.7, "payout": 628, "blessing": "neutral", "text": "StudyBuddy Turn the worksheets you have already done into a record of what you actually know. Try it: https://trystudybuddy.vercel.app Code: https://github.com/DagaVedant/StudyBuddy What I made Upload a worksheet you already finished, as a PDF or photos. A vision model pulls out every question, its options and its answer key. You mark what you got wrong. That is the only input it needs. It sorts questions into 87 topics across SAT and competition maths. Then it ranks your weak areas and schedules revision using FSRS, the algorithm behind Anki. It also writes practice questions on your weak topics and exports misses to Blooket. Built on my own past papers: 387 real questions from 22 worksheets. What was challenging The models can run in four places: my GPU, your API key, your own Ollama, or not at all. A student with a GPU should never send homework to my server. A student with nothing should still get something. Topic tagging needs an embedding model that serverless hosting cannot run. So the shortlist is a pgvector query on the server and the vector is computed anywhere, including in your browser under WebAssembly. Worst bug was three characters: I stored the global fetch on a class field, which passes the object as the receiver. Node allows it, browsers throw Illegal invocation. Every test passed and the only runtime that mattered was broken. What I am proud of It does not lie to you. Weak topics are ranked by a Wilson lower bound, not a raw percentage, so two unlucky answers cannot fake a weakness. Model-written questions are kept out of your accuracy, so the ranking cannot feed the questions it generates. Every model response is schema-checked before it reaches the database. Generated practice is sifted against thirteen specific failure modes. When my GPU is off, the upload screen says so instead of spinning. 1,459 unit tests, 84 end to end, 293 commits. How to test it Sign in with Google, or an email and password. Upload any worksheet you have already done. A past paper works well. Check what it read. Each question sits beside the page image it came from. Mark what you missed, then open the dashboard. The free trial reads three worksheets on my own GPU. If it is off, your upload queues and the app tells you. To skip the wait, settings takes your own API key or connects to Ollama on your machine. guys i wish this was markdown compatible but its not so sorry", "repo": "https://github.com/DagaVedant/StudyBuddy", "demo": "https://trystudybuddy.vercel.app/"}]...
|
[{"post_id": 66334, "ts": "202 [{"post_id": 66334, "ts": "2026-09-12T03:21:31Z", "hours": 3.7986, "text": "Devlog 24: StudyBuddy so a lot of the feedback said “cool but it needs ur gpu on”. that made it seem like a PoC, so now its running on the free tier of openrouter. making the free tier work one request per question was never going to fit a daily cap. extraction now sends up to 10 pages / 25 questions per call, sorting and answer key go 10 questions at a time. ~4 requests per worksheet instead of ~42 the homepage and upload page count the day’s calls. 80% says busy, 100% stops reading and points u at the samples. samples upload page leads with the three samples as one-click cards; ur own pdf is the second option and says how much of the shared allowance is used. removed phone photo uploads (highly innaccurate on the free tier of models i have)"}, {"post_id": 61499, "ts": "2026-09-04T13:23:50Z", "hours": 0.4864, "text": "Devlog 23 - StudyBuddy i just had some minutes left on this so im just making the devlog still waiting for my ship to be approved (been waiting a few days) no big changes at all (waiting for feedback)"}, {"post_id": 57722, "ts": "2026-08-29T23:49:06Z", "hours": 0.3544, "text": "Devlog 22 - StudyBuddy fixed more bugs and rewrote code by hand"}, {"post_id": 56688, "ts": "2026-08-28T15:28:49Z", "hours": 3.3164, "text": "Devlog 21 - StudyBuddy patched even more bugs rewrote tons of my code (ai to human) cleaned up old files (a lot of old features were removed and reupdated) just more QoL fixes"}, {"post_id": 55293, "ts": "2026-08-27T01:04:56Z", "hours": 0.7281, "text": "Devlog 20 - StudyBuddy more bug fixes continous reships (they keep saying its too AI generated even after i rebuilt the UI) started working on the API key integration (like almost there rn) tons of dead code removal and code clean up added support for firefox too (now it works on edge, firefox, chrome, and prolly a ton others i just havent really tested it)"}, {"post_id": 55212, "ts": "2026-08-26T19:29:14Z", "hours": 2.0147, "text": "Devlog 19 - StudyBuddy even more bug fixes so i pushed a change, and that somehow broke the entire pipeline so i patched it no real content just fixes going to add API key integration soon (follow to see it happen)"}, {"post_id": 54267, "ts": "2026-08-25T04:59:03Z", "hours": 1.3939, "text": "Devlog 18 - StudyBuddy lowk not a lot of content in this one but like 1000000 different bugs popped up and reviewers are pointing it out so thank you smmm ( @blowupthenoobs ur the goat) fixed the trials having no limit other fixes just check my commits"}, {"post_id": 53477, "ts": "2026-08-24T01:28:48Z", "hours": 6.445, "text": "Devlog 17 - StudyBuddy (ah im losing track of these devlogs uh my ship keeps getting rejected for look to AI, and ive literally rebuilt everything, removed all teh ai generated thing. (im gonna ship again rn) made a logo cuz i thought it would look cool added a Terms of Services page cuz its risky cuz people could upload worksheets they dont have access for an i could be fried so i made them agree to that cleaned up more code fixed a few more bugs"}, {"post_id": 51966, "ts": "2026-08-21T23:14:31Z", "hours": 0.5383, "text": "Devlog 16 - StudyBuddy added some sample worksheets so you can try it out added the borders back to the buttons because i accidently removed them before"}, {"post_id": 51893, "ts": "2026-08-21T19:51:51Z", "hours": 0.3522, "text": "Devlog 15 more cleaninggggggg cleaned up repo, removed more dead logic and stuff instead of a css wallpaper, i added a image of lined paper to really give that school/learning feel asked ai to help me get the ui to look kinda fresh and add the pencil style heading"}, {"post_id": 51715, "ts": "2026-08-21T15:23:46Z", "hours": 3.1414, "text": "Devlog 14 shipwrights rejected the project so im fixing their things decided to clean up the code, get rid of old functions, and i also cleaned up the UI because no one really needs the heading and then what it means, like i think you know that topics means topics and doesnt need a whole sentence after that. cleaned up the repo, got rid of ai generated code fixed a 500 error when uploading worksheets, cuz something happened and some linux kernel wasnt compaitble with the library i was using wrapped up my last few fixes lowk not a lot of new features, rather like fixes"}, {"post_id": 51288, "ts": "2026-08-20T20:55:12Z", "hours": 0.9239, "text": "Devlog 13 - StudyBuddy update the ui to make it look liek sticky notes and lined paper"}, {"post_id": 50557, "ts": "2026-08-19T19:22:57Z", "hours": 1.2472, "text": "ANYONE RATING THIS PROJECT - THE VIDEO ON THE SHIP IS OUTDATED, THERE IS ALSO ANOTHER FEW DEVLOGS SO CHECK THAT OUT BEFORE JUDGING BECAUSE IT GIVES MORE INFO ABOUT THE BUILDING AND WHY THE CHANGED A LOT SORRYYYY ALSO USE THE SAMPLE WORKSHEETS I ATTACHED OR EASILY PARSEABLE WORKSHEETS. TEMPORAILY IVE CLOSED THE API KEY VERSION AS MOST PEOPLE DONT HAVE THEM. COMPLEX WORKSHEETS ARE TO BE USED ONLY WITH LARGE LLM Devlog 12 - StudyBuddy got everything ready to ship turns out that ollama needed some permissions so fixed that and added it to readme for people to set up, and other stuff like that shipping it in 5 mins 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉"}, {"post_id": 49640, "ts": "2026-08-18T15:06:19Z", "hours": 3.8678, "text": "Devlog 11 - StudyBuddy this is a short one got the google sign in to work added email verification and forgot ur password thing cleaned up the overall UI made the topic tree standardized cleaned up some of the extraction issues added ollama integration for everyone added practice question generation, topic overview, etc tested everything fully the attached image is the app after a ton of testing *"}, {"post_id": 48576, "ts": "2026-08-17T00:58:42Z", "hours": 5.8406, "text": "Devlog 10 - StudyBuddy mostly the same bug wearing different clothes: a screen that exists, that u can get to, that quietly does less than it says tier C was sitting in settings doing nothing save an ollama address and the app resolves u to a browser executor. that executor had nowhere to go, so ur worksheet just sat there looking queued it claims the job now and reads each page against localhost:11434 , posting back through the same queue my gpu posts through has to run in the browser cuz a server cant reach ur localhost, so the tab stays open. checkpointed per page tho, closing it resumes instead of restarting the paper a mark u mis-tapped was permanent tap through 40 of these and ur going to hit the wrong one eventually that one tap feeds the FSRS schedule, the topic accuracy, the weakness ranking and the blooket export only way back was deleting the worksheet and uploading it again, which costs u a trial credit. so the fix for a mistap was paying for it two defences that were never on WORKER_ALLOWED_IPS was optional and empty meant no restriction empty is the state every deployment starts in, so the normal outcome was a defence thats off that nobody ever decided to turn off refused now. * still allows any address but somebody has to type it untagged worksheets looked identical to broken ones tier B cant auto-classify, the embedding model needs a native runtime the serverless host doesnt have so ur questions saved fine and were reviewable fine, they just had no topic and nothing said why. reads exactly like it silently failed every tier that can come back untagged says so now nothing told u when a worksheet finished u uploaded and then u guessed. sat on the status page or came back later and hoped in-app bell that needs zero setup, plus web push for a tab u closed also “Review these now” now reviews those questions. the word had drifted onto three screens meaning three different things dashboard was missing three of its panels, and the trend arrow was specified ages ago and never computed taxonomy had no front door and the subject panel only went one level deep. Math > Geometry > Triangles walks now pagination was capping at the fiftieth worksheet and saying nothing about it the AI setup prompt showed up after ur trial ran out, which is the one moment it cant help u grouped scripts/ by what it does to ur data. inspect/ reads, repair/ writes behind a guard, benchmark/ measures 1285 tests green. playwright hasnt run yet and app/ moved a lot this time, so thats next"}, {"post_id": 47159, "ts": "2026-08-14T20:52:31Z", "hours": 5.0856, "text": "Devlog 9 - StudyBuddy the merge tool could double up a question number renumbering the survivor of a duplicate pair used Math.min of just those two rows, blind to the rest of the paper merging a phantom #5 into a real #9 could hand the paper a second #5, the exact thing the tool exists to prevent zero tests on a function that deletes rows. five now, including the repro $15/hour was losing its sign, not just $5 the math-stripper runs from one $ to the next, so “earns $15/hour and $18/hour” reads the slash as a fraction and eats both signs. same with $40 = $25 + $15 on the = i wrote this down once as “one weird case.” it’s the whole unit-rate and equation category fix checks the char after the closing $ : a digit means it’s opening the next price, not real math figure crops didnt need a new pipeline, just reusing one filed as “never produced,” which reads like crop, store, backfill the verify screen already computes a crop window from the bbox over the stored page image. review got wired to the same math, every old worksheet gets it free the real work was the guards: zero-area, inverted, off-page, or no recorded page size all have to degrade to nothing rather than to the wrong crop a fence i built to be un-escapable, wasnt the comment says a new tag can’t be added without going through the escaping. page-seam work added two by typing them directly a page whose OCR contains the literal closing tag closes the fence early, and everything after reads as instructions instead of data tag list exists once now, every fence built from it every worksheets.status write was a bare UPDATE no guard on the current value, so a stale job retry could drag an already-reviewed worksheet back to failed one transitionWorksheet(from, to) now, every write through it preview deploys were migrating the prod database guard only checked VERCEL_ENV === 'production' , but previews fire on every push against one shared DATABASE_URL two finishing together were racing through the migration folder 9 tests could go quiet and nobody would know one e2e file, 12 tests serial in a single tab, everything past “verify” depending on a question a drag gesture created three tests earlier a drag regression silently skipped 9 unrelated tests instead of failing them api fixture, split the file, broke the drag on purpose to prove it. held the question list rendered all 114 cards for a screen that edits one at a time deferred a while back: virtualizing editable rows risks one unmounting mid-edit only one card can ever be expanded, so the risk surface is exactly one row virtualizes past 40 now, open row pinned into the rendered range wherever scrolling goes. typed into one at 60 questions, scrolled thousands of px away, still there, still focused, still holding the edit also profile save had devlog 4’s router.refresh() remount bug login rate limit skipped Auth.js’s own credentials endpoint ollama worker had no startup timeout and just hung worksheet text leaked into console logs on schema rejections review screen shipped every page’s OCR text on page-1 load admin console got merge, tree edit, queue, usage doc-count drift (third time), and a false-positive LaTeX check flagging real set notation as broken math"}, {"post_id": 46100, "ts": "2026-08-13T02:23:56Z", "hours": 3.2192, "text": "Devlog 8 - StudyBuddy im too lazy to have a full write up for this (watched spiderman tdy IT WAS REALLY GOOD) for each topic that a user gets wrong, a seperate model (gpt-oss:20b, sorry if i miswrote the model) gives a walkthrough of the topic also added missed questions to the csv export added a AI answer key system if the worksheet doesnt have one."}, {"post_id": 45521, "ts": "2026-08-12T02:04:02Z", "hours": 3.0014, "text": "Devlog 7 - StudyBuddy the drag box was broken in the real app. for months u upload a worksheet, u draw a box around question 1, it fills in. thats the whole manual editor, thats the whole free tier. and it didnt work. click through the app to get there and nothing responds. reload and its fine. four previous commits went looking for this. the test had a 24 line comment explaining why it was probably a test problem. it was not. elementFromPoint(100, 28) -> HTML elementsFromPoint(100, 28) -> [HTML] thats the browser saying nothing is at this pixel , for every pixel on the page. the cause was 8 view transition animations, 6 stuck running forever . one that never finishes sits in the top layer and covers everything. and its a pseudo element so it shows up in no ancestor walk and no element stack, which is why every previous investigation contradicted itself. bisected on clean builds: next flag react component result on on broken off on broken on off clean off off clean so its react’s <ViewTransition> , not next. three lines of css. the drag test used to fake the mouse with dispatched events, now it uses a real one, which is the only thing that proves anything. gemini has never completed a single request 4 providers in settings. one says “has a free tier worth starting on”. zero successful calls, ever. every nullable field is anyOf: [{type:'x'}, {type:'null'}] gemini doesnt understand anyOf , so a filter strips keywords it rejects the filter dropped anyOf and left {} behind, while leaving the field in required a required field with no type = rejected request. every time funny part: the allowlist already had nullable in it, gemini’s own word for the same idea. someone knew. nothing connected them. the landing page was lying about 3 of its 4 topics theres a comment above them saying “kept honest on purpose: these are real taxonomy names” . Ratio & proportion - not real Linear equations - not real Reading inference - not real Vocabulary in context - real so the one claim the page made about its own honesty was the false one lol. theres a test now instead of a comment. tests found 2 bugs i wasnt looking for new Date(\"sometime in 2010\") returns jan 1 2010, cuz v8 scrapes a year out of almost anything. and it parses as local midnight while everything next to it is UTC. on a 13th birthday thats the whole question one route answered 404 to someone with no session. the client sends u to sign in on a 401 and brings u back after, so a tab that sat open till the session expired just ate what u typed the rest a reload could cost u a 114 question paper. markup saves nothing till every question is marked, so its a local draft now / , /signin , /signup are static html now. the topbar called auth() from the root layout, which made all 39 routes render per request the 23mb embedding model was getting fetched inside a background task on every cold start, and failing silently one commit recorded 32 renames and none of the code . the git add failed and i’d redirected the error away so i never saw it"}, {"post_id": 44852, "ts": "2026-08-10T21:45:18Z", "hours": 1.3739, "text": "Devlog 6 - StudyBuddy u can throw everything u got wrong into blooket now button on the dashboard for the whole account, and one per worksheet if u only want that paper it gives u a file, u upload it to blooket, u get a set of exactly the questions u missed wrong means ever wrong, not currently wrong. if u got it wrong on paper and then right in review, its still in there. thats the one u actually want to drill and it wouldve been weird to leave out blooket hands u an .xlsx template so everyone calls this an xlsx export, but its uploader only accepts csv. took a while to work out also its importer just silently imports nothing if the file is slightly off. no error, no warning, zero questions. three separate ways to trip that picking a subject barely did anything theres a dropdown on upload for what subject the worksheet is. it offers things like “Algebra 1” only the first bit of that was ever used, so picking Algebra 1 searched all of high school maths. exactly the same as picking “all of high school maths” the one control u have over how ur questions get sorted, doing basically nothing long papers were quietly losing questions to a limit the topic tagger takes questions 100 at a time. fine except it grabbed 100 in no particular order and then removed the ones already done, so on a 114 question paper 14 never got looked at, and which 14 was down to whatever the database felt like that day worse on a second pass: if 100 were already tagged it handed back an empty list, which reads as “nothing left to do”, and the rest never got tagged at all two screens counting the same paper differently the worksheets page filters out page junk like “CONTINUE TO THE NEXT PAGE” before counting. the dashboard didnt so the same worksheet was 25 questions on one screen and 26 on the other, and nothing tells u which one is lying the chart was lying about time the accuracy chart draws a bar per week. it was only making bars for weeks u actually did something in so 12 bars looked like 12 weeks in a row but werent. practise in march and again in june and u see two bars side by side like it was steady every week is a bar now, empty ones included, and it says which weeks its showing scrolling changed my settings without me touching anything the page range and question count boxes were number inputs, and number inputs treat the scroll wheel as a way to change the value so scrolling down the upload page with ur cursor over one of them silently rewrote which pages get read found a pile of other accessibility stuff while i was in there: buttons a bit too small to reliably hit on a phone, cards that vanish in high contrast mode, and a “skip to content” link that didnt actually skip anything also asking to see an explanation u already had was using up ur hourly limit for generating new ones the topic picker was built in a way that made screen readers think the list had nothing in it button labels were half Title Case and half sentence case, sometimes on the same screen"}, {"post_id": 44789, "ts": "2026-08-10T20:01:20Z", "hours": 1.8522, "text": "Devlog 5 - StudyBuddy “accept the remaining 114” checked none of them that button fires one save per question, and on my test paper thats 114 of them at once nothing read the answers back, so a save that failed looked exactly like one that worked the tick stayed on, u moved to the next screen, and it was never stored deleting a question said “Saved” and then didnt delete it delete waits a few seconds so u can undo it. it dropped the question from the list first and threw away whatever came back from the server so if it failed u got told it saved, and the question showed up in ur study queue later like nothing happened also there was no undo button anywhere. it was just a slow delete $5 was being eaten maths sometimes comes wrapped in dollar signs so i strip them off. money also comes wrapped in dollar signs “Sam has $5 and Ana has $12” was being read as “Sam has 5 and Ana has 12” checked a real saved question and yep. paper says $5, database said 5 if my worker died, ur worksheet said “queued” forever the machine that reads the pages runs at my house. if it fell over mid job, nothing anywhere ever marked that job as failed it just sat there, and the free credit it charged u never came back the topic tagging could fail without failing it needs a bit of software thats not always there on the server. when it wasnt, it came back with “no matches” which is a completely normal answer. so the job finished, every question was untagged, ur weak areas page was empty, and nothing anywhere was an error one i was told to do and didnt had a note to cap the page number by how many pages the worksheet has except if u upload pages 10 to 15 of a pdf thats six pages numbered 10 to 15, so that check refuses every single one of them capped the two things separately instead also the screen asking u to check questions against the page never showed the page finishing a review session stopped saying u finished it the AI could print its own error onto ur status page, which sometimes meant quoting ur own worksheet back at u the upload checked the image size by asking the browser instead of opening the image"}, {"post_id": 44684, "ts": "2026-08-10T16:42:14Z", "hours": 2.2806, "text": "Devlog 4 - StudyBuddy no new features today. just went hunting for stuff that was quietly broken, and there was way more of it than i expected the sign-in page could send u to a different website if someone handed u a link like /signin?next=someothersite.com , u would log in and then land on their page immediately after typing ur password, which is about the worst possible moment for that to happen this one went first there was no limit on login attempts i had limits on signing up and on uploading. somehow not on the actual password box so u could sit there and guess forever getting blocked now looks identical to just getting the password wrong. telling someone “too many attempts” quietly confirms the account exists file storage was writing into the void if one setting went missing it silently saved ur page images somewhere that doesnt survive on the server uploads said they worked. returned a success. images just gone nothing errored anywhere, which is why it sat there so long now it refuses to start up at all instead of pretending everything is fine i almost broke my whole test suite fixing something unrelated locked down two internal-only routes with what seemed like the obvious check except my tests run against a production build, so that check wouldve locked the tests out too caught it before it shipped, then wrote a test explaining it so future me doesnt helpfully undo it added security headers and instantly caught myself put them in report-only mode first so nothing could actually break about 40 seconds later it flagged a script that my own analytics loads the strict version wouldve blocked it in prod. i absolutely wouldve shipped that one fix i deleted instead of shipping had a note to add another check to the duplicate-question detector actually tested it against real papers first, and it turns out it can never trigger. the answers on a maths paper are just “4” and “9” and stuff, way too short for it to match on wouldve quietly made things worse all tests green at the end of it. onto the next pile"}, {"post_id": 44340, "ts": "2026-08-10T01:14:54Z", "hours": 6.0992, "text": "Devlog 3 - StudyBuddy wrote a script that reads each papers own answer key out of the source pdf and diffs it against my database. so the paper grades me instead of me grading myself. those 14 sheets scored 1 of 14 the first time i pointed it at them. tonight theyre 14 of 14 . barely any of it was the model. one paper stored 8 of its 15 questions. the model had read all 15 the log said dropped 6 unreadable question(s) . a count. no reason. it said that for two days made it print which field rejected the question and it told me on the first run: choices.0.label: Too big: expected string to have <=8 characters answer labels are capped at 8 chars, but the cap runs before the function that shortens them. that function only exists cuz the model returns A. 60 instead of A so the cap was checked against exactly the thing the transform was written to fix. coordinate geometry paper, every option reads A. (-2, 3) , ten chars, binned a count with no reason cant tell u “model returned garbage” from “ur schema is stricter than the paper” and those have opposite fixes also 44 duplicate-answer flags, every one wrong: -2 and 2 both normalised to 2 lol. on a maths paper the sign IS the question."}, {"post_id": 43025, "ts": "2026-08-08T02:19:09Z", "hours": 0.3111, "text": "if any of you guys wanna try this out here is the link: https://trystudybuddy.vercel.app/ YOOOOO WE GOT OUR FIRST FEW USERS i just checked before sleeping and yo we have 14 worksheets in the processing queue right now i wonder how much we had before THANK YOU GUYS"}, {"post_id": 42970, "ts": "2026-08-07T23:33:19Z", "hours": 5.2603, "text": "Devlog 2 - StudyBuddy HERE IS THE LINK TO TRY IT ( https://trystudybuddy.vercel.app/ ) left a pile of worksheets extracting overnight cuz i was sick of testing every fix against the same two papers. woke up to 9 worksheets, 713 questions, 353 pages everything below only shipped after i swept it over all of that first. rule i have now, after two earlier “fixes” that read perfectly and were wrong on real data a question that shipped reading ?rac{44}{11} i tell the model to write plain text. it writes LaTeX anyway sometimes that fails loudly. \\sqrt isnt a valid JSON escape so the response explodes and i lose a page. thats fine?? at least i know the other half is the problem. \\f is a form feed and \\t is a tab, both totally valid , so \\frac{44}{11} parses perfectly and quietly becomes a form feed followed by rac{44}{11} i had an AMC8 question in my database reading ?rac{44}{11} and nothing anywhere reported a problem fix has to run before the first parse , not in the catch block, cuz the version that actually hurts u never throws it doubles the backslash on letter runs JSON would misread, but only the six that collide (b f n r t u) and only when the run spells a real command. otherwise a real line break stops being a line break, which is a fun way to make things worse questions torn in half by the page break extraction reads one page at a time and never sees the page before or after. so a question ending at the bottom of page 3 with its answer choices at the top of page 4 is never whole in either request . five of them on the AMC8 paper one fix folds the halves back together. the other is for the worse case where the extractor returned nothing at all for the second half, cuz a bare block of answer choices isnt a question so the model just drops it. theyre still sitting in the next pages text layer tho, u just have to go get them sorting questions within a page needed its own module cuz the bounding boxes lie . question 4 came back with a top of 1428 and question 5 with 1379, so pure geometry puts them backwards AMC8 went from 19 of 25 questions having their answer choices to 24 of 25 , zero false positives across 348 SHSAT pages stuff that broke a worksheet told me it had 26 questions when the paper has 25 . the extra one was the axis labels off a diagram, and the SHSAT ones had rows that just said CONTINUE TO THE NEXT PAGE. dropped 23 rows, all page furniture then immediately shipped a followup bug where the card read “Questions 25” next to “Unchecked 26” cuz i filtered one count and forgot the other one lol tried just asking the model to return a carried answer block as half a question. produced zero of them and started relabelling stem-only questions as free response, which hides the damage from every check i have. reverted the landing page every animation was gated behind prefers-reduced-motion , which sounds responsible until u find out some managed windows installs ship with animation effects off by default . so the page whose whole job is showing the product working was showing a static screenshot the hero panel gets dealt onto the page like a card now. needs a perspective on the parent or the rotations collapse into a shear and it just looks like a slide the forgetting curve draws itself left to right. stroke-dashoffset does not work here , pathLength is silently ignored under vector-effect: non-scaling-stroke so the dash tiles across the path instead of spanning it once. and i need non-scaling-stroke or the line renders 9x too thick . used a page-coloured shutter instead next things: that one AMC8 question needs reading off the page image since the text layer doesnt have it. and theres a cheaper reduced-motion compromise i wrote down but havent built."}, {"post_id": 42187, "ts": "2026-08-06T20:02:11Z", "hours": 13.8281, "text": "Devlog 1 - StudyBuddy so ive been doing SHSAT practice tests for a while and the thing that always got me is that after i mark one, i have like 20 wrong answers and no idea what to actually do with that info . like ok i got 12 questions wrong, but am i bad at geometry or did i just misread three questions? no clue. so id end up redoing entire sections i was already fine at. basically what im building is a web app where u upload a worksheet or a practice test (pdf or even just a photo of the page) and it reads every question off it, figures out what topic each one is, and then after u mark which ones u got wrong it schedules them to come back later using FSRS (same spaced repetition algo anki uses). the thing that makes it diff from just writing ur mistakes in a notebook is that it tracks topics across every test u ever upload . one test says nothing. five tests and it can actually tell u “ur bad at ratios” with a straight face. the AI runs on my own laptop i did not want to pay for an api. so the vision model that reads the pages runs on my own rtx 5080 . it sits at home and asks the deployed site for jobs, and it only ever dials outward so theres no port open on my home network. if my laptops off, uploads just queue instead of dying. the part i was most wrong about i picked the model i was using (qwen2.5vl:7b) literally because it was the first one i pulled . thats the whole reason. so i finally benchmarked it properly, 9 models on a real 58 page shsat paper, 114 questions . the one i already had won?? the 27b model is 4x bigger, scored 6 points WORSE , and took 183 seconds per page vs 7.8 . id been assuming for weeks that upgrading would fix my accuracy problems lol. also the grading was free which i was way too happy about. every question number 1-114 shows up exactly once on the paper so the test just grades itself , i never labelled a single page by hand. the bug that was actually my fault so when i looked at WHICH questions got missed they werent random, they came in chunks . one model dropped 17 questions in a row . turns out every single miss on every model was a page that came back completely empty . not a wrong answer. nothing. and that was my bug not the models . an empty reply gives 0 questions and no error, so my checker (which only looked for gaps in question numbering) saw nothing wrong and the upload said success while a whole page just quietly disappeared . fixed with one retry at a slightly higher temperature cuz a model that decided to output nothing will decide that again if u ask it the exact same way. stuff that broke i wrote a check to catch questions that got cut off mid sentence (flag anything not ending in punctuation) and it flagged 25 out of 114 questions on a CLEAN run . all wrong. turns out shsat questions end with like “by” or “through” all the time and the answer choices finish the sentence. fixed it and it changed literally zero outcomes so the rule was doing nothing the whole time. also added rate limiting and instantly locked myself out of my own test suite , which signs up way more than 5 times an hour from localhost. also deleted my entire email system . u need a domain u own to send emails (spf/dkim records) and a free .vercel.app subdomain cant do that. so instead of buying a domain i deleted 274 lines and made google sign in the front door. next things: tier B uploads dont get topic tags yet, and theres one test failing on purpose cuz FSRS says a question u just got wrong is due in 1 minute but i think it should be due immediately. gotta pick one."}]...
|
Title: StudyBuddy by @Vedant_Daga | Stardance
Dev Title: StudyBuddy by @Vedant_Daga | Stardance
Devlogs:
Devlog 1 - StudyBuddy so ive been doing SHSAT practice tests for a while and the thing that always got me is that after i mark one, i have like 20 wrong answers and no idea what to actually do with that info . like ok i got 12 questions wrong, but am i bad at geometry or did i just misread three questions? no clue. so id end up redoing entire sections i was already fine at. basically what im building is a web app where u upload a worksheet or a practice test (pdf or even just a photo of the page) and it reads every question off it, figures out what topic each one is, and then after u mark which ones u got wrong it schedules them to come back later using FSRS (same spaced repetition algo anki uses). the thing that makes it diff from just writing ur mistakes in a notebook is that it tracks topics across every test u ever upload . one test says nothing. five tests and it can actually tell u “ur bad at ratios” with a straight face. the AI runs on my own laptop i did not want to pay for an api. so the vision model that reads the pages runs on my own rtx 5080 . it sits at home and asks the deployed site for jobs, and it only ever dials outward so theres no port open on my home network. if my laptops off, uploads just queue instead of dying. the part i was most wrong about i picked the model i was using (qwen2.5vl:7b) literally because it was the first one i pulled . thats the whole reason. so i finally benchmarked it properly, 9 models on a real 58 page shsat paper, 114 questions . the one i already had won?? the 27b model is 4x bigger, scored 6 points WORSE , and took 183 seconds per page vs 7.8 . id been assuming for weeks that upgrading would fix my accuracy problems lol. also the grading was free which i was way too happy about. every question number 1-114 shows up exactly once on the paper so the test just grades itself , i never labelled a single page by hand. the bug that was actually my fault so when i looked at WHICH questions got missed they werent random, they came in chunks . one model dropped 17 questions in a row . turns out every single miss on every model was a page that came back completely empty . not a wrong answer. nothing. and that was my bug not the models . an empty reply gives 0 questions and no error, so my checker (which only looked for gaps in question numbering) saw nothing wrong and the upload said success while a whole page just quietly disappeared . fixed with one retry at a slightly higher temperature cuz a model that decided to output nothing will decide that again if u ask it the exact same way. stuff that broke i wrote a check to catch questions that got cut off mid sentence (flag anything not ending in punctuation) and it flagged 25 out of 114 questions on a CLEAN run . all wrong. turns out shsat questions end with like “by” or “through” all the time and the answer choices finish the sentence. fixed it and it changed literally zero outcomes so the rule was doing nothing the whole time. also added rate limiting and instantly locked myself out of my own test suite , which signs up way more than 5 times an hour from localhost. also deleted my entire email system . u need a domain u own to send emails (spf/dkim records) and a free .vercel.app subdomain cant do that. so instead of buying a domain i deleted 274 lines and made google sign in the front door. next things: tier B uploads dont get topic tags yet, and theres one test failing on purpose cuz FSRS says a question u just got wrong is due in 1 minute but i think it should be due immediately. gotta pick one.
Devlog 2 - StudyBuddy HERE IS THE LINK TO TRY IT ( https://trystudybuddy.vercel.app/ ) left a pile of worksheets extracting overnight cuz i was sick of testing every fix against the same two papers. woke up to 9 worksheets, 713 questions, 353 pages everything below only shipped after i swept it over all of that first. rule i have now, after two earlier “fixes” that read perfectly and were wrong on real data a question that shipped reading ?rac{44}{11} i tell the model to write plain text. it writes LaTeX anyway sometimes that fails loudly. \sqrt isnt a valid JSON escape so the response explodes and i lose a page. thats fine?? at least i know the other half is the problem. \f is a form feed and \t is a tab, both totally valid , so \frac{44}{11} parses perfectly and quietly becomes a form feed followed by rac{44}{11} i had an AMC8 question in my database reading ?rac{44}{11} and nothing anywhere reported a problem fix has to run before the first parse , not in the catch block, cuz the version that actually hurts u never throws it doubles the backslash on letter runs JSON would misread, but only the six that collide (b f n r t u) and only when the run spells a real command. otherwise a real line break stops being a line break, which is a fun way to make things worse questions torn in half by the page break extraction reads one page at a time and never sees the page before or after. so a question ending at the bottom of page 3 with its answer choices at the top of page 4 is never whole in either request . five of them on the AMC8 paper one fix folds the halves back together. the other is for the worse case where the extractor returned nothing at all for the second half, cuz a bare block of answer choices isnt a question so the model just drops it. theyre still sitting in the next pages text layer tho, u just have to go get them sorting questions within a page needed its own module cuz the bounding boxes lie . question 4 came back with a top of 1428 and question 5 with 1379, so pure geometry puts them backwards AMC8 went from 19 of 25 questions having their answer choices to 24 of 25 , zero false positives across 348 SHSAT pages stuff that broke a worksheet told me it had 26 questions when the paper has 25 . the extra one was the axis labels off a diagram, and the SHSAT ones had rows that just said CONTINUE TO THE NEXT PAGE. dropped 23 rows, all page furniture then immediately shipped a followup bug where the card read “Questions 25” next to “Unchecked 26” cuz i filtered one count and forgot the other one lol tried just asking the model to return a carried answer block as half a question. produced zero of them and started relabelling stem-only questions as free response, which hides the damage from every check i have. reverted the landing page every animation was gated behind prefers-reduced-motion , which sounds responsible until u find out some managed windows installs ship with animation effects off by default . so the page whose whole job is showing the product working was showing a static screenshot the hero panel gets dealt onto the page like a card now. needs a perspective on the parent or the rotations collapse into a shear and it just looks like a slide the forgetting curve draws itself left to right. stroke-dashoffset does not work here , pathLength is silently ignored under vector-effect: non-scaling-stroke so the dash tiles across the path instead of spanning it once. and i need non-scaling-stroke or the line renders 9x too thick . used a page-coloured shutter instead next things: that one AMC8 question needs reading off the page image since the text layer doesnt have it. and theres a cheaper reduced-motion compromise i wrote down but havent built.
if any of you guys wanna try this out here is the link: https://trystudybuddy.vercel.app/ YOOOOO WE GOT OUR FIRST FEW USERS i just checked before sleeping and yo we have 14 worksheets in the processing queue right now i wonder how much we had before THANK YOU GUYS
Devlog 3 - StudyBuddy wrote a script that reads each papers own answer key out of the source pdf and diffs it against my database. so the paper grades me instead of me grading myself. those 14 sheets scored 1 of 14 the first time i pointed it at them. tonight theyre 14 of 14 . barely any of it was the model. one paper stored 8 of its 15 questions. the model had read all 15 the log said dropped 6 unreadable question(s) . a count. no reason. it said that for two days made it print which field rejected the question and it told me on the first run: choices.0.label: Too big: expected string to have <=8 characters answer labels are capped at 8 chars, but the cap runs before the function that shortens them. that function only exists cuz the model returns A. 60 instead of A so the cap was checked against exactly the thing the transform was written to fix. coordinate geometry paper, every option reads A. (-2, 3) , ten chars, binned a count with no reason cant tell u “model returned garbage” from “ur schema is stricter than the paper” and those have opposite fixes also 44 duplicate-answer flags, every one wrong: -2 and 2 both normalised to 2 lol. on a maths paper the sign IS the question.
Devlog 4 - StudyBuddy no new features today. just went hunting for stuff that was quietly broken, and there was way more of it than i expected the sign-in page could send u to a different website if someone handed u a link like /signin?next=someothersite.com , u would log in and then land on their page immediately after typing ur password, which is about the worst possible moment for that to happen this one went first there was no limit on login attempts i had limits on signing up and on uploading. somehow not on the actual password box so u could sit there and guess forever getting blocked now looks identical to just getting the password wrong. telling someone “too many attempts” quietly confirms the account exists file storage was writing into the void if one setting went missing it silently saved ur page images somewhere that doesnt survive on the server uploads said they worked. returned a success. images just gone nothing errored anywhere, which is why it sat there so long now it refuses to start up at all instead of pretending everything is fine i almost broke my whole test suite fixing something unrelated locked down two internal-only routes with what seemed like the obvious check except my tests run against a production build, so that check wouldve locked the tests out too caught it before it shipped, then wrote a test explaining it so future me doesnt helpfully undo it added security headers and instantly caught myself put them in report-only mode first so nothing could actually break about 40 seconds later it flagged a script that my own analytics loads the strict version wouldve blocked it in prod. i absolutely wouldve shipped that one fix i deleted instead of shipping had a note to add another check to the duplicate-question detector actually tested it against real papers first, and it turns out it can never trigger. the answers on a maths paper are just “4” and “9” and stuff, way too short for it to match on wouldve quietly made things worse all tests green at the end of it. onto the next pile
Devlog 5 - StudyBuddy “accept the remaining 114” checked none of them that button fires one save per question, and on my test paper thats 114 of them at once nothing read the answers back, so a save that failed looked exactly like one that worked the tick stayed on, u moved to the next screen, and it was never stored deleting a question said “Saved” and then didnt delete it delete waits a few seconds so u can undo it. it dropped the question from the list first and threw away whatever came back from the server so if it failed u got told it saved, and the question showed up in ur study queue later like nothing happened also there was no undo button anywhere. it was just a slow delete $5 was being eaten maths sometimes comes wrapped in dollar signs so i strip them off. money also comes wrapped in dollar signs “Sam has $5 and Ana has $12” was being read as “Sam has 5 and Ana has 12” checked a real saved question and yep. paper says $5, database said 5 if my worker died, ur worksheet said “queued” forever the machine that reads the pages runs at my house. if it fell over mid job, nothing anywhere ever marked that job as failed it just sat there, and the free credit it charged u never came back the topic tagging could fail without failing it needs a bit of software thats not always there on the server. when it wasnt, it came back with “no matches” which is a completely normal answer. so the job finished, every question was untagged, ur weak areas page was empty, and nothing anywhere was an error one i was told to do and didnt had a note to cap the page number by how many pages the worksheet has except if u upload pages 10 to 15 of a pdf thats six pages numbered 10 to 15, so that check refuses every single one of them capped the two things separately instead also the screen asking u to check questions against the page never showed the page finishing a review session stopped saying u finished it the AI could print its own error onto ur status page, which sometimes meant quoting ur own worksheet back at u the upload checked the image size by asking the browser instead of opening the image
Devlog 6 - StudyBuddy u can throw everything u got wrong into blooket now button on the dashboard for the whole account, and one per worksheet if u only want that paper it gives u a file, u upload it to blooket, u get a set of exactly the questions u missed wrong means ever wrong, not currently wrong. if u got it wrong on paper and then right in review, its still in there. thats the one u actually want to drill and it wouldve been weird to leave out blooket hands u an .xlsx template so everyone calls this an xlsx export, but its uploader only accepts csv. took a while to work out also its importer just silently imports nothing if the file is slightly off. no error, no warning, zero questions. three separate ways to trip that picking a subject barely did anything theres a dropdown on upload for what subject the worksheet is. it offers things like “Algebra 1” only the first bit of that was ever used, so picking Algebra 1 searched all of high school maths. exactly the same as picking “all of high school maths” the one control u have over how ur questions get sorted, doing basically nothing long papers were quietly losing questions to a limit the topic tagger takes questions 100 at a time. fine except it grabbed 100 in no particular order and then removed the ones already done, so on a 114 question paper 14 never got looked at, and which 14 was down to whatever the database felt like that day worse on a second pass: if 100 were already tagged it handed back an empty list, which reads as “nothing left to do”, and the rest never got tagged at all two screens counting the same paper differently the worksheets page filters out page junk like “CONTINUE TO THE NEXT PAGE” before counting. the dashboard didnt so the same worksheet was 25 questions on one screen and 26 on the other, and nothing tells u which one is lying the chart was lying about time the accuracy chart draws a bar per week. it was only making bars for weeks u actually did something in so 12 bars looked like 12 weeks in a row but werent. practise in march and again in june and u see two bars side by side like it was steady every week is a bar now, empty ones included, and it says which weeks its showing scrolling changed my settings without me touching anything the page range and question count boxes were number inputs, and number inputs treat the scroll wheel as a way to change the value so scrolling down the upload page with ur cursor over one of them silently rewrote which pages get read found a pile of other accessibility stuff while i was in there: buttons a bit too small to reliably hit on a phone, cards that vanish in high contrast mode, and a “skip to content” link that didnt actually skip anything also asking to see an explanation u already had was using up ur hourly limit for generating new ones the topic picker was built in a way that made screen readers think the list had nothing in it button labels were half Title Case and half sentence case, sometimes on the same screen
Devlog 7 - StudyBuddy the drag box was broken in the real app. for months u upload a worksheet, u draw a box around question 1, it fills in. thats the whole manual editor, thats the whole free tier. and it didnt work. click through the app to get there and nothing responds. reload and its fine. four previous commits went looking for this. the test had a 24 line comment explaining why it was probably a test problem. it was not. elementFromPoint(100, 28) -> HTML elementsFromPoint(100, 28) -> [HTML] thats the browser saying nothing is at this pixel , for every pixel on the page. the cause was 8 view transition animations, 6 stuck running forever . one that never finishes sits in the top layer and covers everything. and its a pseudo element so it shows up in no ancestor walk and no element stack, which is why every previous investigation contradicted itself. bisected on clean builds: next flag react component result on on broken off on broken on off clean off off clean so its react’s <ViewTransition> , not next. three lines of css. the drag test used to fake the mouse with dispatched events, now it uses a real one, which is the only thing that proves anything. gemini has never completed a single request 4 providers in settings. one says “has a free tier worth starting on”. zero successful calls, ever. every nullable field is anyOf: [{type:'x'}, {type:'null'}] gemini doesnt understand anyOf , so a filter strips keywords it rejects the filter dropped anyOf and left {} behind, while leaving the field in required a required field with no type = rejected request. every time funny part: the allowlist already had nullable in it, gemini’s own word for the same idea. someone knew. nothing connected them. the landing page was lying about 3 of its 4 topics theres a comment above them saying “kept honest on purpose: these are real taxonomy names” . Ratio & proportion - not real Linear equations - not real Reading inference - not real Vocabulary in context - real so the one claim the page made about its own honesty was the false one lol. theres a test now instead of a comment. tests found 2 bugs i wasnt looking for new Date("sometime in 2010") returns jan 1 2010, cuz v8 scrapes a year out of almost anything. and it parses as local midnight while everything next to it is UTC. on a 13th birthday thats the whole question one route answered 404 to someone with no session. the client sends u to sign in on a 401 and brings u back after, so a tab that sat open till the session expired just ate what u typed the rest a reload could cost u a 114 question paper. markup saves nothing till every question is marked, so its a local draft now / , /signin , /signup are static html now. the topbar called auth() from the root layout, which made all 39 routes render per request the 23mb embedding model was getting fetched inside a background task on every cold start, and failing silently one commit recorded 32 renames and none of the code . the git add failed and i’d redirected the error away so i never saw it
Devlog 8 - StudyBuddy im too lazy to have a full write up for this (watched spiderman tdy IT WAS REALLY GOOD) for each topic that a user gets wrong, a seperate model (gpt-oss:20b, sorry if i miswrote the model) gives a walkthrough of the topic also added missed questions to the csv export added a AI answer key system if the worksheet doesnt have one.
Devlog 9 - StudyBuddy the merge tool could double up a question number renumbering the survivor of a duplicate pair used Math.min of just those two rows, blind to the rest of the paper merging a phantom #5 into a real #9 could hand the paper a second #5, the exact thing the tool exists to prevent zero tests on a function that deletes rows. five now, including the repro $15/hour was losing its sign, not just $5 the math-stripper runs from one $ to the next, so “earns $15/hour and $18/hour” reads the slash as a fraction and eats both signs. same with $40 = $25 + $15 on the = i wrote this down once as “one weird case.” it’s the whole unit-rate and equation category fix checks the char after the closing $ : a digit means it’s opening the next price, not real math figure crops didnt need a new pipeline, just reusing one filed as “never produced,” which reads like crop, store, backfill the verify screen already computes a crop window from the bbox over the stored page image. review got wired to the same math, every old worksheet gets it free the real work was the guards: zero-area, inverted, off-page, or no recorded page size all have to degrade to nothing rather than to the wrong crop a fence i built to be un-escapable, wasnt the comment says a new tag can’t be added without going through the escaping. page-seam work added two by typing them directly a page whose OCR contains the literal closing tag closes the fence early, and everything after reads as instructions instead of data tag list exists once now, every fence built from it every worksheets.status write was a bare UPDATE no guard on the current value, so a stale job retry could drag an already-reviewed worksheet back to failed one transitionWorksheet(from, to) now, every write through it preview deploys were migrating the prod database guard only checked VERCEL_ENV === 'production' , but previews fire on every push against one shared DATABASE_URL two finishing together were racing through the migration folder 9 tests could go quiet and nobody would know one e2e file, 12 tests serial in a single tab, everything past “verify” depending on a question a drag gesture created three tests earlier a drag regression silently skipped 9 unrelated tests instead of failing them api fixture, split the file, broke the drag on purpose to prove it. held the question list rendered all 114 cards for a screen that edits one at a time deferred a while back: virtualizing editable rows risks one unmounting mid-edit only one card can ever be expanded, so the risk surface is exactly one row virtualizes past 40 now, open row pinned into the rendered range wherever scrolling goes. typed into one at 60 questions, scrolled thousands of px away, still there, still focused, still holding the edit also profile save had devlog 4’s router.refresh() remount bug login rate limit skipped Auth.js’s own credentials endpoint ollama worker had no startup timeout and just hung worksheet text leaked into console logs on schema rejections review screen shipped every page’s OCR text on page-1 load admin console got merge, tree edit, queue, usage doc-count drift (third time), and a false-positive LaTeX check flagging real set notation as broken math
Devlog 10 - StudyBuddy mostly the same bug wearing different clothes: a screen that exists, that u can get to, that quietly does less than it says tier C was sitting in settings doing nothing save an ollama address and the app resolves u to a browser executor. that executor had nowhere to go, so ur worksheet just sat there looking queued it claims the job now and reads each page against localhost:11434 , posting back through the same queue my gpu posts through has to run in the browser cuz a server cant reach ur localhost, so the tab stays open. checkpointed per page tho, closing it resumes instead of restarting the paper a mark u mis-tapped was permanent tap through 40 of these and ur going to hit the wrong one eventually that one tap feeds the FSRS schedule, the topic accuracy, the weakness ranking and the blooket export only way back was deleting the worksheet and uploading it again, which costs u a trial credit. so the fix for a mistap was paying for it two defences that were never on WORKER_ALLOWED_IPS was optional and empty meant no restriction empty is the state every deployment starts in, so the normal outcome was a defence thats off that nobody ever decided to turn off refused now. * still allows any address but somebody has to type it untagged worksheets looked identical to broken ones tier B cant auto-classify, the embedding model needs a native runtime the serverless host doesnt have so ur questions saved fine and were reviewable fine, they just had no topic and nothing said why. reads exactly like it silently failed every tier that can come back untagged says so now nothing told u when a worksheet finished u uploaded and then u guessed. sat on the status page or came back later and hoped in-app bell that needs zero setup, plus web push for a tab u closed also “Review these now” now reviews those questions. the word had drifted onto three screens meaning three different things dashboard was missing three of its panels, and the trend arrow was specified ages ago and never computed taxonomy had no front door and the subject panel only went one level deep. Math > Geometry > Triangles walks now pagination was capping at the fiftieth worksheet and saying nothing about it the AI setup prompt showed up after ur trial ran out, which is the one moment it cant help u grouped scripts/ by what it does to ur data. inspect/ reads, repair/ writes behind a guard, benchmark/ measures 1285 tests green. playwright hasnt run yet and app/ moved a lot this time, so thats next
Devlog 11 - StudyBuddy this is a short one got the google sign in to work added email verification and forgot ur password thing cleaned up the overall UI made the topic tree standardized cleaned up some of the extraction issues added ollama integration for everyone added practice question generation, topic overview, etc tested everything fully the attached image is the app after a ton of testing *
ANYONE RATING THIS PROJECT - THE VIDEO ON THE SHIP IS OUTDATED, THERE IS ALSO ANOTHER FEW DEVLOGS SO CHECK THAT OUT BEFORE JUDGING BECAUSE IT GIVES MORE INFO ABOUT THE BUILDING AND WHY THE CHANGED A LOT SORRYYYY ALSO USE THE SAMPLE WORKSHEETS I ATTACHED OR EASILY PARSEABLE WORKSHEETS. TEMPORAILY IVE CLOSED THE API KEY VERSION AS MOST PEOPLE DONT HAVE THEM. COMPLEX WORKSHEETS ARE TO BE USED ONLY WITH LARGE LLM Devlog 12 - StudyBuddy got everything ready to ship turns out that ollama needed some permissions so fixed that and added it to readme for people to set up, and other stuff like that shipping it in 5 mins 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉
Devlog 13 - StudyBuddy update the ui to make it look liek sticky notes and lined paper
Devlog 14 shipwrights rejected the project so im fixing their things decided to clean up the code, get rid of old functions, and i also cleaned up the UI because no one really needs the heading and then what it means, like i think you know that topics means topics and doesnt need a whole sentence after that. cleaned up the repo, got rid of ai generated code fixed a 500 error when uploading worksheets, cuz something happened and some linux kernel wasnt compaitble with the library i was using wrapped up my last few fixes lowk not a lot of new features, rather like fixes
Devlog 15 more cleaninggggggg cleaned up repo, removed more dead logic and stuff instead of a css wallpaper, i added a image of lined paper to really give that school/learning feel asked ai to help me get the ui to look kinda fresh and add the pencil style heading
Devlog 16 - StudyBuddy added some sample worksheets so you can try it out added the borders back to the buttons because i accidently removed them before
Devlog 17 - StudyBuddy (ah im losing track of these devlogs uh my ship keeps getting rejected for look to AI, and ive literally rebuilt everything, removed all teh ai generated thing. (im gonna ship again rn) made a logo cuz i thought it would look cool added a Terms of Services page cuz its risky cuz people could upload worksheets they dont have access for an i could be fried so i made them agree to that cleaned up more code fixed a few more bugs
Devlog 18 - StudyBuddy lowk not a lot of content in this one but like 1000000 different bugs popped up and reviewers are pointing it out so thank you smmm ( @blowupthenoobs ur the goat) fixed the trials having no limit other fixes just check my commits
Devlog 19 - StudyBuddy even more bug fixes so i pushed a change, and that somehow broke the entire pipeline so i patched it no real content just fixes going to add API key integration soon (follow to see it happen)
Devlog 20 - StudyBuddy more bug fixes continous reships (they keep saying its too AI generated even after i rebuilt the UI) started working on the API key integration (like almost there rn) tons of dead code removal and code clean up added support for firefox too (now it works on edge, firefox, chrome, and prolly a ton others i just havent really tested it)
Devlog 21 - StudyBuddy patched even more bugs rewrote tons of my code (ai to human) cleaned up old files (a lot of old features were removed and reupdated) just more QoL fixes
Devlog 22 - StudyBuddy fixed more bugs and rewrote code by hand
Devlog 23 - StudyBuddy i just had some minutes left on this so im just making the devlog still waiting for my ship to be approved (been waiting a few days) no big changes at all (waiting for feedback)
Devlog 24: StudyBuddy so a lot of the feedback said “cool but it needs ur gpu on”. that made it seem like a PoC, so now its running on the free tier of openrouter. making the free tier work one request per question was never going to fit a daily cap. extraction now sends up to 10 pages / 25 questions per call, sorting and answer key go 10 questions at a time. ~4 requests per worksheet instead of ~42 the homepage and upload page count the day’s calls. 80% says busy, 100% stops reading and points u at the samples. samples upload page leads with the three samples as one-click cards; ur own pdf is the second option and says how much of the shared allowance is used. removed phone photo uploads (highly innaccurate on the free tier of models i have)
Ships:
StudyBuddy Turn the worksheets you have already done into a record of what you actually know. Try it: https://trystudybuddy.vercel.app Code: https://github.com/DagaVedant/StudyBuddy What I made Upload a worksheet you already finished, as a PDF or photos. A vision model pulls out every question, its options and its answer key. You mark what you got wrong. That is the only input it needs. It sorts questions into 87 topics across SAT and competition maths. Then it ranks your weak areas and schedules revision using FSRS, the algorithm behind Anki. It also writes practice questions on your weak topics and exports misses to Blooket. Built on my own past papers: 387 real questions from 22 worksheets. What was challenging The models can run in four places: my GPU, your API key, your own Ollama, or not at all. A student with a GPU should never send homework to my server. A student with nothing should still get something. Topic tagging needs an embedding model that serverless hosting cannot run. So the shortlist is a pgvector query on the server and the vector is computed anywhere, including in your browser under WebAssembly. Worst bug was three characters: I stored the global fetch on a class field, which passes the object as the receiver. Node allows it, browsers throw Illegal invocation. Every test passed and the only runtime that mattered was broken. What I am proud of It does not lie to you. Weak topics are ranked by a Wilson lower bound, not a raw percentage, so two unlucky answers cannot fake a weakness. Model-written questions are kept out of your accuracy, so the ranking cannot feed the questions it generates. Every model response is schema-checked before it reaches the database. Generated practice is sifted against thirteen specific failure modes. When my GPU is off, the upload screen says so instead of spinning. 1,459 unit tests, 84 end to end, 293 commits. How to test it Sign in with Google, or an email and password. Upload any worksheet you have already done. A past paper works well. Check what it read. Each question sits beside the page image it came from. Mark what you missed, then open the dashboard. The free trial reads three worksheets on my own GPU. If it is off, your upload queues and the app tells you. To skip the wait, settings takes your own API key or connects to Ollama on your machine. guys i wish this was markdown compatible but its not so sorry
StudyBuddy - https://trystudybuddy.vercel.app fyi before u try it: reading runs on a free model with a shared daily cap, and ship day is way more traffic than a normal day. please use the sample worksheets wherever u can (they’re the first thing on the upload page, one click) and upload at most one of ur own pdfs for the next day or two. if the homepage says the free reads are used up, the samples still work. what it does upload a worksheet pdf. it reads every question off the page, tags each one by topic, and works out the answer key. u mark which ones u got wrong and it brings them back on an FSRS schedule (the algo anki uses). across every test u upload it turns “i got 12 wrong” into “ur bad at ratios”. what changed since last time runs on openrouter’s free tier instead of my gpu. not a proof of concept anymore one worksheet is ~4 requests instead of ~42. pages are read in groups the site says when the day’s free reads are running low. clear about the trial: 3 worksheets free, then still free, u just add questions by hand or plug in ur own key. what was hard free models reason before they answer and bill that against the output limit which ends up causing an error, but its really hard to figure out the embedding-only shortcut for sorting looked fine and was wrong a third of the time so fixed it...
|
1793681658.3345237
|
1793768058.3345237
|
|
49577
|
CSGame by @potipek | Stardance
|
potipek
|
1
|
2.79
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T21:54:10Z", "hours": 2.0, "multiplier": 1.09, "payout": 3, "blessing": "neutral", "text": "I made my probably second game in csharp, I am a newbie, hope you like it and have a great day! :)", "repo": "https://github.com/tomk1440-cmyk/CSGame", "demo": "https://github.com/tomk1440-cmyk/CSGame/releases/tag/alpha5"}]...
|
[{"post_id": 51596, "ts": "202 [{"post_id": 51596, "ts": "2026-08-21T11:18:02Z", "hours": 0.4814, "text": "Fixed incorrect input so it no longer crashes you need to have dotnet 10 installed to run the game!"}, {"post_id": 48986, "ts": "2026-08-17T15:59:22Z", "hours": 0.3133, "text": "added new difficulty"}, {"post_id": 48508, "ts": "2026-08-16T21:52:20Z", "hours": 2.4808, "text": "Code looks good, code looks great! + github releases :)"}]...
|
Title: CSGame by @potipek | Stardance
Devlogs:
Co Title: CSGame by @potipek | Stardance
Devlogs:
Code looks good, code looks great! + github releases :)
added new difficulty
Fixed incorrect input so it no longer crashes you need to have dotnet 10 installed to run the game!
Ships:
I made my probably second game in csharp, I am a newbie, hope you like it and have a great day! :)...
|
1793681659.6200995
|
1793768059.6200995
|
|
27798
|
Word Embeddings by @stockifab | Stardance
|
stockifab
|
1
|
28.0
|
556
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-25T19:47:36Z", "hours": 28.0, "multiplier": 16.45, "payout": 556, "blessing": "neutral", "text": "Word embeddings are a way to store the meaning of word (such as “plane” or “dog”) in a large vector (= a long list of numbers) These vectors can then be used to find words similar to each other. But they can also be used to calculate with English words, e.g.: dog - bark + meow –> cat (in fact, you can try this very example on the demo website, or come up with your own calculation) In order to retrieve these embeddings, I created a model that reads through billions of words to understand how they are used. It looks at the words appearing close to each other and assumes all words with the same nearby words must have similar meaning. This retrieval of the embeddings was the hardest part: My first model was okayish and could find related words, but I could not yet calculate with them like in the example before. For the final version I used a much larger dataset, with thought-out pre-processing steps, which was more complicated then I thought (You need to ensure the words you are grouping actually belong together, so you may only group within individual sentences, groups mustn’t overlap anything inside brackets, and you can’t make a group with words you filtered in pre-processing at the same time you shouldn’t skip any words, …) Additionally the challenge with a larger dataset was, that it didnt fit into my memory, so I had to read it in chunks and train the model incrementally. The training of the final model took over 50 hours.", "repo": "https://github.com/stockifab/word-embeddings", "demo": "https://word-embeddings.happierbit.com/"}]...
|
[{"post_id": 34783, "ts": "202 [{"post_id": 34783, "ts": "2026-07-25T19:30:48Z", "hours": 1.7033, "text": "Finish Demo Website (Pages 4-8) I completed the last part of the demo website including the most exciting part about the word arithmetic."}, {"post_id": 33127, "ts": "2026-07-22T19:08:07Z", "hours": 4.3458, "text": "Embedding Demo Website (Pages 1-3) I really like the way the embeddings turned out. That’s why I want to make a website to make word embeddings as accessible and understandable as possible. I’m assuming no prior knowledge from the visitors, and try to interactively guide them through the world of embeddings, with each slide explaining something about embeddings or being interactive to try it yourself. This time i finished slides 1-3, with the last one being the interactive one. Since it should feel engaging and alive, I focus a lot on subtle animations and micro-interactions. I’ve never built a website with heavy animations before so this is the perfect opportunity to try GSAP!"}, {"post_id": 27814, "ts": "2026-07-13T18:14:42Z", "hours": 3.6242, "text": "Maths with English words With the new dataset, training took a lot longer. My computer worked for around 50 hours to run through 26GB of training data. The long wait really payed off though, the model is so much better than the previous model and it is finally capable of doing the embedding arithmetic I’ve been chasing the whole time. Embedding arithmetic is so fun, here are some examples: throw - throwing + running -> run (-ing form) better - good + friendly -> friendlier (comparasion) woman - man + king -> queen (man compared to woman is like king compared to queen) germany - berlin + paris (capitals) The model learned a lot more syntactic and semantic meaning than I had expected. Next I want to build a web app, so that you can play with the embeddings yourself."}, {"post_id": 23582, "ts": "2026-07-06T16:54:41Z", "hours": 7.0792, "text": "New Dataset + Improved Pre-Processing In an effort to increase the model’s performance I switched from the previous model’s Wikipedia Simple English dataset to a subset of the Fine Web Edu dataset. As an additional measure to improve the results I decided to use a larger context of 4 words left and right to the root word. I also completely re-wrote all the preprocessing steps. Even though the dataset is high-quality, language is very nuanced and needs filtering. But since words next to each other (4 words before and after the root word) get grouped, filtering an entire word means the group mustn’t be formed (as information is now missing), on the other hand removing punctuation from the end of a word should still allow that word to appear in a group. Overall I filter/handle: quotes brackets non-English Characters apostrophes other special characters (dashes, underscores, etc.) Another challenge is ensuring that grouped words actually belong together. In the previous dataset I simply grouped the words next to each other in a giant blob of text. This time I only group words from the same text source (the same article, document, …) and only within the sentences of that source. This ensures groups don’t span multiple sentences. This taught me a lot about working with larger amounts of data - I couldn’t load everything in memory as it would be too large, but had to read from disk in batches to process the data. After ~50 min of leaving my computer untouched I had the final dataset with ~26GB (~18GB compressed using word IDs) of filtered word groups. Next, I will have to find a way to determine unrelated words, so that I can start training the third iteration of the model."}, {"post_id": 22251, "ts": "2026-07-04T16:59:44Z", "hours": 3.2306, "text": "New (worse) model In an effort to improve on the previous model, I created a new one. Now it uses separate weights for the context instead of re-using the embedding weights in the context. The new model has 30.000.000 parameters which is double the previous one. Yet unfortunately, the results I got were disappointingly miserable: In contrast to the previous model, it doesn’t even group related words. According to the embeddings, the word “cat” is very similar in meaning to “motor” or “caution” 😂😭 I don’t know why it’s performing so poorly, but I’m curious to find out."}, {"post_id": 22092, "ts": "2026-07-04T10:56:19Z", "hours": 4.3497, "text": "First Embedding Model Using the data obtained previously I could get my first embeddings 🎉 The model (image) has 15.000.000 parameters and took roughly 1/2 hour to train. Unfortunately, the performance is below my expectations: It’s not yet good enough so that “uncle - aunt + mum” would output “dad”. However, the embeddings definitely captured some meaning: For example, the vector of “android” is close to “ios” and to “smartphones”. The vector of “cat” is close to the words “goat”, “monkeys” and “snakes”. I want to improve this model significantly until it’s good enough to meaningfully calculate with the embedding vectors."}, {"post_id": 17825, "ts": "2026-06-28T19:15:17Z", "hours": 3.9069, "text": "Data preprocessing Before the model can train to retrieve the embeddings, it needs data. I found a dataset on Kaggle with the text of 249.396 wikipedia articles. Today I did some preprocessing, first I removed any non-english words and delete special characters, then I determined the 50.000 most frequent words, and limited my vocabulary to these words. To compute the embeddings, I took the left and right words of each word in the data and put them into a pandas data frame along with two other unrelated words: (left word, center word, right word, unrelated word 1, unrelated word 2) The final dataset has 24.780.670 rows, so I likely cant train on the full dataset on my computer. The goal is for the model, when presented with the center word to predict which of the other words are similar to it which it can only do by learning the meaning of each word - which is what we want."}]...
|
Title: Word Embeddings by @stockifab | Stardance
Title: Word Embeddings by @stockifab | Stardance
Devlogs:
Data preprocessing Before the model can train to retrieve the embeddings, it needs data. I found a dataset on Kaggle with the text of 249.396 wikipedia articles. Today I did some preprocessing, first I removed any non-english words and delete special characters, then I determined the 50.000 most frequent words, and limited my vocabulary to these words. To compute the embeddings, I took the left and right words of each word in the data and put them into a pandas data frame along with two other unrelated words: (left word, center word, right word, unrelated word 1, unrelated word 2) The final dataset has 24.780.670 rows, so I likely cant train on the full dataset on my computer. The goal is for the model, when presented with the center word to predict which of the other words are similar to it which it can only do by learning the meaning of each word - which is what we want.
First Embedding Model Using the data obtained previously I could get my first embeddings 🎉 The model (image) has 15.000.000 parameters and took roughly 1/2 hour to train. Unfortunately, the performance is below my expectations: It’s not yet good enough so that “uncle - aunt + mum” would output “dad”. However, the embeddings definitely captured some meaning: For example, the vector of “android” is close to “ios” and to “smartphones”. The vector of “cat” is close to the words “goat”, “monkeys” and “snakes”. I want to improve this model significantly until it’s good enough to meaningfully calculate with the embedding vectors.
New (worse) model In an effort to improve on the previous model, I created a new one. Now it uses separate weights for the context instead of re-using the embedding weights in the context. The new model has 30.000.000 parameters which is double the previous one. Yet unfortunately, the results I got were disappointingly miserable: In contrast to the previous model, it doesn’t even group related words. According to the embeddings, the word “cat” is very similar in meaning to “motor” or “caution” 😂😭 I don’t know why it’s performing so poorly, but I’m curious to find out.
New Dataset + Improved Pre-Processing In an effort to increase the model’s performance I switched from the previous model’s Wikipedia Simple English dataset to a subset of the Fine Web Edu dataset. As an additional measure to improve the results I decided to use a larger context of 4 words left and right to the root word. I also completely re-wrote all the preprocessing steps. Even though the dataset is high-quality, language is very nuanced and needs filtering. But since words next to each other (4 words before and after the root word) get grouped, filtering an entire word means the group mustn’t be formed (as information is now missing), on the other hand removing punctuation from the end of a word should still allow that word to appear in a group. Overall I filter/handle: quotes brackets non-English Characters apostrophes other special characters (dashes, underscores, etc.) Another challenge is ensuring that grouped words actually belong together. In the previous dataset I simply grouped the words next to each other in a giant blob of text. This time I only group words from the same text source (the same article, document, …) and only within the sentences of that source. This ensures groups don’t span multiple sentences. This taught me a lot about working with larger amounts of data - I couldn’t load everything in memory as it would be too large, but had to read from disk in batches to process the data. After ~50 min of leaving my computer untouched I had the final dataset with ~26GB (~18GB compressed using word IDs) of filtered word groups. Next, I will have to find a way to determine unrelated words, so that I can start training the third iteration of the model.
Maths with English words With the new dataset, training took a lot longer. My computer worked for around 50 hours to run through 26GB of training data. The long wait really payed off though, the model is so much better than the previous model and it is finally capable of doing the embedding arithmetic I’ve been chasing the whole time. Embedding arithmetic is so fun, here are some examples: throw - throwing + running -> run (-ing form) better - good + friendly -> friendlier (comparasion) woman - man + king -> queen (man compared to woman is like king compared to queen) germany - berlin + paris (capitals) The model learned a lot more syntactic and semantic meaning than I had expected. Next I want to build a web app, so that you can play with the embeddings yourself.
Embedding Demo Website (Pages 1-3) I really like the way the embeddings turned out. That’s why I want to make a website to make word embeddings as accessible and understandable as possible. I’m assuming no prior knowledge from the visitors, and try to interactively guide them through the world of embeddings, with each slide explaining something about embeddings or being interactive to try it yourself. This time i finished slides 1-3, with the last one being the interactive one. Since it should feel engaging and alive, I focus a lot on subtle animations and micro-interactions. I’ve never built a website with heavy animations before so this is the perfect opportunity to try GSAP!
Finish Demo Website (Pages 4-8) I completed the last part of the demo website including the most exciting part about the word arithmetic.
Ships:
Word embeddings are a way to store the meaning of word (such as “plane” or “dog”) in a large vector (= a long list of numbers) These vectors can then be used to find words similar to each other. But they can also be used to calculate with English words, e.g.: dog - bark + meow –> cat (in fact, you can try this very example on the demo website, or come up with your own calculation) In order to retrieve these embeddings, I created a model that reads through billions of words to understand how they are used. It looks at the words appearing close to each other and assumes all words with the same nearby words must have similar meaning. This retrieval of the embeddings was the hardest part: My first model was okayish and could find related words, but I could not yet calculate with them like in the example before. For the final version I used a much larger dataset, with thought-out pre-processing steps, which was more complicated then I thought (You need to ensure the words you are grouping actually belong together, so you may only group within individual sentences, groups mustn’t overlap anything inside brackets, and you can’t make a group with words you filtered in pre-processing at the same time you shouldn’t skip any words, …) Additionally the challenge with a larger dataset was, that it didnt fit into my memory, so I had to read it in chunks and train the model incrementally. The training of the final model took over 50 hours....
|
1793681660.7674735
|
1793768060.7674735
|
|
4881
|
Media Review Webpage by @nic | Stardance
|
nic
|
1
|
5.0
|
41
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-24T01:00:17Z", "hours": 5.0, "multiplier": 8.68, "payout": 41, "blessing": "neutral", "text": "A small webpage built with HTML, CSS, and a speck of JavaScript for my personal TV show/movie anime reviews! Inspired by old website aesthetics from the y2k era. Presented like a personal blog, and used to track my currently watched/watching shows as well as occasionally sharing my thoughts about recently finished movies. [created in mind with the indie web movement on neocities]", "repo": "https://github.com/sodahaunted/sodahaunt.reviews", "demo": "https://sodahaunt.neocities.org/reviews"}]...
|
[{"post_id": 33196, "ts": "202 [{"post_id": 33196, "ts": "2026-07-22T21:44:56Z", "hours": 1.7128, "text": "Media Review Webpage #3 After a long time procrastinating, I’m finally done with the concept/prototype of my webpage. I wrote one full review for a recent movie I watched (Obsession), formatted it, added photos, and made sure the two lines of JavaScript code work properly. Not sure how to add more pages, though. I’ll figure that out for a future update (though if you know how, please lmk) The fundamentals of this page are pretty much finished! It has a watchlist which I can use to track shows/movies I’m watching, a (mostly) responsive layout, and all the CSS features I intended to add. Unfortunately lost an hour or two here and there because I forgot to unpause my recording, but oh well. The GIT repo for this page unfortunately doesn’t have many commits, since I wasn’t using GitHub to make this and was pretty unfamiliar with it when I started this project. It has all the code, just no visible edits/changes. Sorry about that. I used Neocities for the entirety of this site, which is what I mainly use to publish html/css projects."}, {"post_id": 15446, "ts": "2026-06-25T03:17:46Z", "hours": 2.5336, "text": "Media Review Webpage | Devlog #2 After a long hiatus, I came back to this project with a bit more motivation and inspiration than last time. I had a ton of ideas for what I wanted to do, but I wasn’t sure my skill level was high enough to program them. I only know HTML, CSS, and a bit of JavaScript, so even doing small things like showing/hiding elements takes me a long time. Challenges I wanted to make multiple pages using just one HTML file, since I wasn’t sure how many reviews I’d end up writing, and I wanted everything to be in one document. I got the text at the bottom to work properly like I wanted to, but I still don’t know how to show/hide more than one element at a time. Using Flexbox was also a pain since my images never resize how I want them to, and I want to make this page mobile-friendly. I might look back at my code from a previous project to try and figure that out in the next devlog. Additions I mainly focused on resizing everything to look a bit cleaner, and also because the previous layout was just a 500px box that barely showed any info. I changed the banner at the top and the background to something more library-themed."}, {"post_id": 4603, "ts": "2026-06-07T23:28:41Z", "hours": 0.5278, "text": "Media Review Webpage | Devlog #1 I had an idea for a while to make my own movie review/blog page, but I never really got around to doing it. Stardance was a good excuse for me to start making a lot of projects I’d procrastinated on for the past few months. short update to test lapse/hackatime changed the colours and fixed some sizing issues, planning to replace the photos and redo the actual layout next The majority of the code is carried over from a previous project I started in the past, which I’m planning to revamp and complete during Stardance."}]...
|
Title: Media Review Webpage by @nic | Stardance
D Title: Media Review Webpage by @nic | Stardance
Devlogs:
Media Review Webpage | Devlog #1 I had an idea for a while to make my own movie review/blog page, but I never really got around to doing it. Stardance was a good excuse for me to start making a lot of projects I’d procrastinated on for the past few months. short update to test lapse/hackatime changed the colours and fixed some sizing issues, planning to replace the photos and redo the actual layout next The majority of the code is carried over from a previous project I started in the past, which I’m planning to revamp and complete during Stardance.
Media Review Webpage | Devlog #2 After a long hiatus, I came back to this project with a bit more motivation and inspiration than last time. I had a ton of ideas for what I wanted to do, but I wasn’t sure my skill level was high enough to program them. I only know HTML, CSS, and a bit of JavaScript, so even doing small things like showing/hiding elements takes me a long time. Challenges I wanted to make multiple pages using just one HTML file, since I wasn’t sure how many reviews I’d end up writing, and I wanted everything to be in one document. I got the text at the bottom to work properly like I wanted to, but I still don’t know how to show/hide more than one element at a time. Using Flexbox was also a pain since my images never resize how I want them to, and I want to make this page mobile-friendly. I might look back at my code from a previous project to try and figure that out in the next devlog. Additions I mainly focused on resizing everything to look a bit cleaner, and also because the previous layout was just a 500px box that barely showed any info. I changed the banner at the top and the background to something more library-themed.
Media Review Webpage #3 After a long time procrastinating, I’m finally done with the concept/prototype of my webpage. I wrote one full review for a recent movie I watched (Obsession), formatted it, added photos, and made sure the two lines of JavaScript code work properly. Not sure how to add more pages, though. I’ll figure that out for a future update (though if you know how, please lmk) The fundamentals of this page are pretty much finished! It has a watchlist which I can use to track shows/movies I’m watching, a (mostly) responsive layout, and all the CSS features I intended to add. Unfortunately lost an hour or two here and there because I forgot to unpause my recording, but oh well. The GIT repo for this page unfortunately doesn’t have many commits, since I wasn’t using GitHub to make this and was pretty unfamiliar with it when I started this project. It has all the code, just no visible edits/changes. Sorry about that. I used Neocities for the entirety of this site, which is what I mainly use to publish html/css projects.
Ships:
A small webpage built with HTML, CSS, and a speck of JavaScript for my personal TV show/movie anime reviews! Inspired by old website aesthetics from the y2k era. Presented like a personal blog, and used to track my currently watched/watching shows as well as occasionally sharing my thoughts about recently finished movies. [created in mind with the indie web movement on neocities]...
|
1793681661.90605
|
1793768061.90605
|
|
32797
|
my APOD site by @rndm | Stardance
|
rndm
|
1
|
15.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-22T17:57:34Z", "hours": 15.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a NASA APOD website with Vite", "repo": "https://github.com/random-72521/nasa_image_site", "demo": "https://random-72521.github.io/nasa_image_site/"}]...
|
[{"post_id": 33082, "ts": "202 [{"post_id": 33082, "ts": "2026-07-22T17:44:53Z", "hours": 6.0022, "text": "i finished it"}, {"post_id": 27940, "ts": "2026-07-13T21:39:49Z", "hours": 4.1178, "text": "made it look better with a cool loading anim also info but you cant see in ss"}, {"post_id": 24987, "ts": "2026-07-08T21:35:11Z", "hours": 4.5481, "text": "it works it just looks ugly 3 hours of this was spent trying to do gh pages"}]...
|
Title: my APOD site by @rndm | Stardance
Devlogs: Title: my APOD site by @rndm | Stardance
Devlogs:
it works it just looks ugly 3 hours of this was spent trying to do gh pages
made it look better with a cool loading anim also info but you cant see in ss
i finished it
Ships:
I made a NASA APOD website with Vite...
|
1793681663.0813496
|
1793768063.0813496
|
|
40455
|
PeriodicX by @Aditya_Jaiswal | Stardance
|
Aditya_Jaiswal
|
1
|
3.59
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-28T12:56:31Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "PeriodicX is a modern interactive chemistry platform featuring a dynamic periodic table, 3D atomic structure visualization, flashcards, quizzes, element search, and educational tools to make learning chemistry engaging, visual, and accessible.", "repo": "https://github.com/programmeraj2011/PeriodicX", "demo": "https://perodicx.netlify.app/"}]...
|
[{"post_id": 57235, "ts": "202 [{"post_id": 57235, "ts": "2026-08-29T10:42:03Z", "hours": 0.5942, "text": "Devlog #4 updated Elements UI (and sorry for being late i was kinda busy soo)"}, {"post_id": 35759, "ts": "2026-07-27T12:20:35Z", "hours": 0.8558, "text": "Devlog #3 Hello everyone, I have just updated the CSS, added flashcards for each element with its information, included a 3D atomic viewer, and added tests and chemical reactions."}, {"post_id": 35713, "ts": "2026-07-27T09:56:06Z", "hours": 0.8856, "text": "Devlog #2 written all the data of the perodic table"}, {"post_id": 35676, "ts": "2026-07-27T08:40:49Z", "hours": 1.0439, "text": "I am working on my project called PerodicX"}]...
|
Title: PeriodicX by @Aditya_Jaiswal | Stardance
D Title: PeriodicX by @Aditya_Jaiswal | Stardance
Devlogs:
I am working on my project called PerodicX
Devlog #2 written all the data of the perodic table
Devlog #3 Hello everyone, I have just updated the CSS, added flashcards for each element with its information, included a 3D atomic viewer, and added tests and chemical reactions.
Devlog #4 updated Elements UI (and sorry for being late i was kinda busy soo)
Ships:
PeriodicX is a modern interactive chemistry platform featuring a dynamic periodic table, 3D atomic structure visualization, flashcards, quizzes, element search, and educational tools to make learning chemistry engaging, visual, and accessible....
|
1793681664.2393255
|
1793768064.2393255
|
|
24924
|
Borrow Board by @ayaan4657 | Stardance
|
ayaan4657
|
1
|
9.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-24T00:05:42Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made BorrowBoard, a school app where students can borrow, lend, and find lost items like chargers, calculators, goggles, and supplies. The hardest part was making everything feel like a real app instead of just a website, especially connecting auth, profiles, schedules, matching, credits, and the AI model idea. I’m proud that it looks polished, has a clear purpose, and feels like something students could actually use. - for the best experience use a desktop / laptop", "repo": "https://github.com/siccd143/BorrowBoard-YouthxCode", "demo": "https://borrow-board-youthx-code.vercel.app/"}]...
|
[{"post_id": 14761, "ts": "202 [{"post_id": 14761, "ts": "2026-06-23T23:57:40Z", "hours": 0.6406, "text": "Fixed some bugs in sizing and fixed auth in supabase"}, {"post_id": 14741, "ts": "2026-06-23T23:11:09Z", "hours": 8.6736, "text": "Worked on Completing the First Version"}]...
|
Title: Borrow Board by @ayaan4657 | Stardance
Dev Title: Borrow Board by @ayaan4657 | Stardance
Devlogs:
Worked on Completing the First Version
Fixed some bugs in sizing and fixed auth in supabase
Ships:
I made BorrowBoard, a school app where students can borrow, lend, and find lost items like chargers, calculators, goggles, and supplies. The hardest part was making everything feel like a real app instead of just a website, especially connecting auth, profiles, schedules, matching, credits, and the AI model idea. I’m proud that it looks polished, has a clear purpose, and feels like something students could actually use. - for the best experience use a desktop / laptop...
|
1793681666.0745344
|
1793768066.0745344
|
|
33961
|
Trigonometric calculator by @Stv120 | Stardance
|
Stv120
|
1
|
1.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-03T09:46:19Z", "hours": 1.0, "multiplier": 1.01, "payout": 1, "blessing": "neutral", "text": "I made a trigonometric calculator which includes easter eggs, which I am proud of. I can say the challenging part was not the actual code, but how to upload it to GitHub since I am somewhat new to this platform", "repo": "https://github.com/7lul7/TrigCalculator", "demo": "https://github.com/7lul7/TrigCalculator/releases/tag/v1.2"}]...
|
[{"post_id": 28200, "ts": "202 [{"post_id": 28200, "ts": "2026-07-14T10:35:55Z", "hours": 1.1761, "text": "Hello guys! As its my first devlog I want to mention I am currently working on multiple projects one of them being the trigonometric calculator which calculates either the sine cosine tangent and cotangent of a given angle in degrees. The project is still in the console version, but I’m developing another graphical version which will be made using raylib!"}]...
|
Title: Trigonometric calculator by @Stv120 | Stard Title: Trigonometric calculator by @Stv120 | Stardance
Devlogs:
Hello guys! As its my first devlog I want to mention I am currently working on multiple projects one of them being the trigonometric calculator which calculates either the sine cosine tangent and cotangent of a given angle in degrees. The project is still in the console version, but I’m developing another graphical version which will be made using raylib!
Ships:
I made a trigonometric calculator which includes easter eggs, which I am proud of. I can say the challenging part was not the actual code, but how to upload it to GitHub since I am somewhat new to this platform...
|
1793681668.3742085
|
1793768068.3742085
|
|
7250
|
PCA9685 Debugging Panel by @xk | Stardance
|
xk
|
1
|
7.56
|
19
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-04T16:20:20Z", "hours": 6.0, "multiplier": 3.44, "payout": 19, "blessing": "neutral", "text": "This is a web-based remote-control panel for debugging PCA9685 servo drivers on robots. The first problem I encountered was the accessibility of the hardware. Sometimes I want to debug the UI and API, but I don’t have a PCA9685 board nearby. So, I co-op with Deepseek to develop the mock mode, enabling the robot to “pretend that it has established an I2C connection to a PCA9685 driver”. If you are using the PCA9685 on your robot, you can easily debug it by simply installing this package via pip on the robot. Even if you don’t have the corresponding hardware, you can also use the mock mode to observe how the UI works. I hope this will inspire you. I’m still working on this project, and I hope it to become a “de facto standard” sometime.", "repo": "https://github.com/xiaokai-lyk/PCA9685-debugging-panel", "demo": "https://pypi.org/project/pca9685-debugging-panel/"}]...
|
[{"post_id": 8001, "ts": "2026 [{"post_id": 8001, "ts": "2026-06-13T10:52:09Z", "hours": 1.5586, "text": "V 0.2.0 now available! ✨ New Features: Action Recording & Replay Internationalization (i18n) Debug Mode (–debug) Clear Cache 💅 Improvements JS-fail overlay Accessibility Enhanced action buttons See GitHub release below for more infomation: https://github.com/xiaokai-lyk/PCA9685-debugging-panel/releases/tag/v0.2.0"}, {"post_id": 2199, "ts": "2026-06-04T15:50:08Z", "hours": 5.5567, "text": "v0.1.0 — Initial Release 🎉 Basic functions are now available and it has been published to PyPi~ Co-authed by Claude-code (used Deepseek as LLM) Visit the Github repo for more demonstrations~"}]...
|
Title: PCA9685 Debugging Panel by @xk | Stardance
Title: PCA9685 Debugging Panel by @xk | Stardance
Devlogs:
v0.1.0 — Initial Release 🎉 Basic functions are now available and it has been published to PyPi~ Co-authed by Claude-code (used Deepseek as LLM) Visit the Github repo for more demonstrations~
V 0.2.0 now available! ✨ New Features: Action Recording & Replay Internationalization (i18n) Debug Mode (–debug) Clear Cache 💅 Improvements JS-fail overlay Accessibility Enhanced action buttons See GitHub release below for more infomation: https://github.com/xiaokai-lyk/PCA9685-debugging-panel/releases/tag/v0.2.0
Ships:
This is a web-based remote-control panel for debugging PCA9685 servo drivers on robots. The first problem I encountered was the accessibility of the hardware. Sometimes I want to debug the UI and API, but I don’t have a PCA9685 board nearby. So, I co-op with Deepseek to develop the mock mode, enabling the robot to “pretend that it has established an I2C connection to a PCA9685 driver”. If you are using the PCA9685 on your robot, you can easily debug it by simply installing this package via pip on the robot. Even if you don’t have the corresponding hardware, you can also use the mock mode to observe how the UI works. I hope this will inspire you. I’m still working on this project, and I hope it to become a “de facto standard” sometime....
|
1793681669.7096925
|
1793768069.7096925
|
|
41555
|
FluxEngine Website by @olebeuscher | Stardance
|
olebeuscher
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-30T15:36:59Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "The FluxTron Website is my very first website for my project Fluxtron which you can also see in Hackclub stardance. I want to make this website more interactive and add javascript but for now it is ready to ship and to be visible for th world. (Im so proud of me for finishing my first project lol)", "repo": "https://github.com/WeirdCookie/FluxEngine-Website", "demo": "https://fluxtron.weirdcookie.workers.dev/"}]...
|
[{"post_id": 37659, "ts": "202 [{"post_id": 37659, "ts": "2026-07-30T15:29:13Z", "hours": 1.8181, "text": "SHIP #1 I finished my first project ever. (˶>⩊<˶) I deployed the website on cloudflare and made is visible for everyone under https://fluxtron.weirdcookie.workers.dev/ I also added much css and learned very much new things since my last devlog. :)"}, {"post_id": 37132, "ts": "2026-07-29T16:52:41Z", "hours": 0.7519, "text": "Devlog #1 I created the Project and i added the style.css and the index.html and have now cool Background colour"}]...
|
Title: FluxEngine Website by @olebeuscher | Starda Title: FluxEngine Website by @olebeuscher | Stardance
Devlogs:
Devlog #1 I created the Project and i added the style.css and the index.html and have now cool Background colour
SHIP #1 I finished my first project ever. (˶>⩊<˶) I deployed the website on cloudflare and made is visible for everyone under https://fluxtron.weirdcookie.workers.dev/ I also added much css and learned very much new things since my last devlog. :)
Ships:
The FluxTron Website is my very first website for my project Fluxtron which you can also see in Hackclub stardance. I want to make this website more interactive and add javascript but for now it is ready to ship and to be visible for th world. (Im so proud of me for finishing my first project lol)...
|
1793681670.9375887
|
1793768070.9375887
|
|
41561
|
My first slack bot! by @potionj | Stardance
|
potionj
|
2
|
3.59
|
6
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-06T23:04:59Z", "hours": 3.0, "multiplier": 1.7, "payout": 6, "blessing": "neutral", "text": "Cleaned up files in ssh, added wordle.", "repo": "https://github.com/minye065/slackbot-template", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354?skip_today=1"}, {"ship_num": 2, "ts": "2026-07-29T16:08:35Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Very simple slack bot with 4 commands", "repo": "https://github.com/minye065/slackbot-template", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354?skip_today=1"}]...
|
[{"post_id": 47272, "ts": "202 [{"post_id": 47272, "ts": "2026-08-15T02:58:11Z", "hours": 0.5919, "text": "Fixed the issue where duplicate letters were getting represented incorrectly."}, {"post_id": 42299, "ts": "2026-08-06T23:04:22Z", "hours": 2.025, "text": "Added a wordle command"}, {"post_id": 37923, "ts": "2026-07-30T22:41:17Z", "hours": 1.2228, "text": "added more commands, fixed old ones, added 3 helper functions and lists of new questions"}, {"post_id": 37099, "ts": "2026-07-29T16:05:31Z", "hours": 0.3981, "text": "Added commands to bot - ping, help, rand, dice"}]...
|
Title: My first slack bot! by @potionj | Stardance Title: My first slack bot! by @potionj | Stardance
Devlogs:
Added commands to bot - ping, help, rand, dice
added more commands, fixed old ones, added 3 helper functions and lists of new questions
Added a wordle command
Fixed the issue where duplicate letters were getting represented incorrectly.
Ships:
Very simple slack bot with 4 commands
Cleaned up files in ssh, added wordle....
|
1793681672.0422416
|
1793768072.0422416
|
|
41569
|
Stardust calculator by @Arbuz | Stardance
|
Arbuz
|
1
|
6.48
|
13
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-31T03:50:35Z", "hours": 6.0, "multiplier": 2.29, "payout": 13, "blessing": "neutral", "text": "I made a web tool for estimating how much Stardust you’ll earn from your project. The most challenging part was learning the basics of Javascript for this project. I’m proud that I made a functional tool in 6 hours. You can test my project here: https://arbuzyonak.github.io/Stardust-Calculator/", "repo": "https://github.com/Arbuzyonak/Stardust-Calculator", "demo": "https://arbuzyonak.github.io/Stardust-Calculator/"}]...
|
[{"post_id": 38579, "ts": "202 [{"post_id": 38579, "ts": "2026-08-01T01:57:00Z", "hours": 0.4808, "text": "Devlog 4 Added an hour until goal calculator"}, {"post_id": 38000, "ts": "2026-07-31T03:36:25Z", "hours": 1.3244, "text": "Devlog 3 The site is done! You can now estimate how much stardust you will get and see how many days it will take to hit your goal!"}, {"post_id": 37959, "ts": "2026-07-31T00:44:32Z", "hours": 1.09, "text": "Devlog 2 Added better ui to my stardust calculator"}, {"post_id": 37797, "ts": "2026-07-30T18:48:46Z", "hours": 3.1964, "text": "Devlog 1 So, I’m making a calculator to check how much stardust you can potentially get from your project! I will keep you updated as I improve the ui"}]...
|
Title: Stardust calculator by @Arbuz | Stardance
Title: Stardust calculator by @Arbuz | Stardance
Devlogs:
Devlog 1 So, I’m making a calculator to check how much stardust you can potentially get from your project! I will keep you updated as I improve the ui
Devlog 2 Added better ui to my stardust calculator
Devlog 3 The site is done! You can now estimate how much stardust you will get and see how many days it will take to hit your goal!
Devlog 4 Added an hour until goal calculator
Ships:
I made a web tool for estimating how much Stardust you’ll earn from your project. The most challenging part was learning the basics of Javascript for this project. I’m proud that I made a functional tool in 6 hours. You can test my project here: https://arbuzyonak.github.io/Stardust-Calculator/...
|
1793681673.2223096
|
1793768073.2223096
|
|
41570
|
FUNKOI by @myreester | Stardance
|
myreester
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-02T08:00:50Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hello,i am a 14 year old from india.Since,i have school i spent my 2 sundays on this project. You might think i am lying but this project was first created in my old account mcking. And if you try this project you might find some easter eggs.", "repo": "https://github.com/PEAKAKAME/https-peakakame.github.io-", "demo": "https://peakakame.github.io/https-peakakame.github.io-/"}]...
|
[{"post_id": 39340, "ts": "202 [{"post_id": 39340, "ts": "2026-08-02T07:56:34Z", "hours": 0.4339, "text": "Working on my wesite FUNKOI.Added a neon glow animation to my search bar."}]...
|
Title: FUNKOI by @myreester | Stardance
Devlogs:
Title: FUNKOI by @myreester | Stardance
Devlogs:
Working on my wesite FUNKOI.Added a neon glow animation to my search bar.
Ships:
Hello,i am a 14 year old from india.Since,i have school i spent my 2 sundays on this project. You might think i am lying but this project was first created in my old account mcking. And if you try this project you might find some easter eggs....
|
1793681674.399848
|
1793768074.399848
|
|
6717
|
Magic Deck Builder by @Joseph-T | Stardance
|
Joseph-T
|
1
|
13.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T01:03:55Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a site for making Magic The Gathering decks What’s Magic The Gathering? Magic the gathering is a card game where players make their own decks What did I make: I made a website that gives basic recommendations on what cards a user should use, based on the rest of their deck. Challenges: I big challenge was hosting the site in the end I had to move all the server side code for suggesting cards to client side so I could host it through GitHub pages How to use: Just start searching for cards to add to your deck, and the system will start to recommend cards. Features: Recommendation Filters & Search Quick Stats", "repo": "https://github.com/joseph-tighe/Magic-Deck-Creator", "demo": "https://joseph-tighe.github.io/Magic-Deck-Creator/"}]...
|
[{"post_id": 42999, "ts": "202 [{"post_id": 42999, "ts": "2026-08-08T00:50:32Z", "hours": 2.2425, "text": "Changes Made I worked on the algorithm for recommending land, and I ported my Express app to Github Pages. I also redid the UI Recommendation algorithm The algorithm just takes the ratio of required land, and compares that to the ratio of the land that is already in the deck and tries to match the two, it just works slightly better than before and accounts for more edge cases Github pages Github pages is fully static, meaning I had to trade out all my server side code for client side stuff, it doesn’t affect the user too much, but limits the app in the long run. But anyway you can actually use it now. Updated UI I just think it looks slightly better, and provides more feedback on the search, and gives slightly more info on the card. As I am sure you can tell front-end is not where I excel, but it is slightly better than before."}, {"post_id": 5087, "ts": "2026-06-08T19:30:28Z", "hours": 1.9144, "text": "Changes Made I just fixed a bunch of bugs before I decide to ship this. Fixed bugs Worked on fixing some basic bugs in the card recommendation, so that I could make it work better with wild Mana on cards, it took me 30 minutes to realize a variable should have had the let keyword instead of the var keyword. But now it works much better and is in a place to where I can start adding slightly more advanced recommendations."}, {"post_id": 4583, "ts": "2026-06-07T22:30:56Z", "hours": 2.2344, "text": "Changes Made Added a simple non-ai based card recommender for land, I also added a simple graph showing the land distribution. Started working on the backend for the AI recomendation. Land recommendations The land recommendations identifies the gap between the mana required and the mana owned, a proportion based system would be better."}, {"post_id": 3003, "ts": "2026-06-05T22:45:22Z", "hours": 1.3428, "text": "Changes Made I wrote a script to get data for training the AI Getting the data The app will use AI to help make recommendations on what cards are good for the app. The script I wrote scrapes the internet for complete decks and saves what cards they have into a JSON that can be used to train the AI later."}, {"post_id": 2952, "ts": "2026-06-05T21:11:13Z", "hours": 1.4106, "text": "Changes Made I added filtering to the search and started on the training for AI card prediction Filtering I added filtering so the user can more easily specify what card they are looking for. AI card prediction I wrote a few test scripts to figure out how I will train my AI to do it."}, {"post_id": 2851, "ts": "2026-06-05T18:11:11Z", "hours": 1.0747, "text": "Changes Made Made search more reliable and added simple loading animation Search The search would sometimes answer the query before the current one instead of the current one because that packet would be late. But that is no longer a problem."}, {"post_id": 2480, "ts": "2026-06-05T00:05:32Z", "hours": 1.2358, "text": "Changes Made Made a basic website and managed to get the search feature working Basic website The website is a really basic layout but should be fine for now. Search Search uses the Magic The Gathering API ( https://api.magicthegathering.io ). It queries every time the search bar changes."}, {"post_id": 1873, "ts": "2026-06-04T02:43:10Z", "hours": 1.5497, "text": "Changes Made I setup the project and started screwing with an API for getting basic information Tech Stack Node JS, Express, js, html, css, the api.magicthegathering.io API"}]...
|
Title: Magic Deck Builder by @Joseph-T | Stardance Title: Magic Deck Builder by @Joseph-T | Stardance
Devlogs:
Changes Made I setup the project and started screwing with an API for getting basic information Tech Stack Node JS, Express, js, html, css, the api.magicthegathering.io API
Changes Made Made a basic website and managed to get the search feature working Basic website The website is a really basic layout but should be fine for now. Search Search uses the Magic The Gathering API ( https://api.magicthegathering.io ). It queries every time the search bar changes.
Changes Made Made search more reliable and added simple loading animation Search The search would sometimes answer the query before the current one instead of the current one because that packet would be late. But that is no longer a problem.
Changes Made I added filtering to the search and started on the training for AI card prediction Filtering I added filtering so the user can more easily specify what card they are looking for. AI card prediction I wrote a few test scripts to figure out how I will train my AI to do it.
Changes Made I wrote a script to get data for training the AI Getting the data The app will use AI to help make recommendations on what cards are good for the app. The script I wrote scrapes the internet for complete decks and saves what cards they have into a JSON that can be used to train the AI later.
Changes Made Added a simple non-ai based card recommender for land, I also added a simple graph showing the land distribution. Started working on the backend for the AI recomendation. Land recommendations The land recommendations identifies the gap between the mana required and the mana owned, a proportion based system would be better.
Changes Made I just fixed a bunch of bugs before I decide to ship this. Fixed bugs Worked on fixing some basic bugs in the card recommendation, so that I could make it work better with wild Mana on cards, it took me 30 minutes to realize a variable should have had the let keyword instead of the var keyword. But now it works much better and is in a place to where I can start adding slightly more advanced recommendations.
Changes Made I worked on the algorithm for recommending land, and I ported my Express app to Github Pages. I also redid the UI Recommendation algorithm The algorithm just takes the ratio of required land, and compares that to the ratio of the land that is already in the deck and tries to match the two, it just works slightly better than before and accounts for more edge cases Github pages Github pages is fully static, meaning I had to trade out all my server side code for client side stuff, it doesn’t affect the user too much, but limits the app in the long run. But anyway you can actually use it now. Updated UI I just think it looks slightly better, and provides more feedback on the search, and gives slightly more info on the card. As I am sure you can tell front-end is not where I excel, but it is slightly better than before.
Ships:
I made a site for making Magic The Gathering decks What’s Magic The Gathering? Magic the gathering is a card game where players make their own decks What did I make: I made a website that gives basic recommendations on what cards a user should use, based on the rest of their deck. Challenges: I big challenge was hosting the site in the end I had to move all the server side code for suggesting cards to client side so I could host it through GitHub pages How to use: Just start searching for cards to add to your deck, and the system will start to recommend cards. Features: Recommendation Filters & Search Quick Stats...
|
1793681675.5219798
|
1793768075.5219798
|
|
70947
|
Molf by @dahmaus | Stardance
|
dahmaus
|
1
|
2.0
|
8
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-22T20:35:11Z", "hours": 2.0, "multiplier": 3.44, "payout": 8, "blessing": "neutral", "text": "MOLF is a simple 2D mini golf game with 3 levels (currently) :D It’s my first complete HTML game and I’m planning to add way more :^ 3 levels quick sand fans music more :D Have fun!", "repo": "https://github.com/DahMaus/Molf", "demo": "https://dahmaus.github.io/Molf/"}]...
|
[{"post_id": 81876, "ts": "202 [{"post_id": 81876, "ts": "2026-10-22T20:32:27Z", "hours": 0.8067, "text": "MOLF UPDATE Huge update visual vise (and some gameplay) :D levels got redesigned in looks and gameplay new page design music indicator too where you shoot Go play it :^"}, {"post_id": 81819, "ts": "2026-10-22T17:00:49Z", "hours": 1.41, "text": "MOLF A (tiny) golf made in js :D it has 3 Levels, go play it :^ https://dahmaus.github.io/Molf/"}]...
|
Title: Molf by @dahmaus | Stardance
Devlogs:
MOLF Title: Molf by @dahmaus | Stardance
Devlogs:
MOLF A (tiny) golf made in js :D it has 3 Levels, go play it :^ https://dahmaus.github.io/Molf/
MOLF UPDATE Huge update visual vise (and some gameplay) :D levels got redesigned in looks and gameplay new page design music indicator too where you shoot Go play it :^
Ships:
MOLF is a simple 2D mini golf game with 3 levels (currently) :D It’s my first complete HTML game and I’m planning to add way more :^ 3 levels quick sand fans music more :D Have fun!...
|
1793681676.6849263
|
1793768076.6849263
|
|
37521
|
CHRONOTAMEION (JAM VERSION) by @dylz | Stardance
|
dylz
|
1
|
39.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-05T06:16:48Z", "hours": 39.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a top-down doors inspired (yes i know) game where you need to get past 25 rooms before the clock ticks all the way down. In all honesty, I think the code for this game is pretty bad. This was the first time I seriously spent time working with someone else on a project and the first time I did a jam in a while, so there are a lot of issues. In the end though, I’m really proud of what we made, and I think it was a pretty cool project for the 4 days we worked on it! I know there isn’t a web build, but please do take the time to download the game and run the executable! It means a lot, and the games framework we’re using (raylib-cs) doesn’t allow for for web export yet, so it means a lot! Thank you for looking at the project <3", "repo": "https://github.com/Dylhouse/GMTK26", "demo": "https://dylhousedylz.itch.io/chronotameion"}]...
|
[{"post_id": 41154, "ts": "202 [{"post_id": 41154, "ts": "2026-08-05T05:58:36Z", "hours": 2.1661, "text": "The game is done (fr) Ok, so when I submitted this to GMTK, I built it wrong, so I ended up placing poorly (obviously due to lack of having a runnable executable), but I’m really happy with the game! That was about a week ago by the way, I went on a vacation almost immediately after the jam ended and now I’m back and wrapping things up. Anyways, I’ll open-source the github, commit the final changes, and yeah, that’ll be it! Have fun playing CHRONOTAMEION (jam version, might make a new game based off it!)"}, {"post_id": 35180, "ts": "2026-07-26T13:14:21Z", "hours": 10.5847, "text": "THE GAME IS (almost) DONE I did a lot, but since I want to get all my hours I’m going to make a quick devlog here. Static effect, enemies, level generation, tons of level design, balancing, inputs, and more! Very fun time, will post the link to the game in my next devlog :)"}, {"post_id": 34846, "ts": "2026-07-25T21:30:47Z", "hours": 10.9972, "text": "more work, will post more tommorow once the game is done but here’s some furniture:"}, {"post_id": 33914, "ts": "2026-07-24T06:36:02Z", "hours": 13.1753, "text": "GHOUL GAME Honestly, I don’t have a lot because art assets are still underway and we’ve been working slowly BUT I have a sick ass dithering and occlusion effects. Anyways ima go to bed i’ll have more upds later"}, {"post_id": 31633, "ts": "2026-07-20T06:00:53Z", "hours": 1.7706, "text": "Basic setup Not much to show here, just setting up the repo and everything for GMTK on Wednesday! Figured I might as well log the hours."}]...
|
Title: CHRONOTAMEION (JAM VERSION) by @dylz | Star Title: CHRONOTAMEION (JAM VERSION) by @dylz | Stardance
Devlogs:
Basic setup Not much to show here, just setting up the repo and everything for GMTK on Wednesday! Figured I might as well log the hours.
GHOUL GAME Honestly, I don’t have a lot because art assets are still underway and we’ve been working slowly BUT I have a sick ass dithering and occlusion effects. Anyways ima go to bed i’ll have more upds later
more work, will post more tommorow once the game is done but here’s some furniture:
THE GAME IS (almost) DONE I did a lot, but since I want to get all my hours I’m going to make a quick devlog here. Static effect, enemies, level generation, tons of level design, balancing, inputs, and more! Very fun time, will post the link to the game in my next devlog :)
The game is done (fr) Ok, so when I submitted this to GMTK, I built it wrong, so I ended up placing poorly (obviously due to lack of having a runnable executable), but I’m really happy with the game! That was about a week ago by the way, I went on a vacation almost immediately after the jam ended and now I’m back and wrapping things up. Anyways, I’ll open-source the github, commit the final changes, and yeah, that’ll be it! Have fun playing CHRONOTAMEION (jam version, might make a new game based off it!)
Ships:
This is a top-down doors inspired (yes i know) game where you need to get past 25 rooms before the clock ticks all the way down. In all honesty, I think the code for this game is pretty bad. This was the first time I seriously spent time working with someone else on a project and the first time I did a jam in a while, so there are a lot of issues. In the end though, I’m really proud of what we made, and I think it was a pretty cool project for the 4 days we worked on it! I know there isn’t a web build, but please do take the time to download the game and run the executable! It means a lot, and the games framework we’re using (raylib-cs) doesn’t allow for for web export yet, so it means a lot! Thank you for looking at the project <3...
|
1793681677.8014686
|
1793768077.8014686
|
|
36029
|
My Portfolio Website! by @iamcyrusdaniel | Stardan My Portfolio Website! by @iamcyrusdaniel | Stardance...
|
iamcyrusdaniel
|
1
|
67.0
|
403
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-05T14:52:44Z", "hours": 67.0, "multiplier": 6.12, "payout": 403, "blessing": "neutral", "text": "I made a portfolio website with absolutely no templates and vanilla JS, I made it because I really wanted to make a website where it’s as authentic as possible. It was honestly challenging when I ran into issues like when my bento box layout disappeared offscreen, but it felt great when I fixed it myself. I’m really proud of how this project came out, and I really enjoyed implementing all the features. There isn’t really any instructions in using my website, just explore and have fun! 🎉", "repo": "https://github.com/iamcyrusdaniel/my-website", "demo": "https://cyrus-personal-portfolio.netlify.app/"}]...
|
[{"post_id": 41318, "ts": "202 [{"post_id": 41318, "ts": "2026-08-05T13:44:24Z", "hours": 1.6453, "text": "Website Setup Complete! After tweaking some stuff and also adding responsiveness to the achievements, I can now host the website! This took surprisingly long since I had to figure out how to use certain files to make sure everything ended up on the hosted website, but in the end everything worked out :D"}, {"post_id": 41027, "ts": "2026-08-04T22:57:43Z", "hours": 0.4761, "text": "Finished I’ve finished my README and I’m finally done! Now if I make any changes it’s related to hosting"}, {"post_id": 40969, "ts": "2026-08-04T20:59:18Z", "hours": 10.5972, "text": "Devlog 8 | Finalization Welcome to my eighth devlog! This update, I’ve mostly focused on polishing things and making each page feel different (but not too different) from one another. I think I’m basically done at this point! 🎉 ✨ Visuals 🔍 Many Small Changes I’ve done a very large number of margin changes and padding changes so that everything looks nice and polished 🃏 Improved Responsiveness Some things kind of broke when shrunk still, and all of those situations (to my knowledge) are fixed! 🌗 Consistent Theme Styling Adjusted shadows and transitions so everything looks consistent in both light and dark mode 🔨 Polishing 💻 Improved Terminal Experience Made the terminal feel less boring by adding more interactability and polishing it further 🍱 Bento Box Layout Made a new bento box layout to replace the previous layout, making the page look nicer, and it’s responsive too! It collapses into a column on mobile. 🐞 Fixes 🧹 Even More CSS Cleanup At this point my CSS is completely cleaned up and the main change is that I’ve put 1 line of space between every single selector ➡️ Fixed Bento Box Disappearing Bento box stuff was disappearing when transitioning between mobile and desktop so I had to fix that by repainting the page 🥇 Fixed Achievements Mispositioning Achievements were centering themselves, in their boxes, which made them not line up, fixed it by removing the self-centering 🤔 What’s Left? 📚 README I actually have not touched the README since my first devlog, so I need to finish that up now 🔧 Host The Website This is my first time hosting a website, and it’s actually the only thing left other than the README Thanks for checking out my final major update! It doesn’t look like much, but some of these bugs such as the bento box bug ended up taking almost an hour. I now just need to test it, and put it up on Github Pages or something. For now, be ready for anything :P"}, {"post_id": 39152, "ts": "2026-08-01T21:29:48Z", "hours": 9.9492, "text": "Devlog 7 | Interaction Improvement Welcome to my seventh devlog! This update, I have made the website feel more interactive by adding achievements, and I’ve also added more personal details on the website ✨ Visuals 🃏 Improved Responsiveness As usual I’ve made some more tweaks and fixes to how the page’s responsiveness works, the timeline no longer clips through everything when resized vertically 👥 Shadow Consistency Previously I had a different shadow for light mode and dark mode, now they share the same type of shadow 🥇 Achievement Styling Using both CSS and JavaScript, uncompleted achievements are greyed out, while completed achievements are nice and opaque. Hovering shows a little description of the achievement as well 💯 Final Transition Changes Now everything has smooth transitions and I’m unlikely to change how it works now! 🔨 Features 🥇 Achievements Achievements are my newest addition to the site, each contain an image, and a short description, and now all I have to do is add more! 👨💻 Stylish Terminal Now there’s a stylish terminal where you can get a cool achievement :O 📁 More Statistics Usage By using pre-existing statistics I can make more achievements 🐞 Fixes 🧹 CSS Cleanup Had some repeated values that were cluttering the CSS that I’ve now removed ➡️ Fixed Timeline Made timeline not clip stuff when in vertical mode Thanks for checking out this update! This was a little more relaxed of an update. And as usual, there’s still more to improve, so be ready for the next devlog! 🚀"}, {"post_id": 37327, "ts": "2026-07-29T23:20:19Z", "hours": 9.1775, "text": "Devlog 6 | Design Overhaul Welcome to my sixth devlog! I’ve focused on improving the overall structure of the homepage and made navigation on the website feel more natural. ✨ Visuals 🃏 Cards Now the main text is contained within cards at the top of each page 🎨 Background Blobs Recolor While I liked the multi-colored background blobs, it didn’t have any main color so I’ve shifted to a green-blue-purple palette 📃 Menu Redesign The old menu was kind of janky and old looking, I now have a more personalized, modern menu 🏠 Homepage Upgrade Before, my homepage was simply just a small introduction, now I’ve made it more intuitive and understandable 📱 Responsive Adjustments Made more adjustments to page resizing to ensure stability on different size screens ⚖️ Two-Sided Navbar The navbar is now split between two halves, I prefer it like this since it adds a little bit more of my own personal flair :D 🔨 Features 📁 Better Page Organization Each page now has a distinct purpose and doesn’t contain duplicate content from other pages 🗺️ Navigation Improvements Added large navigation buttons on the homepage to encourage visitors to explore different sections of the site 🐞 Fixes 🧹 General Cleanup Had some weird structuring in the HTML that I fixed and made the CSS more concise 🔘 Fixed Button Alignment Originally the button alignment broke when shrunk in certain ways, now it doesn’t break anymore 📌 File Organization My CSS was overly modularized and specific, so I reorganized and reduced the CSS so that there’s roughly half as many files Thanks for checking out this update! This was the biggest design overhaul I’ve done so far, and I’m really happy with how the website is coming together. As always, there’s still more to improve, so stay tuned for the next devlog! 🚀"}, {"post_id": 35795, "ts": "2026-07-27T13:39:50Z", "hours": 9.0725, "text": "Devlog 5 | Almost done! (I hope) Welcome to my fifth devlog! I’ve now fixed many of the major bugs that were present in my code, modularized the CSS, and I’ve also started to make the site more pretty :D 🛠️ Features Who doesn’t like more features? 📊 Stats Now you can finally know how many times you toggled dark mode, or how much time you’ve spent on my website! 🕸️ CSS restructuring Now my files are nice and clean, all of them have been separated into modules and work flawlessly (for now) with each other! ✨ Visuals Here are the new visual updates! 💥 Fixed unstyled content flash Though it isn’t exactly a loading screen, it hides the flash of unstyled content! 🌊 Added a more subtle transition to visuals Now most things transition with a 0.25 second delay, it feels really smooth! 🎨 Added the colorful blob background to all pages I realized that it felt a little awkward with the extras page being the only page with a good looking background 🤔 What’s Left? Approaching the finish line! 🎉 Make the page look more entertaining Time for me to overhaul the entire styling of my project :D 👤 Add my own personal stuff! I still haven’t put my own details on the pages (there’s still placeholders) I really hope you enjoy my project :D"}, {"post_id": 33732, "ts": "2026-07-23T21:29:47Z", "hours": 10.1744, "text": "Devlog 4 | Mobile Support Welcome to my fourth devlog on my portfolio! This update has been focused on mobile support, and I’ve also made several changes to how the site adapts to different screen sizes 🛠️ Features All the cool new features! 📖 Timeline Text At first I wanted to make it so that when you click on the timeline, it would show each section, but I opted to show the section the user is currently hovering over. It makes the site feel more interactive! 🕸️ Restructured File System Before, I had literally just one JavaScript file and the same code copy pasted across every page, now I’ve modularized it into multiple files (still many bugs to fix though) ✨ Visuals Here are the new visual updates excluding mobile resizing 🌓 Dark Mode Transition Gradual color transitions make switching between dark mode and light mode easier on the eyes 🔽 Simplistic Footer I also added a footer that says Made by Cyrus • 2026 , it makes the site feel more professional 📱 Mobile Resizing Now my app is compatible with mobile! 😋 Hamburger Menu When the screen width is low, the menu collapses into a hamburger (the 3-line icon), and when clicked on, it shows a dropdown menu of the links 🟡 Timeline Text I implemented a mobile-friendly update to my timeline that transforms the page into a vertical layout when the page is shrunk What I’ve Learned 🔎 Media queries for adjustments based on screen size 🧱 Modularizing code so that maintenance and readability are improved 🍔 Awesome hamburger menu 💪 Using CSS flex for more complex use cases than centering 🤔 What’s Left? Surprisingly I’m almost done… 🐛 Fix all the bugs After modularizing the code, a lot of new bugs have been introduced that I need to fix 🎉 Make the page look more entertaining I’ve mostly worked on JavaScript animations and mobile support, I now need to make the styling itself look better Add my own personal stuff! I still haven’t put my own details on the pages (there’s still placeholders) Thanks for reading my devlog! The first image is the hamburger menu, and the second image shows the new modularized file system."}, {"post_id": 32401, "ts": "2026-07-21T15:41:26Z", "hours": 3.0122, "text": "Animations Update! I have added more animations as it makes the website more entertaining! All the changes are in the demo for those of you who want to see it in action :D ⌨️ Typing Animation I added a script to make the title look as though it is being typed out! 📏 Navigation Bar Size Limit Now the navbar doesn’t take up the entire screen width in the scenario the screen is big as it made it a little difficult to use 🌌 Background Text Visibility Fix I had an issue with the background on the extras page blocking visibility, I’ve fixed this by adding a translucent background on the page and I’m quite proud of it! ⭐ Button/Link Glow Awesome glow effect on links and buttons Timeline Transition Timeline dots appear smoothly after one another Spinning Dark Mode Button By using JavaScript and CSS animations I was able to create a cool spin effect when clicking the dark mode button Thanks for reading my devlog, feedback is appreciated!"}, {"post_id": 31885, "ts": "2026-07-20T17:10:23Z", "hours": 4.9722, "text": "Devlog 2 | Dark Mode Hey everyone! This is my second devlog, and this time I’ve added my biggest feature, dark mode. It saves your preference of light/dark mode using localStorage so you don’t have to keep switching back to your preference every time you go to a different section. I’ve also added a lava lamp-like background to the new page “Extras”. If you haven’t read my first devlog, I’ve made a portfolio website with HTML, CSS, and JavaScript! It’s a website to showcase my skills and background. Other than that I’ve fixed the navbar not being flush with the corners of the page. Overall I’m content with my progress! Please give me any suggestions I’d greatly appreciate it ❤️"}, {"post_id": 31351, "ts": "2026-07-19T17:51:24Z", "hours": 7.5419, "text": "My Own Portfolio Welcome to my first devlog! This project is a personal portfolio website that I’m currently building to introduce myself and showcase my development skills. So far, I’ve implemented an animated timeline, JavaScript particle effects, page transitions, and other interactive features. I’ve had a lot of fun building it, and I really hope you enjoy checking out this project! Features 🏠 Multi-page website with navigation ✨ Page loading transition 🎲 Random welcome messages with repetition prevention using session storage 🎉 Click particle effects created with JavaScript 📅 Interactive timeline with hover animations 🎨 Custom styling using CSS animations and transitions Built with HTML CSS JavaScript Vite What I Learned Structuring a multi-page website Using sessionStorage Creating animations using requestAnimationFrame Making loading screens to hide flashes of unstyled content What’s Left? Remove placeholder text from pages Improve animations and transitions Make the site more interactive Make the portfolio more personal to me Hope you like it :D"}]...
|
Title: My Portfolio Website! by @iamcyrusdaniel | Title: My Portfolio Website! by @iamcyrusdaniel | Stardance
Devlogs:
My Own Portfolio Welcome to my first devlog! This project is a personal portfolio website that I’m currently building to introduce myself and showcase my development skills. So far, I’ve implemented an animated timeline, JavaScript particle effects, page transitions, and other interactive features. I’ve had a lot of fun building it, and I really hope you enjoy checking out this project! Features 🏠 Multi-page website with navigation ✨ Page loading transition 🎲 Random welcome messages with repetition prevention using session storage 🎉 Click particle effects created with JavaScript 📅 Interactive timeline with hover animations 🎨 Custom styling using CSS animations and transitions Built with HTML CSS JavaScript Vite What I Learned Structuring a multi-page website Using sessionStorage Creating animations using requestAnimationFrame Making loading screens to hide flashes of unstyled content What’s Left? Remove placeholder text from pages Improve animations and transitions Make the site more interactive Make the portfolio more personal to me Hope you like it :D
Devlog 2 | Dark Mode Hey everyone! This is my second devlog, and this time I’ve added my biggest feature, dark mode. It saves your preference of light/dark mode using localStorage so you don’t have to keep switching back to your preference every time you go to a different section. I’ve also added a lava lamp-like background to the new page “Extras”. If you haven’t read my first devlog, I’ve made a portfolio website with HTML, CSS, and JavaScript! It’s a website to showcase my skills and background. Other than that I’ve fixed the navbar not being flush with the corners of the page. Overall I’m content with my progress! Please give me any suggestions I’d greatly appreciate it ❤️
Animations Update! I have added more animations as it makes the website more entertaining! All the changes are in the demo for those of you who want to see it in action :D ⌨️ Typing Animation I added a script to make the title look as though it is being typed out! 📏 Navigation Bar Size Limit Now the navbar doesn’t take up the entire screen width in the scenario the screen is big as it made it a little difficult to use 🌌 Background Text Visibility Fix I had an issue with the background on the extras page blocking visibility, I’ve fixed this by adding a translucent background on the page and I’m quite proud of it! ⭐ Button/Link Glow Awesome glow effect on links and buttons Timeline Transition Timeline dots appear smoothly after one another Spinning Dark Mode Button By using JavaScript and CSS animations I was able to create a cool spin effect when clicking the dark mode button Thanks for reading my devlog, feedback is appreciated!
Devlog 4 | Mobile Support Welcome to my fourth devlog on my portfolio! This update has been focused on mobile support, and I’ve also made several changes to how the site adapts to different screen sizes 🛠️ Features All the cool new features! 📖 Timeline Text At first I wanted to make it so that when you click on the timeline, it would show each section, but I opted to show the section the user is currently hovering over. It makes the site feel more interactive! 🕸️ Restructured File System Before, I had literally just one JavaScript file and the same code copy pasted across every page, now I’ve modularized it into multiple files (still many bugs to fix though) ✨ Visuals Here are the new visual updates excluding mobile resizing 🌓 Dark Mode Transition Gradual color transitions make switching between dark mode and light mode easier on the eyes 🔽 Simplistic Footer I also added a footer that says Made by Cyrus • 2026 , it makes the site feel more professional 📱 Mobile Resizing Now my app is compatible with mobile! 😋 Hamburger Menu When the screen width is low, the menu collapses into a hamburger (the 3-line icon), and when clicked on, it shows a dropdown menu of the links 🟡 Timeline Text I implemented a mobile-friendly update to my timeline that transforms the page into a vertical layout when the page is shrunk What I’ve Learned 🔎 Media queries for adjustments based on screen size 🧱 Modularizing code so that maintenance and readability are improved 🍔 Awesome hamburger menu 💪 Using CSS flex for more complex use cases than centering 🤔 What’s Left? Surprisingly I’m almost done… 🐛 Fix all the bugs After modularizing the code, a lot of new bugs have been introduced that I need to fix 🎉 Make the page look more entertaining I’ve mostly worked on JavaScript animations and mobile support, I now need to make the styling itself look better Add my own personal stuff! I still haven’t put my own details on the pages (there’s still placeholders) Thanks for reading my devlog! The first image is the hamburger menu, and the second image shows the new modularized file system.
Devlog 5 | Almost done! (I hope) Welcome to my fifth devlog! I’ve now fixed many of the major bugs that were present in my code, modularized the CSS, and I’ve also started to make the site more pretty :D 🛠️ Features Who doesn’t like more features? 📊 Stats Now you can finally know how many times you toggled dark mode, or how much time you’ve spent on my website! 🕸️ CSS restructuring Now my files are nice and clean, all of them have been separated into modules and work flawlessly (for now) with each other! ✨ Visuals Here are the new visual updates! 💥 Fixed unstyled content flash Though it isn’t exactly a loading screen, it hides the flash of unstyled content! 🌊 Added a more subtle transition to visuals Now most things transition with a 0.25 second delay, it feels really smooth! 🎨 Added the colorful blob background to all pages I realized that it felt a little awkward with the extras page being the only page with a good looking background 🤔 What’s Left? Approaching the finish line! 🎉 Make the page look more entertaining Time for me to overhaul the entire styling of my project :D 👤 Add my own personal stuff! I still haven’t put my own details on the pages (there’s still placeholders) I really hope you enjoy my project :D
Devlog 6 | Design Overhaul Welcome to my sixth devlog! I’ve focused on improving the overall structure of the homepage and made navigation on the website feel more natural. ✨ Visuals 🃏 Cards Now the main text is contained within cards at the top of each page 🎨 Background Blobs Recolor While I liked the multi-colored background blobs, it didn’t have any main color so I’ve shifted to a green-blue-purple palette 📃 Menu Redesign The old menu was kind of janky and old looking, I now have a more personalized, modern menu 🏠 Homepage Upgrade Before, my homepage was simply just a small introduction, now I’ve made it more intuitive and understandable 📱 Responsive Adjustments Made more adjustments to page resizing to ensure stability on different size screens ⚖️ Two-Sided Navbar The navbar is now split between two halves, I prefer it like this since it adds a little bit more of my own personal flair :D 🔨 Features 📁 Better Page Organization Each page now has a distinct purpose and doesn’t contain duplicate content from other pages 🗺️ Navigation Improvements Added large navigation buttons on the homepage to encourage visitors to explore different sections of the site 🐞 Fixes 🧹 General Cleanup Had some weird structuring in the HTML that I fixed and made the CSS more concise 🔘 Fixed Button Alignment Originally the button alignment broke when shrunk in certain ways, now it doesn’t break anymore 📌 File Organization My CSS was overly modularized and specific, so I reorganized and reduced the CSS so that there’s roughly half as many files Thanks for checking out this update! This was the biggest design overhaul I’ve done so far, and I’m really happy with how the website is coming together. As always, there’s still more to improve, so stay tuned for the next devlog! 🚀
Devlog 7 | Interaction Improvement Welcome to my seventh devlog! This update, I have made the website feel more interactive by adding achievements, and I’ve also added more personal details on the website ✨ Visuals 🃏 Improved Responsiveness As usual I’ve made some more tweaks and fixes to how the page’s responsiveness works, the timeline no longer clips through everything when resized vertically 👥 Shadow Consistency Previously I had a different shadow for light mode and dark mode, now they share the same type of shadow 🥇 Achievement Styling Using both CSS and JavaScript, uncompleted achievements are greyed out, while completed achievements are nice and opaque. Hovering shows a little description of the achievement as well 💯 Final Transition Changes Now everything has smooth transitions and I’m unlikely to change how it works now! 🔨 Features 🥇 Achievements Achievements are my newest addition to the site, each contain an image, and a short description, and now all I have to do is add more! 👨💻 Stylish Terminal Now there’s a stylish terminal where you can get a cool achievement :O 📁 More Statistics Usage By using pre-existing statistics I can make more achievements 🐞 Fixes 🧹 CSS Cleanup Had some repeated values that were cluttering the CSS that I’ve now removed ➡️ Fixed Timeline Made timeline not clip stuff when in vertical mode Thanks for checking out this update! This was a little more relaxed of an update. And as usual, there’s still more to improve, so be ready for the next devlog! 🚀
Devlog 8 | Finalization Welcome to my eighth devlog! This update, I’ve mostly focused on polishing things and making each page feel different (but not too different) from one another. I think I’m basically done at this point! 🎉 ✨ Visuals 🔍 Many Small Changes I’ve done a very large number of margin changes and padding changes so that everything looks nice and polished 🃏 Improved Responsiveness Some things kind of broke when shrunk still, and all of those situations (to my knowledge) are fixed! 🌗 Consistent Theme Styling Adjusted shadows and transitions so everything looks consistent in both light and dark mode 🔨 Polishing 💻 Improved Terminal Experience Made the terminal feel less boring by adding more interactability and polishing it further 🍱 Bento Box Layout Made a new bento box layout to replace the previous layout, making the page look nicer, and it’s responsive too! It collapses into a column on mobile. 🐞 Fixes 🧹 Even More CSS Cleanup At this point my CSS is completely cleaned up and the main change is that I’ve put 1 line of space between every single selector ➡️ Fixed Bento Box Disappearing Bento box stuff was disappearing when transitioning between mobile and desktop so I had to fix that by repainting the page 🥇 Fixed Achievements Mispositioning Achievements were centering themselves, in their boxes, which made them not line up, fixed it by removing the self-centering 🤔 What’s Left? 📚 README I actually have not touched the README since my first devlog, so I need to finish that up now 🔧 Host The Website This is my first time hosting a website, and it’s actually the only thing left other than the README Thanks for checking out my final major update! It doesn’t look like much, but some of these bugs such as the bento box bug ended up taking almost an hour. I now just need to test it, and put it up on Github Pages or something. For now, be ready for anything :P
Finished I’ve finished my README and I’m finally done! Now if I make any changes it’s related to hosting
Website Setup Complete! After tweaking some stuff and also adding responsiveness to the achievements, I can now host the website! This took surprisingly long since I had to figure out how to use certain files to make sure everything ended up on the hosted website, but in the end everything worked out :D
Ships:
I made a portfolio website with absolutely no templates and vanilla JS, I made it because I really wanted to make a website where it’s as authentic as possible. It was honestly challenging when I ran into issues like when my bento box layout disappeared offscreen, but it felt great when I fixed it myself. I’m really proud of how this project came out, and I really enjoyed implementing all the features. There isn’t really any instructions in using my website, just explore and have fun! 🎉...
|
1793681679.007147
|
1793768079.007147
|
|
38831
|
bunniesin.love by @miniaturity | Stardance
|
miniaturity
|
1
|
43.8
|
636
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T19:04:59Z", "hours": 33.0, "multiplier": 19.13, "payout": 636, "blessing": "neutral", "text": "I made a web-based daily puzzle game inspired by enclose.horse, centered around reuniting two bunny lovers, whose hearts are tethered together! It was incredibly difficult creating my own tile rendering system, and I had to makeshift an auto-tile/rule-tile system for the editor, and to make creating levels easy. I also had to figure out how to animate the tiles, which is harder than it seems. Creating the editor was the hardest part; without a game engines help, I had to create a lot manually. I am definitely proud of what I made though, and now all I have to do is get more levels to put in! Make sure to check out the editor and tutorial while you test :) they’re the best parts.", "repo": "https://github.com/miniaturity/lovebunny", "demo": "https://bunniesin.love"}]...
|
[{"post_id": 59905, "ts": "202 [{"post_id": 59905, "ts": "2026-09-01T22:38:13Z", "hours": 4.9831, "text": "carrots, and an A* algorithm! carrot game mechanic! new entity type: carrots! they can be placed on top of existing tiles. carrots subtract 3 from your move count, when a bunny consumes a carrot! consume a carrot by moving a bunny on top of a carrot. optimized solving algorithm, accounting for carrots instead of the O(N^2 * 2^C * C) BFS solver, I made a O(N^2 * 2^C * (C + log N)) A* algorithm! to avoid doing a linear scan over the board for every carrot, i implemented a bigint bitmask and used brian kernighan’s bit trick to efficiently read carrots in O(1) time. although the BFS technically has a better worse case, A* uses a distance heuristic to prioritize paths that lead towards goals, avoiding dead paths. finally, ive implemented creating a web worker to solve the solution on a different thread, preventing the UI from freezing while the solver tries to solve the level. undo/redo in editor used stacks for undoing/redoing in editor, available through ctrl + z or cmd + z/ctrl + y or cmd + y"}, {"post_id": 58835, "ts": "2026-08-31T12:44:54Z", "hours": 5.8164, "text": "more QoL features and guidance!! date traversal you can now move between puzzles from previous dates. added undo feature you can now undo your last move, but only one undo at a time. added extra guidance through dialogue if you are a new user, it shows you where the editor and tutorial are (for clarity) added confirm submission you now have to confirm the submission of your solution, so you don’t accidently submit a bad solution. added solution history if you solved the puzzle, and decided to reset, you can now always go back to the best solution you previously had. editor QoL you now have to confirm your upload. also gives you the option to change the name/author directly in the modal."}, {"post_id": 56816, "ts": "2026-08-28T18:58:41Z", "hours": 7.1142, "text": "full editor and user uploading! upload levels directly to database; share w/ links You can now upload your levels to the database and easily share them! Anyone can play user-made levels if they have the link. Keep in mind, though, there are rate limits to uploading and you can get your IP restricted for the day. added author/level naming User-made levels can now be renamed using the editor, instead of direct file changing in an exported file. polished win modal Stylized the histogram and made it easy to understand the statistics. Also added a share feature that copies text to your clipboard."}, {"post_id": 39257, "ts": "2026-08-02T03:31:27Z", "hours": 2.5056, "text": "beta release!! connected cloudflare’s R2 bucket for daily levels I can now easily add daily levels by directly adding them to the database. You can only solve the daily level once per day, kept through a unique user ID stored in localStorage (which can be easily overridden, but I don’t really care.) connected import/export type to bucket for easy drop-in User-made levels can be export in a JSON format, and imported. mobile compatibility Added on-screen buttons for mobile users, since they don’t have a keyboard. sickass domain Purchased the bunniesin.love domain for $7! Totally worth it"}, {"post_id": 38165, "ts": "2026-07-31T12:53:21Z", "hours": 7.9661, "text": "bunny level editor! created a full level editor. You can now navigate to the level editor (top left button) and create a level! Control the board size, bunny locations, and every tile in the board. Export and import levels to save them. You can also see whether your puzzle is solvable or not, and how many moves it takes."}, {"post_id": 34433, "ts": "2026-07-25T04:19:37Z", "hours": 3.5133, "text": "tutorial guide dude :3 interactive tutorial levels There are now 3 total tutorial levels, with me guiding the user through all of them. Each level progressively gets harder, and teaches the user how to solve a puzzle. optimized for phone The board is now optimized for display on phones; controls are WIP. overhauled entity handling Entity infrastructure can now be easily extended for feature such as buttons or other items. However, the solver can’t use these features, so I’m holding off on implementing them."}, {"post_id": 33884, "ts": "2026-07-24T05:01:28Z", "hours": 3.5675, "text": "improved UI; added level creator page and more tiles. added an introduction modal for new players Players that have never visited the website before are now shown an intro modal. This can direct them to play without guides, or play the tutorial. level creator page Full implementation WIP, but I created an editor version of the game so that the user can click to paint tiles. It was pretty annoying to figure out how to detect mouse events and cast them to a tile, and mutate the board state. Also really difficult to add a grid and hover effects. moar tiles More tiles, more fun :3. Added variations of grass and walls. improved ui Now displays the day and level name, inside a carrot. Probably the most creative and original idea I’ve ever had. I’m really the best web designer that has ever lived."}, {"post_id": 33651, "ts": "2026-07-23T18:49:16Z", "hours": 8.6053, "text": "functional rule tile/tilemap system using canvas + game state machine tilemap system Created a full tilemap/tileset painting system from scratch. Uses HTML5 canvas to paint the tilemap, and a spritesheet for the textures. Pretty difficult to implement, but since I know how game engines work, I can infer on how to implement it in svelte, using state runes. game state machine The game now relies on a single instance of the state machine as a source of truth (class Game). Can be easily extended for future features."}]...
|
Title: bunniesin.love by @miniaturity | Stardance
Title: bunniesin.love by @miniaturity | Stardance
Devlogs:
functional rule tile/tilemap system using canvas + game state machine tilemap system Created a full tilemap/tileset painting system from scratch. Uses HTML5 canvas to paint the tilemap, and a spritesheet for the textures. Pretty difficult to implement, but since I know how game engines work, I can infer on how to implement it in svelte, using state runes. game state machine The game now relies on a single instance of the state machine as a source of truth (class Game). Can be easily extended for future features.
improved UI; added level creator page and more tiles. added an introduction modal for new players Players that have never visited the website before are now shown an intro modal. This can direct them to play without guides, or play the tutorial. level creator page Full implementation WIP, but I created an editor version of the game so that the user can click to paint tiles. It was pretty annoying to figure out how to detect mouse events and cast them to a tile, and mutate the board state. Also really difficult to add a grid and hover effects. moar tiles More tiles, more fun :3. Added variations of grass and walls. improved ui Now displays the day and level name, inside a carrot. Probably the most creative and original idea I’ve ever had. I’m really the best web designer that has ever lived.
tutorial guide dude :3 interactive tutorial levels There are now 3 total tutorial levels, with me guiding the user through all of them. Each level progressively gets harder, and teaches the user how to solve a puzzle. optimized for phone The board is now optimized for display on phones; controls are WIP. overhauled entity handling Entity infrastructure can now be easily extended for feature such as buttons or other items. However, the solver can’t use these features, so I’m holding off on implementing them.
bunny level editor! created a full level editor. You can now navigate to the level editor (top left button) and create a level! Control the board size, bunny locations, and every tile in the board. Export and import levels to save them. You can also see whether your puzzle is solvable or not, and how many moves it takes.
beta release!! connected cloudflare’s R2 bucket for daily levels I can now easily add daily levels by directly adding them to the database. You can only solve the daily level once per day, kept through a unique user ID stored in localStorage (which can be easily overridden, but I don’t really care.) connected import/export type to bucket for easy drop-in User-made levels can be export in a JSON format, and imported. mobile compatibility Added on-screen buttons for mobile users, since they don’t have a keyboard. sickass domain Purchased the bunniesin.love domain for $7! Totally worth it
full editor and user uploading! upload levels directly to database; share w/ links You can now upload your levels to the database and easily share them! Anyone can play user-made levels if they have the link. Keep in mind, though, there are rate limits to uploading and you can get your IP restricted for the day. added author/level naming User-made levels can now be renamed using the editor, instead of direct file changing in an exported file. polished win modal Stylized the histogram and made it easy to understand the statistics. Also added a share feature that copies text to your clipboard.
more QoL features and guidance!! date traversal you can now move between puzzles from previous dates. added undo feature you can now undo your last move, but only one undo at a time. added extra guidance through dialogue if you are a new user, it shows you where the editor and tutorial are (for clarity) added confirm submission you now have to confirm the submission of your solution, so you don’t accidently submit a bad solution. added solution history if you solved the puzzle, and decided to reset, you can now always go back to the best solution you previously had. editor QoL you now have to confirm your upload. also gives you the option to change the name/author directly in the modal.
carrots, and an A* algorithm! carrot game mechanic! new entity type: carrots! they can be placed on top of existing tiles. carrots subtract 3 from your move count, when a bunny consumes a carrot! consume a carrot by moving a bunny on top of a carrot. optimized solving algorithm, accounting for carrots instead of the O(N^2 * 2^C * C) BFS solver, I made a O(N^2 * 2^C * (C + log N)) A* algorithm! to avoid doing a linear scan over the board for every carrot, i implemented a bigint bitmask and used brian kernighan’s bit trick to efficiently read carrots in O(1) time. although the BFS technically has a better worse case, A* uses a distance heuristic to prioritize paths that lead towards goals, avoiding dead paths. finally, ive implemented creating a web worker to solve the solution on a different thread, preventing the UI from freezing while the solver tries to solve the level. undo/redo in editor used stacks for undoing/redoing in editor, available through ctrl + z or cmd + z/ctrl + y or cmd + y
Ships:
I made a web-based daily puzzle game inspired by enclose.horse, centered around reuniting two bunny lovers, whose hearts are tethered together! It was incredibly difficult creating my own tile rendering system, and I had to makeshift an auto-tile/rule-tile system for the editor, and to make creating levels easy. I also had to figure out how to animate the tiles, which is harder than it seems. Creating the editor was the hardest part; without a game engines help, I had to create a lot manually. I am definitely proud of what I made though, and now all I have to do is get more levels to put in! Make sure to check out the editor and tutorial while you test :) they’re the best parts....
|
1793681682.7192183
|
1793768082.7192183
|
|
18497
|
Helyx by @lix | Stardance
|
lix
|
2
|
325.0
|
5556
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-24T19:15:11Z", "hours": 16.0, "multiplier": 19.92, "payout": 379, "blessing": "neutral", "text": "NEW THINGS: Hackatime integration Fixed bugs Edited README.md Added GitHub Issues/PRs events rendering more What I made Helyx is a terminal app for Windows that keeps every local Git repository you own in one place and lets you commit, branch, resolve conflicts, repair broken repositories and answer GitHub Issues and Pull Requests without opening anything else. I spent a lot of time thinking about what kind of project I wanted to build. I wanted something that would be genuinely useful to developers in many different ways, and that is how I came up with Helyx, a TUI application that brings many Git and GitHub tasks into one place. What was challenging Learning new libraries, keeping the code organized as it grew, and designing every screen so it looks and feels as polished as I could get it. Deciding what to build next was harder than it sounds, because there was always more that could go in. What I am proud of It has everything I originally planned to include. The diagnostics screen finds what is wrong with a repository and offers the fix instead of just reporting it, the conflict resolver opens the conflicted block in its own editor, and the whole app speaks 8 languages. Now it even has new things that were mentioned at the top of this shipping message! How to try it Download the latest release from Helyx’s GitHub and run it. It installs into your user folder and adds Helyx to your PATH , so you can start it by typing helyx in any terminal (Windows Terminal recommended). Then pick Add project and choose any folder that contains your project. Helyx is open source, so you can also read the code or build it yourself. Just click See source code below.", "repo": "https://github.com/lixtheyt/Helyx", "demo": "https://github.com/lixtheyt/Helyx/releases/latest"}, {"ship_num": 2, "ts": "2026-08-22T22:08:55Z", "hours": 309.0, "multiplier": 19.45, "payout": 5177, "blessing": "neutral", "text": "What I made Helyx is a terminal app for Windows that keeps every local Git repository you own in one place and lets you commit, branch, resolve conflicts, repair broken repositories and answer GitHub Issues and Pull Requests without opening anything else. I spent a lot of time thinking about what kind of project I wanted to build. I wanted something that would be genuinely useful to developers in many different ways, and that is how I came up with Helyx, a TUI application that brings many Git and GitHub tasks into one place. What was challenging Learning new libraries, keeping the code organized as it grew, and designing every screen so it looks and feels as polished as I could get it. Deciding what to build next was harder than it sounds, because there was always more that could go in. What I am proud of It has everything I originally planned to include. The diagnostics screen finds what is wrong with a repository and offers the fix instead of just reporting it, the conflict resolver opens the conflicted block in its own editor, and the whole app speaks 8 languages. How to try it Download the latest release from Helyx’s GitHub and run it. It installs into your user folder and adds Helyx to your PATH , so you can start it by typing helyx in any terminal. No administrator rights are needed, and the .NET runtime is bundled inside. Then pick Add project and choose any folder that contains your project. Helyx is open source, so you can also read the code or build it yourself. Just click See source code below.", "repo": "https://github.com/lixtheyt/Helyx", "demo": "https://github.com/lixtheyt/Helyx/releases/latest"}]...
|
[{"post_id": 82417, "ts": "202 [{"post_id": 82417, "ts": "2026-10-24T19:10:02Z", "hours": 0.3264, "text": "Mysterious bug I solving some bug with UpdateHandler that my friend has been experiencing. It was that you could only check for updates for Helyx if you authorized your GitHub. Otherwise, you couldn’t! I was taking the update checking through a function that sent a HTTP request with a key that Helyx receives by authorization, in this situation it isn’t needed, but when not given in that function, it returns an error. So now you can freely check for updates for Helyx even without authorizing with GitHub!"}, {"post_id": 68799, "ts": "2026-09-15T19:30:38Z", "hours": 4.4892, "text": "Hackatime integration Hello there! A guy made a feature suggestion on Helyx’s GitHub, that I should add a Hackatime integration into it. So I was thinking… and thinking… and thinking and woah… I ADDED IT! It is not 1:1 like the web interface, that one is better & shows you more things but sadly this was everything that I could request from API (at least I think): Total Seconds Languages Repo URL Total Heartbeats First Heartbeat (DateTime) Last Heartbeat (DateTime) and when combining all of these information, I created a screen where you can see all of this specifically for your project. It works on the principe of authorization. You put in your Hackatime token which authorizes you and then when you go to your project and go on Hackatime Info, it prompts you to select the project from a list of projects that are assigned to your Hackatime account/token."}, {"post_id": 62263, "ts": "2026-09-05T15:31:03Z", "hours": 1.14, "text": "Fixed User Scripts bug So, every path block used Path.GetFullPath(path) instead of Path.GetFullPath(path, script.ProjectPath) . That means it was resolving relative paths against Helyx’s own directory, not your project’s. This is now fixed."}, {"post_id": 60348, "ts": "2026-09-02T17:13:41Z", "hours": 2.7431, "text": "Reviewing my codebase and fixing bugs Since all of the features that Helyx was supposed to be finished with are almost all done (maybe even all are done), I will now change my view to another projects for Stardance such as ThetaNexus . But that does not mean that now I will just forget about Helyx. I will be reviewing the codebase sometimes to find some bugs and fix them. You can help me with this, by making an Issue request on Helyx’s GitHub. So what bugs did I fix since the last devlog? I fixed line breaking in badge/status README editor. When you were inserting your badge/status into your README via Helyx’s README editor, it done… messy stuff to the README, not something like really bad what couldn’t be fixed by manually doing it, but it should now insert the badge/status exactly as you see it in the editor. I also introduced a new ‘Found state’ text instead of ‘Found’ text in IDE settings to avoid confusion. To avoid confusion because if an editor was found and you clicked on it… it wrote this: Found Found Found Not Found Found Set by user Now it writes this: Found state Found Found state Not Found Found state Set by user Most of the time, I was reviewing the codebase via Claude Code to actually check everything precisely."}, {"post_id": 56815, "ts": "2026-08-28T18:55:16Z", "hours": 1.7133, "text": "Replaced hardcoded string colors with Color members for code safety, fixed line breaking while assigning a status/badge Okay so Markup texts (those are the texts with color) were formatted in this format: \"[red]Hello World![/]\" So it was string-based. And if you accidentally added some character to it for instance: \"[redd]Hello World![/]\" <- Exception Helyx would crash. I mainly added this, because it is an open-source project. So if someone tried to edit it, they would only have to edit the string and they might have misspelled it. But now, when he goes into the codebase, he will see Color members and he just can’t misspell that, and if he would, compiler would alert him. Basically, now it is like this: $\"[{Color.Red}]Hello World![/]\" Okay so next I fixed line breaking. What does that mean? Well… In Helyx native README editor, so when you try to assign a status/badge, you’ll get that editor, when you try to add a status/badge to that line, you might have thought that it would be on the same line as the tags above it. But it didn’t… This was happening due to the comment markers for Helyx so Helyx knows where this status/badge is located and which status/badge it is. Now Helyx will put those comment markers in a way that prevents the line from breaking."}, {"post_id": 56645, "ts": "2026-08-28T14:17:12Z", "hours": 2.1092, "text": "Added GitHub Issues/PRs events rendering Originally, when you selected Manage GitHub Issues or PRs and opened some issues/PR. You could have only seen messages posted by users, but not when a label was assigned or when the issue/PR was closed. Well… Now you can! Now it displays the exact action that happened and when it happened! Of course, it is also translated to all languages that Helyx supports. Just making sure you didn’t think it wasn’t! I also cleaned up the code a little bit. Removed some useless usings and some files were in the wrong namespace, so that is fixed too."}, {"post_id": 54407, "ts": "2026-08-25T12:34:33Z", "hours": 1.2639, "text": "Edited README.md, again I was again editing the whole README.md, because reviewers weren’t happy with the current one. Well after spending another hour of editing the whole README.md file, I hope they won’t ask me to rewrite the whole README.md file again, because I don’t even know what else to add/remove/edit."}, {"post_id": 53900, "ts": "2026-08-24T16:30:00Z", "hours": 2.0894, "text": "Edited README.md I rewrote the README.md because of the ship review. I also added a couple of recommendations that are worth knowing when you use Helyx. I also removed the <summary> comments that Claude Code wrote for the documentation, I don’t think that anyone would have used them anyway."}, {"post_id": 52656, "ts": "2026-08-22T22:04:08Z", "hours": 0.4681, "text": "README.md update I replaced the title in README.md with a banner that contains the text Helyx. I tried a few versions I made and, well, I landed on the one you can see in Helyx’s README.md, or below!"}, {"post_id": 52636, "ts": "2026-08-22T21:23:40Z", "hours": 1.4575, "text": "Experimenting with the conflict solver I was thinking about adding a simpler conflict solver, where you wouldn’t have to delete the <<<<<<< , ======= and >>>>>>> markers yourself but would just pick either the first or the second version. But I realized it would be messier than I thought, so in the end I kept it as a basic editor where you remove the version you don’t want by hand."}, {"post_id": 52516, "ts": "2026-08-22T17:40:41Z", "hours": 4.2228, "text": "GitHub done, shipping Helyx today! Today I was messing with the GitHub page for Helyx, fixing the last bugs we found and working on the installer. For the installer I used Inno Setup, because it is the most recognized and the most used one. The point of using an installer is simple: it adds Helyx to PATH. Of course there were other options, but this one seemed like the best fit. We were fighting with the script for a while, because it was doing really weird things, like staying in the background after the installation finished. But those bugs are fixed now! README.md is done, all of those GIFs and screenshots are in it too, and I have to say it looks really good! I was also setting up the GitHub side of things, so the description, the tags, a GitHub Action and so on. With the help of Claude Code, we created the logo and the banner for the installer as well. The installer uses the same logo as Helyx. It’s just a basic H, because nothing else came to mind haha. I also asked Claude Code to review the codebase one last time, and yep, it looks fine! I told it to add the basic documentation comments as well, the <summary> kind. Let’s be real here, nobody does this, and if they do, something else writes it for them, usually an AI, because it understands the function better than the person who wrote it (I know that from my own experience hahaha)."}, {"post_id": 51969, "ts": "2026-08-21T23:29:24Z", "hours": 9.8508, "text": "New features, new languages, new problems. A new feature that I added is GitHub Actions! It is on the same principle as Manage Issues and Manage PRs, so you have a list of GitHub Actions, you pick one and you can control it, check its log, observe information about it. You can even run an action! I also added a refresh keybind to Manage Issues, Manage PRs and GitHub Actions. Before, you had to go back from the details of an issue/PR/action to the list and then return to the details. Now you don’t have to. You just have to press the keybind displayed in the footer that belongs to refresh. Yes! The Helyx Language System is finally complete! Italian & Portuguese are now available in Helyx! Lately I’ve been working on the README.md file. I was mainly making more GIFs & designing screenshots for it so it will look pretty and futuristic (in my opinion)! As I have mentioned in the title, NEW… PROBLEMS! People… you won’t believe what happened to me today… I use Helyx’s Git & GitHub for testing, so there is no official one yet, and I rarely commit changes or push them. Only when I test something. And it looks like it got back at me. Well… I told Claude Code to remove comments all over my codebase, because they were mainly scrapped code and some temporary information that I had there, that wasn’t used anymore. Okay, so I told it to remove them, and for some reason instead of removing comments, it deleted Helyx’s whole codebase. Thank god README.md was untouched haha. We had to decompile the .dll that was left over from testing Helyx’s latest version, and actually check the diff and rewrite it. We still don’t know if everything was brought back since for some reason Claude Code’s memory got wiped instantly when it realized that it deleted my whole codebase. There were no backups, no restore, no nothing. The only possible thing was to use the forgotten stash that I created and use the .dll as a map to restore Helyx’s outdated codebase and rewrite it again. So that’s what we did. Yeah, so I hope everything was brought back. Claude says it was, but after what it has done I don’t know if I trust it. Just kidding, everything should be back, because it compared the .dll with the rewritten code 1:1 and everything matched."}, {"post_id": 51403, "ts": "2026-08-21T02:37:22Z", "hours": 10.1656, "text": "More bugs fixed, new functions, README & Language System updates! Hello guys, once again at 4 AM! Bugs: As the title says, there are more fixed bugs. Diagnostics crashed Helyx if you ran a rebase in a terminal and hit a conflict. Now it doesn’t! Another fixed bug is that when you opened an issue in Helyx, the footer vanished. At first I was shocked, but it was a simple fix so now your footer doesn’t vanish. Another vanishing bug! The Languages row from the header vanished when you entered a tab where Layout class was being used. Now you will see your sweet programming languages used in your selected project. Guess what! Another vanishing bug! This time the whole header vanished when you exited .Live()! Now it is okay! New behaviour: I unified some color codes with some type of info. E.g. SHA is Dark Orange everywhere, Stash is Yellow, Date is Cadet Blue and Issue Number is Aqua. The README.md editor, when inserting badges/status now has a new keybind: backspace! It is different from DEL! DEL deletes the badges/status but backspace deletes the whole line, including the badge/status that was on that line. README The README is almost done! At least I hope! Claude was a big help here, because I wanted to create an insane README and we really did. Guys, you should be excited about the README file haha! Language System Translations for these languages are already done: English French German Russian Slovak Spanish So basically every language translation is already done. BUT I decided to add even more languages! The new languages that Helyx will support are: Italian Portuguese"}, {"post_id": 50335, "ts": "2026-08-19T14:33:20Z", "hours": 8.0847, "text": "Languages almost done, moving onto GitHub & README.md Well guys, Language System is almost done. It is powered by a Resources file that stores all of the translated strings. More bugs were found! But now, all of the bugs should be fixed with also many failsafes! Now, I want to complete the Language System because I am really close to finishing it. I also want to make the README.md for Helyx’s GitHub Repository. Originally I wanted to make it via Obsidian app, but it doesn’t have direct support for Wakatime, so I have to use VS 2026 native Markdown editor with the support of Markdown Editor v2 extension from Mads Kristensen. (not sponsored lol) I also heard that Obsidian app doesn’t use the same Markdown as GitHub does so there would be some things mistyped or not even rendered, but VS 2026 should be fully compatible with GitHub’s Markdown renderer, so we will see!"}, {"post_id": 49506, "ts": "2026-08-18T11:50:08Z", "hours": 6.5236, "text": "Fixing more bugs I fix bugs mainly with use of Claude Code, because hunting for bugs is not easy and this project is not a small one haha. I had to run MANY code review tools for this, because every time it kept finding new bugs. No idea how but it did. So what we fixed? If a GitHub comment had bold text split across two lines, opening that issue crashed Helyx before it drew anything. A file with a square bracket in its name (e.g. data[1].json) crashed Status, Diff, Commit, Stashes and Log. If anything held config.json open for even a moment, Helyx assumed it was corrupt, reset it, then crashed everywhere that looked for a project. If config.json was missing its Badges section, the startup migration quietly deleted every badge from every project. Committing saved a copy of the project taken before the confirmation prompts, so anything changed in between was silently thrown away. If you linked a GitHub repo during Push, the remote was created with an empty name. Syncing a status that had since been deleted crashed in the middle of a push. A commit message containing a square bracket crashed “View Full Message” (those are just bugs that were missing Markup.Escape() function). Applying a stash said “applied successfully” even when it conflicted. One bad path stored in config.json crashed “Add Project”. This is just a snippet of the amount of fixed bugs. I won’t write all of them here since it would take a lot of text and I am pretty sure that this is enough for you to understand that we fixed a lot of bugs haha. Right now I am going to do the Language System. I am not sure if I mentioned in some devlog, the list of languages that Helyx will support. If not… there it is: English Slovak Spanish French German Russian"}, {"post_id": 48471, "ts": "2026-08-16T20:37:52Z", "hours": 9.3269, "text": "Adding new features & fixing bugs I finished making “Analyze Project” which analyzes your whole project and prints stuff such as: Number of files Number of folders Size of the project on disk Number of lines Also you can now see what amount of what programming language makes your project. It also shows you the biggest files in your project directory. And also you can see Git information such as: Branch Number of commits First commit (date) Last commit Working tree .git size So it displays some maybe important and basic information that you may check sometimes or might be interested in. There were like 6 revisions of this because I was testing different styles & designs. I also found a lot of hidden bugs with help of Claude! Before talking about bugs, I will tell you something about new features that I added. Now, when you assign a badge or change a status and you don’t have markers in README.md yet in it, then it will ask you if you want to add them manually or via Helyx. What does that mean? Well, it opens a “text editor” in Helyx which displays README.md and you can insert the badges/statuses where you want instead of opening the file in notepad and inserting the markers manually. Overall it is way quicker to do it now via Helyx. Helyx’s Generic Text Editor is now even better! You can now use all of the arrows, before you could just use Left/Right Arrow to move cursor left or right. Now you can move between lines. Now you can also open your project’s wiki via Helyx. Be aware that it doesn’t check anything, if you have wiki or not. It directly opens the website for the wiki where it should have been for the current linked GitHub Repository. Let’s talk about bugs now! Open an issue called the Markdown handler function and it was accidentally calling GitHub 101 times, when it needed some info. Now it doesn’t. 🆒 Notes have an encryption system, so if you put some sensitive info into it, it couldn’t be directly taken from the file. Only via Helyx. There was a bug, where when you enabled encryption and edit notes of 2 projects, then you turn off encryption globally and open the first project’s notes, it decrypts… but after that you open second project’s notes, it won’t. This was due to having a global bool instead of per project bool when saving if it was encrypted. Fixeddd! Another bug! Sync Status & Sync Badges was deleting staging index. Funny that I was thinking about to restore the staging index whenever using it, but at the end… the logic was wrong 😭 Now it isn’t. Then there was a bug that when you unassigned a badge, it unassigned ALL badges. Fixed! Another bug linked to badges… Unassigning a badge didn’t remove it from GitHub. Yeah… fixed!!"}, {"post_id": 47110, "ts": "2026-08-14T19:16:58Z", "hours": 10.0108, "text": "Manage PRs done! Added few new things… I finally finished making Manage PRs. So now you can: Delete Comment Merge Review Close PR Reopen PR I also had to fix some design flaws and function flaws but now it should be all good. Before doing all of this, there was a bunch of GET requests… now? Now it is also a bunch of PATCH & PUT requests. Also, now when you’ll try to link your GitHub Repository with the local one, you will just select the one that is on your GitHub account. Another thing! When you have conflicts between the local repository and the remote one (GitHub) and you try to sync them, a lot of the time Notepad pops us and tells you to remove the version of the text that you don’t want. Well now Helyx does it too and doesn’t open notepad, but lets you do it directly in TUI interface in my very own notepad. Conflict solver also uses alternate screen for this. (there’s sadly no showoff image for this, because currently I don’t have anything to create a conflict on) I am not sure what to do next in a next devlog, since everything I really wanted to do is already done… well… not everything but everything around the main things is. Maybe I’ll move on another refactoring? Or finishing the language settings? Well, we will see!"}, {"post_id": 46111, "ts": "2026-08-13T03:18:59Z", "hours": 9.2472, "text": "Manage PRs displaying and some logic done After pulling another all-nighter I finished making the Pull Request display functions. List and details about each Pull Request is done and paging also works too (took it from manage issues ;] ). Pull Requests also contain filters such as: Open Drafts Assigned Reviewed and we can’t forget their counterparts either: Closed Ready Unassigned No reviewers Pull Requests now have comment selection and Markdown formatting, but functions to manage Pull Requests are not done yet. The only ones I managed to finish are: Comment Open Browser The biggest problem with PRs is going to be, that their functions and methods for executing those functions are more complex than the ones for Issues. I plan to add these functions for PRs: Delete Comment Merge Review Close PR Reopen PR I am pretty sure that all of this will be done in next devlog, so stay updated! This is going to be very cool, I think. Well, now I am going to sleep so good night everyone!"}, {"post_id": 45830, "ts": "2026-08-12T15:39:18Z", "hours": 8.5531, "text": "Manage Issues, completed! PRs, incoming… Manage Issues is now fully completed. I still had a few issues with paging and rendering but now they are fixed. Now you can select a message and delete it & edit it. But also now you can create a comment, lock an issue, unlock an issue and create an issue. I also added a thing that I hope will be appreciated, Helyx renders Markdown from GitHub Issue comment and when you comment via Helyx, Helyx gives you Markdown options such as: Bold Text Italic Text Code Text List Quote Also, when you don’t provide a text to a comment in GitHub, Helyx will say that “No description was provided.” So the same thing as GitHub already does, but in Helyx you must provide text. Why? Because why would you create a comment with no text? So I banned adding a comment with no text. Okay, that would be everything! It was fun to create this because everything was working so well, except the paging system… that was painful to make even with Claude’s help. As I said in past devlogs, after Issues I am going to move to PRs. So yeah, let’s work on PR. I hope it won’t be harder to make, because a PR is a type of Issue in GitHub, so I hope I will use the same function logic and functions and callbacks to make it."}, {"post_id": 45232, "ts": "2026-08-11T15:56:35Z", "hours": 9.2425, "text": "Paging done, functions almost! I finished making the logic for rendering issues. In the last devlog it was just displaying all of the issues at the same time. No paging system so if there was a lot of issues or long issues, they would simply… not appear. It took me a really long time to work this out. I was mainly switching back and forth the rendering logic all the time and it went so far, that I had to use Claude to help me with it. At the end, I ended up with a rendering logic that I am not really keen on, but it is the best one that can be used in Helyx and TUI environment. Main obstacles were the Spectre.Console rendering functions and classes that were under IRenderable interface. And also the limitations of Panels, Grids… Layout had everything I needed . I wanted to cut the part which couldn’t be rendered and it should have looked like, like an unfinished Panel. Well, this was impossible. Without changing the core code of Spectre.Console or creating own system for making Panels it was impossible. Also, I haven’t seen it as something that WOULD NEED an own system that would render comments. So I just made it when a comment cuts, it creates whole Panel with part of the comment that can be rendered and at the bottom is text saying that it continues on the next page… and on the other page at the top there’s text that, hey, it continues here! Let’s finally talk about the Issue functions! I finished some simple one like: Close Reopen and create an issue… But I still have to create a system that can let you: Comment Edit comments Delete comments Lock issue Unlock issue Those are currently in WIP, but in the next devlog they’ll be most probably finished and after everything is done with issues, I will move to Pull Requests!"}, {"post_id": 44672, "ts": "2026-08-10T16:18:14Z", "hours": 9.8836, "text": "Manage Issues, at your service. After a painful development period I am again here, writing devlog! What changed? Good question! Manage Issues is partly done! I still have to finish making the actual actions but displaying is somewhat finished. When you go to ‘Manage Issues’, you will firstly see a list of issues that are on your GitHub repository. From there you can already see some details about the issues such as: Number State Title Labels Comments (number) Updated (time) Above them are filters, currently those are the available filters: All -> All Commented -> Issues has some comments Assigned -> Issues that have some assignees Labels -> Issues that have some labels But that is not all! There are also their counterparts: No comments Unassigned Unlabeled (there’s no inversion of All because why would you need filter None) Yeah, so you can invert your filters… When you select an issue at the very top you will see its number, then you will have a panel with details about the issue with its title and: State Author Opened (time) Labels Assignees Right under these details are all of the comments in chronological order. When it is done, it will also show the whole timeline of each issue. So when this and this label was added/removed… when was this assignee assigned/unassigned… when was this issue closed/opened…. Of course I am going to add actions so you can add a comment, close issue, open issue, etc… When I’ll finish Manage Issues, I will go to work on Manage Pull Requests. It shouldn’t be that different because Pull Requests are by GitHub a kind of Issue but they are also not the same, so different classes, types, etc… Well, wish me luck people… or should I say… Stardancers?? P.S.: Sorry for the grammar in images in comments. I did it very quick for the preview."}, {"post_id": 44020, "ts": "2026-08-09T14:52:22Z", "hours": 9.7869, "text": "Diagnostics done, other stuff too and some changes! Diagnostics are now fully done! When something messes up, it will give you options to fix it! Some time ago I created GitHub Synchronization settings for managing what to sync with GitHub, so what to retrieve and send with those options: Sync status with GitHub repository Sync badges with GitHub repository Fetch GitHub repository topics Fetch GitHub repository stats Use GitHub’s language detection instead of Helyx’s I created a brand new tab called ‘GitHub Actions’ where this setting is. GitHub Actions is meant to contain all of the actions that are mainly linked with GitHub endpoints. I kept few such as Push, Pull, Sync in Git Actions due to how the layout is already created. Also I added when you are rebasing and it fails, it automatically gives you a prompt to cancel it. So repair it… GitHub Actions will contain a new stuff that will come to Helyx! Managing Issues and Pull Requests!! Maybe also workspaces/actions but I will see how difficult that is and how it is needed/useful in Helyx. Another new function is, that when there’s an update for Helyx and I change the GitHub OAuth scope because of new features… Helyx will warn you and tell you to reauthorize to make sure every function will work correctly. Before this change, Helyx was using its folder name as a name of the project and as a repository name for GitHub. Now, when you add a project to Helyx, Helyx will ask you what’s its name and when you will try to use some GitHub function for the first time on your newly added project on Helyx, it will request a GitHub Repository name from you. ;) There’s still a lot of things to add. Honestly I thought that Helyx was at the very end like 50 hours ago and look! There are many more functions to add haha!"}, {"post_id": 43404, "ts": "2026-08-08T17:00:23Z", "hours": 8.0208, "text": "Doctor Git As you may know, right now I am working on Diagnostics. I am almost done with fully displaying all of the health checks about your Git repository. But I still have to finish all of the fixing actions that it will have. Diagnostics will mainly be for a case where something happens in Helyx and it will need to be fixed. The main idea of it is not aimed at resolving issues with your Git repository outside Helyx. But it may resolve some because you may run into the same issue as you had in Helyx of course. In the last devlog I said that I put GitHub Topics off. Well, that did not happen! I finished displaying GitHub Topics!! I think in some devlogs I said that it was for managing GitHub Topics. Managing meant like adding, removing, editing. Well, that wasn’t actually my main point. I just wanted it to show you your currently assigned topics in GitHub. I also didn’t see a big reason in adding Add, Remove, Edit functions for topics. Topics rarely changed, honestly and the most intuitive way would be doing it via GitHub web interface."}, {"post_id": 42869, "ts": "2026-08-07T20:34:12Z", "hours": 3.6694, "text": "More bugs are appearing, and being fixed!! So since Helyx is already far and has many advanced functions, it also has some bugs. Today when I was experimenting with assigning a project and syncing it with GitHub, I found out, that if you try to sync the projects in a wrong way… it will not work. For that reason I added more fail-safes to make sure that this will be eliminated. I can’t confirm yet if those fail-safes work, because I am also working on a new Diagnostics action in Git Actions so if something goes wrong, you can fix it by the error Helyx gives you. Right now my testing project is in a state of “Git corrupted” (no idea what I should call it) where rebase was aborted. Because of this, I had to put the “GitHub Sync Topics” synchronization off until later, so I can focus on fixing these major bugs. Also another bug came to my mind that I fixed… Helyx works on a principle of directory paths. Each project is saved in config file under its own unique GUID and its path. The bug is that when you try to rename the directory, the project won’t be found and it will be removed from Helyx. Now, you can either let Helyx find it automatically (sadly can easily fail) or you can select project manually in explorer (recommended!!!)."}, {"post_id": 42404, "ts": "2026-08-07T02:57:49Z", "hours": 4.2367, "text": "Sync finally done!! It’s 5 AM and I finished “Sync badges with GitHub Repository” and “Sync the status with GitHub repository” (this was already done, but with the enum version of status). I added also a few fail-safes so when you assign some badge or status and then delete it, it will also delete it from GitHub and project. Now it won’t be a ghost that you cannot get rid of haha. This was a little more difficult than I expected to do, the fail-safes because the local changing mechanism and syncing mechanism were written inline in the same function. The only thing that was dividing them was an if statement. It was interesting to make this. To make sure everything will work fine. Even though it didn’t MANY TIMES. Now I will focus on syncing GitHub topics. Wish me luck! P.S.: Forgot to mention, that I have to add this “On Status/Badge Edit, ASAP sync with GitHub” with Edit. I almost forgot lol, just came into my mind. I hope that COPY+PASTE will be enough and I won’t have to create another syncing system specifically for edits…"}, {"post_id": 42259, "ts": "2026-08-06T21:43:48Z", "hours": 8.6897, "text": "Never expected it to be this hard So the last days I was again changing the structure of my solution and trying to get on with it. It took me a while to create one that Claude agrees with and is good for such open-source projects. Anyways, this was the easy part. In my last devlog I said that I completed Custom Statuses & Custom Badges. Well… I did! But then I found out, that my system was bad… and when I say bad I mean it wasn’t thought out. I found out about all of this when I finished the edit action for both. Originally I used Dictionary<string, TagDefinition>. Key was name of the Status/Badge and TagDefinition was the class of one of them which also has name property. But Helyx was not prepared for this, so for the last days I redid the whole system eight times. Once I used Dictionary, once I used List, then HashSet, then Dictionary, then Dictionary with other types and so on. I just couldn’t settle on the correct type for it. Until now, it took so long even though it is so primitive because it simply didn’t come to my mind and when I was asking Claude for suggestions of how could it be made, it didn’t think of using this type. The final type is simply… Dictionary<Guid, TagDefinition> AND A LOT OF CHANGES. Yeah… don’t worry guys! I am totally devastated by doing this over and over even though it was so simple & primitive to do. Well… maybe not really primitive because the changes were also difficult to do. I mainly didn’t want to use the GUID system because I have Custom Statuses but also Built-in Statuses and I was really worried about Built-in statuses having GUID assigned to them. Those sync options with GitHub are still in work, but I finished the GitHub Repository Stats viewer after a lot of experimenting with layouts and designs/effects/colors. I’m looking forward to the next devlog guys! I hope Helyx will be your good coworker that will actually count for something hah! P.S.: I also made that text of colors is grammatically formatted. At least it should be…"}, {"post_id": 40755, "ts": "2026-08-04T14:24:15Z", "hours": 6.5064, "text": "Adding Custom Statuses, Custom Badges and even more! Here we are again! Today I added: Custom Statuses Custom Badges WIP: Sync badges with GitHub repository Sync topics with GitHub repository My original status system for projects was a hardcoded enum with statuses “Active”, “Inactive”, “Paused” and “Archived”. Then I had a lot of switches which determined color of markup based on which enum it is hah. As you may already know, enums cannot be changed in runtime :) What does that mean? That users cannot add their own statuses in Helyx directly… They would have to hardcode into Helyx their own statuses and that’s just impractical, no? That’s why I spent below mentioned amount of hours redoing so many things to make it actually work and I even learned something from this! That JSON Parsers and Colors are NOT huge friends! (genuinely, I HAD NO IDEA why it wasn’t working until AI told me that JSON parsers cannot translate Color structs). Custom Statuses/Badges currently have Add/Delete functions and right now I am going to add also Edit function, so when you accidentally create a status/badge with wrong color, you don’t have to delete it and create it again :) (just saved 10seconds of your life). I also recategorized my whole codebase with help of Claude Code. I told him to review my whole codebase and suggest what classes, enums, interfaces should be in which files and those files in which folders. It was fun, finally something where I did not have to concentrate much and chill and watch something when doing it. Well, now it is not much fun when functions that I was using are in different files and some classes have different names. But at least my codebase looks more professional! (before this I had like 10 files with a bunch of lines where classes were stacked…) Also, about the WIP stuff above… Sync badges with GitHub repository is going to be something like the Sync status with GitHub repository. It will just pop up in your README.md based on where you put the headers which Helyx will give you for that specific badge. Sync topics on the other hand are classic topics of the repository which you can see in top right corner of your repository page. It will mostly show you which topics are assigned to your repository in Helyx but I’ll make it also so you can assign/unassign topics from your repository. I’m thinking of adding more GitHub Synchronization options, but none are currently coming to my mind. Maybe something with actions, no idea yet, or local AI that will explain to you errors given by Helyx when you will be trying to do something. We will see!"}, {"post_id": 40227, "ts": "2026-08-03T17:05:06Z", "hours": 5.3314, "text": "Settings and Git pages are receiving more stuff! I added for Settings page: Notes Settings Updates and for Git page: Undo Commit Redo Commit as the name says, Notes Settings are for changing properties of global Notes on every project. There is only one setting that came to my mind and that is encryption. Some of you might paste into it something personal or confidential. Well, this makes sure that these info CANNOT be taken from raw file, but from Helyx directly. (thinking about adding password mechanism lol) Updates, yeah, it looks for updates for Helyx . Undo Commit is a special one, when you commit something and for some reason you want to go back you just undo it. On the other hand, if you somehow accidentaly clicked on Undo Commit or now you want to redo the undo, you can with Redo Commit. My plan now is to add again more functions, such as Custom Badges, option to sync the Custom Badges with your GitHub repo (it will pop up in README.md) and also add Tags sync, so you can edit your repository’s Tags via Helyx. Oh yeah, also going to add custom project status because some people may say that having statuses such as “Active”, “Inactive”, “Paused”, “Archived” is limiting (custom ones will yes, also be synced with GitHub). :) I also mustn’t forget to add the translations for other languages. I am going to do this at the end due to new text appearing every time I add something new."}, {"post_id": 39660, "ts": "2026-08-02T19:45:40Z", "hours": 6.2036, "text": "Slowly, but surely We are almost at the end (if no other function to add will come to my mind) and I was messing with access modifiers, accessors, refactoring names of variables, Tasks, voids, properties. I was adding exception handling keywords and many ifs to make sure there will be no bugs and that almost every exception will be caught. I was doing this manually so I might have missed some places where the exception handler is needed but yeah we shall see! I also enabled a search bar, so when you will be looking for your project in Helyx and you have many projects added, you can search for yours! I was also changing styles of my old menus and theirs logic because they weren’t done very well in comparison with style that I am using now… Funny story: while I was messing with the access modifiers and accessors I actually bricked the whole Helyx, because functions that were supposed to resolve configuration file and read/write into it couldn’t. I thought I accidentally removed something important but at the end it was just that, that I was changing the access modifiers and accessors."}, {"post_id": 39059, "ts": "2026-08-01T18:54:21Z", "hours": 9.4842, "text": "Added new setting, finished overwrite languages and still working on show stats I have finished the overwrite languages function which uses GitHub’s programming languages detection system over Helyx’s one. I added a setting where you can choose your identity (Git -> local, GitHub -> remote). Local is based on Git’s settings and remote one is accessible after authorization with GitHub. I am currently working on retrieving and displaying the GitHub repository statistics. I am using charts to display it nicely and simply. Currently it is showing only Stars, Watchers, Forks and chart of used languages. I also added a few informative labels that tell you that something is actually happening and the program did not freeze. If I didn’t add this you would be looking at an empty black screen. One of the last things I added is active GitHub Authorization Token checker and resolver. Before this if you revoked your OAuth with Helyx on GitHub page, Helyx would think that it is still authorized to your GitHub account, now it checks it and if you revoke it online, Helyx will disable functions that are only accessible when you are authorized via GitHub."}, {"post_id": 37815, "ts": "2026-07-30T19:23:03Z", "hours": 4.9556, "text": "User Scripts done? What next?? As written above, I have finished User Scripts. Yeah, they don’t have that many functions as before, but I am going to add some, that will actually be useful and will stay in Helyx. Right after that I’d want to move to add more things to GitHub Synchronization settings that are per project. This is mainly to make the Helyx project dashboard look better with more interesting info about your current repository. Be aware that you have to be authorized in Helyx via GitHub to access those settings. This may sound funny, but I was thinking about adding Add-on manager to Helyx. No idea how I would make it yet or what packages would even Helyx have, but I hope that after some brainstorming I will have an answer. Before that, I will again think for a while if it is a good idea and if it is even needed. But surely it sounds cool to me, to someone who has never made an add-on manager for his program. At the end I want to transfer my view to hardening the code. Many checkings, many dialog boxes what’s wrong, and such things, so your Helyx window just doesn’t close after you mess up with configuration file or you do something that no one would ever do in his lifetime. ;)"}, {"post_id": 37545, "ts": "2026-07-30T10:56:21Z", "hours": 10.0053, "text": "Changing my mind over User Scripts So I have finished all of these User Scripts functions and I found out something interesting, that made me remove some of them after I finished them. In the devlog before, I wrote a list of actions that are in Helyx such as… Wait Until, If, Loop, Set/Get Variable, etc… . Well, I found out that making some that I have mentioned would be useless, because I imagined User Scripts mainly as an automatic actions for testing your project, but how could your program get script’s variable from Helyx or set/change it. The same applies for If, If would be also complex to set. With each If Action there would be x^2 (if my calculations are correct) more node pathways and without making some really good UX in TUI environment, it would be difficult to find your way around."}, {"post_id": 36457, "ts": "2026-07-28T16:14:12Z", "hours": 9.1958, "text": "Making User Scripts I am currently working on the User Scripts as I have mentioned in older devlogs. I must say that this is one of my first interactions with interfaces in C# because there was not a huge reason to use it in my code… until now. I must say that User Scripts is the most difficult thing in all Helyx to make because you have to think on everything… how this will work, how shall we display it, how to make it versatile so other actions work with it too, etc… I made the system for adding Blocks (Actions = Blocks) to Scripts and right now I am implementing dialogs to insert properties for each action, such as Duration for Wait Action. These are current actions that are in Helyx (you can suggest new ones in comments) : Wait Wait Until If Loop (should be something like while(), might change the idea of it) End (ends script, so like return/break) Set Variable Get Variable Compare Random Log (logs text) Execute (executes command) Open (opens directory) Create File Create Folder Delete File Delete Folder Right after that I would want to move to make the UI look overall better and function better. Welp, we will see in my next devlog the progress I will make."}, {"post_id": 35822, "ts": "2026-07-27T14:40:58Z", "hours": 5.6561, "text": "Backup system, done!! I finished the Backup system and also had to fix some major issues I had in helper functions due to the “project looking up system” migration… yeah… awkward name, I know. Now that the Backup system is done, let me continue and begin to work on User Scripts. Just realized that I have to come up with how it will work…"}, {"post_id": 34093, "ts": "2026-07-24T15:52:43Z", "hours": 8.3447, "text": "Losing sanity is not fun I honestly think I’ll go insane soon. I have changed the whole system of how Helyx saves Projects to its config file and how every function… EVERY FUNCTION works with it. I just have to say that I’ll try my best to make the code better than the one I am currently editing because 18h spent on redoing the whole codebase (revamping included from devlog before) is 1. crazy and 2. even more crazy. It’s wild how a tiny thing can ruin your whole codebase, I hope I will finish it quickly, because I want to continue working on the Backup system and after that on the User Scripts."}, {"post_id": 31940, "ts": "2026-07-20T19:06:16Z", "hours": 9.93, "text": "Cleanup time! I have completely revamped my code… I removed a lot of unused code that was either used for experimenting or was scrapped and I forgot to remove it. Before removing some of the code, I actually tried something with it… but then I realized that they were commented for some reason. I refactored parts of my code to look overall simpler with lambda expressions and LINQ. Not sure if it is more readable now, but it works so it’s fine. If anything, I’ll just add a comment so I know what it does instead of looking at it and brainstorming what it could be. I decided to mainly work on the Backup system because I think that User Scripts will be more complicated to make."}, {"post_id": 31333, "ts": "2026-07-19T17:11:07Z", "hours": 6.3575, "text": "Local & Remote Repository status I just finished making the status manager, so now you can change your status locally… but also remotely! Remotely means on GitHub, not like via some controller. Because of this, I created a tab called GitHub Synchronization, where you can enable/disable settings that are linked with GitHub and retrieve/push from/to GitHub. Now, I am planning to work on Backup system and User Scripts."}, {"post_id": 29735, "ts": "2026-07-16T20:33:20Z", "hours": 9.7861, "text": "Git Actions family is getting EVEN bigger! I have finally finished a lot of major stuff and also tried to make some additional things that MAY be added in the future. I finally added Stashes, Pull, Push and Sync to the Git Actions, so now they work! Also, all of Git functions have some automatic repair, so if you do something you shouldn’t, it should be alright… but it is not 100% so don’t try your luck! I still have to finish and a bunch of stuff with it so you can do whatever you want with it without editing the code itself! I was thinking of adding some label for your GitHub repository which you can control via Helyx. Like status… yeah… let’s add a badge that will act as a status info of your project!"}, {"post_id": 26717, "ts": "2026-07-11T17:47:55Z", "hours": 12.8578, "text": "Git Actions family is getting bigger! We’ve made a lot of progress! More of the Git Actions are done such as… Status Stage Commit Diff Create Branch Switch Branch Delete Branch Right now I am working on another: Pull Push Sync Stashes I hope they will be done soon! Stay updated!"}, {"post_id": 21798, "ts": "2026-07-03T22:31:34Z", "hours": 45.9456, "text": "Huge updates!! Since it is my first time working with Spectre.Console library, I was trying a lot of stuff with it. When I was somewhat happy with what I learned, I cleaned up the code due to the amount of useless lines and duplicated/not used variables . 1, Updated UI/UX I have updated the UI/UX so it looks more modern-ish. This new UI/UX design is for now only on the main pages of Helyx… but I plan to add it to every page very soon! 2, More actions! (even more will be available in the future) I have added more Git Actions that are still in WIP. I also created templates in code of what actions I’d want to add later. I’ll tell you more about them when they will be finished (SOON). 3, More stuff in Settings! I have added more settings into Settings :D Now you can select Default IDE, see if your IDE was found in your system, if not you can manually select the .exe of it. You can also manage the configuration file, well, reset it. 4, Projects sorting Projects are now sorted based on its status. 5, You can manage the projects for Helyx You can now delete the projects and change the status. 6, Future bugs & lots of if statements My code was completely unsafe up to this point, so I had to add many of try/catch and if statements to make it safe. I was experimenting with Spectre.Console, because I have never worked with it. I made some cool stuff that I will add in the future to Helyx! I understand it now better! All of this was quite difficult for me to do, since as I said, on such project where I am using C# with its basic types… I was mostly a Unity C# Developer, where Unity had its own classes and functions and callers that were standard."}, {"post_id": 10796, "ts": "2026-06-17T18:25:25Z", "hours": 14.0269, "text": "Helyx, the IDE detective I’ve been working on the IDE detection system. This took me a long time because I was testing many different ways of how to detect it and then sort them from most probable to least. At the end I have selected the one that uses points based on what the Project includes in its path… so files, extensions and directories. I was experimenting with the Language system that I will make in the future. I just want to be sure what I am doing so later, I won’t be in panic what now and what was my original plan. I have also refactored the code to some point but it is still not great after all of these things I have done above … so still need to do this. I redesigned the menus and made it more universal and made the menu easier to navigate in. I think my progress is going kinda good so far and it looks promising for me. I also added some basic Git function like “git status” but I am about to add more. I’d appreciate if you would write into comments some functions that I should add to Helyx. Not sure if I already mentioned this but I am also planning to add a feature so you can create your own shortcuts for your projects like… some testing shortcut. For instance, you have some project you want to test and you need to build it, then tweak some settings and at the end you actually test. With this, you can do all of this just by one click… Well, that’s at least my imagination and I am not sure if it will get to such point where you can do such tasks but we’ll see Wish me luck!"}, {"post_id": 9561, "ts": "2026-06-15T22:44:15Z", "hours": 4.0336, "text": "Project handler, done for now I was thinking of adding a translation system for Helyx. I was experimenting with a lot of systems how to do it… well, I might keep this for the end of Helyx so at the end I translate all of the strings. I added the “Add Project” system and some basic detection systems for it such as… Project Name Path Languages (used programming language in project) Used IDE for the project then it will ask you if you really, but REALLY want to add the project and if you proceed it will be added to your Projects menu. After that you can open your Project and see such basic info as… Status Last modified Languages Used IDE Is a GIT Repo I am thinking about adding more, removing some and making it overall more versatile because versatile applications are just the best ones. For now, I created some basic functions for your Projects such as… Open in VS Code Git Status Remove Project (from Helyx) but these are the ones already working, but I am still trying to make them more versatile :p … but there’s more functions that I am currently working on, that I hope won’t be scrapped and I will mention them in next devlog!"}, {"post_id": 9329, "ts": "2026-06-15T17:24:04Z", "hours": 7.76, "text": "Lots of new ideas, lots of scrapped ideas Lately I’ve been working on a way to search for projects automatically but I had to scrap the idea because I didn’t like it at the end… so now I am making it so you can add your own projects and some IDE integrations. I was also trying multiple libraries for TUI interface integration and GUI support with other libraries and input devices. These hours were full of scrapping & making new ideas, but that’s what programming is about!"}, {"post_id": 8639, "ts": "2026-06-14T11:15:51Z", "hours": 1.3039, "text": "The beginning… So I have finally begun to work on this! I was thinking a lot what to create for Stardance and it looks like this might be something I want to create! Originally I wanted to create this in Python but then I really quickly found out that my Python skills wouldn’t be enough to create something like this and I didn’t want this to be a vibe-coding project… SO HERE WE ARE… using C#! So far so good, I guess… Currently I am working on the configuration handler which will have functions for implementing and retrieving info from the configuration file. After that, I am planning to make the interface somewhat versatile, so it is possible to adjust it for yourself or add some new options and such."}]...
|
Title: Helyx by @lix | Stardance
Devlogs:
The beg Title: Helyx by @lix | Stardance
Devlogs:
The beginning… So I have finally begun to work on this! I was thinking a lot what to create for Stardance and it looks like this might be something I want to create! Originally I wanted to create this in Python but then I really quickly found out that my Python skills wouldn’t be enough to create something like this and I didn’t want this to be a vibe-coding project… SO HERE WE ARE… using C#! So far so good, I guess… Currently I am working on the configuration handler which will have functions for implementing and retrieving info from the configuration file. After that, I am planning to make the interface somewhat versatile, so it is possible to adjust it for yourself or add some new options and such.
Lots of new ideas, lots of scrapped ideas Lately I’ve been working on a way to search for projects automatically but I had to scrap the idea because I didn’t like it at the end… so now I am making it so you can add your own projects and some IDE integrations. I was also trying multiple libraries for TUI interface integration and GUI support with other libraries and input devices. These hours were full of scrapping & making new ideas, but that’s what programming is about!
Project handler, done for now I was thinking of adding a translation system for Helyx. I was experimenting with a lot of systems how to do it… well, I might keep this for the end of Helyx so at the end I translate all of the strings. I added the “Add Project” system and some basic detection systems for it such as… Project Name Path Languages (used programming language in project) Used IDE for the project then it will ask you if you really, but REALLY want to add the project and if you proceed it will be added to your Projects menu. After that you can open your Project and see such basic info as… Status Last modified Languages Used IDE Is a GIT Repo I am thinking about adding more, removing some and making it overall more versatile because versatile applications are just the best ones. For now, I created some basic functions for your Projects such as… Open in VS Code Git Status Remove Project (from Helyx) but these are the ones already working, but I am still trying to make them more versatile :p … but there’s more functions that I am currently working on, that I hope won’t be scrapped and I will mention them in next devlog!
Helyx, the IDE detective I’ve been working on the IDE detection system. This took me a long time because I was testing many different ways of how to detect it and then sort them from most probable to least. At the end I have selected the one that uses points based on what the Project includes in its path… so files, extensions and directories. I was experimenting with the Language system that I will make in the future. I just want to be sure what I am doing so later, I won’t be in panic what now and what was my original plan. I have also refactored the code to some point but it is still not great after all of these things I have done above … so still need to do this. I redesigned the menus and made it more universal and made the menu easier to navigate in. I think my progress is going kinda good so far and it looks promising for me. I also added some basic Git function like “git status” but I am about to add more. I’d appreciate if you would write into comments some functions that I should add to Helyx. Not sure if I already mentioned this but I am also planning to add a feature so you can create your own shortcuts for your projects like… some testing shortcut. For instance, you have some project you want to test and you need to build it, then tweak some settings and at the end you actually test. With this, you can do all of this just by one click… Well, that’s at least my imagination and I am not sure if it will get to such point where you can do such tasks but we’ll see Wish me luck!
Huge updates!! Since it is my first time working with Spectre.Console library, I was trying a lot of stuff with it. When I was somewhat happy with what I learned, I cleaned up the code due to the amount of useless lines and duplicated/not used variables . 1, Updated UI/UX I have updated the UI/UX so it looks more modern-ish. This new UI/UX design is for now only on the main pages of Helyx… but I plan to add it to every page very soon! 2, More actions! (even more will be available in the future) I have added more Git Actions that are still in WIP. I also created templates in code of what actions I’d want to add later. I’ll tell you more about them when they will be finished (SOON). 3, More stuff in Settings! I have added more settings into Settings :D Now you can select Default IDE, see if your IDE was found in your system, if not you can manually select the .exe of it. You can also manage the configuration file, well, reset it. 4, Projects sorting Projects are now sorted based on its status. 5, You can manage the projects for Helyx You can now delete the projects and change the status. 6, Future bugs & lots of if statements My code was completely unsafe up to this point, so I had to add many of try/catch and if statements to make it safe. I was experimenting with Spectre.Console, because I have never worked with it. I made some cool stuff that I will add in the future to Helyx! I understand it now better! All of this was quite difficult for me to do, since as I said, on such project where I am using C# with its basic types… I was mostly a Unity C# Developer, where Unity had its own classes and functions and callers that were standard.
Git Actions family is getting bigger! We’ve made a lot of progress! More of the Git Actions are done such as… Status Stage Commit Diff Create Branch Switch Branch Delete Branch Right now I am working on another: Pull Push Sync Stashes I hope they will be done soon! Stay updated!
Git Actions family is getting EVEN bigger! I have finally finished a lot of major stuff and also tried to make some additional things that MAY be added in the future. I finally added Stashes, Pull, Push and Sync to the Git Actions, so now they work! Also, all of Git functions have some automatic repair, so if you do something you shouldn’t, it should be alright… but it is not 100% so don’t try your luck! I still have to finish and a bunch of stuff with it so you can do whatever you want with it without editing the code itself! I was thinking of adding some label for your GitHub repository which you can control via Helyx. Like status… yeah… let’s add a badge that will act as a status info of your project!
Local & Remote Repository status I just finished making the status manager, so now you can change your status locally… but also remotely! Remotely means on GitHub, not like via some controller. Because of this, I created a tab called GitHub Synchronization, where you can enable/disable settings that are linked with GitHub and retrieve/push from/to GitHub. Now, I am planning to work on Backup system and User Scripts.
Cleanup time! I have completely revamped my code… I removed a lot of unused code that was either used for experimenting or was scrapped and I forgot to remove it. Before removing some of the code, I actually tried something with it… but then I realized that they were commented for some reason. I refactored parts of my code to look overall simpler with lambda expressions and LINQ. Not sure if it is more readable now, but it works so it’s fine. If anything, I’ll just add a comment so I know what it does instead of looking at it and brainstorming what it could be. I decided to mainly work on the Backup system because I think that User Scripts will be more complicated to make.
Losing sanity is not fun I honestly think I’ll go insane soon. I have changed the whole system of how Helyx saves Projects to its config file and how every function… EVERY FUNCTION works with it. I just have to say that I’ll try my best to make the code better than the one I am currently editing because 18h spent on redoing the whole codebase (revamping included from devlog before) is 1. crazy and 2. even more crazy. It’s wild how a tiny thing can ruin your whole codebase, I hope I will finish it quickly, because I want to continue working on the Backup system and after that on the User Scripts.
Backup system, done!! I finished the Backup system and also had to fix some major issues I had in helper functions due to the “project looking up system” migration… yeah… awkward name, I know. Now that the Backup system is done, let me continue and begin to work on User Scripts. Just realized that I have to come up with how it will work…
Making User Scripts I am currently working on the User Scripts as I have mentioned in older devlogs. I must say that this is one of my first interactions with interfaces in C# because there was not a huge reason to use it in my code… until now. I must say that User Scripts is the most difficult thing in all Helyx to make because you have to think on everything… how this will work, how shall we display it, how to make it versatile so other actions work with it too, etc… I made the system for adding Blocks (Actions = Blocks) to Scripts and right now I am implementing dialogs to insert properties for each action, such as Duration for Wait Action. These are current actions that are in Helyx (you can suggest new ones in comments) : Wait Wait Until If Loop (should be something like while(), might change the idea of it) End (ends script, so like return/break) Set Variable Get Variable Compare Random Log (logs text) Execute (executes command) Open (opens directory) Create File Create Folder Delete File Delete Folder Right after that I would want to move to make the UI look overall better and function better. Welp, we will see in my next devlog the progress I will make.
Changing my mind over User Scripts So I have finished all of these User Scripts functions and I found out something interesting, that made me remove some of them after I finished them. In the devlog before, I wrote a list of actions that are in Helyx such as… Wait Until, If, Loop, Set/Get Variable, etc… . Well, I found out that making some that I have mentioned would be useless, because I imagined User Scripts mainly as an automatic actions for testing your project, but how could your program get script’s variable from Helyx or set/change it. The same applies for If, If would be also complex to set. With each If Action there would be x^2 (if my calculations are correct) more node pathways and without making some really good UX in TUI environment, it would be difficult to find your way around.
User Scripts done? What next?? As written above, I have finished User Scripts. Yeah, they don’t have that many functions as before, but I am going to add some, that will actually be useful and will stay in Helyx. Right after that I’d want to move to add more things to GitHub Synchronization settings that are per project. This is mainly to make the Helyx project dashboard look better with more interesting info about your current repository. Be aware that you have to be authorized in Helyx via GitHub to access those settings. This may sound funny, but I was thinking about adding Add-on manager to Helyx. No idea how I would make it yet or what packages would even Helyx have, but I hope that after some brainstorming I will have an answer. Before that, I will again think for a while if it is a good idea and if it is even needed. But surely it sounds cool to me, to someone who has never made an add-on manager for his program. At the end I want to transfer my view to hardening the code. Many checkings, many dialog boxes what’s wrong, and such things, so your Helyx window just doesn’t close after you mess up with configuration file or you do something that no one would ever do in his lifetime. ;)
Added new setting, finished overwrite languages and still working on show stats I have finished the overwrite languages function which uses GitHub’s programming languages detection system over Helyx’s one. I added a setting where you can choose your identity (Git -> local, GitHub -> remote). Local is based on Git’s settings and remote one is accessible after authorization with GitHub. I am currently working on retrieving and displaying the GitHub repository statistics. I am using charts to display it nicely and simply. Currently it is showing only Stars, Watchers, Forks and chart of used languages. I also added a few informative labels that tell you that something is actually happening and the program did not freeze. If I didn’t add this you would be looking at an empty black screen. One of the last things I added is active GitHub Authorization Token checker and resolver. Before this if you revoked your OAuth with Helyx on GitHub page, Helyx would think that it is still authorized to your GitHub account, now it checks it and if you revoke it online, Helyx will disable functions that are only accessible when you are authorized via GitHub.
Slowly, but surely We are almost at the end (if no other function to add will come to my mind) and I was messing with access modifiers, accessors, refactoring names of variables, Tasks, voids, properties. I was adding exception handling keywords and many ifs to make sure there will be no bugs and that almost every exception will be caught. I was doing this manually so I might have missed some places where the exception handler is needed but yeah we shall see! I also enabled a search bar, so when you will be looking for your project in Helyx and you have many projects added, you can search for yours! I was also changing styles of my old menus and theirs logic because they weren’t done very well in comparison with style that I am using now… Funny story: while I was messing with the access modifiers and accessors I actually bricked the whole Helyx, because functions that were supposed to resolve configuration file and read/write into it couldn’t. I thought I accidentally removed something important but at the end it was just that, that I was changing the access modifiers and accessors.
Settings and Git pages are receiving more stuff! I added for Settings page: Notes Settings Updates and for Git page: Undo Commit Redo Commit as the name says, Notes Settings are for changing properties of global Notes on every project. There is only one setting that came to my mind and that is encryption. Some of you might paste into it something personal or confidential. Well, this makes sure that these info CANNOT be taken from raw file, but from Helyx directly. (thinking about adding password mechanism lol) Updates, yeah, it looks for updates for Helyx . Undo Commit is a special one, when you commit something and for some reason you want to go back you just undo it. On the other hand, if you somehow accidentaly clicked on Undo Commit or now you want to redo the undo, you can with Redo Commit. My plan now is to add again more functions, such as Custom Badges, option to sync the Custom Badges with your GitHub repo (it will pop up in README.md) and also add Tags sync, so you can edit your repository’s Tags via Helyx. Oh yeah, also going to add custom project status because some people may say that having statuses such as “Active”, “Inactive”, “Paused”, “Archived” is limiting (custom ones will yes, also be synced with GitHub). :) I also mustn’t forget to add the translations for other languages. I am going to do this at the end due to new text appearing every time I add something new.
Adding Custom Statuses, Custom Badges and even more! Here we are again! Today I added: Custom Statuses Custom Badges WIP: Sync badges with GitHub repository Sync topics with GitHub repository My original status system for projects was a hardcoded enum with statuses “Active”, “Inactive”, “Paused” and “Archived”. Then I had a lot of switches which determined color of markup based on which enum it is hah. As you may already know, enums cannot be changed in runtime :) What does that mean? That users cannot add their own statuses in Helyx directly… They would have to hardcode into Helyx their own statuses and that’s just impractical, no? That’s why I spent below mentioned amount of hours redoing so many things to make it actually work and I even learned something from this! That JSON Parsers and Colors are NOT huge friends! (genuinely, I HAD NO IDEA why it wasn’t working until AI told me that JSON parsers cannot translate Color structs). Custom Statuses/Badges currently have Add/Delete functions and right now I am going to add also Edit function, so when you accidentally create a status/badge with wrong color, you don’t have to delete it and create it again :) (just saved 10seconds of your life). I also recategorized my whole codebase with help of Claude Code. I told him to review my whole codebase and suggest what classes, enums, interfaces should be in which files and those files in which folders. It was fun, finally something where I did not have to concentrate much and chill and watch something when doing it. Well, now it is not much fun when functions that I was using are in different files and some classes have different names. But at least my codebase looks more professional! (before this I had like 10 files with a bunch of lines where classes were stacked…) Also, about the WIP stuff above… Sync badges with GitHub repository is going to be something like the Sync status with GitHub repository. It will just pop up in your README.md based on where you put the headers which Helyx will give you for that specific badge. Sync topics on the other hand are classic topics of the repository which you can see in top right corner of your repository page. It will mostly show you which topics are assigned to your repository in Helyx but I’ll make it also so you can assign/unassign topics from your repository. I’m thinking of adding more GitHub Synchronization options, but none are currently coming to my mind. Maybe something with actions, no idea yet, or local AI that will explain to you errors given by Helyx when you will be trying to do something. We will see!
Never expected it to be this hard So the last days I was again changing the structure of my solution and trying to get on with it. It took me a while to create one that Claude agrees with and is good for such open-source projects. Anyways, this was the easy part. In my last devlog I said that I completed Custom Statuses & Custom Badges. Well… I did! But then I found out, that my system was bad… and when I say bad I mean it wasn’t thought out. I found out about all of this when I finished the edit action for both. Originally I used Dictionary<string, TagDefinition>. Key was name of the Status/Badge and TagDefinition was the class of one of them which also has name property. But Helyx was not prepared for this, so for the last days I redid the whole system eight times. Once I used Dictionary, once I used List, then HashSet, then Dictionary, then Dictionary with other types and so on. I just couldn’t settle on the correct type for it. Until now, it took so long even though it is so primitive because it simply didn’t come to my mind and when I was asking Claude for suggestions of how could it be made, it didn’t think of using this type. The final type is simply… Dictionary<Guid, TagDefinition> AND A LOT OF CHANGES. Yeah… don’t worry guys! I am totally devastated by doing this over and over even though it was so simple & primitive to do. Well… maybe not really primitive because the changes were also difficult to do. I mainly didn’t want to use the GUID system because I have Custom Statuses but also Built-in Statuses and I was really worried about Built-in statuses having GUID assigned to them. Those sync options with GitHub are still in work, but I finished the GitHub Repository Stats viewer after a lot of experimenting with layouts and designs/effects/colors. I’m looking forward to the next devlog guys! I hope Helyx will be your good coworker that will actually count for something hah! P.S.: I also made that text of colors is grammatically formatted. At least it should be…
Sync finally done!! It’s 5 AM and I finished “Sync badges with GitHub Repository” and “Sync the status with GitHub repository” (this was already done, but with the enum version of status). I added also a few fail-safes so when you assign some badge or status and then delete it, it will also delete it from GitHub and project. Now it won’t be a ghost that you cannot get rid of haha. This was a little more difficult than I expected to do, the fail-safes because the local changing mechanism and syncing mechanism were written inline in the same function. The only thing that was dividing them was an if statement. It was interesting to make this. To make sure everything will work fine. Even though it didn’t MANY TIMES. Now I will focus on syncing GitHub topics. Wish me luck! P.S.: Forgot to mention, that I have to add this “On Status/Badge Edit, ASAP sync with GitHub” with Edit. I almost forgot lol, just came into my mind. I hope that COPY+PASTE will be enough and I won’t have to create another syncing system specifically for edits…
More bugs are appearing, and being fixed!! So since Helyx is already far and has many advanced functions, it also has some bugs. Today when I was experimenting with assigning a project and syncing it with GitHub, I found out, that if you try to sync the projects in a wrong way… it will not work. For that reason I added more fail-safes to make sure that this will be eliminated. I can’t confirm yet if those fail-safes work, because I am also working on a new Diagnostics action in Git Actions so if something goes wrong, you can fix it by the error Helyx gives you. Right now my testing project is in a state of “Git corrupted” (no idea what I should call it) where rebase was aborted. Because of this, I had to put the “GitHub Sync Topics” synchronization off until later, so I can focus on fixing these major bugs. Also another bug came to my mind that I fixed… Helyx works on a principle of directory paths. Each project is saved in config file under its own unique GUID and its path. The bug is that when you try to rename the directory, the project won’t be found and it will be removed from Helyx. Now, you can either let Helyx find it automatically (sadly can easily fail) or you can select project manually in explorer (recommended!!!).
Doctor Git As you may know, right now I am working on Diagnostics. I am almost done with fully displaying all of the health checks about your Git repository. But I still have to finish all of the fixing actions that it will have. Diagnostics will mainly be for a case where something happens in Helyx and it will need to be fixed. The main idea of it is not aimed at resolving issues with your Git repository outside Helyx. But it may resolve some because you may run into the same issue as you had in Helyx of course. In the last devlog I said that I put GitHub Topics off. Well, that did not happen! I finished displaying GitHub Topics!! I think in some devlogs I said that it was for managing GitHub Topics. Managing meant like adding, removing, editing. Well, that wasn’t actually my main point. I just wanted it to show you your currently assigned topics in GitHub. I also didn’t see a big reason in adding Add, Remove, Edit functions for topics. Topics rarely changed, honestly and the most intuitive way would be doing it via GitHub web interface.
Diagnostics done, other stuff too and some changes! Diagnostics are now fully done! When something messes up, it will give you options to fix it! Some time ago I created GitHub Synchronization settings for managing what to sync with GitHub, so what to retrieve and send with those options: Sync status with GitHub repository Sync badges with GitHub repository Fetch GitHub repository topics Fetch GitHub repository stats Use GitHub’s language detection instead of Helyx’s I created a brand new tab called ‘GitHub Actions’ where this setting is. GitHub Actions is meant to contain all of the actions that are mainly linked with GitHub endpoints. I kept few such as Push, Pull, Sync in Git Actions due to how the layout is already created. Also I added when you are rebasing and it fails, it automatically gives you a prompt to cancel it. So repair it… GitHub Actions will contain a new stuff that will come to Helyx! Managing Issues and Pull Requests!! Maybe also workspaces/actions but I will see how difficult that is and how it is needed/useful in Helyx. Another new function is, that when there’s an update for Helyx and I change the GitHub OAuth scope because of new features… Helyx will warn you and tell you to reauthorize to make sure every function will work correctly. Before this change, Helyx was using its folder name as a name of the project and as a repository name for GitHub. Now, when you add a project to Helyx, Helyx will ask you what’s its name and when you will try to use some GitHub function for the first time on your newly added project on Helyx, it will request a GitHub Repository name from you. ;) There’s still a lot of things to add. Honestly I thought that Helyx was at the very end like 50 hours ago and look! There are many more functions to add haha!
Manage Issues, at your service. After a painful development period I am again here, writing devlog! What changed? Good question! Manage Issues is partly done! I still have to finish making the actual actions but displaying is somewhat finished. When you go to ‘Manage Issues’, you will firstly see a list of issues that are on your GitHub repository. From there you can already see some details about the issues such as: Number State Title Labels Comments (number) Updated (time) Above them are filters, currently those are the available filters: All -> All Commented -> Issues has some comments Assigned -> Issues that have some assignees Labels -> Issues that have some labels But that is not all! There are also their counterparts: No comments Unassigned Unlabeled (there’s no inversion of All because why would you need filter None) Yeah, so you can invert your filters… When you select an issue at the very top you will see its number, then you will have a panel with details about the issue with its title and: State Author Opened (time) Labels Assignees Right under these details are all of the comments in chronological order. When it is done, it will also show the whole timeline of each issue. So when this and this label was added/removed… when was this assignee assigned/unassigned… when was this issue closed/opened…. Of course I am going to add actions so you can add a comment, close issue, open issue, etc… When I’ll finish Manage Issues, I will go to work on Manage Pull Requests. It shouldn’t be that different because Pull Requests are by GitHub a kind of Issue but they are also not the same, so different classes, types, etc… Well, wish me luck people… or should I say… Stardancers?? P.S.: Sorry for the grammar in images in comments. I did it very quick for the preview.
Paging done, functions almost! I finished making the logic for rendering issues. In the last devlog it was just displaying all of the issues at the same time. No paging system so if there was a lot of issues or long issues, they would simply… not appear. It took me a really long time to work this out. I was mainly switching back and forth the rendering logic all the time and it went so far, that I had to use Claude to help me with it. At the end, I ended up with a rendering logic that I am not really keen on, but it is the best one that can be used in Helyx and TUI environment. Main obstacles were the Spectre.Console rendering functions and classes that were under IRenderable interface. And also the limitations of Panels, Grids… Layout had everything I needed . I wanted to cut the part which couldn’t be rendered and it should have looked like, like an unfinished Panel. Well, this was impossible. Without changing the core code of Spectre.Console or creating own system for making Panels it was impossible. Also, I haven’t seen it as something that WOULD NEED an own system that would render comments. So I just made it when a comment cuts, it creates whole Panel with part of the comment that can be rendered and at the bottom is text saying that it continues on the next page… and on the other page at the top there’s text that, hey, it continues here! Let’s finally talk about the Issue functions! I finished some simple one like: Close Reopen and create an issue… But I still have to create a system that can let you: Comment Edit comments Delete comments Lock issue Unlock issue Those are currently in WIP, but in the next devlog they’ll be most probably finished and after everything is done with issues, I will move to Pull Requests!
Manage Issues, completed! PRs, incoming… Manage Issues is now fully completed. I still had a few issues with paging and rendering but now they are fixed. Now you can select a message and delete it & edit it. But also now you can create a comment, lock an issue, unlock an issue and create an issue. I also added a thing that I hope will be appreciated, Helyx renders Markdown from GitHub Issue comment and when you comment via Helyx, Helyx gives you Markdown options such as: Bold Text Italic Text Code Text List Quote Also, when you don’t provide a text to a comment in GitHub, Helyx will say that “No description was provided.” So the same thing as GitHub already does, but in Helyx you must provide text. Why? Because why would you create a comment with no text? So I banned adding a comment with no text. Okay, that would be everything! It was fun to create this because everything was working so well, except the paging system… that was painful to make even with Claude’s help. As I said in past devlogs, after Issues I am going to move to PRs. So yeah, let’s work on PR. I hope it won’t be harder to make, because a PR is a type of Issue in GitHub, so I hope I will use the same function logic and functions and callbacks to make it.
Manage PRs displaying and some logic done After pulling another all-nighter I finished making the Pull Request display functions. List and details about each Pull Request is done and paging also works too (took it from manage issues ;] ). Pull Requests also contain filters such as: Open Drafts Assigned Reviewed and we can’t forget their counterparts either: Closed Ready Unassigned No reviewers Pull Requests now have comment selection and Markdown formatting, but functions to manage Pull Requests are not done yet. The only ones I managed to finish are: Comment Open Browser The biggest problem with PRs is going to be, that their functions and methods for executing those functions are more complex than the ones for Issues. I plan to add these functions for PRs: Delete Comment Merge Review Close PR Reopen PR I am pretty sure that all of this will be done in next devlog, so stay updated! This is going to be very cool, I think. Well, now I am going to sleep so good night everyone!
Manage PRs done! Added few new things… I finally finished making Manage PRs. So now you can: Delete Comment Merge Review Close PR Reopen PR I also had to fix some design flaws and function flaws but now it should be all good. Before doing all of this, there was a bunch of GET requests… now? Now it is also a bunch of PATCH & PUT requests. Also, now when you’ll try to link your GitHub Repository with the local one, you will just select the one that is on your GitHub account. Another thing! When you have conflicts between the local repository and the remote one (GitHub) and you try to sync them, a lot of the time Notepad pops us and tells you to remove the version of the text that you don’t want. Well now Helyx does it too and doesn’t open notepad, but lets you do it directly in TUI interface in my very own notepad. Conflict solver also uses alternate screen for this. (there’s sadly no showoff image for this, because currently I don’t have anything to create a conflict on) I am not sure what to do next in a next devlog, since everything I really wanted to do is already done… well… not everything but everything around the main things is. Maybe I’ll move on another refactoring? Or finishing the language settings? Well, we will see!
Adding new features & fixing bugs I finished making “Analyze Project” which analyzes your whole project and prints stuff such as: Number of files Number of folders Size of the project on disk Number of lines Also you can now see what amount of what programming language makes your project. It also shows you the biggest files in your project directory. And also you can see Git information such as: Branch Number of commits First commit (date) Last commit Working tree .git size So it displays some maybe important and basic information that you may check sometimes or might be interested in. There were like 6 revisions of this because I was testing different styles & designs. I also found a lot of hidden bugs with help of Claude! Before talking about bugs, I will tell you something about new features that I added. Now, when you assign a badge or change a status and you don’t have markers in README.md yet in it, then it will ask you if you want to add them manually or via Helyx. What does that mean? Well, it opens a “text editor” in Helyx which displays README.md and you can insert the badges/statuses where you want instead of opening the file in notepad and inserting the markers manually. Overall it is way quicker to do it now via Helyx. Helyx’s Generic Text Editor is now even better! You can now use all of the arrows, before you could just use Left/Right Arrow to move cursor left or right. Now you can move between lines. Now you can also open your project’s wiki via Helyx. Be aware that it doesn’t check anything, if you have wiki or not. It directly opens the website for the wiki where it should have been for the current linked GitHub Repository. Let’s talk about bugs now! Open an issue called the Markdown handler function and it was accidentally calling GitHub 101 times, when it needed some info. Now it doesn’t. 🆒 Notes have an encryption system, so if you put some sensitive info into it, it couldn’t be directly taken from the file. Only via Helyx. There was a bug, where when you enabled encryption and edit notes of 2 projects, then you turn off encryption globally and open the first project’s notes, it decrypts… but after that you open second project’s notes, it won’t. This was due to having a global bool instead of per project bool when saving if it was encrypted. Fixeddd! Another bug! Sync Status & Sync Badges was deleting staging index. Funny that I was thinking about to restore the staging index whenever using it, but at the end… the logic was wrong 😭 Now it isn’t. Then there was a bug that when you unassigned a badge, it unassigned ALL badges. Fixed! Another bug linked to badges… Unassigning a badge didn’t remove it from GitHub. Yeah… fixed!!
Fixing more bugs I fix bugs mainly with use of Claude Code, because hunting for bugs is not easy and this project is not a small one haha. I had to run MANY code review tools for this, because every time it kept finding new bugs. No idea how but it did. So what we fixed? If a GitHub comment had bold text split across two lines, opening that issue crashed Helyx before it drew anything. A file with a square bracket in its name (e.g. data[1].json) crashed Status, Diff, Commit, Stashes and Log. If anything held config.json open for even a moment, Helyx assumed it was corrupt, reset it, then crashed everywhere that looked for a project. If config.json was missing its Badges section, the startup migration quietly deleted every badge from every project. Committing saved a copy of the project taken before the confirmation prompts, so anything changed in between was silently thrown away. If you linked a GitHub repo during Push, the remote was created with an empty name. Syncing a status that had since been deleted crashed in the middle of a push. A commit message containing a square bracket crashed “View Full Message” (those are just bugs that were missing Markup.Escape() function). Applying a stash said “applied successfully” even when it conflicted. One bad path stored in config.json crashed “Add Project”. This is just a snippet of the amount of fixed bugs. I won’t write all of them here since it would take a lot of text and I am pretty sure that this is enough for you to understand that we fixed a lot of bugs haha. Right now I am going to do the Language System. I am not sure if I mentioned in some devlog, the list of languages that Helyx will support. If not… there it is: English Slovak Spanish French German Russian
Languages almost done, moving onto GitHub & README.md Well guys, Language System is almost done. It is powered by a Resources file that stores all of the translated strings. More bugs were found! But now, all of the bugs should be fixed with also many failsafes! Now, I want to complete the Language System because I am really close to finishing it. I also want to make the README.md for Helyx’s GitHub Repository. Originally I wanted to make it via Obsidian app, but it doesn’t have direct support for Wakatime, so I have to use VS 2026 native Markdown editor with the support of Markdown Editor v2 extension from Mads Kristensen. (not sponsored lol) I also heard that Obsidian app doesn’t use the same Markdown as GitHub does so there would be some things mistyped or not even rendered, but VS 2026 should be fully compatible with GitHub’s Markdown renderer, so we will see!
More bugs fixed, new functions, README & Language System updates! Hello guys, once again at 4 AM! Bugs: As the title says, there are more fixed bugs. Diagnostics crashed Helyx if you ran a rebase in a terminal and hit a conflict. Now it doesn’t! Another fixed bug is that when you opened an issue in Helyx, the footer vanished. At first I was shocked, but it was a simple fix so now your footer doesn’t vanish. Another vanishing bug! The Languages row from the header vanished when you entered a tab where Layout class was being used. Now you will see your sweet programming languages used in your selected project. Guess what! Another vanishing bug! This time the whole header vanished when you exited .Live()! Now it is okay! New behaviour: I unified some color codes with some type of info. E.g. SHA is Dark Orange everywhere, Stash is Yellow, Date is Cadet Blue and Issue Number is Aqua. The README.md editor, when inserting badges/status now has a new keybind: backspace! It is different from DEL! DEL deletes the badges/status but backspace deletes the whole line, including the badge/status that was on that line. README The README is almost done! At least I hope! Claude was a big help here, because I wanted to create an insane README and we really did. Guys, you should be excited about the README file haha! Language System Translations for these languages are already done: English French German Russian Slovak Spanish So basically every language translation is already done. BUT I decided to add even more languages! The new languages that Helyx will support are: Italian Portuguese
New features, new languages, new problems. A new feature that I added is GitHub Actions! It is on the same principle as Manage Issues and Manage PRs, so you have a list of GitHub Actions, you pick one and you can control it, check its log, observe information about it. You can even run an action! I also added a refresh keybind to Manage Issues, Manage PRs and GitHub Actions. Before, you had to go back from the details of an issue/PR/action to the list and then return to the details. Now you don’t have to. You just have to press the keybind displayed in the footer that belongs to refresh. Yes! The Helyx Language System is finally complete! Italian & Portuguese are now available in Helyx! Lately I’ve been working on the README.md file. I was mainly making more GIFs & designing screenshots for it so it will look pretty and futuristic (in my opinion)! As I have mentioned in the title, NEW… PROBLEMS! People… you won’t believe what happened to me today… I use Helyx’s Git & GitHub for testing, so there is no official one yet, and I rarely commit changes or push them. Only when I test something. And it looks like it got back at me. Well… I told Claude Code to remove comments all over my codebase, because they were mainly scrapped code and some temporary information that I had there, that wasn’t used anymore. Okay, so I told it to remove them, and for some reason instead of removing comments, it deleted Helyx’s whole codebase. Thank god README.md was untouched haha. We had to decompile the .dll that was left over from testing Helyx’s latest version, and actually check the diff and rewrite it. We still don’t know if everything was brought back since for some reason Claude Code’s memory got wiped instantly when it realized that it deleted my whole codebase. There were no backups, no restore, no nothing. The only possible thing was to use the forgotten stash that I created and use the .dll as a map to restore Helyx’s outdated codebase and rewrite it again. So that’s what we did. Yeah, so I hope everything was brought back. Claude says it was, but after what it has done I don’t know if I trust it. Just kidding, everything should be back, because it compared the .dll with the rewritten code 1:1 and everything matched.
GitHub done, shipping Helyx today! Today I was messing with the GitHub page for Helyx, fixing the last bugs we found and working on the installer. For the installer I used Inno Setup, because it is the most recognized and the most used one. The point of using an installer is simple: it adds Helyx to PATH. Of course there were other options, but this one seemed like the best fit. We were fighting with the script for a while, because it was doing really weird things, like staying in the background after the installation finished. But those bugs are fixed now! README.md is done, all of those GIFs and screenshots are in it too, and I have to say it looks really good! I was also setting up the GitHub side of things, so the description, the tags, a GitHub Action and so on. With the help of Claude Code, we created the logo and the banner for the installer as well. The installer uses the same logo as Helyx. It’s just a basic H, because nothing else came to mind haha. I also asked Claude Code to review the codebase one last time, and yep, it looks fine! I told it to add the basic documentation comments as well, the <summary> kind. Let’s be real here, nobody does this, and if they do, something else writes it for them, usually an AI, because it understands the function better than the person who wrote it (I know that from my own experience hahaha).
Experimenting with the conflict solver I was thinking about adding a simpler conflict solver, where you wouldn’t have to delete the <<<<<<< , ======= and >>>>>>> markers yourself but would just pick either the first or the second version. But I realized it would be messier than I thought, so in the end I kept it as a basic editor where you remove the version you don’t want by hand.
README.md update I replaced the title in README.md with a banner that contains the text Helyx. I tried a few versions I made and, well, I landed on the one you can see in Helyx’s README.md, or below!
Edited README.md I rewrote the README.md because of the ship review. I also added a couple of recommendations that are worth knowing when you use Helyx. I also removed the <summary> comments that Claude Code wrote for the documentation, I don’t think that anyone would have used them anyway.
Edited README.md, again I was again editing the whole README.md, because reviewers weren’t happy with the current one. Well after spending another hour of editing the whole README.md file, I hope they won’t ask me to rewrite the whole README.md file again, because I don’t even know what else to add/remove/edit.
Added GitHub Issues/PRs events rendering Originally, when you selected Manage GitHub Issues or PRs and opened some issues/PR. You could have only seen messages posted by users, but not when a label was assigned or when the issue/PR was closed. Well… Now you can! Now it displays the exact action that happened and when it happened! Of course, it is also translated to all languages that Helyx supports. Just making sure you didn’t think it wasn’t! I also cleaned up the code a little bit. Removed some useless usings and some files were in the wrong namespace, so that is fixed too.
Replaced hardcoded string colors with Color members for code safety, fixed line breaking while assigning a status/badge Okay so Markup texts (those are the texts with color) were formatted in this format: "[red]Hello World![/]" So it was string-based. And if you accidentally added some character to it for instance: "[redd]Hello World![/]" <- Exception Helyx would crash. I mainly added this, because it is an open-source project. So if someone tried to edit it, they would only have to edit the string and they might have misspelled it. But now, when he goes into the codebase, he will see Color members and he just can’t misspell that, and if he would, compiler would alert him. Basically, now it is like this: $"[{Color.Red}]Hello World![/]" Okay so next I fixed line breaking. What does that mean? Well… In Helyx native README editor, so when you try to assign a status/badge, you’ll get that editor, when you try to add a status/badge to that line, you might have thought that it would be on the same line as the tags above it. But it didn’t… This was happening due to the comment markers for Helyx so Helyx knows where this status/badge is located and which status/badge it is. Now Helyx will put those comment markers in a way that prevents the line from breaking.
Reviewing my codebase and fixing bugs Since all of the features that Helyx was supposed to be finished with are almost all done (maybe even all are done), I will now change my view to another projects for Stardance such as ThetaNexus . But that does not mean that now I will just forget about Helyx. I will be reviewing the codebase sometimes to find some bugs and fix them. You can help me with this, by making an Issue request on Helyx’s GitHub. So what bugs did I fix since the last devlog? I fixed line breaking in badge/status README editor. When you were inserting your badge/status into your README via Helyx’s README editor, it done… messy stuff to the README, not something like really bad what couldn’t be fixed by manually doing it, but it should now insert the badge/status exactly as you see it in the editor. I also introduced a new ‘Found state’ text instead of ‘Found’ text in IDE settings to avoid confusion. To avoid confusion because if an editor was found and you clicked on it… it wrote this: Found Found Found Not Found Found Set by user Now it writes this: Found state Found Found state Not Found Found state Set by user Most of the time, I was reviewing the codebase via Claude Code to actually check everything precisely.
Fixed User Scripts bug So, every path block used Path.GetFullPath(path) instead of Path.GetFullPath(path, script.ProjectPath) . That means it was resolving relative paths against Helyx’s own directory, not your project’s. This is now fixed.
Hackatime integration Hello there! A guy made a feature suggestion on Helyx’s GitHub, that I should add a Hackatime integration into it. So I was thinking… and thinking… and thinking and woah… I ADDED IT! It is not 1:1 like the web interface, that one is better & shows you more things but sadly this was everything that I could request from API (at least I think): Total Seconds Languages Repo URL Total Heartbeats First Heartbeat (DateTime) Last Heartbeat (DateTime) and when combining all of these information, I created a screen where you can see all of this specifically for your project. It works on the principe of authorization. You put in your Hackatime token which authorizes you and then when you go to your project and go on Hackatime Info, it prompts you to select the project from a list of projects that are assigned to your Hackatime account/token.
Mysterious bug I solving some bug with UpdateHandler that my friend has been experiencing. It was that you could only check for updates for Helyx if you authorized your GitHub. Otherwise, you couldn’t! I was taking the update checking through a function that sent a HTTP request with a key that Helyx receives by authorization, in this situation it isn’t needed, but when not given in that function, it returns an error. So now you can freely check for updates for Helyx even without authorizing with GitHub!
Ships:
What I made Helyx is a terminal app for Windows that keeps every local Git repository you own in one place and lets you commit, branch, resolve conflicts, repair broken repositories and answer GitHub Issues and Pull Requests without opening anything else. I spent a lot of time thinking about what kind of project I wanted to build. I wanted something that would be genuinely useful to developers in many different ways, and that is how I came up with Helyx, a TUI application that brings many Git and GitHub tasks into one place. What was challenging Learning new libraries, keeping the code organized as it grew, and designing every screen so it looks and feels as polished as I could get it. Deciding what to build next was harder than it sounds, because there was always more that could go in. What I am proud of It has everything I originally planned to include. The diagnostics screen finds what is wrong with a repository and offers the fix instead of just reporting it, the conflict resolver opens the conflicted block in its own editor, and the whole app speaks 8 languages. How to try it Download the latest release from Helyx’s GitHub and run it. It installs into your user folder and adds Helyx to your PATH , so you can start it by typing helyx in any terminal. No administrator rights are needed, and the .NET runtime is bundled inside. Then pick Add project and choose any folder that contains your project. Helyx is open source, so you can also read the code or build it yourself. Just click See source code below.
NEW THINGS: Hackatime integration Fixed bugs Edited README.md Added GitHub Issues/PRs events rendering more What I made Helyx is a terminal app for Windows that keeps every local Git repository you own in one place and lets you commit, branch, resolve conflicts, repair broken repositories and answer GitHub Issues and Pull Requests without opening anything else. I spent a lot of time thinking about what kind of project I wanted to build. I wanted something that would be genuinely useful to developers in many different ways, and that is how I came up with Helyx, a TUI application that brings many Git and GitHub tasks into one place. What was challenging Learning new libraries, keeping the code organized as it grew, and designing every screen so it looks and feels as polished as I could get it. Deciding what to build next was harder than it sounds, because there was always more that could go in. What I am proud of It has everything I originally planned to include. The diagnostics screen finds what is wrong with a repository and offers the fix instead of just reporting it, the conflict resolver opens the conflicted block in its own editor, and the whole app speaks 8 languages. Now it even has new things that were mentioned at the top of this shipping message! How to try it Download the latest release from Helyx’s GitHub and run it. It installs into your user folder and adds Helyx to your PATH , so you can start it by typing helyx in any terminal (Windows Terminal recommended). Then pick Add project and choose any folder that contains your project. Helyx is open source, so you can also read the code or build it yourself. Just click See source code below....
|
1793681683.916212
|
1793768083.916212
|
|
2315
|
My Own Planet by @Landen_A | Stardance
|
Landen_A
|
1
|
34.0
|
395
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-27T02:49:20Z", "hours": 34.0, "multiplier": 11.82, "payout": 395, "blessing": "neutral", "text": "My Own Planet is a simple app that allows you to create your very own planet using a variety of options. Even though My Own Planet isn’t very complex it still through a challenge. Creating the planet mesh in bevy wasn’t so hard but vertex displacement, UI, and WebAssembly compatibility did! Creating this app have taught me a surprising number of things. From objects defined with vertices to creating a UI system, what I have learned from this project is what I am most proud of. Running the project should be straightforward either run the WebAssembly version on itch.io, download, uncompress, and run the executable from itch.io, or follow the building instructions in GitHub (note that you will need to have rustup installed to build the app on your computer)", "repo": "https://github.com/looking-g/My-Own-Planet", "demo": "https://landening.itch.io/my-own-planet"}]...
|
[{"post_id": 16642, "ts": "202 [{"post_id": 16642, "ts": "2026-06-27T02:05:44Z", "hours": 3.6986, "text": "My Own Planet have reached v1.0.0 I have worked on the export feature and now the planet can be downloaded as .obj for both local and WebAssembly. The project is also now on itch.io as well!"}, {"post_id": 12918, "ts": "2026-06-21T04:45:05Z", "hours": 10.5256, "text": "Additions, Exporting, and the End Hey guys! It’s been a while (again). Since the last devlog, I have added a few new ways to edit your planet! You can now add mountains and change the size, color, and quality (number of vertices used) of the planet. I have also started work on an exporting feature that allows you to get a file that contains your planet (don’t worry, it will be common file like .obj ; not a format specific to this app). Currently it doesn’t work when compiled to WebAssembly so, it isn’t finished just yet. But, once it is working on the web it will start preparing to ship the app. Although that could change, just know that my next devlog might be the last one for this project. That’s it for now, bye!"}, {"post_id": 6601, "ts": "2026-06-11T02:29:01Z", "hours": 8.2781, "text": "It has been a while! Lately, I have been working on the UI for the app. Nothing super fancy, just a few buttons and text elements. I’m thinking of using sliders for planet editing; instead of +/- a crater, there would be a slider from 0 to 100 craters. The only problem is that it would limit the amount of craters and such you could have, let me know what you think in the comments! And if you have any other improvements you think would be good for the app UI, let me know! I’m thinking of wrapping up this project by the end of the week and getting it ready to ship. I have been hard at work on this project and I’m starting to feel a little burnt out, so I might take the next day or two to relax, meaning that plans could change. See you all next time, Bye!"}, {"post_id": 5218, "ts": "2026-06-08T22:34:09Z", "hours": 4.2575, "text": "Welcome back! This will be my second devlog if you count my intro log as devlog 0 (which I do). Not much technical stuff this time but that’s OK, normal words are good sometimes! Since the last devlog, I’ve made a few small things like a user input system that allows the planet to be spun by using the cursor (craters can also be generated by using the C key but that’s just for testing). I have also put to use a system that I made a while ago that gets a random point on the surface of the planet. Although bevy dose have a system just for that called ShapeSample , the implementation is like 30 lines long and this way I have full control over the system."}, {"post_id": 4450, "ts": "2026-06-07T19:32:14Z", "hours": 6.8458, "text": "Vertices, vertices, vertices. Before this project, I had only used Signed Distance Functions (SDFs) to define shapes, not anymore! Recently, I had started messing with vertices to define the planet in my app. I started with thinking about adding craters. I was thinking something along the lines of “Oh, I’ll just get the subtract a sphere from planet to remove some area and make a crater!” I soon found out, however, that is the case with SDFs, but not with an object defined with vertices. Eventually, I found out about vertex displacement. The idea is pretty neat: I move each vertex toward the center of the sphere depending on if it’s in the aria where a crater should be. No need to add extra vertices, just use the ones already there! But the really cool part is that this can be done on the CPU or on the GPU with a vertex shader! But that’s about all for now, currently I’m just doing vertex displacement on the CPU but that could change in the future. See you all later, bye!"}, {"post_id": 622, "ts": "2026-06-02T03:53:25Z", "hours": 0.2997, "text": "Hello! This is my first devlog for this project that I am excited to make and share. To start, my goal is to make a simple app that allows the user to generate a custom planet using a few different options like the number of craters or color of the planet. I don’t plan for it to be very complex. I might add a shader or more complex options later but, time will tell. I’m making this app as a way to learn more about 3D environments and procedural generation. Today, I just made a very simple setup for bevy that crates a camera, sphere, and light source. See you all later, bye!"}]...
|
Title: My Own Planet by @Landen_A | Stardance
Dev Title: My Own Planet by @Landen_A | Stardance
Devlogs:
Hello! This is my first devlog for this project that I am excited to make and share. To start, my goal is to make a simple app that allows the user to generate a custom planet using a few different options like the number of craters or color of the planet. I don’t plan for it to be very complex. I might add a shader or more complex options later but, time will tell. I’m making this app as a way to learn more about 3D environments and procedural generation. Today, I just made a very simple setup for bevy that crates a camera, sphere, and light source. See you all later, bye!
Vertices, vertices, vertices. Before this project, I had only used Signed Distance Functions (SDFs) to define shapes, not anymore! Recently, I had started messing with vertices to define the planet in my app. I started with thinking about adding craters. I was thinking something along the lines of “Oh, I’ll just get the subtract a sphere from planet to remove some area and make a crater!” I soon found out, however, that is the case with SDFs, but not with an object defined with vertices. Eventually, I found out about vertex displacement. The idea is pretty neat: I move each vertex toward the center of the sphere depending on if it’s in the aria where a crater should be. No need to add extra vertices, just use the ones already there! But the really cool part is that this can be done on the CPU or on the GPU with a vertex shader! But that’s about all for now, currently I’m just doing vertex displacement on the CPU but that could change in the future. See you all later, bye!
Welcome back! This will be my second devlog if you count my intro log as devlog 0 (which I do). Not much technical stuff this time but that’s OK, normal words are good sometimes! Since the last devlog, I’ve made a few small things like a user input system that allows the planet to be spun by using the cursor (craters can also be generated by using the C key but that’s just for testing). I have also put to use a system that I made a while ago that gets a random point on the surface of the planet. Although bevy dose have a system just for that called ShapeSample , the implementation is like 30 lines long and this way I have full control over the system.
It has been a while! Lately, I have been working on the UI for the app. Nothing super fancy, just a few buttons and text elements. I’m thinking of using sliders for planet editing; instead of +/- a crater, there would be a slider from 0 to 100 craters. The only problem is that it would limit the amount of craters and such you could have, let me know what you think in the comments! And if you have any other improvements you think would be good for the app UI, let me know! I’m thinking of wrapping up this project by the end of the week and getting it ready to ship. I have been hard at work on this project and I’m starting to feel a little burnt out, so I might take the next day or two to relax, meaning that plans could change. See you all next time, Bye!
Additions, Exporting, and the End Hey guys! It’s been a while (again). Since the last devlog, I have added a few new ways to edit your planet! You can now add mountains and change the size, color, and quality (number of vertices used) of the planet. I have also started work on an exporting feature that allows you to get a file that contains your planet (don’t worry, it will be common file like .obj ; not a format specific to this app). Currently it doesn’t work when compiled to WebAssembly so, it isn’t finished just yet. But, once it is working on the web it will start preparing to ship the app. Although that could change, just know that my next devlog might be the last one for this project. That’s it for now, bye!
My Own Planet have reached v1.0.0 I have worked on the export feature and now the planet can be downloaded as .obj for both local and WebAssembly. The project is also now on itch.io as well!
Ships:
My Own Planet is a simple app that allows you to create your very own planet using a variety of options. Even though My Own Planet isn’t very complex it still through a challenge. Creating the planet mesh in bevy wasn’t so hard but vertex displacement, UI, and WebAssembly compatibility did! Creating this app have taught me a surprising number of things. From objects defined with vertices to creating a UI system, what I have learned from this project is what I am most proud of. Running the project should be straightforward either run the WebAssembly version on itch.io, download, uncompress, and run the executable from itch.io, or follow the building instructions in GitHub (note that you will need to have rustup installed to build the app on your computer)...
|
1793681685.5330698
|
1793768085.5330698
|
|
44729
|
LMIC-MC-BOT by @Nahida4479 | Stardance
|
Nahida4479
|
1
|
20.0
|
262
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T00:58:20Z", "hours": 20.0, "multiplier": 12.84, "payout": 262, "blessing": "neutral", "text": "I make a Mineflayer-based Minecraft bot integrated with an LLM API (Groq, Gemini, HackClub). General chat replies are grounded in the bot’s real inventory and surroundings, so it won’t claim to have items it doesn’t actually have The bot can Kills nearby monsters (protects the player from them) Follows the player and breaks blocks Delivers gathered resources directly to the player who requested them Auto-equips the best armor set available whenever it picks up new gear Example commands LMIC-MC-BOT collect 10 oak_log LMIC-MC-BOT attack zombie LMIC-MC-BOT give me 5 dirt LMIC-MC-BOT fight me The biggest challenge in this project for me was fine-tuning the bot’s movement. A detailed guide on how to test the bot can be found on my GitHub.", "repo": "https://github.com/Nahida4479/LMIN-MC-BOT", "demo": "https://github.com/Nahida4479/LMIC-MC-BOT/releases/tag/1.0.0"}]...
|
[{"post_id": 49971, "ts": "202 [{"post_id": 49971, "ts": "2026-08-18T23:52:38Z", "hours": 5.0206, "text": "Devlog8 New Bot no longer gets permanently stuck — it detects when it’s not moving and tries to dig through, jump, or step around the obstacle Bot walks around other players instead of freezing when blocked by them Bot pauses its current task to fight nearby hostile mobs, then goes back to what it was doing Bot auto-equips the best armor set when it picks up new gear New “give item” command (e.g. “give me 5 dirt”) Bot now delivers collected items straight to the player who asked for them AI now knows the bot’s real inventory and surroundings, so it stops making up fake answers Bot retries gathering blocks instead of giving up after one failed attempt Reconnects system wait longer Bot follows closer to the player Added MIT License Removed Old gather system that stopped completely after a single mistake Old unstick system that barely moved the bot"}, {"post_id": 48510, "ts": "2026-08-16T21:59:57Z", "hours": 2.7583, "text": "Devlog7 Update README.md Fix break block issues Add new debug system"}, {"post_id": 46021, "ts": "2026-08-12T22:18:22Z", "hours": 1.1903, "text": "Devlog6 Attempt to improve bot movement Add fight me command"}, {"post_id": 45487, "ts": "2026-08-12T00:37:15Z", "hours": 3.4675, "text": "Devlog5 New Multi-language support (EN and PL) Limit AI response length Add mineflayer-collectblock Debug system for bot inventory, position, and errors Player following system (bot stays near the player) AI response system using JSON Block-breaking system triggered when a player mentions the bot’s username in chat (video) Custom AI prompt Removed Old “look” command (replaced by the player following system)"}, {"post_id": 44927, "ts": "2026-08-11T00:18:36Z", "hours": 1.8486, "text": "Devlog4 Update README.md Add a test Minecraft server to the GitHub repository for bot testing Add mineflayer-pathfinder for bot movement/navigation Fix reconnect issues"}, {"post_id": 44322, "ts": "2026-08-10T00:16:35Z", "hours": 1.9556, "text": "Devlog3 AI improvements Connect AI system to in-game chat, so the bot responds when mentioned Add conversation history (up to 20 messages, stored in memory) Other changes Update README.md"}, {"post_id": 43569, "ts": "2026-08-08T21:57:45Z", "hours": 2.6289, "text": "Devlog2 Add new AI providers: Gemini Groq HackClub Add new AI models: gemini-2.5-flash gemini-2.5-flash-lite llama-3.3-70b-instruct llama-3.1-8b-instant gpt-oss-120b gpt-oss-20b qwen3.6-27b Other changes: Add requirements to README.md Add function to test AI model availability Create list of available AI providers"}, {"post_id": 42948, "ts": "2026-08-07T22:44:30Z", "hours": 1.4972, "text": "Devlog1 Bot join and leave systems with errors logs. MineflayerViewer system on user selected port. Add and update README.md."}]...
|
Title: LMIC-MC-BOT by @Nahida4479 | Stardance
Dev Title: LMIC-MC-BOT by @Nahida4479 | Stardance
Devlogs:
Devlog1 Bot join and leave systems with errors logs. MineflayerViewer system on user selected port. Add and update README.md.
Devlog2 Add new AI providers: Gemini Groq HackClub Add new AI models: gemini-2.5-flash gemini-2.5-flash-lite llama-3.3-70b-instruct llama-3.1-8b-instant gpt-oss-120b gpt-oss-20b qwen3.6-27b Other changes: Add requirements to README.md Add function to test AI model availability Create list of available AI providers
Devlog3 AI improvements Connect AI system to in-game chat, so the bot responds when mentioned Add conversation history (up to 20 messages, stored in memory) Other changes Update README.md
Devlog4 Update README.md Add a test Minecraft server to the GitHub repository for bot testing Add mineflayer-pathfinder for bot movement/navigation Fix reconnect issues
Devlog5 New Multi-language support (EN and PL) Limit AI response length Add mineflayer-collectblock Debug system for bot inventory, position, and errors Player following system (bot stays near the player) AI response system using JSON Block-breaking system triggered when a player mentions the bot’s username in chat (video) Custom AI prompt Removed Old “look” command (replaced by the player following system)
Devlog6 Attempt to improve bot movement Add fight me command
Devlog7 Update README.md Fix break block issues Add new debug system
Devlog8 New Bot no longer gets permanently stuck — it detects when it’s not moving and tries to dig through, jump, or step around the obstacle Bot walks around other players instead of freezing when blocked by them Bot pauses its current task to fight nearby hostile mobs, then goes back to what it was doing Bot auto-equips the best armor set when it picks up new gear New “give item” command (e.g. “give me 5 dirt”) Bot now delivers collected items straight to the player who asked for them AI now knows the bot’s real inventory and surroundings, so it stops making up fake answers Bot retries gathering blocks instead of giving up after one failed attempt Reconnects system wait longer Bot follows closer to the player Added MIT License Removed Old gather system that stopped completely after a single mistake Old unstick system that barely moved the bot
Ships:
I make a Mineflayer-based Minecraft bot integrated with an LLM API (Groq, Gemini, HackClub). General chat replies are grounded in the bot’s real inventory and surroundings, so it won’t claim to have items it doesn’t actually have The bot can Kills nearby monsters (protects the player from them) Follows the player and breaks blocks Delivers gathered resources directly to the player who requested them Auto-equips the best armor set available whenever it picks up new gear Example commands LMIC-MC-BOT collect 10 oak_log LMIC-MC-BOT attack zombie LMIC-MC-BOT give me 5 dirt LMIC-MC-BOT fight me The biggest challenge in this project for me was fine-tuning the bot’s movement. A detailed guide on how to test the bot can be found on my GitHub....
|
1793681686.7156484
|
1793768086.7156484
|
|
28096
|
My very own WebOS by @sreerangshijoy3 | Stardance
|
sreerangshijoy3
|
2
|
4.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T10:55:47Z", "hours": 1.0, "multiplier": 2.69, "payout": 2, "blessing": "neutral", "text": "I updated my web OS by adding features, apps and I tried to improve the web OS. I faced many challenges when designing UI, iam proud to build and upgrade my own web os", "repo": "https://github.com/sreerangshijoy3-cloud/GOAT-OS", "demo": "https://goat-os-gamma.vercel.app/"}, {"ship_num": 2, "ts": "2026-08-04T10:24:19Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a web-based personal operating system GOAT OS using HTML, CSS, and JavaScript. It simulates a real desktop environment inside the browser, where users can open apps, move windows, and interact with different tools. I am proud that I was able to create a complete system that feels like a real operating system inside a browser.", "repo": "https://github.com/sreerangshijoy3-cloud/GOAT-OS", "demo": "https://goat-os-gamma.vercel.app/"}]...
|
[{"post_id": 43216, "ts": "202 [{"post_id": 43216, "ts": "2026-08-08T10:52:50Z", "hours": 0.9069, "text": "I updated my web OS and add new features and apps I tried to improve the UI"}, {"post_id": 40649, "ts": "2026-08-04T10:21:52Z", "hours": 0.2567, "text": "I made the app in the os openable and dragable"}, {"post_id": 40641, "ts": "2026-08-04T10:02:16Z", "hours": 0.3275, "text": "In my web os I added application to it"}, {"post_id": 40631, "ts": "2026-08-04T09:37:42Z", "hours": 1.9558, "text": "This is my first step on my web os"}]...
|
Title: My very own WebOS by @sreerangshijoy3 | Sta Title: My very own WebOS by @sreerangshijoy3 | Stardance
Devlogs:
This is my first step on my web os
In my web os I added application to it
I made the app in the os openable and dragable
I updated my web OS and add new features and apps I tried to improve the UI
Ships:
I built a web-based personal operating system GOAT OS using HTML, CSS, and JavaScript. It simulates a real desktop environment inside the browser, where users can open apps, move windows, and interact with different tools. I am proud that I was able to create a complete system that feels like a real operating system inside a browser.
I updated my web OS by adding features, apps and I tried to improve the web OS. I faced many challenges when designing UI, iam proud to build and upgrade my own web os...
|
1793681687.8979323
|
1793768087.8979323
|
|
18856
|
BrazilOS by @cauadev | Stardance
|
cauadev
|
1
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-15T19:18:25Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hello guys! Today, I’m finally shipping my BrazilOS! It has draggable windows, is very… peculiar and even has a climate status and some meme quotes. You should try it out!", "repo": "https://github.com/Br-Zueira/BrazilOS", "demo": "https://br-zueira.github.io/BrazilOS/"}]...
|
[{"post_id": 47681, "ts": "202 [{"post_id": 47681, "ts": "2026-08-15T19:15:59Z", "hours": 0.4861, "text": "Final adjusts. Nothing to show."}, {"post_id": 12864, "ts": "2026-06-21T02:09:02Z", "hours": 2.4117, "text": "Added settings, functioning weather and new icon images to the apps."}, {"post_id": 12718, "ts": "2026-06-20T19:31:25Z", "hours": 3.8183, "text": "Today is being a productive day. I added an upper taskbar into the OS when the guide just wanted me to add a bar into the notes app. Oh, as I already mentioned it, I’m doing the notes app. It already have the title, date and content fields and dynamic note showing, but it’s lacking saving the actual notes (TODO). Plus, I did a quote apps (thinking it was the note app as the guide showed quotes) that have some “memelosophy” wisdom, such as from Manoel Gomes and Luva de Pedreiro. For now, I plan to finish the notes app and give a utility to that desktop taskbar."}, {"post_id": 11014, "ts": "2026-06-18T01:19:31Z", "hours": 1.5542, "text": "Today I added a close button to the window header, some info to improve UX and a bit of CSS."}, {"post_id": 10242, "ts": "2026-06-16T21:27:55Z", "hours": 0.3006, "text": "Added a working clock to the project and an external app.js"}, {"post_id": 9588, "ts": "2026-06-15T23:40:53Z", "hours": 0.7239, "text": "Changed design and added window design and top bar."}, {"post_id": 9559, "ts": "2026-06-15T22:42:19Z", "hours": 0.3169, "text": "I applied a little bit of CSS, such as padding for main and background gradient"}, {"post_id": 9538, "ts": "2026-06-15T22:17:25Z", "hours": 0.3978, "text": "Started doing the basic structures and ideas. Basically the project’s skeleton"}]...
|
Title: BrazilOS by @cauadev | Stardance
Devlogs:
Title: BrazilOS by @cauadev | Stardance
Devlogs:
Started doing the basic structures and ideas. Basically the project’s skeleton
I applied a little bit of CSS, such as padding for main and background gradient
Changed design and added window design and top bar.
Added a working clock to the project and an external app.js
Today I added a close button to the window header, some info to improve UX and a bit of CSS.
Today is being a productive day. I added an upper taskbar into the OS when the guide just wanted me to add a bar into the notes app. Oh, as I already mentioned it, I’m doing the notes app. It already have the title, date and content fields and dynamic note showing, but it’s lacking saving the actual notes (TODO). Plus, I did a quote apps (thinking it was the note app as the guide showed quotes) that have some “memelosophy” wisdom, such as from Manoel Gomes and Luva de Pedreiro. For now, I plan to finish the notes app and give a utility to that desktop taskbar.
Added settings, functioning weather and new icon images to the apps.
Final adjusts. Nothing to show.
Ships:
Hello guys! Today, I’m finally shipping my BrazilOS! It has draggable windows, is very… peculiar and even has a climate status and some meme quotes. You should try it out!...
|
1793681689.078429
|
1793768089.078429
|
|
28364
|
CampusBallot by @nshettigar | Stardance
|
nshettigar
|
1
|
19.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T18:09:22Z", "hours": 19.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did you make? I built lCampusBallot, a desktop app (C++/Qt6) for running secure campus elections, student council elections, class rep elections, club leadership elections, etc. It handles the whole process: registering students and candidates, running the vote through a dedicated kiosk interface, and generating live results. It supports role-based logins (Super Admin, Election Admin, Teacher, Student Volunteer, Observer, Result Auditor), encrypts and digitally signs each vote, keeps a tamper-evident audit log of every action, and can back itself up automatically. Data is stored locally in SQLite by default, with an optional Firebase sync mode for multi-machine setups. What was challenging? Getting the security pieces to actually work together, encryption, hashing, and digital signatures on votes, plus tamper detection on the stored records, without slowing down the voting flow or making it fragile. Designing the role-based access control so that six different roles each see and can do only what they should, without the permission logic turning into spaghetti. Handling student identity verification (matching against uploaded files/rosters, plus QR/barcode/RFID support) so the same student can’t vote twice while still keeping the kiosk experience fast and simple for voters. Making the Firebase-backed multi-machine sync path reliable was noticeably harder than making the local SQLite path reliable, which is still the least battle-tested part of the app. What are you proud of? The audit log — every login, vote, and admin action is timestamped, hashed, and effectively tamper-evident, so there’s a real accountability trail if anyone questions a result. The full flow works end-to-end: setup wizard → student/candidate registration → live voting on the kiosk → real-time results dashboard, all in one cohesive app rather than a collection of scripts. The plugin architecture — I designed it to be extensible (for custom storage backends and extra functionality) rather than hard-coding everything. What should people know to test your project? It’s a pre-release build — run it once through a full rehearsal (test election, test students, test candidates) before trusting it with a real vote. On first launch, it opens a Setup Wizard: choose local SQLite storage (the most tested path) or Firebase (experimental), then create the admin account. Log in as admin to add students, create an election, add and approve candidates, then start voting and open the Voting Kiosk view actually to cast votes. Windows may show a SmartScreen warning since the build isn’t code-signed yet — that’s expected, not a red flag. Check ballot.log in the app’s data folder if anything crashes or behaves oddly.", "repo": "https://github.com/codingwithnsh/CampusBallot", "demo": "https://github.com/codingwithnsh/CampusBallot/releases/download/v.1.0.0-Beta/windows-app.zip"}]...
|
[{"post_id": 46464, "ts": "202 [{"post_id": 46464, "ts": "2026-08-13T18:04:49Z", "hours": 0.2575, "text": "Almost done"}, {"post_id": 46436, "ts": "2026-08-13T17:19:37Z", "hours": 6.0606, "text": "almost finished with the app"}, {"post_id": 25944, "ts": "2026-07-10T13:39:26Z", "hours": 12.8678, "text": "I am currently developing an application for voting in schools called Campus Ballot. I’ve already completed the login screen, sign-up screen, and the dashboard. I’m excited to share the final product with you all soon!"}]...
|
Title: CampusBallot by @nshettigar | Stardance
De Title: CampusBallot by @nshettigar | Stardance
Devlogs:
I am currently developing an application for voting in schools called Campus Ballot. I’ve already completed the login screen, sign-up screen, and the dashboard. I’m excited to share the final product with you all soon!
almost finished with the app
Almost done
Ships:
What did you make? I built lCampusBallot, a desktop app (C++/Qt6) for running secure campus elections, student council elections, class rep elections, club leadership elections, etc. It handles the whole process: registering students and candidates, running the vote through a dedicated kiosk interface, and generating live results. It supports role-based logins (Super Admin, Election Admin, Teacher, Student Volunteer, Observer, Result Auditor), encrypts and digitally signs each vote, keeps a tamper-evident audit log of every action, and can back itself up automatically. Data is stored locally in SQLite by default, with an optional Firebase sync mode for multi-machine setups. What was challenging? Getting the security pieces to actually work together, encryption, hashing, and digital signatures on votes, plus tamper detection on the stored records, without slowing down the voting flow or making it fragile. Designing the role-based access control so that six different roles each see and can do only what they should, without the permission logic turning into spaghetti. Handling student identity verification (matching against uploaded files/rosters, plus QR/barcode/RFID support) so the same student can’t vote twice while still keeping the kiosk experience fast and simple for voters. Making the Firebase-backed multi-machine sync path reliable was noticeably harder than making the local SQLite path reliable, which is still the least battle-tested part of the app. What are you proud of? The audit log — every login, vote, and admin action is timestamped, hashed, and effectively tamper-evident, so there’s a real accountability trail if anyone questions a result. The full flow works end-to-end: setup wizard → student/candidate registration → live voting on the kiosk → real-time results dashboard, all in one cohesive app rather than a collection of scripts. The plugin architecture — I designed it to be extensible (for custom storage backends and extra functionality) rather than hard-coding everything. What should people know to test your project? It’s a pre-release build — run it once through a full rehearsal (test election, test students, test candidates) before trusting it with a real vote. On first launch, it opens a Setup Wizard: choose local SQLite storage (the most tested path) or Firebase (experimental), then create the admin account. Log in as admin to add students, create an election, add and approve candidates, then start voting and open the Voting Kiosk view actually to cast votes. Windows may show a SmartScreen warning since the build isn’t code-signed yet — that’s expected, not a red flag. Check ballot.log in the app’s data folder if anything crashes or behaves oddly....
|
1793681690.3059764
|
1793768090.3059764
|
|
48300
|
My own site! by @Aashmn13 | Stardance
|
Aashmn13
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-17T11:30:03Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I builded my personal developer portfolio from scratch using HTML5 and modern CSS. I wanted a cool dark mode hub to showcase my Linux setup, coding projects, and desk workspace curation instead of just a boring resume. The most challenging part was definitely getting the pixel Charizard gif and card positioning to look right without messing up the layout, plus fixing the GitHub Pages routing because my files was stuck inside a subfolder giving a 404 error. I used Gemini to help plan the UI layout and aesthetics, and Copilot helped me a lot for the JS styling and tweaks. Im proud of how clean the hero section turned out with the grid background and that Charizard card. You can test it by visiting the live link, clicking around the navigation buttons, and checking the project cards!", "repo": "https://github.com/dpknavy-oss/personal-site", "demo": "https://dpknavy-oss.github.io/personal-site/"}]...
|
[{"post_id": 48811, "ts": "202 [{"post_id": 48811, "ts": "2026-08-17T11:05:21Z", "hours": 0.0978, "text": "Over the past few days, I decided to sit down and build out my personal developer portfolio from scratch using pure HTML5 and modular CSS. Rather than creating a generic resume page, I wanted a digital hub that truly reflects my development journey, Linux workflows, and workspace design aesthetic. The architecture relies entirely on lightweight HTML structures and responsive Flexbox card grids to present my tech stack, system specifications, open-source projects, and offline hobbies cleanly across all devices. To give the site a distinct personality, I opted for a high-contrast dark theme layered with a subtle developer grid texture, modern sans-serif typography, gradient headline styling, and a pixel Charizard showcase card. The live site connects directly to my active GitHub repositories alongside my curation work on voltsetups, while also reserving space for gaming and anime interests. Moving forward, I plan to integrate smooth micro-interactions with JavaScript and add a live blog feed for upcoming desk setup and hardware logs."}]...
|
Title: My own site! by @Aashmn13 | Stardance
Devl Title: My own site! by @Aashmn13 | Stardance
Devlogs:
Over the past few days, I decided to sit down and build out my personal developer portfolio from scratch using pure HTML5 and modular CSS. Rather than creating a generic resume page, I wanted a digital hub that truly reflects my development journey, Linux workflows, and workspace design aesthetic. The architecture relies entirely on lightweight HTML structures and responsive Flexbox card grids to present my tech stack, system specifications, open-source projects, and offline hobbies cleanly across all devices. To give the site a distinct personality, I opted for a high-contrast dark theme layered with a subtle developer grid texture, modern sans-serif typography, gradient headline styling, and a pixel Charizard showcase card. The live site connects directly to my active GitHub repositories alongside my curation work on voltsetups, while also reserving space for gaming and anime interests. Moving forward, I plan to integrate smooth micro-interactions with JavaScript and add a live blog feed for upcoming desk setup and hardware logs.
Ships:
I builded my personal developer portfolio from scratch using HTML5 and modern CSS. I wanted a cool dark mode hub to showcase my Linux setup, coding projects, and desk workspace curation instead of just a boring resume. The most challenging part was definitely getting the pixel Charizard gif and card positioning to look right without messing up the layout, plus fixing the GitHub Pages routing because my files was stuck inside a subfolder giving a 404 error. I used Gemini to help plan the UI layout and aesthetics, and Copilot helped me a lot for the JS styling and tweaks. Im proud of how clean the hero section turned out with the grid background and that Charizard card. You can test it by visiting the live link, clicking around the navigation buttons, and checking the project cards!...
|
1793681691.4434247
|
1793768091.4434247
|
|
12569
|
NeneUI (@neneys/ui) by @pksmkwe26 | Stardance
|
pksmkwe26
|
3
|
85.0
|
1589
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-28T15:27:39Z", "hours": 2.0, "multiplier": 17.82, "payout": 30, "blessing": "neutral", "text": "@neneys /ui - NeneUI It is an Server-Driven UI Library Which Interpretes TypeScript into an Native Rendered Flutter Widget. Basically, You can write your Entire App in TypeScript and It gets Rendered Into Native Flutter Widgets without WebView. The Final Ship! I’m shipping the final @neneys /ui for everyone. Thank you for reviewing my project for the final time. Thanks to Stardance for encouraging me to help make this large project myself. But Wait What is This? You have an App, You want to Change it’s UI but you don’t want to wait 4-5 days for the review of App Store to pass, So you change the UI Server-Side and Poof! User Interface updated for everyone even without updating the App Examples There are now examples bundled with NeneUI Testing Kit, One is an AI Chat Application and other is called NeneWorld with Pokedex and Weather API and Country API uses to showcase the Widgets Conclusion There were alot of challenges while making this library with my Laptop dropping to 0.47GHz at random moments and searching the pub.dev docs for shadcn_flutter and upgrading sub-libraries and testing stuff the major headache being the Navigation and Web Support (SEO is done via PHP to show Web Crawlers meangingful HTML to index). Thank you for reviewing my project and Thanks to stardance for providing an platform. Love you all :3 💖", "repo": "https://github.com/kwe26/neneui", "demo": "https://www.npmjs.com/@neneys/ui"}, {"ship_num": 2, "ts": "2026-10-24T12:40:09Z", "hours": 45.0, "multiplier": 19.25, "payout": 872, "blessing": "neutral", "text": "@neneys /ui - NeneUI It is an Server-Driven UI Library Which Interpretes TypeScript into an Native Rendered Flutter Widget. Basically, You can write your Entire App in TypeScript and It gets Rendered Into Native Flutter Widgets without WebView. Why? We need Server-Driven UI to ensure that we do not need to update an entire app for a little UI changes or even major overhauls of the App Interface, We could just change it on Server-Side and updated without going through the process of Approval and such. Major Updates After the Previous Ship NeneUI Testing Kit has been buffed with Debug Bar and More Platforms Support for WebSocket Rendering Web Support (along with SEO PHP for Web Crawlers) Memory/GPU Leak issues fixed! Advanced & Improved + Detailed Documentation Decorated README.md Documentation The New Documentation is now written in Docsaurus and hosted in Github Pages at https://kwe26.github.io/neneui/ along with the NeneUI Testing Kit at https://kwe26.github.io/neneui/tester . While it took alot of time documenting each working Widgets but it has now made using @neneys /ui more easier. New Widgets That were Added NeneDisplay and NeneNavbottom - Theese Two Widgets Now help you construct an Bottom Bar with Various Pages as Content that can be now switched from one place to another without reloading the entire page. Layouts and Layout - This allows you to put many Content on Side of Each Other and allow you the drag wheel to drag and arrange the size. WebSocket Widget - It can also render Widgets over WS live real-time making it an really useful feature. Some New Action Callbacks were also added such as SOFTRELOAD that softly reloads the UI without changing the states and maintains the UI. DebugBar The Testing Kit Now includes and Debug Bar to help Developers Reload the UI or check the #id Declarations and Variables Value NeneDesktopRuntime An Desktop Runtime that is WIP but could help replace Electron.js where everything is WebView and sucks alot of ram. But NeneDesktopRuntime can render the Widgets with TypeScript into Native Widgets. Examples There are now examples bundled with NeneUI Testing Kit, One is an AI Chat Application and other is called NeneWorld with Pokedex and Weather API and Country API uses to showcase the Widgets FAQ Page An FAQ Page has been added to ensure the Users dont get stuck somewhere in the library and could get some reference on it Such as the Linux issue with quickjs where the fix is provided. Conclusion There were alot of challenges while making this library with my Laptop dropping to 0.47GHz at random moments and searching the pub.dev docs for shadcn_flutter and upgrading sub-libraries and testing stuff the major headache being the Navigation and Web Support (SEO is done via PHP to show Web Crawlers meangingful HTML to index).", "repo": "https://github.com/kwe26/neneui", "demo": "https://www.npmjs.com/@neneys/ui"}, {"ship_num": 3, "ts": "2026-08-21T15:35:04Z", "hours": 38.0, "multiplier": 18.11, "payout": 687, "blessing": "neutral", "text": "I made an Server-Side Rendering Library for Flutter, You write the Code in TypeScript and the Flutter Renderer (i named it Daikon) parses it into Native Code, Without WebViews! Completely Native. The Challenges i faced were, how to like index the widgets to be used while JSON becomes parsed and the handling of #ids and most importantly, ForEach Option and the JS Option. I used shadcn_flutter for UI Elements that were rendered, i really like shadcn_flutter’s Design. it’s really cool. I tried to keep it as much as user-friendly as possible, by adding TypeScript Types so VSCode Auto-complete could work. I have also added File Uploads feature with In-Memory Image Display too, if it’s an Image, it is really helpful, even with Server Callbacks and such things Theese are necessary for an production application. And Actions such as TOAST, DIALOG, NAVIGATE, etc. This is the intresting part too!! You can try out the library at https://www.npmjs.com/@neneys/ui for testing it out! While the docs is still not complete, i hope that the documented Widgets could work for your expirment too! I plan to continue this Library even after the program ends!! Love you all! 🥰", "repo": "https://github.com/kwe26/neneui", "demo": "https://www.npmjs.com/@neneys/ui"}]...
|
[{"post_id": 83759, "ts": "202 [{"post_id": 83759, "ts": "2026-10-28T15:23:58Z", "hours": 0.5297, "text": "Devlog (No. 31) - Thank you NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Thanks to everyone for supporting me throught Stardance from when i had started the Project. I will continue @neneys /ui on Coral Hackclub if i get enough time. I’m really thankful to Stardance which encouraged me to write this large project. Thanks Love you all :3"}, {"post_id": 83013, "ts": "2026-10-26T15:39:21Z", "hours": 0.7169, "text": "Devlog (No. 30) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Changes Update some parts of Daikon Debugger and removed some unnessary codes. Extended Debugger Width Desktop Runtime with unused RPC (will work on it) Explanation Diagram Drawn an Explanation Diagram on Figma that shows how Interface and Callbacks works, hope it’s good and does give some idea about @neneys /ui Thanks for reading this minidevlog.!! Love you all <3"}, {"post_id": 82939, "ts": "2026-10-26T10:19:02Z", "hours": 0.4383, "text": "Devlog (No. 29) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere About the Memory Leak Issue being Fixed Many People in Review told me how did the Memory Leak get fixed and what was the cause of it? Blog Link May not open now, Since it hasn’t been built yet Docs Changes So, Here’s the docs with it being documented in the blog will be available once Github Actions Finishes Updated Debugger I’m working on a updated @neneys /ui Debugger to be more ease-to-use. Will be finished in a less time, The Debugger will allow the ease of accessing and modifying an Widget Data for the Session and manipulate Shared Preferences. Thanks for reading!! Love you all >3 ❤️"}, {"post_id": 82256, "ts": "2026-10-24T12:15:40Z", "hours": 2.1886, "text": "Devlog (No.28) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere README.md README.md has been improved alot with visual designs and details with Links and References Provided too and some Yashiro Nene based Images. Figma File is provided in link. Docs Updates The Home Page of Docs has been updated to look better and provide more information about NeneUI. The Docs Is now extended and now includes more information about implemented Widgets and Link to NeneUI Testing Kit NeneUI Testing Kit The NeneUI Testing Kit has been updated to show examples of @neneys /ui One being an AI Chat Application and other being an random Test with Pokedex, etc. Nene Desktop Runtime While Still Work in Progress, You can now follow the docs to Launch and test the Desktop Runtime. The Desktop Runtime is a standalone application that could embed @neneys /ui in it and Make Desktop Applications with just TypeScript. A Stable Release NeneUI will be released as a stable version 1.0.0 with Pub.dev and NPM Versions available soon as possible and will be kept updated Thanks for your support till 1.0.0 Release! I hope we meet soon! Thanks <3333"}, {"post_id": 82065, "ts": "2026-10-23T17:57:50Z", "hours": 3.3633, "text": "Devlog (No.27) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere JavascriptEngine JavaScriptEngine({…}) which could control Whether JS should be enabled or not and how much stackSize should be specified. xhr should be enabled or disabled SEO Support for Flutter Web With the Help of PHP to Render Text, Image and some minimal data. PHP can provide basic Page to Crawlers requesting the site. So that SEO could be utilised. However, PHP Version Selection is limited to only allow the recently patched PHP versions for Security Reasons. Github Actions Added Nene Desktop Runtime to be built in Github Actions Bug FIxes @neneys /ui had a Critical Memory and GPU Leak issue which kept the GPU usage at constant high even when not being used and being left Idle. Docs Updates JavaScript Execution and SEO Setup are now documented in the Docs and pub.dev and npmjs packages are now updated NeneUI Testing Kit NeneUI Testing Kit are now available on Web https://kwe26.github.io/neneui/tester However It could only open HTTPS and Cors (*) Apps only and is kind of limited with some JS Execution Issues. The User Interface of Testing Kit is also quite updated. Close to Release NeneUI is now Close to being 1.0.0 Release finally! Within 1-2 devlogs i’ll be shipping soon.!! Thanks for reading! Love you <3!"}, {"post_id": 81857, "ts": "2026-10-22T19:16:50Z", "hours": 1.7314, "text": "Devlog (No.26) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Web - Platform Support Finally, @neneys /ui is now supported on Web (Flutter Web). The Inconsistencies are now managed making @neneys /ui work directly on Web Too. *Limitations on Web * Same as Flutter Web - It’s hard for crawlers to idenitfy content of web pages. I’m trying to fix that issue by double-rendering. Mostly by Setting-up an PHP to Interept the UI into HTML for Crawlers Making SEO work good! README.md Changes FAQ Added into README (Address the Linux Compile Issue in FAQ related to quickjs_engine) More Decorative Elements Github Actions Nene UI Testing Kit finally compiles on all 5 (Windows, Linux, Android, iOS, macOS) successfuly. Linux, macOS - May require libmpv to be installed or available on system path We seem to be very close to first v1 Release with maximum widgets and support. Thanks for Reading!! I love you all 3<.!!!"}, {"post_id": 81525, "ts": "2026-10-21T16:05:35Z", "hours": 4.5514, "text": "Devlog (No.25) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere New Widget Layouts Layout Layouts and Layout It helps you make an Layout on Screen as show in Screenshot. And It can be arranged via an Handle too, It supports unlimited Layout on Screen as much as space is there. Removed Removed Skeleton Widget from Docs as it was no-longer rendering properly README.md The README.md is now updated with some Images and Decorative Work for looking more nicer and attractive New Action New Action such as ACTION.SET_DISPLAY_INDEX and ACTION.CLOSE_OVERLAY AlertDialog is now documented under FeedBack Section Nene Desktop Runtime Nene Desktop Runtime is half-done and still has some issues, will try to fix it and make it install and run Apps soon! Thanks for reading!! I love you all >3"}, {"post_id": 80207, "ts": "2026-10-16T18:56:50Z", "hours": 2.6222, "text": "Devlog (No.24) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere WebSocket Support NeneUI now supports WebSocket Rendering and Execution WebSocket ({ url : \" ws://localhost:3500/ws/home \" , }) What Can it Do? Show Widgets Over WebSockets Execute Actions Use Cases? ChatBots Live News? Messaging? New Action Action.SEND_SOCKET Uses FormSubmitAction as Parameter with :socket: as the callbackPath New Functions SendWidget(socket, Widget) SendAction(socket, DoAction) Thanks for Reading! Love you all readers >3!"}, {"post_id": 79450, "ts": "2026-10-14T01:34:11Z", "hours": 2.6942, "text": "Devlog (No.23) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere New Features Shared Preferences ReqType Action.SOFT_RELOAD SharedPreferences You can use SET_PREFS and REM_PREFS Action to Set or Remove and PREF_EXISTS with exists and not parameters for functions GetPrefs When ReqType.POST is present you could use GetPrefs to get the preference value in UI/Callback Route GetFile Returns File Uploaded’s Path as in uploads/file.extension only works in Callback as that’s the place where you could recieve file. Action.SOFT_RELOAD Reloads the Screen without Changing any State or Position of Page. Other Changes :- Remove Old docs/ folder and SKILL.md for AI Agents to utilise NeneUI properly Thanks for reading. love you all 🥰🥰"}, {"post_id": 77906, "ts": "2026-10-08T18:28:36Z", "hours": 0.7811, "text": "Devlog (No.22) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere NeneWorld - An Sample App NeneWorld is an Sample App for @neneys /ui Showcasing some Little Things of NeneUI. *Who Made It? : * Claude! Yes SKILL.md is coming soon to everyone, where the AI can read SKILL.md and create an App using NeneUI Library. Features? of this Sample App Demo of NeneBottomnav, NeneDisplay Images Buttons and Callback Pokedex Dw, Only the Sample is AI-written, The Main Project @neneys /ui Library is still an human-made project. And i do not want AI to take over NeneUI and write it itself, that would ruin this Library Why Skill.MD? So, that Users Can make an App using NeneUI and also ask AI For Help where they feel stuck. Tho it consumes tokens alot, cus NeneUI is becoming an more larger library Excuz me what is NeneUI? As i told earlier, NeneUI allows you to write the entire App UI in TypeScript and Render it Server-Side and produce in front of User. AND NO NENEUI IS NOT A WEBVIEW. It translates TypeScript into NATIVE Flutter Widgets. So the Interface feels native and uses Less RAM in this RAM Crisis Economy. Status? NeneUI is still in early stages, as i consider it. It still lacks many things such as an shared_preferences Implementation, WebSockets and proper Secure JavaScript Execution System. Conclusion I love if i get even tiny support for NeneUI and the people reading this devlog, I love you all who support me ;) Love you >3… Thanks for reading…!!!!"}, {"post_id": 77561, "ts": "2026-10-07T14:14:36Z", "hours": 1.3781, "text": "Devlog (No.21) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere New Widget & Major Feature Added NeneDisplay to Change the Area of the Screen with a custom route, Like we see on normal apps. NeneDisplay It follows the index of bottomNavbar (or prescribed Variable) and loads the corresponding Page on the Area specified. Only Scaffold Body as a whole is supported as of now. NeneDisplay ({ urlMap : { 0 : \" /ui/route_a \" , 1 : \" /ui/route_b \" } }) It has urlMap and followIndex arguments only. Quick Note: It does not create a complete new Nene IDDB, It exists on top of the existing one so the variables do not disappear that were assigned by previous page . Thanks for reading today!! I hope your day goes well Love you all >3"}, {"post_id": 77257, "ts": "2026-10-06T09:21:43Z", "hours": 1.04, "text": "Devlog (No.20) - A tiny update NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere CUSTOM WIDGET YAY!!!! NeneBottomNavbar Bottom Navigation Bar for NeneUI Apps! With Two Types for Now normal , float About NeneNavbottom and NeneNavItem are the new widgets added. Any New Widget? Yes, NeneSidebar as well and NeneDisplay for Route and SPA System THANKS for Reading !!! Love you all."}, {"post_id": 76497, "ts": "2026-10-03T19:12:05Z", "hours": 1.4064, "text": "Devlog (No.19) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere New Changes Added a Mouse Hover Effect like in Inspect Element for Debug Bar Docs Changes Added Docs about SingleChildScrollView Compare & Variables Documentation Breadcrumbs Future Changes Custom Widgets Layout Widgets mostly Custom BottomNavBar Possible WebUI for SEO Purposes I’ve planned with PHP, Next.js but i have to yet choose which one would be easier to implement and best SEO. I’m having a slight fever, so i’m unable to update many things i’ve planned in my mind, i apologise for it. Anyways Thanks everyone, Love you for the support ❤️"}, {"post_id": 74963, "ts": "2026-09-28T18:21:51Z", "hours": 2.1094, "text": "Devlog (No.18) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere New Feature & Changes Changed Overlay Circular Progress Indicator to LinearProgressIndicator near AppBar for Form Submit New Action RELOAD UI (Soft-reloads UI) DebugBar (A.k.a Orb) Stays always active Docs Changes Add Layouts Docs (Column,Row) Avatar Widget Docs Button, ButtonGroup MainAxis, CrossAxis Documented That’s it for today, Thanks for Reading!!"}, {"post_id": 74142, "ts": "2026-09-26T19:17:54Z", "hours": 2.5919, "text": "Devlog (No.17) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Bug Fixes Fix where Height/Width of Image’s Default Value was always 0. Docs Progress Added Content Documentation Added Feedback Widgets Docs such as Progress, CircularProgressIndicator, etc. Experiment Tried to Experiment with Rust Renderer, It did not work as i don’t know rust much properly Desktop Apps - Planning Update I’ve planned to make the Desktop Apps be static but built from TypeScript and Bundle Flutter + Bun Shipping Desktop Apps. Stardance Example In the Stardance Example, I’ve added Banner Images Support if available and Creation Date and Devlog Count. More to come on the way. Thanks for reading everyone Love you all >3….."}, {"post_id": 73495, "ts": "2026-09-25T07:31:02Z", "hours": 2.2736, "text": "Devlog (No.16) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Bug Fixes in NeneUI Fixed a Bug where Padding caused Null Error in Some Widgets Fixed Card not having color passed down to UI Renderer Docs Updates The Documentation of Actions and Forms is now Complete!! Next Up Feedback and more! Example App (WIP) The Example app is located in stardance_ui.ts <– It’s an utilisation of Stardance API to show something and render it in NeneUI! (It’s in very very early stage also it’s letting me discover more stability bugs along with it.) Info on Plugins I’m planning to pause on Plugins development and not include the @neneys /payments plugin in Testing Kit for Now. Desktop App (Electron-like Solution) - [Planned] I’m planning to make an Electron-like Framework but instead of Chromium we’ll use NeneUI to render the Desktop App. Thank you for reading!! I love the readers ;)"}, {"post_id": 72332, "ts": "2026-09-22T17:57:30Z", "hours": 2.1519, "text": "Devlog (No.15) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere What’s New in Docs? -> I’ve Separated Base Components and Form Components -> TextField, ColorPicker, CheckBox Docs Added -> Sample Callback has been added What’s Next? Add Actions and DoAction Docs and Explaining Callbacks Navigation System What did i discover? Appearently if you do not have Scaffold in a new page, Flutter makes it completly black page. It seems like Scaffold is required to be defined from NeneUI Server-Side. Plans in NeneUI Implement More Controlled JavaScript Environment and Allow Enabling and Disabling JavaScript. Restrictions and More Functions to Manipulate Widgets One More thing Apparently, The NPM Package and Flutter Package is recieving alot of Downloads in week, idk how, But I’m very happy and i really want to thank them. . Anyways . Thank you for reading my devlog. Love you all!!!! 🥰🥰"}, {"post_id": 70646, "ts": "2026-09-19T14:48:32Z", "hours": 3.0544, "text": "Devlog (No.14) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Docs, Finally! Tho it’s not complete but foundation is now laid! Using Docsaurus for the Docs Changes in NeneUI? Upgrade Sample App Version Publish 0.0.6 to Dart for Combability Docs is available at https://kwe26.github.io/neneui/ NeneUI is becoming more and more productional! New Features & Bug Fixes Coming on the WAY!!! NOTE: Only a few components are documented as of now! Thanks for Reading Love you all 😘😘"}, {"post_id": 69490, "ts": "2026-09-17T04:53:57Z", "hours": 7.1178, "text": "Devlog (No.13) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Bug Fixes And Improvements Fix Bug where FormSubmit would .pop the context out Upgrade flutter_js to flutter_quickjs Improve NeneUI Testing Kit for Android Setup Plugins Support New Features @neneys /payments - Yes, You can Accept Payments from NeneUI now too! Docs - Working on a Documentation based on Docusaurus What’s Next? Improving JS Execution and Making it More Secure Working on Form Submission to fix some issues An Proper Docs for every Humans! Making @neneys /payments on Flutter to use url_launcher or Native Plugins instead of rendering it in Web, would be better. More Plugins!! Hey, i’ve been thinking would it be good idea, if we make it an Electron like Windows/Linux/macOS App Making too but instead of Chromium it’ll be flutter render?? Thanks, kwee26 Love you all 🥰"}, {"post_id": 67573, "ts": "2026-09-13T18:27:12Z", "hours": 1.0572, "text": "Devlog (No.12) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Bug Fixes & Improvements Larger Files Now Do not Freeze The Entire App It can now process Large Files (e.g. Ubuntu ISO) A Single Error in Widget (exclusion of RenderOverflows) now don’t block entire app, As seen in Screenshot (2) below Error Handling has been improved. Re-Designed: NeneUI Testing Tool It has been Renamed into NeneUI Testing Kit It now has a Nice Looking UI with Nene in Right! Links to Project now included and Confirmation of Launch App and Plugins Selection Anyways, That’s it for Today! Thank you! Love you all 🤞🥰"}, {"post_id": 67046, "ts": "2026-09-13T02:51:26Z", "hours": 2.0111, "text": "Devlog (No.11) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere New Widget (as a plugin) : VideoFrame Widget, Currently this is an prototype and i don’t gurantee complete stableness in this VideoFrame. Other Major Changes Migrated to Latest Flutter SDK Removed Material Mentions Upgraded shadcn_flutter New Fatal Error When Starting up I have re-designed the Fatal Error when NeneUI couldn’t be initialized for some reason, now you can Try Again or even copy the Stacktrace on why is it happening What are the plans? Improve Stability & Performance Focus more on Documentation Theese Suggestions were given by Anon in Review, and i think i should focus on them more. And that’s it for now Thank you, for reading Love you all 😘😘"}, {"post_id": 65523, "ts": "2026-09-10T18:36:33Z", "hours": 1.1789, "text": "Devlog (No.10) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Here are the changes that were made and are planned NeneUI Tester Pre-hosted NeneUI Examples @neneys /payments system Video, Audio Players Custom Widget SharedPreferences Please suggest more changes that can be added to @neneys /ui Love you all ❤️"}, {"post_id": 51713, "ts": "2026-08-21T15:22:14Z", "hours": 5.1417, "text": "Devlog (No.9) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere I hope this is the last Devlog, before shipping the first version Here’s the List of Changes made Added an Sample Project Extended Docs and Readme.md Fixed Bugs in TS Library Themes Support! showDialog -> showOverlay Package Renamed to as @neneys /ui I really love this project, i always hoped for an Remote Server Side Native UI Rendering, And here we are with first release!!! I hope for your genuine support and love for this project! Thanks, I love everyone ❤️ !"}, {"post_id": 30251, "ts": "2026-07-17T17:55:58Z", "hours": 6.4769, "text": "Devlog (No.8) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere I’ve thought of more useful features and added them as well, and you will love it Here are the list of the features i’ve added File Uploads!! Breadcrumbs PropsReplacement Improved Nene HTTP ColorPickers! Some Docs Image Memory File uploads was the hardest part to do, it took a lot of time debugging and working around then there was loading image from memory i had to figure out what to do, so i just made it to load the selected file from memory Known Funny Issue: Please don’t try uploading a GB worth of file, it freezes up your system, i think i may try writing an exception that prevents 500MB+ file being uploaded otherwise it’s disaster I’m planning to ship 1st release by next blog soon enough, working on it from now on so it would be easier for everyone to use it Here’s the Screenshot"}, {"post_id": 15198, "ts": "2026-06-24T18:20:21Z", "hours": 5.385, "text": "Devlog (No.7) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere I’ve been thinking and working on new features which would make it possible for NeneUI to be used productionally by all the developers New Features ForEach Widget Support to ForEach Terms Column ( ' #forEachTest ' , { mainAxisAlignment : MainAxis . start , crossAxisAlignment : CrossAxis . start , foreach : true , children : ForEach ( ' #forEachW ' , { varToForEach : \" testMap \" , namespaceVar : \" testMap \" , child : Row ( ' #roWCh ' , { children : [ Text ( ' #TextABC ' , { text : Var ({ template : \" Hello, %1 (%2) \" , variable : \" for.title,for.gender \" }) }) ] }) }) }) The Code ForEach will only work inside children:[] where multiple widgets can be rendered Such as Row, Flex, Table Frame Widget Frame ( ' #frame ' , { framePath : \" /ui/test \" }) This Widget Functions just like IFrames in HTML to render something inside another page Table Widgets The Table Widgets Include Table , TableCell , TableFooter , TableRow , TableSize DatePicker Widget DatePicker ( ' #dtp ' , { mode : PromptMode . dialog , defaultDate : DateTime . now () }) PromptMode and DateTime are now integrated within Core.ts JavaScript Code Execution!! YOU CAN NOW EXECUTE JAVASCRIPT CODE TOO!! DoAction ( Action . JAVASCRIPT , `console.log(\"Var: \"+getVariable(\"#userName.controller\")); action(' ${ Action . SHOW_TOAST } ', Date.now() + ' Hello World ' + getVariable(\"#userName.controller\"));` ) Currently Using flutter_js which in turn uses QJS behind the scenes Modifications Image now supports Variable URL Support as well showScaffold Flag has been added to Daikon Renderer for Frame Planned Stuffs ListView and GridView Support in Future Updates Usable JS Features OTP Input and More Shadcn_flutter Widgets Thanks for Reading!!!!"}, {"post_id": 8648, "ts": "2026-06-14T11:32:13Z", "hours": 5.4906, "text": "Devlog 7 . Context: it is an Server-Side Rendering Library for Flutter Apps so the UI can be updated without even touching flutter’s code or re-compiling the app. . . New Features Added NeneHTTP and NeneCallback for Callback (IPC-like) Add AlertDialog Support Add HoverCard Widget Improve Types of Widgets to Ensure Easy Integration Remove Unused Imports Half-Done ForEach Support, Quite Difficult but will try to implement it soon. FormSubmit Button Widget Added Widget Props Manipulation as well to Manipulate or Replace Widget at any place. . I’m working on more new features to integrate, hopefully they get integrated with ease."}, {"post_id": 7465, "ts": "2026-06-12T13:27:31Z", "hours": 5.6386, "text": "Devlog 6 . . Context: It is an Server Side Rendering Library for Flutter Apps so the UI can be updated without even touching flutter’s code and re-compiling the entire app. . New Features Introduced CheckBox and TextField widgets with state reading support Added Context Menu functionality for various widgets Added NavigationItem, NavigationGroup, and NavigationDivider components Implemented Compare() for conditional UI rendering Added Refresh Interface option in Daikon Debug Integrated Iconify API for dynamic icon resolution and rendering . . I Plan to add More Features sooner enough. Completing NeneUI."}, {"post_id": 6281, "ts": "2026-06-10T15:43:26Z", "hours": 2.4778, "text": "Devlog #5 . Project Context: . This is a Server Side Rendering Library for Flutter that allows you to update the User Interface of app without completely re-building the app granting control from server-side and natively render all widgets instead of WIdget. . . In This Update I’ve added Image Widget Complete Support in Daikon Renderer along with SVG Support Daikon Debugger Variable Display and Setting ButtonGroup Widget too! You can see the attached video!!."}, {"post_id": 5810, "ts": "2026-06-09T18:58:11Z", "hours": 1.1883, "text": "Devlog #4 . Context for thoose who don’t know: I’m making an Server Side Rendering Library, Where You can Update your App without updating the entire app everywhere. Write in JS, Works in FLutter . Updates: Add New Widgets such as Card, Image, Feedback Widget (CircularProgressIndicator, LinearProgressIndicator, Button), Add Actions for Simple Reactivity . It uses the ID_Database to Manage Visibility of Widgets (Demo Given), The Actions can also invoke Navigation Push and Push Replace. and Also Show TOAST!! . Hope to see more coming changes soon to make it productional use ;) 😋. Thanks Kiwi"}, {"post_id": 5536, "ts": "2026-06-09T10:51:53Z", "hours": 2.0575, "text": "Devlog #3.1 . Context for thoose who don’t know: I’m making a library that can render user interface for flutter from JavaScript, You can also refer it as Server Side UI Rendering, Where you can update your flutter apps without Updating the entire app. . I’ve added Some More Widgets such as Card, Image, Expanded, Container support to Flutter Render too! . Some Feedback Widgets are also added such as CircularProgressIndicator and LinearProgressIndicator . I’m also planning on idDatabase Manipulation and doAction() to perform actions as well. . I’m planning on to adding more and also an Tiny JS Runtime as well for Reactivvity (i’ve planend it for now) . More things Coming ;) 🥰"}, {"post_id": 5395, "ts": "2026-06-09T04:36:02Z", "hours": 1.1511, "text": "Devlog #3 . Context for thoose who don’t know: I’m making a library that can render user interface for flutter from JavaScript, You can also refer it as Server Side UI Rendering, Where you can update your flutter apps without Updating the entire app. . I’ve finally made it to parse and render the User Interface in Flutter, I’ts really minimal right now. . I’m focusing to add more Widgets and stuff and reactivity of widgets in the end. . There’s lot more things coming ;;33😉"}, {"post_id": 5041, "ts": "2026-06-08T18:19:18Z", "hours": 1.4267, "text": "I have partially done the flutter renderer, haven’t tested it yet. will continue working tomorrow."}, {"post_id": 4852, "ts": "2026-06-08T11:53:22Z", "hours": 1.4711, "text": "Hi there, I’m working on a Server Side UI Rendering Linking Flutter and JavaScript. . You will write the code in javascript and it will be converted into JSON, which the flutter will parse and render. it is much more effective than WebView Apps. . And Since it’s Native means Native Performance too. . Currently I’ve only added few widgets in TypeScript only. . Scaffold, Center, Container, EdgeInsets, Expanded, Padding, SizedBox, Column, Row, SingleChildScrollView, Flex, Text, TextStyle . And Some Enums as well. . I’ve not made Flutter Renderer Yet. The lib/* currently looks like."}]...
|
Title: NeneUI (@neneys/ui) by @pksmkwe26 | Stardan Title: NeneUI (@neneys/ui) by @pksmkwe26 | Stardance
Devlogs:
Hi there, I’m working on a Server Side UI Rendering Linking Flutter and JavaScript. . You will write the code in javascript and it will be converted into JSON, which the flutter will parse and render. it is much more effective than WebView Apps. . And Since it’s Native means Native Performance too. . Currently I’ve only added few widgets in TypeScript only. . Scaffold, Center, Container, EdgeInsets, Expanded, Padding, SizedBox, Column, Row, SingleChildScrollView, Flex, Text, TextStyle . And Some Enums as well. . I’ve not made Flutter Renderer Yet. The lib/* currently looks like.
I have partially done the flutter renderer, haven’t tested it yet. will continue working tomorrow.
Devlog #3 . Context for thoose who don’t know: I’m making a library that can render user interface for flutter from JavaScript, You can also refer it as Server Side UI Rendering, Where you can update your flutter apps without Updating the entire app. . I’ve finally made it to parse and render the User Interface in Flutter, I’ts really minimal right now. . I’m focusing to add more Widgets and stuff and reactivity of widgets in the end. . There’s lot more things coming ;;33😉
Devlog #3.1 . Context for thoose who don’t know: I’m making a library that can render user interface for flutter from JavaScript, You can also refer it as Server Side UI Rendering, Where you can update your flutter apps without Updating the entire app. . I’ve added Some More Widgets such as Card, Image, Expanded, Container support to Flutter Render too! . Some Feedback Widgets are also added such as CircularProgressIndicator and LinearProgressIndicator . I’m also planning on idDatabase Manipulation and doAction() to perform actions as well. . I’m planning on to adding more and also an Tiny JS Runtime as well for Reactivvity (i’ve planend it for now) . More things Coming ;) 🥰
Devlog #4 . Context for thoose who don’t know: I’m making an Server Side Rendering Library, Where You can Update your App without updating the entire app everywhere. Write in JS, Works in FLutter . Updates: Add New Widgets such as Card, Image, Feedback Widget (CircularProgressIndicator, LinearProgressIndicator, Button), Add Actions for Simple Reactivity . It uses the ID_Database to Manage Visibility of Widgets (Demo Given), The Actions can also invoke Navigation Push and Push Replace. and Also Show TOAST!! . Hope to see more coming changes soon to make it productional use ;) 😋. Thanks Kiwi
Devlog #5 . Project Context: . This is a Server Side Rendering Library for Flutter that allows you to update the User Interface of app without completely re-building the app granting control from server-side and natively render all widgets instead of WIdget. . . In This Update I’ve added Image Widget Complete Support in Daikon Renderer along with SVG Support Daikon Debugger Variable Display and Setting ButtonGroup Widget too! You can see the attached video!!.
Devlog 6 . . Context: It is an Server Side Rendering Library for Flutter Apps so the UI can be updated without even touching flutter’s code and re-compiling the entire app. . New Features Introduced CheckBox and TextField widgets with state reading support Added Context Menu functionality for various widgets Added NavigationItem, NavigationGroup, and NavigationDivider components Implemented Compare() for conditional UI rendering Added Refresh Interface option in Daikon Debug Integrated Iconify API for dynamic icon resolution and rendering . . I Plan to add More Features sooner enough. Completing NeneUI.
Devlog 7 . Context: it is an Server-Side Rendering Library for Flutter Apps so the UI can be updated without even touching flutter’s code or re-compiling the app. . . New Features Added NeneHTTP and NeneCallback for Callback (IPC-like) Add AlertDialog Support Add HoverCard Widget Improve Types of Widgets to Ensure Easy Integration Remove Unused Imports Half-Done ForEach Support, Quite Difficult but will try to implement it soon. FormSubmit Button Widget Added Widget Props Manipulation as well to Manipulate or Replace Widget at any place. . I’m working on more new features to integrate, hopefully they get integrated with ease.
Devlog (No.7) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere I’ve been thinking and working on new features which would make it possible for NeneUI to be used productionally by all the developers New Features ForEach Widget Support to ForEach Terms Column ( ' #forEachTest ' , { mainAxisAlignment : MainAxis . start , crossAxisAlignment : CrossAxis . start , foreach : true , children : ForEach ( ' #forEachW ' , { varToForEach : " testMap " , namespaceVar : " testMap " , child : Row ( ' #roWCh ' , { children : [ Text ( ' #TextABC ' , { text : Var ({ template : " Hello, %1 (%2) " , variable : " for.title,for.gender " }) }) ] }) }) }) The Code ForEach will only work inside children:[] where multiple widgets can be rendered Such as Row, Flex, Table Frame Widget Frame ( ' #frame ' , { framePath : " /ui/test " }) This Widget Functions just like IFrames in HTML to render something inside another page Table Widgets The Table Widgets Include Table , TableCell , TableFooter , TableRow , TableSize DatePicker Widget DatePicker ( ' #dtp ' , { mode : PromptMode . dialog , defaultDate : DateTime . now () }) PromptMode and DateTime are now integrated within Core.ts JavaScript Code Execution!! YOU CAN NOW EXECUTE JAVASCRIPT CODE TOO!! DoAction ( Action . JAVASCRIPT , `console.log("Var: "+getVariable("#userName.controller")); action(' ${ Action . SHOW_TOAST } ', Date.now() + ' Hello World ' + getVariable("#userName.controller"));` ) Currently Using flutter_js which in turn uses QJS behind the scenes Modifications Image now supports Variable URL Support as well showScaffold Flag has been added to Daikon Renderer for Frame Planned Stuffs ListView and GridView Support in Future Updates Usable JS Features OTP Input and More Shadcn_flutter Widgets Thanks for Reading!!!!
Devlog (No.8) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere I’ve thought of more useful features and added them as well, and you will love it Here are the list of the features i’ve added File Uploads!! Breadcrumbs PropsReplacement Improved Nene HTTP ColorPickers! Some Docs Image Memory File uploads was the hardest part to do, it took a lot of time debugging and working around then there was loading image from memory i had to figure out what to do, so i just made it to load the selected file from memory Known Funny Issue: Please don’t try uploading a GB worth of file, it freezes up your system, i think i may try writing an exception that prevents 500MB+ file being uploaded otherwise it’s disaster I’m planning to ship 1st release by next blog soon enough, working on it from now on so it would be easier for everyone to use it Here’s the Screenshot
Devlog (No.9) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere I hope this is the last Devlog, before shipping the first version Here’s the List of Changes made Added an Sample Project Extended Docs and Readme.md Fixed Bugs in TS Library Themes Support! showDialog -> showOverlay Package Renamed to as @neneys /ui I really love this project, i always hoped for an Remote Server Side Native UI Rendering, And here we are with first release!!! I hope for your genuine support and love for this project! Thanks, I love everyone ❤️ !
Devlog (No.10) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Here are the changes that were made and are planned NeneUI Tester Pre-hosted NeneUI Examples @neneys /payments system Video, Audio Players Custom Widget SharedPreferences Please suggest more changes that can be added to @neneys /ui Love you all ❤️
Devlog (No.11) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere New Widget (as a plugin) : VideoFrame Widget, Currently this is an prototype and i don’t gurantee complete stableness in this VideoFrame. Other Major Changes Migrated to Latest Flutter SDK Removed Material Mentions Upgraded shadcn_flutter New Fatal Error When Starting up I have re-designed the Fatal Error when NeneUI couldn’t be initialized for some reason, now you can Try Again or even copy the Stacktrace on why is it happening What are the plans? Improve Stability & Performance Focus more on Documentation Theese Suggestions were given by Anon in Review, and i think i should focus on them more. And that’s it for now Thank you, for reading Love you all 😘😘
Devlog (No.12) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Bug Fixes & Improvements Larger Files Now Do not Freeze The Entire App It can now process Large Files (e.g. Ubuntu ISO) A Single Error in Widget (exclusion of RenderOverflows) now don’t block entire app, As seen in Screenshot (2) below Error Handling has been improved. Re-Designed: NeneUI Testing Tool It has been Renamed into NeneUI Testing Kit It now has a Nice Looking UI with Nene in Right! Links to Project now included and Confirmation of Launch App and Plugins Selection Anyways, That’s it for Today! Thank you! Love you all 🤞🥰
Devlog (No.13) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Bug Fixes And Improvements Fix Bug where FormSubmit would .pop the context out Upgrade flutter_js to flutter_quickjs Improve NeneUI Testing Kit for Android Setup Plugins Support New Features @neneys /payments - Yes, You can Accept Payments from NeneUI now too! Docs - Working on a Documentation based on Docusaurus What’s Next? Improving JS Execution and Making it More Secure Working on Form Submission to fix some issues An Proper Docs for every Humans! Making @neneys /payments on Flutter to use url_launcher or Native Plugins instead of rendering it in Web, would be better. More Plugins!! Hey, i’ve been thinking would it be good idea, if we make it an Electron like Windows/Linux/macOS App Making too but instead of Chromium it’ll be flutter render?? Thanks, kwee26 Love you all 🥰
Devlog (No.14) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Docs, Finally! Tho it’s not complete but foundation is now laid! Using Docsaurus for the Docs Changes in NeneUI? Upgrade Sample App Version Publish 0.0.6 to Dart for Combability Docs is available at https://kwe26.github.io/neneui/ NeneUI is becoming more and more productional! New Features & Bug Fixes Coming on the WAY!!! NOTE: Only a few components are documented as of now! Thanks for Reading Love you all 😘😘
Devlog (No.15) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere What’s New in Docs? -> I’ve Separated Base Components and Form Components -> TextField, ColorPicker, CheckBox Docs Added -> Sample Callback has been added What’s Next? Add Actions and DoAction Docs and Explaining Callbacks Navigation System What did i discover? Appearently if you do not have Scaffold in a new page, Flutter makes it completly black page. It seems like Scaffold is required to be defined from NeneUI Server-Side. Plans in NeneUI Implement More Controlled JavaScript Environment and Allow Enabling and Disabling JavaScript. Restrictions and More Functions to Manipulate Widgets One More thing Apparently, The NPM Package and Flutter Package is recieving alot of Downloads in week, idk how, But I’m very happy and i really want to thank them. . Anyways . Thank you for reading my devlog. Love you all!!!! 🥰🥰
Devlog (No.16) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Bug Fixes in NeneUI Fixed a Bug where Padding caused Null Error in Some Widgets Fixed Card not having color passed down to UI Renderer Docs Updates The Documentation of Actions and Forms is now Complete!! Next Up Feedback and more! Example App (WIP) The Example app is located in stardance_ui.ts <– It’s an utilisation of Stardance API to show something and render it in NeneUI! (It’s in very very early stage also it’s letting me discover more stability bugs along with it.) Info on Plugins I’m planning to pause on Plugins development and not include the @neneys /payments plugin in Testing Kit for Now. Desktop App (Electron-like Solution) - [Planned] I’m planning to make an Electron-like Framework but instead of Chromium we’ll use NeneUI to render the Desktop App. Thank you for reading!! I love the readers ;)
Devlog (No.17) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Bug Fixes Fix where Height/Width of Image’s Default Value was always 0. Docs Progress Added Content Documentation Added Feedback Widgets Docs such as Progress, CircularProgressIndicator, etc. Experiment Tried to Experiment with Rust Renderer, It did not work as i don’t know rust much properly Desktop Apps - Planning Update I’ve planned to make the Desktop Apps be static but built from TypeScript and Bundle Flutter + Bun Shipping Desktop Apps. Stardance Example In the Stardance Example, I’ve added Banner Images Support if available and Creation Date and Devlog Count. More to come on the way. Thanks for reading everyone Love you all >3…..
Devlog (No.18) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere New Feature & Changes Changed Overlay Circular Progress Indicator to LinearProgressIndicator near AppBar for Form Submit New Action RELOAD UI (Soft-reloads UI) DebugBar (A.k.a Orb) Stays always active Docs Changes Add Layouts Docs (Column,Row) Avatar Widget Docs Button, ButtonGroup MainAxis, CrossAxis Documented That’s it for today, Thanks for Reading!!
Devlog (No.19) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere New Changes Added a Mouse Hover Effect like in Inspect Element for Debug Bar Docs Changes Added Docs about SingleChildScrollView Compare & Variables Documentation Breadcrumbs Future Changes Custom Widgets Layout Widgets mostly Custom BottomNavBar Possible WebUI for SEO Purposes I’ve planned with PHP, Next.js but i have to yet choose which one would be easier to implement and best SEO. I’m having a slight fever, so i’m unable to update many things i’ve planned in my mind, i apologise for it. Anyways Thanks everyone, Love you for the support ❤️
Devlog (No.20) - A tiny update NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere CUSTOM WIDGET YAY!!!! NeneBottomNavbar Bottom Navigation Bar for NeneUI Apps! With Two Types for Now normal , float About NeneNavbottom and NeneNavItem are the new widgets added. Any New Widget? Yes, NeneSidebar as well and NeneDisplay for Route and SPA System THANKS for Reading !!! Love you all.
Devlog (No.21) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere New Widget & Major Feature Added NeneDisplay to Change the Area of the Screen with a custom route, Like we see on normal apps. NeneDisplay It follows the index of bottomNavbar (or prescribed Variable) and loads the corresponding Page on the Area specified. Only Scaffold Body as a whole is supported as of now. NeneDisplay ({ urlMap : { 0 : " /ui/route_a " , 1 : " /ui/route_b " } }) It has urlMap and followIndex arguments only. Quick Note: It does not create a complete new Nene IDDB, It exists on top of the existing one so the variables do not disappear that were assigned by previous page . Thanks for reading today!! I hope your day goes well Love you all >3
Devlog (No.22) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere NeneWorld - An Sample App NeneWorld is an Sample App for @neneys /ui Showcasing some Little Things of NeneUI. *Who Made It? : * Claude! Yes SKILL.md is coming soon to everyone, where the AI can read SKILL.md and create an App using NeneUI Library. Features? of this Sample App Demo of NeneBottomnav, NeneDisplay Images Buttons and Callback Pokedex Dw, Only the Sample is AI-written, The Main Project @neneys /ui Library is still an human-made project. And i do not want AI to take over NeneUI and write it itself, that would ruin this Library Why Skill.MD? So, that Users Can make an App using NeneUI and also ask AI For Help where they feel stuck. Tho it consumes tokens alot, cus NeneUI is becoming an more larger library Excuz me what is NeneUI? As i told earlier, NeneUI allows you to write the entire App UI in TypeScript and Render it Server-Side and produce in front of User. AND NO NENEUI IS NOT A WEBVIEW. It translates TypeScript into NATIVE Flutter Widgets. So the Interface feels native and uses Less RAM in this RAM Crisis Economy. Status? NeneUI is still in early stages, as i consider it. It still lacks many things such as an shared_preferences Implementation, WebSockets and proper Secure JavaScript Execution System. Conclusion I love if i get even tiny support for NeneUI and the people reading this devlog, I love you all who support me ;) Love you >3… Thanks for reading…!!!!
Devlog (No.23) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere New Features Shared Preferences ReqType Action.SOFT_RELOAD SharedPreferences You can use SET_PREFS and REM_PREFS Action to Set or Remove and PREF_EXISTS with exists and not parameters for functions GetPrefs When ReqType.POST is present you could use GetPrefs to get the preference value in UI/Callback Route GetFile Returns File Uploaded’s Path as in uploads/file.extension only works in Callback as that’s the place where you could recieve file. Action.SOFT_RELOAD Reloads the Screen without Changing any State or Position of Page. Other Changes :- Remove Old docs/ folder and SKILL.md for AI Agents to utilise NeneUI properly Thanks for reading. love you all 🥰🥰
Devlog (No.24) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere WebSocket Support NeneUI now supports WebSocket Rendering and Execution WebSocket ({ url : " ws://localhost:3500/ws/home " , }) What Can it Do? Show Widgets Over WebSockets Execute Actions Use Cases? ChatBots Live News? Messaging? New Action Action.SEND_SOCKET Uses FormSubmitAction as Parameter with :socket: as the callbackPath New Functions SendWidget(socket, Widget) SendAction(socket, DoAction) Thanks for Reading! Love you all readers >3!
Devlog (No.25) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere New Widget Layouts Layout Layouts and Layout It helps you make an Layout on Screen as show in Screenshot. And It can be arranged via an Handle too, It supports unlimited Layout on Screen as much as space is there. Removed Removed Skeleton Widget from Docs as it was no-longer rendering properly README.md The README.md is now updated with some Images and Decorative Work for looking more nicer and attractive New Action New Action such as ACTION.SET_DISPLAY_INDEX and ACTION.CLOSE_OVERLAY AlertDialog is now documented under FeedBack Section Nene Desktop Runtime Nene Desktop Runtime is half-done and still has some issues, will try to fix it and make it install and run Apps soon! Thanks for reading!! I love you all >3
Devlog (No.26) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Web - Platform Support Finally, @neneys /ui is now supported on Web (Flutter Web). The Inconsistencies are now managed making @neneys /ui work directly on Web Too. *Limitations on Web * Same as Flutter Web - It’s hard for crawlers to idenitfy content of web pages. I’m trying to fix that issue by double-rendering. Mostly by Setting-up an PHP to Interept the UI into HTML for Crawlers Making SEO work good! README.md Changes FAQ Added into README (Address the Linux Compile Issue in FAQ related to quickjs_engine) More Decorative Elements Github Actions Nene UI Testing Kit finally compiles on all 5 (Windows, Linux, Android, iOS, macOS) successfuly. Linux, macOS - May require libmpv to be installed or available on system path We seem to be very close to first v1 Release with maximum widgets and support. Thanks for Reading!! I love you all 3<.!!!
Devlog (No.27) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere JavascriptEngine JavaScriptEngine({…}) which could control Whether JS should be enabled or not and how much stackSize should be specified. xhr should be enabled or disabled SEO Support for Flutter Web With the Help of PHP to Render Text, Image and some minimal data. PHP can provide basic Page to Crawlers requesting the site. So that SEO could be utilised. However, PHP Version Selection is limited to only allow the recently patched PHP versions for Security Reasons. Github Actions Added Nene Desktop Runtime to be built in Github Actions Bug FIxes @neneys /ui had a Critical Memory and GPU Leak issue which kept the GPU usage at constant high even when not being used and being left Idle. Docs Updates JavaScript Execution and SEO Setup are now documented in the Docs and pub.dev and npmjs packages are now updated NeneUI Testing Kit NeneUI Testing Kit are now available on Web https://kwe26.github.io/neneui/tester However It could only open HTTPS and Cors (*) Apps only and is kind of limited with some JS Execution Issues. The User Interface of Testing Kit is also quite updated. Close to Release NeneUI is now Close to being 1.0.0 Release finally! Within 1-2 devlogs i’ll be shipping soon.!! Thanks for reading! Love you <3!
Devlog (No.28) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere README.md README.md has been improved alot with visual designs and details with Links and References Provided too and some Yashiro Nene based Images. Figma File is provided in link. Docs Updates The Home Page of Docs has been updated to look better and provide more information about NeneUI. The Docs Is now extended and now includes more information about implemented Widgets and Link to NeneUI Testing Kit NeneUI Testing Kit The NeneUI Testing Kit has been updated to show examples of @neneys /ui One being an AI Chat Application and other being an random Test with Pokedex, etc. Nene Desktop Runtime While Still Work in Progress, You can now follow the docs to Launch and test the Desktop Runtime. The Desktop Runtime is a standalone application that could embed @neneys /ui in it and Make Desktop Applications with just TypeScript. A Stable Release NeneUI will be released as a stable version 1.0.0 with Pub.dev and NPM Versions available soon as possible and will be kept updated Thanks for your support till 1.0.0 Release! I hope we meet soon! Thanks <3333
Devlog (No. 29) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere About the Memory Leak Issue being Fixed Many People in Review told me how did the Memory Leak get fixed and what was the cause of it? Blog Link May not open now, Since it hasn’t been built yet Docs Changes So, Here’s the docs with it being documented in the blog will be available once Github Actions Finishes Updated Debugger I’m working on a updated @neneys /ui Debugger to be more ease-to-use. Will be finished in a less time, The Debugger will allow the ease of accessing and modifying an Widget Data for the Session and manipulate Shared Preferences. Thanks for reading!! Love you all >3 ❤️
Devlog (No. 30) NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Changes Update some parts of Daikon Debugger and removed some unnessary codes. Extended Debugger Width Desktop Runtime with unused RPC (will work on it) Explanation Diagram Drawn an Explanation Diagram on Figma that shows how Interface and Callbacks works, hope it’s good and does give some idea about @neneys /ui Thanks for reading this minidevlog.!! Love you all <3
Devlog (No. 31) - Thank you NeneUI is an Server Side User Interface Rendering Library allowing developers to design user interface purely server-side without worrying about updating the code everywhere Thanks to everyone for supporting me throught Stardance from when i had started the Project. I will continue @neneys /ui on Coral Hackclub if i get enough time. I’m really thankful to Stardance which encouraged me to write this large project. Thanks Love you all :3
Ships:
I made an Server-Side Rendering Library for Flutter, You write the Code in TypeScript and the Flutter Renderer (i named it Daikon) parses it into Native Code, Without WebViews! Completely Native. The Challenges i faced were, how to like index the widgets to be used while JSON becomes parsed and the handling of #ids and most importantly, ForEach Option and the JS Option. I used shadcn_flutter for UI Elements that were rendered, i really like shadcn_flutter’s Design. it’s really cool. I tried to keep it as much as user-friendly as possible, by adding TypeScript Types so VSCode Auto-complete could work. I have also added File Uploads feature with In-Memory Image Display too, if it’s an Image, it is really helpful, even with Server Callbacks and such things Theese are necessary for an production application. And Actions such as TOAST, DIALOG, NAVIGATE, etc. This is the intresting part too!! You can try out the library at https://www.npmjs.com/@neneys/ui for testing it out! While the docs is still not complete, i hope that the documented Widgets could work for your expirment too! I plan to continue this Library even after the program ends!! Love you all! 🥰
@neneys /ui - NeneUI It is an Server-Driven UI Library Which Interpretes TypeScript into an Native Rendered Flutter Widget. Basically, You can write your Entire App in TypeScript and It gets Rendered Into Native Flutter Widgets without WebView. Why? We need Server-Driven UI to ensure that we do not need to update an entire app for a little UI changes or even major overhauls of the App Interface, We could just change it on Server-Side and updated without going through the process of Approval and such. Major Updates After the Previous Ship NeneUI Testing Kit has been buffed with Debug Bar and More Platforms Support for WebSocket Rendering Web Support (along with SEO PHP for Web Crawlers) Memory/GPU Leak issues fixed! Advanced & Improved + Detailed Documentation Decorated README.md Documentation The New Documentation is now written in Docsaurus and hosted in Github Pages at https://kwe26.github.io/neneui/ along with the NeneUI Testing Kit at https://kwe26.github.io/neneui/tester . While it took alot of time documenting each working Widgets but it has now made using @neneys /ui more easier. New Widgets That were Added NeneDisplay and NeneNavbottom - Theese Two Widgets Now help you construct an Bottom Bar with Various Pages as Content that can be now switched from one place to another without reloading the entire page. Layouts and Layout - This allows you to put many Content on Side of Each Other and allow you the drag wheel to drag and arrange the size. WebSocket Widget - It can also render Widgets over WS live real-time making it an really useful feature. Some New Action Callbacks were also added such as SOFTRELOAD that softly reloads the UI without changing the states and maintains the UI. DebugBar The Testing Kit Now includes and Debug Bar to help Developers Reload the UI or check the #id Declarations and Variables Value NeneDesktopRuntime An Desktop Runtime that is WIP but could help replace Electron.js where everything is WebView and sucks alot of ram. But NeneDesktopRuntime can render the Widgets with TypeScript into Native Widgets. Examples There are now examples bundled with NeneUI Testing Kit, One is an AI Chat Application and other is called NeneWorld with Pokedex and Weather API and Country API uses to showcase the Widgets FAQ Page An FAQ Page has been added to ensure the Users dont get stuck somewhere in the library and could get some reference on it Such as the Linux issue with quickjs where the fix is provided. Conclusion There were alot of challenges while making this library with my Laptop dropping to 0.47GHz at random moments and searching the pub.dev docs for shadcn_flutter and upgrading sub-libraries and testing stuff the major headache being the Navigation and Web Support (SEO is done via PHP to show Web Crawlers meangingful HTML to index).
@neneys /ui - NeneUI It is an Server-Driven UI Library Which Interpretes TypeScript into an Native Rendered Flutter Widget. Basically, You can write your Entire App in TypeScript and It gets Rendered Into Native Flutter Widgets without WebView. The Final Ship! I’m shipping the final @neneys /ui for everyone. Thank you for reviewing my project for the final time. Thanks to Stardance for encouraging me to help make this large project myself. But Wait What is This? You have an App, You want to Change it’s UI but you don’t want to wait 4-5 days for the review of App Store to pass, So you change the UI Server-Side and Poof! User Interface updated for everyone even without updating the App Examples There are now examples bundled with NeneUI Testing Kit, One is an AI Chat Application and other is called NeneWorld with Pokedex and Weather API and Country API uses to showcase the Widgets Conclusion There were alot of challenges while making this library with my Laptop dropping to 0.47GHz at random moments and searching the pub.dev docs for shadcn_flutter and upgrading sub-libraries and testing stuff the major headache being the Navigation and Web Support (SEO is done via PHP to show Web Crawlers meangingful HTML to index). Thank you for reviewing my project and Thanks to stardance for providing an platform. Love you all :3 💖...
|
1793681692.5536542
|
1793768092.5536542
|
|
37745
|
Trail by @UmarFarooq | Stardance
|
UmarFarooq
|
1
|
8.9
|
71
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T11:47:14Z", "hours": 8.0, "multiplier": 17.54, "payout": 71, "blessing": "neutral", "text": "Completed “trail”, a version control system (VCS) Core Features included: Initialize a trail repository. Run trail init Commit the project with a message. Run trail commit 'commit_description' View Commit history. Run trail log --oneline Revert back to any commit in history. Run trail revert 'commit_id' Compresses the file contents before storing them It hashes the content of each file and sets that hash as the title of that file after it is compressed. Now, it also supports nested files and folders (stores history for all the nested files/folders). Push your code to GitHub seamlessly. Pull code from GitHub How it works? Step-by-step workflow You run trail init , it initializes an empty trail repository. When you have completed a specific feature of your project, run trail commit 'commit_desc' to save a snapshot of current state of your project in history. Stores the current state of your project in .trail/history.json file. View commit history by trail log --oneline . If you want to go back to a specific commit in history, just run trail revert 'commit_id\" . (Get commit id by running ‘trail log –oneline’) Push code to GitHub using trail push owner/repo --token GITHUB-PAT --branch main Pull code from GitHub using trail pull owner/repo --token GITHUB-PAT --branch main How to generate a GitHub Personal Access Token (PAT): Go to Settings > Developer Settings > Personal Access Tokens > Tokens (classic) (or Fine-grained tokens ). Click Generate new token . Give your token a Note (description) and set an Expiration period. Select the required scope ( repo ) Click Generate token at the bottom. Copy and save your token immediately — GitHub will not show it to you again! Where history is stored? All the history of your project is stored in a .trail folder. The structure of .trail is: my-project/ │ ├── .trail/ │ ├── compressed/ │ └── history.json │ ├── file1.js ├── package.json └── ... history.json stores metadata for every commit. Each commit contains: Commit ID Commit message Date Mapping of project filenames to compressed file hashes { \"commitId\" : \"...\" , \"parentId\" : \"...\" , \"commitDesc\" : \"Added authentication\" , \"date\" : \"...\" , \"files\" : { \"index.js\" : \"af82bd73...\" , \"src/app.js\" : \"b17de09a...\" } } Suggest any other features you want to be in “trail”. I would love to get the feedback and improvement suggestions.", "repo": "https://github.com/umar-farooq-5757/trail", "demo": "https://www.npmjs.com/package/@umarfarooq57/trail"}]...
|
[{"post_id": 53952, "ts": "202 [{"post_id": 53952, "ts": "2026-08-24T17:39:03Z", "hours": 0.9044, "text": "Devlog 05 Fixed the trail revert \"commitId\" bug that was requested by a stardance reviewer. Plus, some other improvements."}, {"post_id": 49547, "ts": "2026-08-18T12:55:21Z", "hours": 3.5989, "text": "Devlog 04 Added the feature of pushing and pulling the code to GitHub using GitHub PAT (Personal Access Token) and octokit. How to do this? Push: trail push owner/repo --token GITHUB-PAT --branch main Pull: trail push owner/repo --token GITHUB-PAT --branch main"}, {"post_id": 33298, "ts": "2026-07-23T02:47:14Z", "hours": 0.7786, "text": "Devlog 03 Welcome to devlog 3 of trail, I have made some changes in src/commands/revertBack.js so it can bring back nested folders and files also when user runs trail revert commitId . Future goal: Enable users to push and pull code from GitHub. It is a complex task, but I will try my best to implement this."}, {"post_id": 32907, "ts": "2026-07-22T11:32:17Z", "hours": 2.1314, "text": "Devlog 02 Modified the structure of history.json to support nested files also. Before it, trail only saved commit data for root level files. Before: { \"commitId\" : \"...\" , \"commitDesc\" : \"Added authentication\" , \"date\" : \"...\" , \"files\" : { \"index.js\" : \"af82bd73...\" , \"app.js\" : \"b17de09a...\" } } After: { \"commitId\" : \"...\" , \"commitDesc\" : \"Added authentication\" , \"date\" : \"...\" , \"filesAndFolders\" : { \"D:\\\\Projects\\\\my_project_1\\\\file1.txt\" : \"af82bd73...\" , \"D:\\\\Projects\\\\my_project_1\\\\src\\\\app.js\" : \"b17de09a...\" } }"}, {"post_id": 32294, "ts": "2026-07-21T11:28:05Z", "hours": 1.6164, "text": "Devlog 01 Welcome to “trail”, a version control system built on the same core principles as Git. Features: Takes a snapshot of the current state of your project. View all the commit history using ‘trail log –oneline’. Revert back to a specific commit in history. Note: It currently supports only root level files (no nested folders), but I’m actively working on it to expand its features."}]...
|
Title: Trail by @UmarFarooq | Stardance
Devlogs:
Title: Trail by @UmarFarooq | Stardance
Devlogs:
Devlog 01 Welcome to “trail”, a version control system built on the same core principles as Git. Features: Takes a snapshot of the current state of your project. View all the commit history using ‘trail log –oneline’. Revert back to a specific commit in history. Note: It currently supports only root level files (no nested folders), but I’m actively working on it to expand its features.
Devlog 02 Modified the structure of history.json to support nested files also. Before it, trail only saved commit data for root level files. Before: { "commitId" : "..." , "commitDesc" : "Added authentication" , "date" : "..." , "files" : { "index.js" : "af82bd73..." , "app.js" : "b17de09a..." } } After: { "commitId" : "..." , "commitDesc" : "Added authentication" , "date" : "..." , "filesAndFolders" : { "D:\\Projects\\my_project_1\\file1.txt" : "af82bd73..." , "D:\\Projects\\my_project_1\\src\\app.js" : "b17de09a..." } }
Devlog 03 Welcome to devlog 3 of trail, I have made some changes in src/commands/revertBack.js so it can bring back nested folders and files also when user runs trail revert commitId . Future goal: Enable users to push and pull code from GitHub. It is a complex task, but I will try my best to implement this.
Devlog 04 Added the feature of pushing and pulling the code to GitHub using GitHub PAT (Personal Access Token) and octokit. How to do this? Push: trail push owner/repo --token GITHUB-PAT --branch main Pull: trail push owner/repo --token GITHUB-PAT --branch main
Devlog 05 Fixed the trail revert "commitId" bug that was requested by a stardance reviewer. Plus, some other improvements.
Ships:
Completed “trail”, a version control system (VCS) Core Features included: Initialize a trail repository. Run trail init Commit the project with a message. Run trail commit 'commit_description' View Commit history. Run trail log --oneline Revert back to any commit in history. Run trail revert 'commit_id' Compresses the file contents before storing them It hashes the content of each file and sets that hash as the title of that file after it is compressed. Now, it also supports nested files and folders (stores history for all the nested files/folders). Push your code to GitHub seamlessly. Pull code from GitHub How it works? Step-by-step workflow You run trail init , it initializes an empty trail repository. When you have completed a specific feature of your project, run trail commit 'commit_desc' to save a snapshot of current state of your project in history. Stores the current state of your project in .trail/history.json file. View commit history by trail log --oneline . If you want to go back to a specific commit in history, just run trail revert 'commit_id" . (Get commit id by running ‘trail log –oneline’) Push code to GitHub using trail push owner/repo --token GITHUB-PAT --branch main Pull code from GitHub using trail pull owner/repo --token GITHUB-PAT --branch main How to generate a GitHub Personal Access Token (PAT): Go to Settings > Developer Settings > Personal Access Tokens > Tokens (classic) (or Fine-grained tokens ). Click Generate new token . Give your token a Note (description) and set an Expiration period. Select the required scope ( repo ) Click Generate token at the bottom. Copy and save your token immediately — GitHub will not show it to you again! Where history is stored? All the history of your project is stored in a .trail folder. The structure of .trail is: my-project/ │ ├── .trail/ │ ├── compressed/ │ └── history.json │ ├── file1.js ├── package.json └── ... history.json stores metadata for every commit. Each commit contains: Commit ID Commit message Date Mapping of project filenames to compressed file hashes { "commitId" : "..." , "parentId" : "..." , "commitDesc" : "Added authentication" , "date" : "..." , "files" : { "index.js" : "af82bd73..." , "src/app.js" : "b17de09a..." } } Suggest any other features you want to be in “trail”. I would love to get the feedback and improvement suggestions....
|
1793681694.181773
|
1793768094.181773
|
|
48301
|
YSH Terminal by @Yousuff | Stardance
|
Yousuff
|
2
|
55.0
|
259
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-30T20:22:20Z", "hours": 53.0, "multiplier": 9.5, "payout": 250, "blessing": "neutral", "text": "YSH - Yousuf Shell Terminal A Java-based graphical shell built from scratch with real filesystem operations, LAN networking, customization, and developer-focused features. YSH combining a terminal-style graphical interface with real filesystem interaction, LAN communication, file sharing, command history, themes, developer mode, and various built-in utilities. MUST -> arrow: up up down down left right left right b a and boom ! Test ? try commadns - [ TAB completes commands , Arrow up and down rewinds the commadns ] help pwd developer mkdir “name” cd “name” scan chat host chat join “ip” msg “text” fileshare host fileshare get “ip” “file name” note then : add || view || list calc theme matrix easteregg run “app” sysinfo and theres more to see even it got some Eastereggs ! Features -> Real filesystem navigation and file operations Graphical terminal interface LAN chat and group communication LAN file sharing User management and announcements Command history and command completion Multiple terminal themes Developer mode Built-in calculator and notes System information Search, tree, head and tail utilities Konami code and other Easter eggs Time-sensitive greetings and shell customization Networking (makes it even Cool and Unique) YSH v10 includes LAN chat between YSH instances. Set your name with name “username” Host a chat room with host Join a room with connect “ip” Send messages with msg “text” List connected users with listusers Send announcements with announce “message” Remove a user with kick “username” Leave a room with disconnect Stop hosting with stophost", "repo": "https://github.com/YousufProjs-exe/YSH-v8", "demo": "https://github.com/YousufProjs-exe/YSH-v8/releases/"}, {"ship_num": 2, "ts": "2026-08-16T16:31:46Z", "hours": 2.0, "multiplier": 10.74, "payout": 9, "blessing": "neutral", "text": "visit github/YousufProjs-exe/YSH for better details", "repo": "https://github.com/YousufProjs-exe/YSH-v8", "demo": "https://github.com/YousufProjs-exe/YSH-v8/releases/"}]...
|
[{"post_id": 79411, "ts": "202 [{"post_id": 79411, "ts": "2026-10-13T21:05:26Z", "hours": 3.3569, "text": "YSH v10 - is live !!!! also 100+ hours on YSH development and 24+ hours on YSH v10 as per Hackatime is being recorded ! the new YSH 10 is a must test ! refer the repo for more details but its now got better structure with expanded tree!"}, {"post_id": 78863, "ts": "2026-10-11T20:05:22Z", "hours": 3.5956, "text": "Now - the Fileshare host and get ip bind together with preceding fileshare command with must ip and exact file with extension - more secured and Shell-ish."}, {"post_id": 77887, "ts": "2026-10-08T17:29:41Z", "hours": 2.2839, "text": "although the theme apply and set is fixed and replaced v10s tab completion with v8s as its the better one - i ended with new bug theme not found."}, {"post_id": 77667, "ts": "2026-10-07T19:36:22Z", "hours": 2.1581, "text": "YSH v10 - MAJOR UPDATES - Arch mode and some more themes - all literally all bugs fixed and v10 is said to be ready as BETA and DEMO to the upcoming versions!"}, {"post_id": 77395, "ts": "2026-10-06T19:47:34Z", "hours": 1.7189, "text": "tried adding more themes but the terminal remains terminal - either way its not what YSH aims for. but this devlog states the addition for beta Arch Mode."}, {"post_id": 76158, "ts": "2026-10-02T15:10:12Z", "hours": 0.7289, "text": "fixed Ctrl L, F1, “?”, Tab completes and utilities bugs - released YSH v8.1.4 to the repo !"}, {"post_id": 75339, "ts": "2026-09-29T19:39:39Z", "hours": 2.0822, "text": "Networking using new commands is back , scan , chat host , fileshare , ports , are now arranged into newer and better handlers!"}, {"post_id": 71620, "ts": "2026-09-21T05:40:00Z", "hours": 2.9861, "text": "tryna update led to downgrade , changing networking commands and protocol got Networking broken."}, {"post_id": 65497, "ts": "2026-09-10T17:57:24Z", "hours": 4.1744, "text": "Caped YSH v10 with check, run, sysinfo, whatsup, clac, notes (add / view / list / edit / delete), multiple command alias, pwd, home, major file and directory commands and with a lot of working shortcuts: Tab to complete, ctrl+l to clear, arrow up / down for history, ctrl+up / down to scroll and more."}, {"post_id": 64429, "ts": "2026-09-08T20:01:48Z", "hours": 3.0739, "text": "Some Builds happen Late. The more you explore the more you get to see some interesting stuff, try YSH [ Live on GitHub ] @ YousufProjs-exe/YSH-v8/releases"}, {"post_id": 63781, "ts": "2026-09-07T18:57:01Z", "hours": 4.9856, "text": "YSH v8 was one of the versions where the project started becoming much more than a basic terminal. This version brought major work around the GUI and filesystem, while also pushing YSH toward a more complete and usable environment. It became an important foundation for the features and architecture that came later in v10. Looking back at v8 now, it’s pretty cool seeing how much the project has evolved from this point."}, {"post_id": 60431, "ts": "2026-09-02T19:09:50Z", "hours": 6.6158, "text": "YSH v10 ( LAN Networking ) update : LAN Chat is fine back to v10 with additional features like chat history and better with easy to join system , upcoming File Share is also coming with… its a secret."}, {"post_id": 56590, "ts": "2026-08-28T12:27:27Z", "hours": 3.8936, "text": "YSH v10 - Equalizing With v8 Today, I focused on bringing the newly rebuilt YSH v10.GUI closer to the feature set and usability of YSH v8.GUI. Worked on bringing YSH v10.GUI closer to YSH v8 by restoring command history, clear, home, time/date, calculator, system commands, terminal shortcuts, Tab completion, themes, late-night behaviour, and better prompt protection. Also improved filesystem navigation while keeping v10’s new modular architecture."}, {"post_id": 55101, "ts": "2026-08-26T15:39:36Z", "hours": 3.8436, "text": "YSH v10 - Rearrangement and better file system and with a new milestone to achieve ; YSH v10 for now says Hello!!! and ‘echo’ butttt theres alot more to come, CLI and Lightweight Task Manager too."}, {"post_id": 53073, "ts": "2026-08-23T14:09:00Z", "hours": 7.1344, "text": "YSH - Terminal , built in Java with versions all having a great vision and stories to remember and with this I completed the LAN Chat better with new Announcement , Kick , Listusers and other Admin only commands."}, {"post_id": 48282, "ts": "2026-08-16T16:19:53Z", "hours": 1.54, "text": "YSH - Terminal"}]...
|
Title: YSH Terminal by @Yousuff | Stardance
Devlo Title: YSH Terminal by @Yousuff | Stardance
Devlogs:
YSH - Terminal
YSH - Terminal , built in Java with versions all having a great vision and stories to remember and with this I completed the LAN Chat better with new Announcement , Kick , Listusers and other Admin only commands.
YSH v10 - Rearrangement and better file system and with a new milestone to achieve ; YSH v10 for now says Hello!!! and ‘echo’ butttt theres alot more to come, CLI and Lightweight Task Manager too.
YSH v10 - Equalizing With v8 Today, I focused on bringing the newly rebuilt YSH v10.GUI closer to the feature set and usability of YSH v8.GUI. Worked on bringing YSH v10.GUI closer to YSH v8 by restoring command history, clear, home, time/date, calculator, system commands, terminal shortcuts, Tab completion, themes, late-night behaviour, and better prompt protection. Also improved filesystem navigation while keeping v10’s new modular architecture.
YSH v10 ( LAN Networking ) update : LAN Chat is fine back to v10 with additional features like chat history and better with easy to join system , upcoming File Share is also coming with… its a secret.
YSH v8 was one of the versions where the project started becoming much more than a basic terminal. This version brought major work around the GUI and filesystem, while also pushing YSH toward a more complete and usable environment. It became an important foundation for the features and architecture that came later in v10. Looking back at v8 now, it’s pretty cool seeing how much the project has evolved from this point.
Some Builds happen Late. The more you explore the more you get to see some interesting stuff, try YSH [ Live on GitHub ] @ YousufProjs-exe/YSH-v8/releases
Caped YSH v10 with check, run, sysinfo, whatsup, clac, notes (add / view / list / edit / delete), multiple command alias, pwd, home, major file and directory commands and with a lot of working shortcuts: Tab to complete, ctrl+l to clear, arrow up / down for history, ctrl+up / down to scroll and more.
tryna update led to downgrade , changing networking commands and protocol got Networking broken.
Networking using new commands is back , scan , chat host , fileshare , ports , are now arranged into newer and better handlers!
fixed Ctrl L, F1, “?”, Tab completes and utilities bugs - released YSH v8.1.4 to the repo !
tried adding more themes but the terminal remains terminal - either way its not what YSH aims for. but this devlog states the addition for beta Arch Mode.
YSH v10 - MAJOR UPDATES - Arch mode and some more themes - all literally all bugs fixed and v10 is said to be ready as BETA and DEMO to the upcoming versions!
although the theme apply and set is fixed and replaced v10s tab completion with v8s as its the better one - i ended with new bug theme not found.
Now - the Fileshare host and get ip bind together with preceding fileshare command with must ip and exact file with extension - more secured and Shell-ish.
YSH v10 - is live !!!! also 100+ hours on YSH development and 24+ hours on YSH v10 as per Hackatime is being recorded ! the new YSH 10 is a must test ! refer the repo for more details but its now got better structure with expanded tree!
Ships:
visit github/YousufProjs-exe/YSH for better details
YSH - Yousuf Shell Terminal A Java-based graphical shell built from scratch with real filesystem operations, LAN networking, customization, and developer-focused features. YSH combining a terminal-style graphical interface with real filesystem interaction, LAN communication, file sharing, command history, themes, developer mode, and various built-in utilities. MUST -> arrow: up up down down left right left right b a and boom ! Test ? try commadns - [ TAB completes commands , Arrow up and down rewinds the commadns ] help pwd developer mkdir “name” cd “name” scan chat host chat join “ip” msg “text” fileshare host fileshare get “ip” “file name” note then : add || view || list calc theme matrix easteregg run “app” sysinfo and theres more to see even it got some Eastereggs ! Features -> Real filesystem navigation and file operations Graphical terminal interface LAN chat and group communication LAN file sharing User management and announcements Command history and command completion Multiple terminal themes Developer mode Built-in calculator and notes System information Search, tree, head and tail utilities Konami code and other Easter eggs Time-sensitive greetings and shell customization Networking (makes it even Cool and Unique) YSH v10 includes LAN chat between YSH instances. Set your name with name “username” Host a chat room with host Join a room with connect “ip” Send messages with msg “text” List connected users with listusers Send announcements with announce “message” Remove a user with kick “username” Leave a room with disconnect Stop hosting with stophost...
|
1793681695.3388746
|
1793768095.3388746
|
|
38008
|
Understand by @chahatesh | Stardance
|
chahatesh
|
1
|
17.0
|
188
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-27T16:27:47Z", "hours": 17.0, "multiplier": 11.33, "payout": 188, "blessing": "neutral", "text": "How to Use Understand Install If Windows Defender warns you, click More Information → Run Anyway. This happens because the app is not officially signed. Create Context Tell Understand what you are working on. It creates AI-ready context for your projects. AI Screen Debugging Use the screen check feature to let the AI view your screen and suggest fixes. The idea for this app is to help with debugging and make, um, like giving context to AI simpler and easier.", "repo": "https://github.com/chahatesh/Understand", "demo": "https://github.com/chahatesh/Understand/releases"}]...
|
[{"post_id": 35875, "ts": "202 [{"post_id": 35875, "ts": "2026-07-27T16:21:40Z", "hours": 1.3658, "text": "Devlog 8 — Ship Today I focused on polishing Understand and preparing it for release. I fixed remaining issues, tested the important features, and made sure everything was working properly. I also set up the Electron build process, created the Windows installer, organized the GitHub repo, and prepared everything needed to ship the app. Understand is now ready for its first Ship"}, {"post_id": 34803, "ts": "2026-07-25T20:00:57Z", "hours": 1.5256, "text": "Devlog 7 – It Actually Works! This was one of the biggest milestones for the project.The first major task was converting the app from a regular website into a full Electron desktop application. I’d never built an Electron app before, so this was completely new territory. I spent a lot of time reading documentation, troubleshooting errors, and figuring out how everything fit together. One of the first problems I ran into was my Node.js version. I was still using Node 20, but Electron required a newer version, so I upgraded everything to Node 22. After that, I finally got the app launching successfully. Then I hit another challenge. The screen-sharing method I had been using in Chrome relied on Chrome’s built-in sharing APIs, but those don’t work the same way in Electron. Instead of trying to force it to work, I built a completely new system that can capture your screen directly inside the desktop app. The Biggest Feature - AI Debugging This is by far the biggest feature I’ve added so far. The app now works across your entire computer instead of being limited to a single browser tab. No matter what you’re working on, you can instantly ask the AI for help. There are two shortcuts Shift + Enter – Instantly captures your screen and sends it to the AI for analysis. Ctrl + Shift + Enter – First asks what’s wrong so you can provide extra context, then captures your screen and sends both the screenshot and your description to the AI. The best part is that everything gets added to the conversation’s context, so you can continue asking follow-up questions without having to explain everything again.This makes debugging incredibly fast. Instead of taking screenshots, uploading them, and re-explaining the problem every time, you just press a shortcut and the AI immediately understands what you’re looking at."}, {"post_id": 34247, "ts": "2026-07-24T19:42:25Z", "hours": 3.0858, "text": "DevLog 6 - ReRevamp So… my brother said my website looked bad. 😭 That was enough motivation to go back and redesign a bunch of the app’s CSS. The UI is much cleaner now, with better spacing, colors, and overall polish. The coolest feature I added by far is screen shairing. At first, I tried adding an image upload system so the AI could check screenshots, but it ended up being too slow and interrupted the workflow. Then I realized Google Meet can access your screen directly through screen sharing, so I built something similar. Now, whenever you press Shift + Enter, the app captures your current screen, analyzes what’s happening, and explains what it sees. It also automatically adds that information to the conversation context, giving the AI much more information when helping debug issues or answer questions.It’s way faster than constantly taking screenshots and uploading them manually, and it makes debugging feel much more seamless. BTW I renamed the app to understand"}, {"post_id": 33823, "ts": "2026-07-24T02:03:20Z", "hours": 3.2661, "text": "DevLog 5 - AI is stupid So before the ai was very bad it did not look at the context and went on a limb so now I made the context better and the ai adds to it and it has links time and a bunch of other stuff so it is smart (Yay). It can look at context and think becouse i swaped to a new ai - gpt-oss-120b - and it is smarter becouse more prameters This took way too long and it was hard but i got it to work and i think this is good if anyone thinks there a probloms dm me or comment"}, {"post_id": 33257, "ts": "2026-07-23T00:52:25Z", "hours": 1.7225, "text": "DevLog 4 – Cookies I tackled one of the biggest issues with the app saving user data. My original design didn’t have any way to store progress, which was a pretty major flaw.My first attempt was using cookies. I spent quite a while implementing everything, but after I finished… nothing worked. I went through the code over and over trying to find the bug, but I couldn’t figure it out. Eventually, I searched online and found the real problem I was testing on local host, cookies wasn’t going to work. Instead of fighting it any longer, I switched everything over to local storage.The change worked almost immediately, and it was a huge relief to finally see data being saved correctly(YAY) I also spent some time working on voice typing. It looks like I have it working now, and I think it’s going to be one of the coolest features in the app. Being able to talk instead of type just feels like the natural direction for an AI-powered tracker. PS in the vid I am reloading but you can’t see it"}, {"post_id": 33070, "ts": "2026-07-22T17:20:07Z", "hours": 1.465, "text": "DevLog 3 - Revamp This update was all about improving the experience. I switched the color scheme from blue to an amber theme after a friend pointed out that I might be using blue a little too much. Honestly, they had a point;( I also expanded the notes system. Now, each work session keeps track of your timer, notes, and any relevant links, all in one place. The AI can summarize what you worked on, making it much easier to look back on your progress without reading through every note."}, {"post_id": 32709, "ts": "2026-07-22T01:17:49Z", "hours": 0.6283, "text": "DevLog 2 I started working on the AI, and there’s now a built-in AI chat. At first it might seem a little random, but it’s actually a big part of what I have planned.The goal is to add a project journal where you can document your progress over time and easily share it with friends or anyone else who’s interested. The AI will help organize your updates, answer questions about your project, and eventually make keeping a journal much easier.It’s still early, but this is one of the core features that will tie everything together."}, {"post_id": 32548, "ts": "2026-07-21T20:06:53Z", "hours": 3.5, "text": "Devlog 1 Spent a lot of time getting the foundation of the project up and running. The idea is to make a simple AI-powered project planner where you can keep all of your projects in one place without digging through a million notes.Right now, the app lets you create multiple projects, track work sessions with a built-in timer, and save notes for each session. Those notes are automatically organized into a running project log, so everything stays in one place instead of disappearing into the void.The AI is starting to come together too. It can summarize your progress automatically, and you can use voice input so you don’t have to stop what you’re doing just to type everything out.There’s still a lot to build, and I’m not 100% sure what feature comes next, but having the core working feels like a huge step forward. It’s not flashy yet, but every app starts somewhere… even if that “somewhere” is a timer and an unhealthy amount of debugging."}]...
|
Title: Understand by @chahatesh | Stardance
Devlo Title: Understand by @chahatesh | Stardance
Devlogs:
Devlog 1 Spent a lot of time getting the foundation of the project up and running. The idea is to make a simple AI-powered project planner where you can keep all of your projects in one place without digging through a million notes.Right now, the app lets you create multiple projects, track work sessions with a built-in timer, and save notes for each session. Those notes are automatically organized into a running project log, so everything stays in one place instead of disappearing into the void.The AI is starting to come together too. It can summarize your progress automatically, and you can use voice input so you don’t have to stop what you’re doing just to type everything out.There’s still a lot to build, and I’m not 100% sure what feature comes next, but having the core working feels like a huge step forward. It’s not flashy yet, but every app starts somewhere… even if that “somewhere” is a timer and an unhealthy amount of debugging.
DevLog 2 I started working on the AI, and there’s now a built-in AI chat. At first it might seem a little random, but it’s actually a big part of what I have planned.The goal is to add a project journal where you can document your progress over time and easily share it with friends or anyone else who’s interested. The AI will help organize your updates, answer questions about your project, and eventually make keeping a journal much easier.It’s still early, but this is one of the core features that will tie everything together.
DevLog 3 - Revamp This update was all about improving the experience. I switched the color scheme from blue to an amber theme after a friend pointed out that I might be using blue a little too much. Honestly, they had a point;( I also expanded the notes system. Now, each work session keeps track of your timer, notes, and any relevant links, all in one place. The AI can summarize what you worked on, making it much easier to look back on your progress without reading through every note.
DevLog 4 – Cookies I tackled one of the biggest issues with the app saving user data. My original design didn’t have any way to store progress, which was a pretty major flaw.My first attempt was using cookies. I spent quite a while implementing everything, but after I finished… nothing worked. I went through the code over and over trying to find the bug, but I couldn’t figure it out. Eventually, I searched online and found the real problem I was testing on local host, cookies wasn’t going to work. Instead of fighting it any longer, I switched everything over to local storage.The change worked almost immediately, and it was a huge relief to finally see data being saved correctly(YAY) I also spent some time working on voice typing. It looks like I have it working now, and I think it’s going to be one of the coolest features in the app. Being able to talk instead of type just feels like the natural direction for an AI-powered tracker. PS in the vid I am reloading but you can’t see it
DevLog 5 - AI is stupid So before the ai was very bad it did not look at the context and went on a limb so now I made the context better and the ai adds to it and it has links time and a bunch of other stuff so it is smart (Yay). It can look at context and think becouse i swaped to a new ai - gpt-oss-120b - and it is smarter becouse more prameters This took way too long and it was hard but i got it to work and i think this is good if anyone thinks there a probloms dm me or comment
DevLog 6 - ReRevamp So… my brother said my website looked bad. 😭 That was enough motivation to go back and redesign a bunch of the app’s CSS. The UI is much cleaner now, with better spacing, colors, and overall polish. The coolest feature I added by far is screen shairing. At first, I tried adding an image upload system so the AI could check screenshots, but it ended up being too slow and interrupted the workflow. Then I realized Google Meet can access your screen directly through screen sharing, so I built something similar. Now, whenever you press Shift + Enter, the app captures your current screen, analyzes what’s happening, and explains what it sees. It also automatically adds that information to the conversation context, giving the AI much more information when helping debug issues or answer questions.It’s way faster than constantly taking screenshots and uploading them manually, and it makes debugging feel much more seamless. BTW I renamed the app to understand
Devlog 7 – It Actually Works! This was one of the biggest milestones for the project.The first major task was converting the app from a regular website into a full Electron desktop application. I’d never built an Electron app before, so this was completely new territory. I spent a lot of time reading documentation, troubleshooting errors, and figuring out how everything fit together. One of the first problems I ran into was my Node.js version. I was still using Node 20, but Electron required a newer version, so I upgraded everything to Node 22. After that, I finally got the app launching successfully. Then I hit another challenge. The screen-sharing method I had been using in Chrome relied on Chrome’s built-in sharing APIs, but those don’t work the same way in Electron. Instead of trying to force it to work, I built a completely new system that can capture your screen directly inside the desktop app. The Biggest Feature - AI Debugging This is by far the biggest feature I’ve added so far. The app now works across your entire computer instead of being limited to a single browser tab. No matter what you’re working on, you can instantly ask the AI for help. There are two shortcuts Shift + Enter – Instantly captures your screen and sends it to the AI for analysis. Ctrl + Shift + Enter – First asks what’s wrong so you can provide extra context, then captures your screen and sends both the screenshot and your description to the AI. The best part is that everything gets added to the conversation’s context, so you can continue asking follow-up questions without having to explain everything again.This makes debugging incredibly fast. Instead of taking screenshots, uploading them, and re-explaining the problem every time, you just press a shortcut and the AI immediately understands what you’re looking at.
Devlog 8 — Ship Today I focused on polishing Understand and preparing it for release. I fixed remaining issues, tested the important features, and made sure everything was working properly. I also set up the Electron build process, created the Windows installer, organized the GitHub repo, and prepared everything needed to ship the app. Understand is now ready for its first Ship
Ships:
How to Use Understand Install If Windows Defender warns you, click More Information → Run Anyway. This happens because the app is not officially signed. Create Context Tell Understand what you are working on. It creates AI-ready context for your projects. AI Screen Debugging Use the screen check feature to let the AI view your screen and suggest fixes. The idea for this app is to help with debugging and make, um, like giving context to AI simpler and easier....
|
1793681696.5182762
|
1793768096.5182762
|
|
48316
|
my personal website by @param_trimbake | Stardance
|
param_trimbake
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T13:44:03Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Here is my personal website. You can see the source code. It’s about me as a student and my work with Spanish-speaking people.", "repo": "https://github.com/param3026/param-space-portfolio", "demo": "https://spacepersonal.netlify.app"}]...
|
[{"post_id": 52348, "ts": "202 [{"post_id": 52348, "ts": "2026-08-22T13:42:02Z", "hours": 0.0, "text": "I’ve also integrated my NASA API key into my personal website to add NASA’s Astronomy Picture of the Day (APOD) data. The website can fetch and display the latest NASA space image and related information directly on the site, making the portfolio more interactive and adding a live space-data feature."}, {"post_id": 51950, "ts": "2026-08-21T22:07:59Z", "hours": 0.0378, "text": "🚀 Here’s an update on my personal website!I’m building an interactive space-themed portfolio that showcases who I am, my projects, resume, certifications, and LinkedIn. It also integrates live NASA data with a dynamic background that changes with the latest space content. 🌌Still working on it, but excited to see where it goes!"}]...
|
Title: my personal website by @param_trimbake | St Title: my personal website by @param_trimbake | Stardance
Devlogs:
🚀 Here’s an update on my personal website!I’m building an interactive space-themed portfolio that showcases who I am, my projects, resume, certifications, and LinkedIn. It also integrates live NASA data with a dynamic background that changes with the latest space content. 🌌Still working on it, but excited to see where it goes!
I’ve also integrated my NASA API key into my personal website to add NASA’s Astronomy Picture of the Day (APOD) data. The website can fetch and display the latest NASA space image and related information directly on the site, making the portfolio more interactive and adding a live space-data feature.
Ships:
Here is my personal website. You can see the source code. It’s about me as a student and my work with Spanish-speaking people....
|
1793681697.7659614
|
1793768097.7659614
|
|
48320
|
ISS Waltz by @zubair | Stardance
|
zubair
|
1
|
3.0
|
36
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T16:17:15Z", "hours": 3.0, "multiplier": 10.86, "payout": 36, "blessing": "neutral", "text": "I made a website to track the ISS and show its position on a map.", "repo": "https://github.com/skzubairahmed/iss-waltz", "demo": "https://iss-waltz.vercel.app"}]...
|
[{"post_id": 48274, "ts": "202 [{"post_id": 48274, "ts": "2026-08-16T16:11:43Z", "hours": 1.4072, "text": "Completed the project - Added the live map feature(used leaflet for it)."}, {"post_id": 47658, "ts": "2026-08-15T18:15:14Z", "hours": 0.7064, "text": "Made the landing page - Added a landing page with a start button and an ISS animation."}, {"post_id": 47629, "ts": "2026-08-15T17:18:59Z", "hours": 1.2408, "text": "Added test routes - I started by adding test routes to check the position of the ISS and to find the coordinates of the desired city."}]...
|
Title: ISS Waltz by @zubair | Stardance
Devlogs:
Title: ISS Waltz by @zubair | Stardance
Devlogs:
Added test routes - I started by adding test routes to check the position of the ISS and to find the coordinates of the desired city.
Made the landing page - Added a landing page with a start button and an ISS animation.
Completed the project - Added the live map feature(used leaflet for it).
Ships:
I made a website to track the ISS and show its position on a map....
|
1793681698.9021213
|
1793768098.9021213
|