|
28121
|
Chatbot RAG by @Hamna | Stardance
|
Hamna
|
2
|
77.71
|
1127
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-04T20:16:08Z", "hours": 37.0, "multiplier": 16.89, "payout": 615, "blessing": "neutral", "text": "Made a RAG chatbot that mimics my friends personality using Llama and Hugging Face. NOTE: I’m using zero GPU on HF so after 100 msgs it goes to sleeping mood , in that case the chatbot would reply a random thing like “system off” , “internet is down” or something like that , so don’t worry about that, come after 24Hr and she’ll talk normally FACT: Senpai used to say a lot “Haii haii” which is a japanese phrase for “yes” so don’t worry about that either, she’s just being friendly with ya Hope ya’ll love this version of chatbot", "repo": "https://github.com/lilithCode/Senpai-Chatbot", "demo": "https://senpai-chatbot.vercel.app/"}, {"ship_num": 2, "ts": "2026-08-17T14:23:40Z", "hours": 36.0, "multiplier": 14.99, "payout": 512, "blessing": "neutral", "text": "I built a AI RAG chatbot that mimics my friends personality , trained on whatsapp chats so it actually talks like my friend instead of generic robot ai. fine tuned llama 3b with LoRA on kaggle’s free gpu, deployed it on hf spaces zeroGPU gradio for backend and next.js on vercel for frontend, plus added RAG so it can clean up messy texts and pull live info from the web when needed. it genuinely feels like talking to my friend, all built for free. to test it. just start chatting, first msg might take a sec to load (model’s waking up)", "repo": "https://github.com/lilithCode/Senpai-Chatbot", "demo": "https://senpai-chatbot.vercel.app/"}]...
|
[{"post_id": 78990, "ts": "202 [{"post_id": 78990, "ts": "2026-10-12T08:38:28Z", "hours": 4.7081, "text": "here"}, {"post_id": 61751, "ts": "2026-09-04T20:10:09Z", "hours": 0.5464, "text": "Guyss!! This is gonna be the last change I’ve made today, Senpai chatbot is live now and she’s talking like my friend (really couldn’t be more happy to see her talk to me again 🥹 )"}, {"post_id": 61709, "ts": "2026-09-04T19:04:49Z", "hours": 0.4631, "text": "Made some Minor UI changes on frontend nextjs"}, {"post_id": 53148, "ts": "2026-08-23T16:07:39Z", "hours": 9.6033, "text": "After testing the chatbot with around 50 beta users, I found several issues that weren’t obvious during development. Responses were too long, the personality became too generic when using RAG, Urdu and English were sometimes mixed incorrectly, and the mobile layout needed work. I shortened the responses, restricted web search to things like news and sports, improved the system prompt and input handling, redesigned the mobile UI, and added a message explaining the cold start delay"}, {"post_id": 51779, "ts": "2026-08-21T16:52:36Z", "hours": 8.5322, "text": "I added logging, I started finding problems that weren’t obvious from the frontend. Web searches were sometimes failing silently, too many messages were causing token overflows, and using both max_length and max_new_tokens was causing unexpected behavior. I fixed these issues by adding proper error handling, limiting the conversation context, and simplifying the token settings. I also built a small debug dashboard to track searches, response times, token usage, and errors (Ughh I’m really exhausted now)"}, {"post_id": 50775, "ts": "2026-08-20T04:39:03Z", "hours": 8.7972, "text": "I initially moved the deployment to Replicate to improve response speed. It worked and responses dropped from around 15–30 seconds to about 5–10 seconds but then it also introduced extra cost and complexity. In the end, I decided to stay with Hugging Face Spaces because the free setup is more suitable for this side project. Also improved the HF app.py file"}, {"post_id": 50127, "ts": "2026-08-19T06:54:46Z", "hours": 8.6286, "text": "I noticed that the model was giving very generic and robotic responses even though it worked much better during training. After debugging, I realized I was using a different system prompt during inference than the one I used while fine tuning. Once I switched back to the exact same prompt, the responses became much more consistent. Also fixed Hackclub key errors , now it’s working fine"}, {"post_id": 48921, "ts": "2026-08-17T14:15:13Z", "hours": 10.1547, "text": "wanted senpai to be more. Previous It was only talking with using fine tuned Llama model but if i’ll ask it something like what’s happening in the world, it won’t talk back like my friend cause it didn’t have that latest information of the world so i added RAG. used the hackclub api as a middleman llm that cleans up messy input and decides if a web search is needed ( like “what’s the fifa score rn” this will be flagged as a web search needed query) two bugs along the way: responses were so slow at first , turns out just zeroGPU cold starts, chills out after msg 1 model started sounding fake n robotic bc i overwrote it with a huge system prompt. fixed this by making the heavy prompt short so now gng it’s live, plz talk to her"}, {"post_id": 46190, "ts": "2026-08-13T07:44:42Z", "hours": 7.7883, "text": "I uploaded my model on Hugging Face with zero GPU (made a new hf space called amadeus, picked gradio as the sdk, zeroGPU as hardware) If someone else is thinking about starting in HF, just wanna tell the annoying part: cold starts. first message takes 20-40s while the model loads into memory. after that it’s quick like 3-8s then built an actual next.js frontend since raw gradio ui felt kinda mid, hooked it up through an api route, deployed on vercel with my env keys And it’s live"}, {"post_id": 45064, "ts": "2026-08-11T10:21:56Z", "hours": 11.2864, "text": "Trained the data ( This took soo much time fr) I used kaggle’s free gpu (t4, sometimes p100 if i got lucky) to fine tune llama 3b with LoRA through PEFT. quick explainer since people asked LoRA freezes the whole base model (32m params untouched) and only trains a tiny set of adapter params (420k). instead of retraining the entire model I put a extra layer of changed weights on top of the model which is way cheaper and faster than the traditional training tested it after training and it WORKED. The model is giving the same energy, same little phrases, actual personality of my friend which is kinda scary ngl notebook’s public if you wanna nerd out: https://www.kaggle.com/code/hamnamubarak/amadeus/edit"}, {"post_id": 33459, "ts": "2026-07-23T13:12:01Z", "hours": 6.3861, "text": "so i’m building senpai, an ai that actually talks like my friend, not some normal chatbot. so first thing first, I need data to learn from so here’s wht I did: exported a whole year of whatsapp chats with my friend (yes i read through all of it, and got his consent). wrote a python script on kaggle to clean it up and formatting it into proper training pairs not glamorous but this is like 30% of the actual work tbh, garbage data can cause strange and irrelevant replies Then I trained this on Kaggle with Llama model with LoRA adaptation Right now the replies aren’t so great, I’ll do some fine tuning later"}]...
|
Title: Chatbot RAG by @Hamna | Stardance
Devlogs: Title: Chatbot RAG by @Hamna | Stardance
Devlogs:
so i’m building senpai, an ai that actually talks like my friend, not some normal chatbot. so first thing first, I need data to learn from so here’s wht I did: exported a whole year of whatsapp chats with my friend (yes i read through all of it, and got his consent). wrote a python script on kaggle to clean it up and formatting it into proper training pairs not glamorous but this is like 30% of the actual work tbh, garbage data can cause strange and irrelevant replies Then I trained this on Kaggle with Llama model with LoRA adaptation Right now the replies aren’t so great, I’ll do some fine tuning later
Trained the data ( This took soo much time fr) I used kaggle’s free gpu (t4, sometimes p100 if i got lucky) to fine tune llama 3b with LoRA through PEFT. quick explainer since people asked LoRA freezes the whole base model (32m params untouched) and only trains a tiny set of adapter params (420k). instead of retraining the entire model I put a extra layer of changed weights on top of the model which is way cheaper and faster than the traditional training tested it after training and it WORKED. The model is giving the same energy, same little phrases, actual personality of my friend which is kinda scary ngl notebook’s public if you wanna nerd out: https://www.kaggle.com/code/hamnamubarak/amadeus/edit
I uploaded my model on Hugging Face with zero GPU (made a new hf space called amadeus, picked gradio as the sdk, zeroGPU as hardware) If someone else is thinking about starting in HF, just wanna tell the annoying part: cold starts. first message takes 20-40s while the model loads into memory. after that it’s quick like 3-8s then built an actual next.js frontend since raw gradio ui felt kinda mid, hooked it up through an api route, deployed on vercel with my env keys And it’s live
wanted senpai to be more. Previous It was only talking with using fine tuned Llama model but if i’ll ask it something like what’s happening in the world, it won’t talk back like my friend cause it didn’t have that latest information of the world so i added RAG. used the hackclub api as a middleman llm that cleans up messy input and decides if a web search is needed ( like “what’s the fifa score rn” this will be flagged as a web search needed query) two bugs along the way: responses were so slow at first , turns out just zeroGPU cold starts, chills out after msg 1 model started sounding fake n robotic bc i overwrote it with a huge system prompt. fixed this by making the heavy prompt short so now gng it’s live, plz talk to her
I noticed that the model was giving very generic and robotic responses even though it worked much better during training. After debugging, I realized I was using a different system prompt during inference than the one I used while fine tuning. Once I switched back to the exact same prompt, the responses became much more consistent. Also fixed Hackclub key errors , now it’s working fine
I initially moved the deployment to Replicate to improve response speed. It worked and responses dropped from around 15–30 seconds to about 5–10 seconds but then it also introduced extra cost and complexity. In the end, I decided to stay with Hugging Face Spaces because the free setup is more suitable for this side project. Also improved the HF app.py file
I added logging, I started finding problems that weren’t obvious from the frontend. Web searches were sometimes failing silently, too many messages were causing token overflows, and using both max_length and max_new_tokens was causing unexpected behavior. I fixed these issues by adding proper error handling, limiting the conversation context, and simplifying the token settings. I also built a small debug dashboard to track searches, response times, token usage, and errors (Ughh I’m really exhausted now)
After testing the chatbot with around 50 beta users, I found several issues that weren’t obvious during development. Responses were too long, the personality became too generic when using RAG, Urdu and English were sometimes mixed incorrectly, and the mobile layout needed work. I shortened the responses, restricted web search to things like news and sports, improved the system prompt and input handling, redesigned the mobile UI, and added a message explaining the cold start delay
Made some Minor UI changes on frontend nextjs
Guyss!! This is gonna be the last change I’ve made today, Senpai chatbot is live now and she’s talking like my friend (really couldn’t be more happy to see her talk to me again 🥹 )
here
Ships:
I built a AI RAG chatbot that mimics my friends personality , trained on whatsapp chats so it actually talks like my friend instead of generic robot ai. fine tuned llama 3b with LoRA on kaggle’s free gpu, deployed it on hf spaces zeroGPU gradio for backend and next.js on vercel for frontend, plus added RAG so it can clean up messy texts and pull live info from the web when needed. it genuinely feels like talking to my friend, all built for free. to test it. just start chatting, first msg might take a sec to load (model’s waking up)
Made a RAG chatbot that mimics my friends personality using Llama and Hugging Face. NOTE: I’m using zero GPU on HF so after 100 msgs it goes to sleeping mood , in that case the chatbot would reply a random thing like “system off” , “internet is down” or something like that , so don’t worry about that, come after 24Hr and she’ll talk normally FACT: Senpai used to say a lot “Haii haii” which is a japanese phrase for “yes” so don’t worry about that either, she’s just being friendly with ya Hope ya’ll love this version of chatbot...
|
1792832184.6255665
|
1792918584.6255665
|
|
28172
|
PixelOS by @Praknoor | Stardance
|
Praknoor
|
2
|
3.0
|
13
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-13T19:57:16Z", "hours": 1.0, "multiplier": 12.83, "payout": 13, "blessing": "neutral", "text": "PixelOS — Session Recap 🟣 Big update across the board: Notepad — Save As dialog with VFS directory browser + overwrite warning Glass Diary — complete redesign: lined paper background, Cedarville Cursive font, auto-saves to ~/Diary/YYYY-MM-DD.txt, calendar popup to browse entries by date Timer — countdown fixed (was a rogue resetTimer() bug), custom hr:min:sec inputs, centisecond display Pixel Editor — save/load .pxl files to VFS Terminal — fixed text shrinking when output fills the window Snake — high-score notification Top bar — overhauled: running-app taskbar with click-to-focus, SVG bell + theme icons, blinking colon clock, cleaner glass look General — all apps start closed, desktop icons removed (dock only), taskbar shows open apps Next up: more polish, more apps, more surprises.", "repo": "https://github.com/GurnoorLog/PixelOS", "demo": "https://pixel-os-pied.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-04T17:45:36Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "PixelOS — os in da browser bruh wat i made: a whole desktop os that runs in ur browser. terminal boot, windows u can drag n resize, dock, desktop icons, 6 apps (wikipedia, calculator wit sin/cos/tan/log/factorial, pixel art editor, lofi radio, spotify, clock/calendar), plus customize EVERYTHING — colors, blur, rain effects, sparkles, pixel cursors. zero frameworks, zero npm, just raw html/css/js. one file each. wat was hard: flood fill in the pixel editor. had to write my own bfs from scratch cuz canvas dont do that. also making glassmorphism + pixel art not look like garbage took way too many tries. wat im proud of: literally every pixel of this thing is hand-coded. no node_modules folder, no build script, no “npm install” — just open and it goes brr. 1500 lines of pure js.", "repo": "https://github.com/GurnoorLog/PixelOS", "demo": "https://pixel-os-pied.vercel.app/"}]...
|
[{"post_id": 27872, "ts": "202 [{"post_id": 27872, "ts": "2026-07-13T19:34:50Z", "hours": 1.0486, "text": "PixelOS Updates Notifications system Terminal Notepad — Save As dialog with file browser + overwrite warning Glass Diary — Paper styling, cursive font, auto-save, calendar to browse entries by date Timer — Countdown fixed, custom hr:min:sec inputs Pixel Editor — Save/Load .pxl files to VFS Snake — High score notification More coming soon 🟣"}, {"post_id": 22276, "ts": "2026-07-04T17:39:31Z", "hours": 0.4239, "text": "Final updates: Added terminal-style boot screen Refined calculator with expression input + scientific mode (sin, cos, tan, log, sqrt, factorial)"}, {"post_id": 22248, "ts": "2026-07-04T16:54:51Z", "hours": 0.2814, "text": "PixelOS comes with 6 apps: a Wikipedia API viewer that lets you search and read articles inside the desktop, a Calculator, a Pixel Art Editor with 16×16 grid and PNG export, a Lo-Fi Cafe with direct audio streams, a Glass Diary for writing with export support, and desktop widgets (analog clock + live calendar). Every app is fully draggable, resizable, and works inside the glass window system."}, {"post_id": 22159, "ts": "2026-07-04T14:07:44Z", "hours": 1.1053, "text": "Built PixelOS with just HTML, CSS, and JavaScript — no frameworks, no build tools, no dependencies. Inspired by old-school Windows desktops mixed with retro pixel art. I wanted to prove you can make something that looks premium with vanilla code."}]...
|
Title: PixelOS by @Praknoor | Stardance
Devlogs:
Title: PixelOS by @Praknoor | Stardance
Devlogs:
Built PixelOS with just HTML, CSS, and JavaScript — no frameworks, no build tools, no dependencies. Inspired by old-school Windows desktops mixed with retro pixel art. I wanted to prove you can make something that looks premium with vanilla code.
PixelOS comes with 6 apps: a Wikipedia API viewer that lets you search and read articles inside the desktop, a Calculator, a Pixel Art Editor with 16×16 grid and PNG export, a Lo-Fi Cafe with direct audio streams, a Glass Diary for writing with export support, and desktop widgets (analog clock + live calendar). Every app is fully draggable, resizable, and works inside the glass window system.
Final updates: Added terminal-style boot screen Refined calculator with expression input + scientific mode (sin, cos, tan, log, sqrt, factorial)
PixelOS Updates Notifications system Terminal Notepad — Save As dialog with file browser + overwrite warning Glass Diary — Paper styling, cursive font, auto-save, calendar to browse entries by date Timer — Countdown fixed, custom hr:min:sec inputs Pixel Editor — Save/Load .pxl files to VFS Snake — High score notification More coming soon 🟣
Ships:
PixelOS — os in da browser bruh wat i made: a whole desktop os that runs in ur browser. terminal boot, windows u can drag n resize, dock, desktop icons, 6 apps (wikipedia, calculator wit sin/cos/tan/log/factorial, pixel art editor, lofi radio, spotify, clock/calendar), plus customize EVERYTHING — colors, blur, rain effects, sparkles, pixel cursors. zero frameworks, zero npm, just raw html/css/js. one file each. wat was hard: flood fill in the pixel editor. had to write my own bfs from scratch cuz canvas dont do that. also making glassmorphism + pixel art not look like garbage took way too many tries. wat im proud of: literally every pixel of this thing is hand-coded. no node_modules folder, no build script, no “npm install” — just open and it goes brr. 1500 lines of pure js.
PixelOS — Session Recap 🟣 Big update across the board: Notepad — Save As dialog with VFS directory browser + overwrite warning Glass Diary — complete redesign: lined paper background, Cedarville Cursive font, auto-saves to ~/Diary/YYYY-MM-DD.txt, calendar popup to browse entries by date Timer — countdown fixed (was a rogue resetTimer() bug), custom hr:min:sec inputs, centisecond display Pixel Editor — save/load .pxl files to VFS Terminal — fixed text shrinking when output fills the window Snake — high-score notification Top bar — overhauled: running-app taskbar with click-to-focus, SVG bell + theme icons, blinking colon clock, cleaner glass look General — all apps start closed, desktop icons removed (dock only), taskbar shows open apps Next up: more polish, more apps, more surprises....
|
1792846320.9053676
|
1792932720.9053676
|
|
28229
|
Website by @skyFonix | Stardance
|
skyFonix
|
2
|
44.11
|
471
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T18:07:52Z", "hours": 31.0, "multiplier": 15.38, "payout": 471, "blessing": "neutral", "text": "Lots of changes were made Everything that was static before, is now rendered dynamically from a database! Added a dashboard where I can add projects, upload assets, upload images and edit all of the about information. For the gallery I added a tagging system that can be updated from the dashboard. The site also implements exif data storage, so I anyone can view the camera, lens and settings used to make the photo. There is also a description section for notes. The gallery is render in a style similar to unsplash, the site is divided into columns, which are dinamically added and destroyed, based on the viewport width. Each image displayed keeps it’s original aspect ratio.", "repo": "https://github.com/FonixPython/main-site", "demo": "https://skyfonix.cigoria.eu/"}, {"ship_num": 2, "ts": "2026-08-03T15:32:38Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my own personal website!", "repo": "https://github.com/FonixPython/main-site", "demo": "https://skyfonix.cigoria.eu/"}]...
|
[{"post_id": 78791, "ts": "202 [{"post_id": 78791, "ts": "2026-10-11T16:40:32Z", "hours": 8.1092, "text": "Dashboard redesign! I got fed up with the old design as it was quite uncomfortable to use tbh, everything was layed out vertically, so it felt pretty cramped, so I changed it to a sidebar design! I also replaced most of the inline editing stuff, so creating and editing projects now happen in modals. Uploading and tagging photographs also moved to a modal with real time suggestions too!"}, {"post_id": 45297, "ts": "2026-08-11T17:40:23Z", "hours": 1.0622, "text": "Even though I said I’ll just deploy, I added mass uploads, deployed, and then started filling the site with content! The next major ship is right around the corner!"}, {"post_id": 45164, "ts": "2026-08-11T14:07:42Z", "hours": 2.7383, "text": "Image viewer, yay! I just need to get this whole thing to prod now."}, {"post_id": 44795, "ts": "2026-08-10T20:10:28Z", "hours": 3.7419, "text": "New devlog Things I added: Added the gallery page to the website’s public part with an image display section similar to the one on unsplash.(Mine’s a bit worse, but it’s mine) I also implemented tag based filtering! Also added a friendlier navigation panel for mobile users! Next up: A way to view the image in big in full resolution, I already designed it in figma , so now I just need to implement it! Code base and assets cleanup. Deployment and ship! :)"}, {"post_id": 44055, "ts": "2026-08-09T15:59:50Z", "hours": 2.2181, "text": "Added not too good looking, but functional controls for the dashboard for the gallery feature. I think I’ll redesign the whole page someday, but that won’t be today."}, {"post_id": 43905, "ts": "2026-08-09T10:56:27Z", "hours": 2.3664, "text": "Added the backend side of things for the gallery!"}, {"post_id": 41819, "ts": "2026-08-06T08:32:35Z", "hours": 2.0781, "text": "Added uploads to the site, so I don’t have to rely on external services for assets"}, {"post_id": 41333, "ts": "2026-08-05T14:14:17Z", "hours": 6.415, "text": "Backend updates: Authentication works now Adding projects to the backend and displaying them also works perfectly Added ability to edit the website title, about text, socials, and email"}, {"post_id": 40960, "ts": "2026-08-04T20:27:13Z", "hours": 10.2986, "text": "Making this devlog cause I have to I feel useless :( I wasted so much time on this project today it’s not even funny. 8 hours or so currently, and not even half done with a single very simple feature, I’m usually much much more efficient, I almost gave up on the whole thing a good couple of times, anyways here is a screenshot from the dashboard in it’s current state. I promise the next devlog will actually be a worthy one!"}, {"post_id": 39948, "ts": "2026-08-03T08:54:57Z", "hours": 1.3614, "text": "Finished with the about section, also added a footer!"}, {"post_id": 39685, "ts": "2026-08-02T20:26:20Z", "hours": 3.2778, "text": "Decided on writing my personal, mostly static website in React, because I’ve never used it so I wanted to get a little practice with it! I’m currently making an about section and then I’ll submit it since it qualifies for the personal site, mission, once I submit it I’ll begin working on actual features like an image gallery for my photography and a blogging system, also plan to migrate the project from being static to having their own place in a database which I can edit from a dashboard and stuff. What I’m done with so far: Topbar with navigation Hero section with an animated welcome message Projects section with some projects already placed into it"}]...
|
Title: Website by @skyFonix | Stardance
Devlogs:
Title: Website by @skyFonix | Stardance
Devlogs:
Decided on writing my personal, mostly static website in React, because I’ve never used it so I wanted to get a little practice with it! I’m currently making an about section and then I’ll submit it since it qualifies for the personal site, mission, once I submit it I’ll begin working on actual features like an image gallery for my photography and a blogging system, also plan to migrate the project from being static to having their own place in a database which I can edit from a dashboard and stuff. What I’m done with so far: Topbar with navigation Hero section with an animated welcome message Projects section with some projects already placed into it
Finished with the about section, also added a footer!
Making this devlog cause I have to I feel useless :( I wasted so much time on this project today it’s not even funny. 8 hours or so currently, and not even half done with a single very simple feature, I’m usually much much more efficient, I almost gave up on the whole thing a good couple of times, anyways here is a screenshot from the dashboard in it’s current state. I promise the next devlog will actually be a worthy one!
Backend updates: Authentication works now Adding projects to the backend and displaying them also works perfectly Added ability to edit the website title, about text, socials, and email
Added uploads to the site, so I don’t have to rely on external services for assets
Added the backend side of things for the gallery!
Added not too good looking, but functional controls for the dashboard for the gallery feature. I think I’ll redesign the whole page someday, but that won’t be today.
New devlog Things I added: Added the gallery page to the website’s public part with an image display section similar to the one on unsplash.(Mine’s a bit worse, but it’s mine) I also implemented tag based filtering! Also added a friendlier navigation panel for mobile users! Next up: A way to view the image in big in full resolution, I already designed it in figma , so now I just need to implement it! Code base and assets cleanup. Deployment and ship! :)
Image viewer, yay! I just need to get this whole thing to prod now.
Even though I said I’ll just deploy, I added mass uploads, deployed, and then started filling the site with content! The next major ship is right around the corner!
Dashboard redesign! I got fed up with the old design as it was quite uncomfortable to use tbh, everything was layed out vertically, so it felt pretty cramped, so I changed it to a sidebar design! I also replaced most of the inline editing stuff, so creating and editing projects now happen in modals. Uploading and tagging photographs also moved to a modal with real time suggestions too!
Ships:
I made my own personal website!
Lots of changes were made Everything that was static before, is now rendered dynamically from a database! Added a dashboard where I can add projects, upload assets, upload images and edit all of the about information. For the gallery I added a tagging system that can be updated from the dashboard. The site also implements exif data storage, so I anyone can view the camera, lens and settings used to make the photo. There is also a description section for notes. The gallery is render in a style similar to unsplash, the site is divided into columns, which are dinamically added and destroyed, based on the viewport width. Each image displayed keeps it’s original aspect ratio....
|
1792824684.3591702
|
1792911084.3591702
|
|
28329
|
The Space Cow by @ismael | Stardance
|
ismael
|
2
|
12.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T19:17:38Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I expanded my WarioWare-style game! It now has an intro, 6 minigames, better animations, and hints to make it easier to play. I also calibrated the difficulty because I made some of my friends play it before, and they couldn’t even win .-. Hope you enjoy it! It’s mostly just a silly little game that I originally made to entertain myself, so hopefully it’ll be fun for you too :)", "repo": "https://github.com/ismaelc137/the-Space-Cow", "demo": "https://ismaelc137.itch.io/the-space-cow"}, {"ship_num": 2, "ts": "2026-06-30T04:16:20Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Made a short WarioWare like Game, i had barely used a Godot, so i had to relearn a few things. It has 3 minigames, maybe i will put some music and expand it in the future, but for now is functional and i find it quite fun!", "repo": "https://github.com/ismaelc137/the-Space-Cow", "demo": "https://ismaelc137.itch.io/the-space-cow"}]...
|
[{"post_id": 70782, "ts": "202 [{"post_id": 70782, "ts": "2026-09-19T19:12:40Z", "hours": 1.3542, "text": "Finished polishing some graphics and animations. I’m ready to ship. Beware"}, {"post_id": 70377, "ts": "2026-09-19T02:15:25Z", "hours": 3.9592, "text": "Made a cutscene, and two more minigames. One is a Galaga-like game where the cow is in a UFO, pointing a shotgun at aliens. Pretty hardcore stuff. The other is like a Whac-A-Mole, but with flies that are bothering the cow. Right now, I’m just making sprites so that everything feels a little more alive. Anyway, love you guys, etcetera, etcetera"}, {"post_id": 63320, "ts": "2026-09-07T02:27:49Z", "hours": 1.4644, "text": "just made a new minigame where you milk a cow by spamming clicks. Im also making an intro and improving the overall graphics to give the game a cleaner look"}, {"post_id": 18955, "ts": "2026-06-30T04:13:37Z", "hours": 2.0625, "text": "Finish it! just made three minigames, but i’m happy with the result, making this was a lot of fun :)"}, {"post_id": 18806, "ts": "2026-06-30T00:45:12Z", "hours": 2.0228, "text": "Made the two minigames as well as a win screen and a death screen :D"}, {"post_id": 18720, "ts": "2026-06-29T22:06:45Z", "hours": 1.1156, "text": "sup, taking a break from my main project because it’s getting way too big. anyway, here’s the update: i made a cow in a space suit"}]...
|
Title: The Space Cow by @ismael | Stardance
Devlo Title: The Space Cow by @ismael | Stardance
Devlogs:
sup, taking a break from my main project because it’s getting way too big. anyway, here’s the update: i made a cow in a space suit
Made the two minigames as well as a win screen and a death screen :D
Finish it! just made three minigames, but i’m happy with the result, making this was a lot of fun :)
just made a new minigame where you milk a cow by spamming clicks. Im also making an intro and improving the overall graphics to give the game a cleaner look
Made a cutscene, and two more minigames. One is a Galaga-like game where the cow is in a UFO, pointing a shotgun at aliens. Pretty hardcore stuff. The other is like a Whac-A-Mole, but with flies that are bothering the cow. Right now, I’m just making sprites so that everything feels a little more alive. Anyway, love you guys, etcetera, etcetera
Finished polishing some graphics and animations. I’m ready to ship. Beware
Ships:
Made a short WarioWare like Game, i had barely used a Godot, so i had to relearn a few things. It has 3 minigames, maybe i will put some music and expand it in the future, but for now is functional and i find it quite fun!
I expanded my WarioWare-style game! It now has an intro, 6 minigames, better animations, and hints to make it easier to play. I also calibrated the difficulty because I made some of my friends play it before, and they couldn’t even win .-. Hope you enjoy it! It’s mostly just a silly little game that I originally made to entertain myself, so hopefully it’ll be fun for you too :)...
|
1792817570.970858
|
1792903970.970858
|
|
28495
|
Projects/Devlog Site by @ritvikgrandhi | Stardance
|
ritvikgrandhi
|
2
|
17.29
|
32
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-08T22:14:18Z", "hours": 9.0, "multiplier": 3.54, "payout": 32, "blessing": "neutral", "text": "##Ship 2! Hello, reviewers! This is an updated, more useful version of my portfolio website that can now log projects and devlogs, similar to Stardance! I made this after realizing that after Stardance is over, I’ll have nowhere to log my projects and the progress I make on them! To keep a good habit going and log my projects for everyone to see, I decided to edit this portfolio site into a dedicated server for all of my projects, after realizing that I already have a good portfolio that I constantly edit at school. This ship does not have full functionality: it can save any number of projects and devlogs, but once you reload, they are all gone. I can safely say that it was a pain to create a new project and devlog for testing, and now you get to do it too! As you might see in my last devlog, I’m currently shipping this so that everyone can see the project and devlog adding functionality now, because later I’ll add an admin login page so that I can only add my projects, while others who access the website can see them but not edit them. Anyway, that’s all, and have fun!", "repo": "https://github.com/ritvikgrandhi-hue/stardancechallengewebsite", "demo": "https://ritvikgrandhi-hue.github.io/stardancechallengewebsite/"}, {"ship_num": 2, "ts": "2026-08-09T17:10:42Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hello, here is my portfolio website, which will eventually contain information about me and my life. So far, I have done the minimum requirements for this beginner project, which is why I am shipping it. However, I am pretty excited and happy about how it currently looks. What I did find challenging is that I haven’t used html and css in a while, which meant I had to relearn almost everything while juggling extracurriculars and school events. This personal project will grow as I achieve more things, but for now, the index page is the only truly functional page, which has more than 3 sections. I hope everyone will be able to see my passion and encourage me to continue into the future!", "repo": "https://github.com/ritvikgrandhi-hue/stardancechallengewebsite", "demo": "https://ritvikgrandhi-hue.github.io/stardancechallengewebsite/"}]...
|
[{"post_id": 80870, "ts": "202 [{"post_id": 80870, "ts": "2026-10-19T03:42:06Z", "hours": 2.2892, "text": "Working on the Backend: Literally no functionality has changed yet, this is just me trying to configure node.js to do everything 😭 . Anyway, sorry for not updating in a while, I promise I’ll get back to work on it soon!"}, {"post_id": 64478, "ts": "2026-09-08T22:06:46Z", "hours": 1.865, "text": "Devlog 5: 9/8/26 Nothing much, I managed to get the node.js server running and got the css and html to work, but its nowhere near done. Anyway, for now, I’m going to ship this project so that reviewers can actually see and try to use the add project and add devlog functions. Stay tuned!"}, {"post_id": 63315, "ts": "2026-09-07T02:07:35Z", "hours": 3.3178, "text": "Devlog: 9/6/2026 I made SO much progress!! Changes: Can now create devlogs within projects Can edit those devlogs Can add multiple images and videos within the devlogs When you click on the images, they open in a new window above the page New Navbar and logo design, courtesy of this video: https://www.youtube.com/watch?v=uTPO6fKtBvM Can delete devlogs Devlogs gain certain ids based on the date and time, so each devlog has a unique id to allow for edits and deletions For the JavaScript, the basic functionality was carried over from the notes app on my NINJAGO WEBOS, but I did need AI to educate me on how to implement new functions. Also, the CSS and HTML were written mostly by me with the help of tutorials."}, {"post_id": 60407, "ts": "2026-09-02T18:24:33Z", "hours": 2.5461, "text": "Woohoo, some functionality! Ok, so far I haven’t differentiated a backend and frontend for the projects tab, but for now you can add projects with an image, title, and summary, and they’ll appear as projects on the projects tab. Also, when you click on them, it brings you to a separate viewing tab to see all about the project, although I haven’t started working on the part where you can add devlogs. Also, adding projects isn’t permanent, as when I reload the tab, they all disappear (since I want it to save to the website for everyone to see, I have to implement a Node.js backend, which I haven’t learned about yet). I also slightly changed the theme into dark mode and made the buttons to enter the project look futuristic. They are NOT AI; I made them with the help of this video: ( https://www.youtube.com/watch?v=a1NVen8SaqE ), but it does look a bit different for reasons unknown. Anyway, stay tuned!"}, {"post_id": 59970, "ts": "2026-09-02T01:30:45Z", "hours": 1.4286, "text": "NEW DESIGN: For those that don’t want to read: I’m tearing down most of the site to make it a dedicated project site. After realizing that I already have most of my accomplishments and extracurriculars on a different project that I’m making in school, I understood that maintaining a second site would be kind of useless. So, in an attempt to salvage my efforts and make it something worth using, I’m going to take my Javascript knowledge from the NINJAGO OS project I’m also currently making to create a project and devlog site, similar to stardance, as I want to have a place to store all of my hobby projects. However, I don’t want anyone adding information to my site but me, so i’m biting the bullet and learning to differentiate a frontend and backend (with minor AI help), while salvaging the about page of the already existing porfolio. This way, when people online stumble upon it (as i’ll use the grant I got for purchasing a website domain), they’ll know about me first before moving on to my projects. That’s pretty much it! Looking forward to it!"}, {"post_id": 43725, "ts": "2026-08-09T04:13:32Z", "hours": 5.9075, "text": "This project isn’t just a portfolio, but an entrance into my world. Hey everyone, welcome to my portfolio website! After exams up until the beginning of August, I’ve finally found time to begin developing a website. First, this website only has one functioning page as of yet, which is the index page. I admit, at first I did try vibecoding(using AI), to see what it would do and if I could understand and learn from, but it turned out to be utterly useless in that regard, and so I’ve built it up again mostly from scratch to get to this point, although some traces of AI remain in the other pages, which I will delete remove. However, I am proud of how far it has gotten since I’ve imagined how it would be like. My plan for this website is to include everything I’ve accomplished or done here so people can learn who I am as a person. To do this, and to separate it from other portfolios, I believe I will eventually put in a blog of projects I’ve done to further my career path, as well as write and teach others on certain topics. However, this will take some time, so stay tuned! Up next is the Extracurriculars and Skills pages to fix."}]...
|
Title: Projects/Devlog Site by @ritvikgrandhi | St Title: Projects/Devlog Site by @ritvikgrandhi | Stardance
Devlogs:
This project isn’t just a portfolio, but an entrance into my world. Hey everyone, welcome to my portfolio website! After exams up until the beginning of August, I’ve finally found time to begin developing a website. First, this website only has one functioning page as of yet, which is the index page. I admit, at first I did try vibecoding(using AI), to see what it would do and if I could understand and learn from, but it turned out to be utterly useless in that regard, and so I’ve built it up again mostly from scratch to get to this point, although some traces of AI remain in the other pages, which I will delete remove. However, I am proud of how far it has gotten since I’ve imagined how it would be like. My plan for this website is to include everything I’ve accomplished or done here so people can learn who I am as a person. To do this, and to separate it from other portfolios, I believe I will eventually put in a blog of projects I’ve done to further my career path, as well as write and teach others on certain topics. However, this will take some time, so stay tuned! Up next is the Extracurriculars and Skills pages to fix.
NEW DESIGN: For those that don’t want to read: I’m tearing down most of the site to make it a dedicated project site. After realizing that I already have most of my accomplishments and extracurriculars on a different project that I’m making in school, I understood that maintaining a second site would be kind of useless. So, in an attempt to salvage my efforts and make it something worth using, I’m going to take my Javascript knowledge from the NINJAGO OS project I’m also currently making to create a project and devlog site, similar to stardance, as I want to have a place to store all of my hobby projects. However, I don’t want anyone adding information to my site but me, so i’m biting the bullet and learning to differentiate a frontend and backend (with minor AI help), while salvaging the about page of the already existing porfolio. This way, when people online stumble upon it (as i’ll use the grant I got for purchasing a website domain), they’ll know about me first before moving on to my projects. That’s pretty much it! Looking forward to it!
Woohoo, some functionality! Ok, so far I haven’t differentiated a backend and frontend for the projects tab, but for now you can add projects with an image, title, and summary, and they’ll appear as projects on the projects tab. Also, when you click on them, it brings you to a separate viewing tab to see all about the project, although I haven’t started working on the part where you can add devlogs. Also, adding projects isn’t permanent, as when I reload the tab, they all disappear (since I want it to save to the website for everyone to see, I have to implement a Node.js backend, which I haven’t learned about yet). I also slightly changed the theme into dark mode and made the buttons to enter the project look futuristic. They are NOT AI; I made them with the help of this video: ( https://www.youtube.com/watch?v=a1NVen8SaqE ), but it does look a bit different for reasons unknown. Anyway, stay tuned!
Devlog: 9/6/2026 I made SO much progress!! Changes: Can now create devlogs within projects Can edit those devlogs Can add multiple images and videos within the devlogs When you click on the images, they open in a new window above the page New Navbar and logo design, courtesy of this video: https://www.youtube.com/watch?v=uTPO6fKtBvM Can delete devlogs Devlogs gain certain ids based on the date and time, so each devlog has a unique id to allow for edits and deletions For the JavaScript, the basic functionality was carried over from the notes app on my NINJAGO WEBOS, but I did need AI to educate me on how to implement new functions. Also, the CSS and HTML were written mostly by me with the help of tutorials.
Devlog 5: 9/8/26 Nothing much, I managed to get the node.js server running and got the css and html to work, but its nowhere near done. Anyway, for now, I’m going to ship this project so that reviewers can actually see and try to use the add project and add devlog functions. Stay tuned!
Working on the Backend: Literally no functionality has changed yet, this is just me trying to configure node.js to do everything 😭 . Anyway, sorry for not updating in a while, I promise I’ll get back to work on it soon!
Ships:
Hello, here is my portfolio website, which will eventually contain information about me and my life. So far, I have done the minimum requirements for this beginner project, which is why I am shipping it. However, I am pretty excited and happy about how it currently looks. What I did find challenging is that I haven’t used html and css in a while, which meant I had to relearn almost everything while juggling extracurriculars and school events. This personal project will grow as I achieve more things, but for now, the index page is the only truly functional page, which has more than 3 sections. I hope everyone will be able to see my passion and encourage me to continue into the future!
##Ship 2! Hello, reviewers! This is an updated, more useful version of my portfolio website that can now log projects and devlogs, similar to Stardance! I made this after realizing that after Stardance is over, I’ll have nowhere to log my projects and the progress I make on them! To keep a good habit going and log my projects for everyone to see, I decided to edit this portfolio site into a dedicated server for all of my projects, after realizing that I already have a good portfolio that I constantly edit at school. This ship does not have full functionality: it can save any number of projects and devlogs, but once you reload, they are all gone. I can safely say that it was a pain to create a new project and devlog for testing, and now you get to do it too! As you might see in my last devlog, I’m currently shipping this so that everyone can see the project and devlog adding functionality now, because later I’ll add an admin login page so that I can only add my projects, while others who access the website can see them but not edit them. Anyway, that’s all, and have fun!...
|
1792849671.740578
|
1792936071.740578
|
|
28534
|
Personal Portfolio! by @aahish_abbani | Stardance
|
aahish_abbani
|
2
|
13.0
|
183
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-10T17:49:24Z", "hours": 0.0, "multiplier": 11.51, "payout": 4, "blessing": "neutral", "text": "I made a personal website about me. using React 19, TypeScript, and Vite that showcases my projects and personal work. Even though I’m not a designer, I tried making the UI and the UX for this website feel as cool as possible. In my opinion, this is probably one of the best UIs I’ve created of all my projects. I also really, really like the smooth scroll animations that I made through a horizontal parallax and a lenis. There’s also even scroll trigger text reveals, magnetic cards, and animated carousels using Tailwind CSS for styling. I even made a really cool dark and light mode system, but the really challenging part about it was making the timeline work with all of the photos and everything. The cool animations are something I wanted, but that took a little while to make it also optimized for phone, and that’s probably about it. I really wanted to create a really awesome polished system, so try my project. If you like it, please reach out to me for feedback or anything, and you can contact me directly from the website", "repo": "https://github.com/kinghightech/aahish", "demo": "https://www.aahishabbani.me/"}, {"ship_num": 2, "ts": "2026-06-30T00:46:34Z", "hours": 13.0, "multiplier": 17.94, "payout": 179, "blessing": "neutral", "text": "I made a personal website about me. using React 19, TypeScript, and Vite that showcases my projects and personal work. Even though I’m not a designer, I tried making the UI and the UX for this website feel as cool as possible. In my opinion, this is probably one of the best UIs I’ve created of all my projects. I also really, really like the smooth scroll animations that I made through a horizontal parallax and a lenis. There’s also even scroll trigger text reveals, magnetic cards, and animated carousels using Tailwind CSS for styling. I even made a really cool dark and light mode system, but the really challenging part about it was making the timeline work with all of the photos and everything. The cool animations are something I wanted, but that took a little while to make it also optimized for phone, and that’s probably about it. I really wanted to create a really awesome polished system, so try my project. If you like it, please reach out to me for feedback or anything, and you can contact me directly from the website!", "repo": "https://github.com/kinghightech/aahish", "demo": "https://www.aahishabbani.me/"}]...
|
[{"post_id": 24109, "ts": "202 [{"post_id": 24109, "ts": "2026-07-07T13:58:55Z", "hours": 0.34, "text": "I fixed just some small bugs in the website some of the things on the projects page I also added like a new project and actually added it to google so if you search my name it shows up on google."}, {"post_id": 18799, "ts": "2026-06-30T00:36:50Z", "hours": 12.9078, "text": "Im building my first personal portfolio a way to show thing about me to the public!"}]...
|
Title: Personal Portfolio! by @aahish_abbani | Sta Title: Personal Portfolio! by @aahish_abbani | Stardance
Devlogs:
Im building my first personal portfolio a way to show thing about me to the public!
I fixed just some small bugs in the website some of the things on the projects page I also added like a new project and actually added it to google so if you search my name it shows up on google.
Ships:
I made a personal website about me. using React 19, TypeScript, and Vite that showcases my projects and personal work. Even though I’m not a designer, I tried making the UI and the UX for this website feel as cool as possible. In my opinion, this is probably one of the best UIs I’ve created of all my projects. I also really, really like the smooth scroll animations that I made through a horizontal parallax and a lenis. There’s also even scroll trigger text reveals, magnetic cards, and animated carousels using Tailwind CSS for styling. I even made a really cool dark and light mode system, but the really challenging part about it was making the timeline work with all of the photos and everything. The cool animations are something I wanted, but that took a little while to make it also optimized for phone, and that’s probably about it. I really wanted to create a really awesome polished system, so try my project. If you like it, please reach out to me for feedback or anything, and you can contact me directly from the website!
I made a personal website about me. using React 19, TypeScript, and Vite that showcases my projects and personal work. Even though I’m not a designer, I tried making the UI and the UX for this website feel as cool as possible. In my opinion, this is probably one of the best UIs I’ve created of all my projects. I also really, really like the smooth scroll animations that I made through a horizontal parallax and a lenis. There’s also even scroll trigger text reveals, magnetic cards, and animated carousels using Tailwind CSS for styling. I even made a really cool dark and light mode system, but the really challenging part about it was making the timeline work with all of the photos and everything. The cool animations are something I wanted, but that took a little while to make it also optimized for phone, and that’s probably about it. I really wanted to create a really awesome polished system, so try my project. If you like it, please reach out to me for feedback or anything, and you can contact me directly from the website...
|
1792882131.0344045
|
1793746131.0344045
|
|
28566
|
Clark Lab - self hosted PaaS by @clarkpy | Stardan Clark Lab - self hosted PaaS by @clarkpy | Stardance...
|
clarkpy
|
2
|
33.0
|
199
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-07T22:20:00Z", "hours": 9.0, "multiplier": 13.95, "payout": 131, "blessing": "neutral", "text": "This ship was focused on making ClarkLab more stable, easier to set up, and easier to fix when something breaks. I improved the update flow by adding health-check based handling, so it can test a new version before switching over instead of jsut grabbing raw code. I also improved agent updates with release binaries, prebuilt binaries, version handling, and update patches. Setup was another big focus. I added an API and Cloudflare setup wizard to help with env setup, prod config, tunnels, frontend vars, and install scripts. It is still early, but it is a step toward making it much easier to self-host clarklab. I also improved node setup and reconnect behaviour. Online nodes can now be reconnected, unfinished node setups can be cancelled, and I fixed smaller issues around install commands, port notices, API banners, and frontend reconnect logic. Health checks were added for services, with frontend status shown in the service detail page. Agent logs now use the journal too, making debugging easier if something breaks. There were also security and general chore fixes, including agent auth patches, sysadmin-only node modification, stronger password reset handling, safer frontend logs, GitHub parsing fixes, and better CI/workflow checks. Overall, this ship was not about new features (even tho i added some small ones). It was about making my project easier to update and easier to deploy.", "repo": "https://github.com/clarkpy/clarklab-global", "demo": "https://youtu.be/lLkWigWAXwQ"}, {"ship_num": 2, "ts": "2026-06-30T15:04:27Z", "hours": 24.0, "multiplier": 6.79, "payout": 68, "blessing": "neutral", "text": "I made the basis of Clark Lab, my in-house version of Coolify as an alternative to Vercel & Heroku, making it easy to deploy your own databases and apps from home. For security reasons the public demo is a youtube video showing off all of the projects features, you can very quickly and easily deploy the project for development via the read me in as little as two commands.", "repo": "https://github.com/clarkpy/clarklab-global", "demo": "https://youtu.be/lLkWigWAXwQ"}]...
|
[{"post_id": 24383, "ts": "202 [{"post_id": 24383, "ts": "2026-07-07T22:06:36Z", "hours": 6.0267, "text": "I’ve been focused on making ClarkLab easier to set up, safer to update, and less annoying to fix when something breaks. The biggest part of this was improving the update flow. After adding health checks, I worked on making updates more reliable by testing candidate containers before replacing the live API. This means ClarkLab can now check that the new version is actually healthy before switching over, instead of restarting and hoping it works. It should make updates more stble, especially when running it on your own server. I also spent time improving agent updates. Agents can now be updated using release binaries, and I added more work around prebuilt agent binaries, release patches, and version handling. This should make agent updates cleaner and less dependent on building everything manually on the target machine. Another big focus was setup. I added an api and Cloudflare setup wizard to make self-hosting easier. The goal is to guide people through the annoying parts like env setup, production configuration, Cloudflare tunnel setup, frontend variables, and install scripts. It is nowhere near perfect and used agentic assistance, but it is a big step toward making it easier to deploy without needing to manually configure every little option across multiple files. I also improved the node setup flow. There is now a cancel setup button, so if you start setting up a node and mess something up, you are not just stuck with a half-created node. I also patched several small bugs such as the node install command. For debugging, I updated agent logs to use the journal. This should make logs more useful and easier to understand when something goes wrong on a server. I thought this was important as i want this project to be usable for real infra. This feature is very much so in an early stage as i am nowhere near finished with it. There were also a bunch of security and maintenance fixes. I patched agent authentication, blocked node modification for users who are not sysadmins, strengthened password reset handling, reduced the chance of sensitive data being exposed through frontend logs, and tightened GitHub repo parsing. I also updated workflow permissions and CI checks so changes are safer. This devlog is again, not about new frontend features. It is mostly about making this project more stable, easier to deploy, and safer. The main thing I learned from the last ship is that setup still needs to be much easier, so I started moving toward a proper guided setup flow. I very much so want to keep improving that until someone can deploy ClarkLab without having to understand how it works completely first."}, {"post_id": 22790, "ts": "2026-07-05T11:30:41Z", "hours": 3.3653, "text": "I’ve been focused on making ClarkLab easier to use and more fixable if it breaks. One part of this was improving how the app behaves when connections are unstable. I worked on frontend reconnect behaviour and node reconnection so online nodes can be reconnected at any time instead of requiring it to be not responding first. I also fixed issues around agent/API update handling, as there were issues when using the update tool. I introduced health checks in this log as well. Services can now be configured for health monitoring, and the frontend displays health status in the service detail page so it’s easier to see what’s working and what needs attention without investigation. Chore wise, I updated CI checks so changes are safer and easier to maintain. On the UI side, I made a number of usability improvements when deploying it for youself: site URL editing on the frontend, cleanup toward a more minimal interface, masking node IPs behind a reveal action for privacy, and fixes for issues like the API banner behaviour, node install flow, and port allocation notices. Based on feedback from the last ship, It’s clear that I need to make it easier to setup. I’m planning on making a CLI-based setup flow with env setup etc there, but, that is not built yet. Overall, this devlog is less about new frontend features and more about making ClarkLab feel more stable and less buggy."}, {"post_id": 18883, "ts": "2026-06-30T02:31:03Z", "hours": 24.0975, "text": "In the last few weeks i have created an in-house and open-source version of coolify. I did this as i wanted a way to run coolify that i found easier and that i preferred UI wise. I am still making it so there is almost certainly issues relating to security but it is currently functional."}]...
|
Title: Clark Lab - self hosted PaaS by @clarkpy | Title: Clark Lab - self hosted PaaS by @clarkpy | Stardance
Devlogs:
In the last few weeks i have created an in-house and open-source version of coolify. I did this as i wanted a way to run coolify that i found easier and that i preferred UI wise. I am still making it so there is almost certainly issues relating to security but it is currently functional.
I’ve been focused on making ClarkLab easier to use and more fixable if it breaks. One part of this was improving how the app behaves when connections are unstable. I worked on frontend reconnect behaviour and node reconnection so online nodes can be reconnected at any time instead of requiring it to be not responding first. I also fixed issues around agent/API update handling, as there were issues when using the update tool. I introduced health checks in this log as well. Services can now be configured for health monitoring, and the frontend displays health status in the service detail page so it’s easier to see what’s working and what needs attention without investigation. Chore wise, I updated CI checks so changes are safer and easier to maintain. On the UI side, I made a number of usability improvements when deploying it for youself: site URL editing on the frontend, cleanup toward a more minimal interface, masking node IPs behind a reveal action for privacy, and fixes for issues like the API banner behaviour, node install flow, and port allocation notices. Based on feedback from the last ship, It’s clear that I need to make it easier to setup. I’m planning on making a CLI-based setup flow with env setup etc there, but, that is not built yet. Overall, this devlog is less about new frontend features and more about making ClarkLab feel more stable and less buggy.
I’ve been focused on making ClarkLab easier to set up, safer to update, and less annoying to fix when something breaks. The biggest part of this was improving the update flow. After adding health checks, I worked on making updates more reliable by testing candidate containers before replacing the live API. This means ClarkLab can now check that the new version is actually healthy before switching over, instead of restarting and hoping it works. It should make updates more stble, especially when running it on your own server. I also spent time improving agent updates. Agents can now be updated using release binaries, and I added more work around prebuilt agent binaries, release patches, and version handling. This should make agent updates cleaner and less dependent on building everything manually on the target machine. Another big focus was setup. I added an api and Cloudflare setup wizard to make self-hosting easier. The goal is to guide people through the annoying parts like env setup, production configuration, Cloudflare tunnel setup, frontend variables, and install scripts. It is nowhere near perfect and used agentic assistance, but it is a big step toward making it easier to deploy without needing to manually configure every little option across multiple files. I also improved the node setup flow. There is now a cancel setup button, so if you start setting up a node and mess something up, you are not just stuck with a half-created node. I also patched several small bugs such as the node install command. For debugging, I updated agent logs to use the journal. This should make logs more useful and easier to understand when something goes wrong on a server. I thought this was important as i want this project to be usable for real infra. This feature is very much so in an early stage as i am nowhere near finished with it. There were also a bunch of security and maintenance fixes. I patched agent authentication, blocked node modification for users who are not sysadmins, strengthened password reset handling, reduced the chance of sensitive data being exposed through frontend logs, and tightened GitHub repo parsing. I also updated workflow permissions and CI checks so changes are safer. This devlog is again, not about new frontend features. It is mostly about making this project more stable, easier to deploy, and safer. The main thing I learned from the last ship is that setup still needs to be much easier, so I started moving toward a proper guided setup flow. I very much so want to keep improving that until someone can deploy ClarkLab without having to understand how it works completely first.
Ships:
I made the basis of Clark Lab, my in-house version of Coolify as an alternative to Vercel & Heroku, making it easy to deploy your own databases and apps from home. For security reasons the public demo is a youtube video showing off all of the projects features, you can very quickly and easily deploy the project for development via the read me in as little as two commands.
This ship was focused on making ClarkLab more stable, easier to set up, and easier to fix when something breaks. I improved the update flow by adding health-check based handling, so it can test a new version before switching over instead of jsut grabbing raw code. I also improved agent updates with release binaries, prebuilt binaries, version handling, and update patches. Setup was another big focus. I added an API and Cloudflare setup wizard to help with env setup, prod config, tunnels, frontend vars, and install scripts. It is still early, but it is a step toward making it much easier to self-host clarklab. I also improved node setup and reconnect behaviour. Online nodes can now be reconnected, unfinished node setups can be cancelled, and I fixed smaller issues around install commands, port notices, API banners, and frontend reconnect logic. Health checks were added for services, with frontend status shown in the service detail page. Agent logs now use the journal too, making debugging easier if something breaks. There were also security and general chore fixes, including agent auth patches, sysadmin-only node modification, stronger password reset handling, safer frontend logs, GitHub parsing fixes, and better CI/workflow checks. Overall, this ship was not about new features (even tho i added some small ones). It was about making my project easier to update and easier to deploy....
|
1792842904.2579546
|
1792929304.2579546
|
|
28590
|
My own site! by @Bobert3D | Stardance
|
Bobert3D
|
2
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-30T17:18:43Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Fixed Img!", "repo": "https://github.com/Bobert3D/Personal_Web-V1", "demo": "https://bobert3d.github.io/Personal_Web-V1/"}, {"ship_num": 2, "ts": "2026-06-30T03:17:17Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "ITS done!!!! and I’m happy but add pics soon!", "repo": "https://github.com/Bobert3D/Personal_Web-V1", "demo": "https://bobert3d.github.io/Personal_Web-V1/"}]...
|
[{"post_id": 19359, "ts": "202 [{"post_id": 19359, "ts": "2026-06-30T17:13:23Z", "hours": 0.2536, "text": "I fixed img by adding to base library"}, {"post_id": 18917, "ts": "2026-06-30T03:07:46Z", "hours": 0.2908, "text": "IM DONE!!!"}]...
|
Title: My own site! by @Bobert3D | Stardance
Devl Title: My own site! by @Bobert3D | Stardance
Devlogs:
IM DONE!!!
I fixed img by adding to base library
Ships:
ITS done!!!! and I’m happy but add pics soon!
Fixed Img!...
|
1792842568.517007
|
1792928968.517007
|
|
28672
|
Helpy by @Ak_45 | Stardance
|
|
2
|
105.33
|
307
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-02T08:59:48Z", "hours": 38.0, "multiplier": 12.68, "payout": 237, "blessing": "neutral", "text": "I have polished the previous version of the app. I have added a focus shield, a music and ambient noise player, an AI chatbot, a softer notification, and better personalization. Completely discarded the previous version of the Chrome extension and rewrote it and added better UI and smart web tools, making it so that you can customize the user’s plan from the Chrome extension itself. Made the bridge between the app and the Chrome extension smoother and better & made the app way more ADHD-friendly. # NOTE: make sure that you enable notification in your OS and BROWSER", "repo": "https://github.com/Akshithsurya/helpy", "demo": "https://github.com/Akshithsurya/helpy/releases/tag/Helpy"}, {"ship_num": 2, "ts": "2026-07-15T14:50:47Z", "hours": 16.0, "multiplier": 8.66, "payout": 70, "blessing": "neutral", "text": "Helpy is a cross-platform desktop application built with Electron, accompanied by a Chrome extension, to help individuals with ADHD manage tasks, improve focus, and reduce distractions. The project was designed around the idea that productivity tools should adapt to the user rather than requiring the user to adapt to the tool. The application combines task management, focus sessions, reminders, and browser integration into a single, streamlined experience. The Chrome extension allows users to quickly capture tasks while browsing, while the desktop application provides a centralized workspace for organizing and tracking progress. One of the primary challenges was integrating the Electron desktop application with the Chrome extension while maintaining a consistent user experience. Packaging the application for distribution across multiple platforms and designing an interface that remains simple without sacrificing functionality also required significant effort. This project strengthened my understanding of Electron, Chrome Extension APIs, desktop application packaging, application architecture, and user-centered interface design. I am particularly proud of creating a solution that addresses a real accessibility and productivity challenge while remaining easy to install and use. To test the project: Download and install the latest release from the GitHub Releases page. Launch the Helpy desktop application. Load the Chrome extension using Chrome’s Developer Mode (Load unpacked or install the provided package). Create tasks, start focus sessions, and use the extension to save tasks directly from the browser. Verify that tasks and productivity features function as expected.", "repo": "https://github.com/Akshithsurya/helpy", "demo": "https://github.com/Akshithsurya/helpy/releases/tag/Helpy"}]...
|
[{"post_id": 50212, "ts": "202 [{"post_id": 50212, "ts": "2026-08-19T10:56:53Z", "hours": 8.6908, "text": "chnaged many of the features compressed to exe but i got hit with an error"}, {"post_id": 48032, "ts": "2026-08-16T10:05:38Z", "hours": 8.5569, "text": "Ready for ship and made the UI better and made it better and less quirky"}, {"post_id": 46824, "ts": "2026-08-14T10:51:45Z", "hours": 8.3019, "text": "made the chatbot better and added better code to everything and majour ui chang(rn place holder)"}, {"post_id": 45592, "ts": "2026-08-12T05:49:31Z", "hours": 8.6422, "text": "Made the features take up less space, which shrunk the app by 31%, and then made the notifications less annoying, made the app a bit more chat bot driven and made the chat bot better and added better themes"}, {"post_id": 40695, "ts": "2026-08-04T11:47:31Z", "hours": 8.8981, "text": "Added so that the app picks up the timer if you closed the app, made the music selection better and added new welcome message for new users to get started. :)"}, {"post_id": 40022, "ts": "2026-08-03T11:27:17Z", "hours": 8.24, "text": "I have made the chatbot better, made the UI better and less cluttered, added better focus shield, and made it way more optimised"}, {"post_id": 39305, "ts": "2026-08-02T06:06:20Z", "hours": 7.6078, "text": "Done adding a less cluttered UI, personalization, a chatbot companion, and more music and about to release V2"}, {"post_id": 38153, "ts": "2026-07-31T12:17:00Z", "hours": 8.9819, "text": "Major UI makeover and added a better chat bot."}, {"post_id": 36445, "ts": "2026-07-28T16:00:06Z", "hours": 8.1717, "text": "Added a chatbot and optimized the code & added features to help people with dyslexia to operate it."}, {"post_id": 34076, "ts": "2026-07-24T15:18:57Z", "hours": 8.3667, "text": "Added a settings row to Focus Focus Shield, Calm Mode, No Animation, Light Mode toggle, and a font/sound switcher. Added a settings row to Focus Focus Shield, Calm Mode, No Animation, Light Mode toggle, and a font/sound switcher. Per User Persistence All Per User Persistence All Also built Quick Commands - one input to type stuff like /plan work 60 or /help instead of clicking through menus. Still wiring up the rest of the commands. Underneath that: Create Focus Plan, with a Timer: Work Mode. Right now it just displays 00:00 as a placeholder – next up is hooking it to the actual session logic so starting a plan counts down for real.:)"}, {"post_id": 30564, "ts": "2026-07-18T07:36:40Z", "hours": 4.5017, "text": "Dark mode has been added. Now tell me what else i should add?"}, {"post_id": 28892, "ts": "2026-07-15T14:17:59Z", "hours": 1.9361, "text": "made the signup and login work made the notifications way less annoying :D"}, {"post_id": 27758, "ts": "2026-07-13T16:30:41Z", "hours": 2.1161, "text": "Added a Chrome extension to help track activities and to help people with ADHD and ADD"}, {"post_id": 27167, "ts": "2026-07-12T14:16:42Z", "hours": 2.9783, "text": "UI ready"}, {"post_id": 26023, "ts": "2026-07-10T16:30:57Z", "hours": 9.1939, "text": "Working on HelpY, a project to help ADHD and forgetful people, but how do fix this error? No AI agent was able to make a dent in the problem."}]...
|
Title: Helpy by @Ak_45 | Stardance
Devlogs:
Worki Title: Helpy by @Ak_45 | Stardance
Devlogs:
Working on HelpY, a project to help ADHD and forgetful people, but how do fix this error? No AI agent was able to make a dent in the problem.
UI ready
Added a Chrome extension to help track activities and to help people with ADHD and ADD
made the signup and login work made the notifications way less annoying :D
Dark mode has been added. Now tell me what else i should add?
Added a settings row to Focus Focus Shield, Calm Mode, No Animation, Light Mode toggle, and a font/sound switcher. Added a settings row to Focus Focus Shield, Calm Mode, No Animation, Light Mode toggle, and a font/sound switcher. Per User Persistence All Per User Persistence All Also built Quick Commands - one input to type stuff like /plan work 60 or /help instead of clicking through menus. Still wiring up the rest of the commands. Underneath that: Create Focus Plan, with a Timer: Work Mode. Right now it just displays 00:00 as a placeholder – next up is hooking it to the actual session logic so starting a plan counts down for real.:)
Added a chatbot and optimized the code & added features to help people with dyslexia to operate it.
Major UI makeover and added a better chat bot.
Done adding a less cluttered UI, personalization, a chatbot companion, and more music and about to release V2
I have made the chatbot better, made the UI better and less cluttered, added better focus shield, and made it way more optimised
Added so that the app picks up the timer if you closed the app, made the music selection better and added new welcome message for new users to get started. :)
Made the features take up less space, which shrunk the app by 31%, and then made the notifications less annoying, made the app a bit more chat bot driven and made the chat bot better and added better themes
made the chatbot better and added better code to everything and majour ui chang(rn place holder)
Ready for ship and made the UI better and made it better and less quirky
chnaged many of the features compressed to exe but i got hit with an error
Ships:
Helpy is a cross-platform desktop application built with Electron, accompanied by a Chrome extension, to help individuals with ADHD manage tasks, improve focus, and reduce distractions. The project was designed around the idea that productivity tools should adapt to the user rather than requiring the user to adapt to the tool. The application combines task management, focus sessions, reminders, and browser integration into a single, streamlined experience. The Chrome extension allows users to quickly capture tasks while browsing, while the desktop application provides a centralized workspace for organizing and tracking progress. One of the primary challenges was integrating the Electron desktop application with the Chrome extension while maintaining a consistent user experience. Packaging the application for distribution across multiple platforms and designing an interface that remains simple without sacrificing functionality also required significant effort. This project strengthened my understanding of Electron, Chrome Extension APIs, desktop application packaging, application architecture, and user-centered interface design. I am particularly proud of creating a solution that addresses a real accessibility and productivity challenge while remaining easy to install and use. To test the project: Download and install the latest release from the GitHub Releases page. Launch the Helpy desktop application. Load the Chrome extension using Chrome’s Developer Mode (Load unpacked or install the provided package). Create tasks, start focus sessions, and use the extension to save tasks directly from the browser. Verify that tasks and productivity features function as expected.
I have polished the previous version of the app. I have added a focus shield, a music and ambient noise player, an AI chatbot, a softer notification, and better personalization. Completely discarded the previous version of the Chrome extension and rewrote it and added better UI and smart web tools, making it so that you can customize the user’s plan from the Chrome extension itself. Made the bridge between the app and the Chrome extension smoother and better & made the app way more ADHD-friendly. # NOTE: make sure that you enable notification in your OS and BROWSER...
|
1792835355.7725847
|
1792921755.7725847
|
|
28732
|
Data minigames by @Paul1379 | Stardance
|
Paul1379
|
2
|
7.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-25T14:17:33Z", "hours": 1.0, "multiplier": 3.49, "payout": 2, "blessing": "neutral", "text": "What is this game? This game is a series of minigames around the theme of data made in godot. There is currently four mingames made for challenging your speed, pattern recognition and mental math skills. In the minigames you will have to: distinguish between dogs and cats spot a slightly different color on a grid find the largest produit click on a specific color given by colored text Sounds easy? Try to do it faster, and faster, and faster… You can play the game on web on itch.io, my personnal best score is 37. New features for this ship: As said in the devlog, I added a fourth minigame about finding the largest product between four and I replace the health icon with my own.", "repo": "https://github.com/Paul-1379/Data-minigames", "demo": "https://paul1379.itch.io/data-analyser"}, {"ship_num": 2, "ts": "2026-07-04T10:39:41Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I am very happy to be back in game development with this simple game. I got confident in using godot (I used unity for most of my game project) and I am satisfied with the minigames ideas I had. The only current catch is the fact that there is no music.", "repo": "https://github.com/Paul-1379/Data-minigames", "demo": "https://paul1379.itch.io/data-analyser"}]...
|
[{"post_id": 54451, "ts": "202 [{"post_id": 54451, "ts": "2026-08-25T13:59:27Z", "hours": 0.6672, "text": "Add a new minigame: biggest product The goal of this new minigame is, as you expect, to find the biggest product between four products. All of the products are formed with 2 numbers between 1 and 10 in order to make it mental math challenge. I also change the icon used to represent the lives, I make this new icon using the costumes editor in scratch (which is basically a svg editor), I used this editor because I am used to using scratch so it was the fastest for me."}, {"post_id": 22081, "ts": "2026-07-04T10:31:02Z", "hours": 1.5483, "text": "I changed the end and the win screen with text animations (it gives more suspense), and since the game screen size was the godot default, I changed it for a 1920x1080 screen size"}, {"post_id": 20681, "ts": "2026-07-02T10:31:22Z", "hours": 1.5006, "text": "New background and minigame! The background is still made with blender and the new minigame is about clicking on the circle with a slightly different color than the others (only problem is that it is not playable for colorblind people🥲)"}, {"post_id": 19854, "ts": "2026-07-01T08:05:09Z", "hours": 3.2564, "text": "Made a first version of the game with two minigames: one where you have to quickly say if an image shows a cat or a dog, and another one where you have to tell wich color a colored text is describing"}]...
|
Title: Data minigames by @Paul1379 | Stardance
De Title: Data minigames by @Paul1379 | Stardance
Devlogs:
Made a first version of the game with two minigames: one where you have to quickly say if an image shows a cat or a dog, and another one where you have to tell wich color a colored text is describing
New background and minigame! The background is still made with blender and the new minigame is about clicking on the circle with a slightly different color than the others (only problem is that it is not playable for colorblind people🥲)
I changed the end and the win screen with text animations (it gives more suspense), and since the game screen size was the godot default, I changed it for a 1920x1080 screen size
Add a new minigame: biggest product The goal of this new minigame is, as you expect, to find the biggest product between four products. All of the products are formed with 2 numbers between 1 and 10 in order to make it mental math challenge. I also change the icon used to represent the lives, I make this new icon using the costumes editor in scratch (which is basically a svg editor), I used this editor because I am used to using scratch so it was the fastest for me.
Ships:
I am very happy to be back in game development with this simple game. I got confident in using godot (I used unity for most of my game project) and I am satisfied with the minigames ideas I had. The only current catch is the fact that there is no music.
What is this game? This game is a series of minigames around the theme of data made in godot. There is currently four mingames made for challenging your speed, pattern recognition and mental math skills. In the minigames you will have to: distinguish between dogs and cats spot a slightly different color on a grid find the largest produit click on a specific color given by colored text Sounds easy? Try to do it faster, and faster, and faster… You can play the game on web on itch.io, my personnal best score is 37. New features for this ship: As said in the devlog, I added a fourth minigame about finding the largest product between four and I replace the health icon with my own....
|
1792824580.0854158
|
1792910980.0854158
|
|
28750
|
Hack Club AI status bot by @Devansh | Stardance
|
Devansh
|
2
|
2.0
|
9
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-10T02:35:40Z", "hours": 1.0, "multiplier": 3.02, "payout": 3, "blessing": "neutral", "text": "Now it also shows time till 10 and 0 and usage per day, + status endpoints", "repo": "https://github.com/Devansh-awat/Hack-Club-AI-status-bot", "demo": "https://hackclub.enterprise.slack.com/docs/T0266FRGM/F0BE8K2N3MJ"}, {"ship_num": 2, "ts": "2026-06-30T12:06:06Z", "hours": 1.0, "multiplier": 4.98, "payout": 6, "blessing": "neutral", "text": "Made a status bot for hackclub ai which shows a graph of balance and pins a message when its under 0. also alerts @mahad when it falls under 10. Updates every minute.", "repo": "https://github.com/Devansh-awat/Hack-Club-AI-status-bot", "demo": "https://hackclub.enterprise.slack.com/docs/T0266FRGM/F0BE8K2N3MJ"}]...
|
[{"post_id": 25667, "ts": "202 [{"post_id": 25667, "ts": "2026-07-10T02:32:35Z", "hours": 1.1364, "text": "I added a status endpoint at https://hcai.devansh.hackclub.app/history so that you can see current and past status of ai.hackclub.app/up and use it for whatever purposes. Also added estimated time to 0 and fixed a bug where the image was not visible by hosting it at https://hcai.devansh.hackclub.app/balance_trend.png There is still a bug where it shows double lines on the canvas, and im nor sure if its at my end only, so if you see it pls dm @devansh on slack with a picture."}, {"post_id": 19146, "ts": "2026-06-30T12:03:45Z", "hours": 1.21, "text": "Got bot working, there was issue where bot uploaded private images so no one could see, but i used claude and it told to use a format like in the canvas so it will put image directly in the canvas. The pinned message part is yet to be tested, and will be tested when hackclub ai runs out of money again. bound to happen soon, it happens like every week."}]...
|
Title: Hack Club AI status bot by @Devansh | Stard Title: Hack Club AI status bot by @Devansh | Stardance
Devlogs:
Got bot working, there was issue where bot uploaded private images so no one could see, but i used claude and it told to use a format like in the canvas so it will put image directly in the canvas. The pinned message part is yet to be tested, and will be tested when hackclub ai runs out of money again. bound to happen soon, it happens like every week.
I added a status endpoint at https://hcai.devansh.hackclub.app/history so that you can see current and past status of ai.hackclub.app/up and use it for whatever purposes. Also added estimated time to 0 and fixed a bug where the image was not visible by hosting it at https://hcai.devansh.hackclub.app/balance_trend.png There is still a bug where it shows double lines on the canvas, and im nor sure if its at my end only, so if you see it pls dm @devansh on slack with a picture.
Ships:
Made a status bot for hackclub ai which shows a graph of balance and pins a message when its under 0. also alerts @mahad when it falls under 10. Updates every minute.
Now it also shows time till 10 and 0 and usage per day, + status endpoints...
|
1792842894.403105
|
1792929294.403105
|
|
28822
|
Ada's Website! by @ada_bardiz | Stardance
|
ada_bardiz
|
2
|
6.0
|
14
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-09T17:08:13Z", "hours": 5.0, "multiplier": 2.83, "payout": 14, "blessing": "neutral", "text": "I made a personal website to serve as my portfolio. I made this project when I was really tired, so one thing I found challenging was 1) finding a cutesy font 2) figuring out why the image wouldn’t display. I’m proud of how polished it looks and how much information I was able to showcase. People can try it out via this link: https://adabardiz.github.io/personal-website-2/", "repo": "https://github.com/adabardiz/personal-website-2", "demo": "https://adabardiz.github.io/personal-website-2/"}, {"ship_num": 2, "ts": "2026-07-02T15:33:15Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a personal website that showcases a few examples of my projects, includes links to my github and linkedin accounts and has a minigame! This was my first experience with HTML, and I’m pretty proud of myself. My biggest issue was that I couldn’t get my dog’s photo to appear on the website page, and I fixed it by using Gemini’s help. Gemini helped me realize that my dogs photo was in jpg when I was trying to upload it in jpeg form, and also that I didn’t upload my dogs photo into the folder that the index.html file was in. I made sure to credit ProgrammingWithMosh and cite that I used AI in my readme.", "repo": "https://github.com/adabardiz/personal-website-2", "demo": "https://adabardiz.github.io/personal-website-2/"}]...
|
[{"post_id": 64911, "ts": "202 [{"post_id": 64911, "ts": "2026-09-09T17:06:30Z", "hours": 4.9453, "text": "I completely re-did the website! Added a few new sections & made it a bit more polished. Check it out: https://github.com/adabardiz/personal-website-2"}, {"post_id": 19976, "ts": "2026-07-01T13:25:28Z", "hours": 0.7336, "text": "Just added a silly small minigame to my website! Go check it out."}]...
|
Title: Ada's Website! by @ada_bardiz | Stardan Title: Ada's Website! by @ada_bardiz | Stardance
Devlogs:
Just added a silly small minigame to my website! Go check it out.
I completely re-did the website! Added a few new sections & made it a bit more polished. Check it out: https://github.com/adabardiz/personal-website-2
Ships:
I made a personal website that showcases a few examples of my projects, includes links to my github and linkedin accounts and has a minigame! This was my first experience with HTML, and I’m pretty proud of myself. My biggest issue was that I couldn’t get my dog’s photo to appear on the website page, and I fixed it by using Gemini’s help. Gemini helped me realize that my dogs photo was in jpg when I was trying to upload it in jpeg form, and also that I didn’t upload my dogs photo into the folder that the index.html file was in. I made sure to credit ProgrammingWithMosh and cite that I used AI in my readme.
I made a personal website to serve as my portfolio. I made this project when I was really tired, so one thing I found challenging was 1) finding a cutesy font 2) figuring out why the image wouldn’t display. I’m proud of how polished it looks and how much information I was able to showcase. People can try it out via this link: https://adabardiz.github.io/personal-website-2/...
|
1792810344.3240116
|
1792896744.3240116
|
|
28880
|
Hallo-Ware Game by @michellee | Stardance
|
michellee
|
2
|
18.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T04:40:19Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hallo-ware is a fast-paced Halloween minigame collection inspired by WarioWare! You can test your reflexes, memory, and timing across 6 spooky minigames. The minigames are supposed to start easy and increasingly become harder (if it doesn’t for you, good job!)", "repo": "https://github.com/michelleebe/WarioWareGame", "demo": "https://michelleebe.itch.io/hallo-ware"}, {"ship_num": 2, "ts": "2026-08-14T18:45:47Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Halloween-themed WarioWare game! This game consisted of three minigames: a platformer, a clicker, and a dodger (in that order). Coding was challenging, especially because I needed to make some changes that the guide couldn’t help with, and I had to figure them out on my own. Although it was difficult, the outcome of my game made it all worth it! Controls: Left Arrow Key, Right Arrow Key, and Spacebar", "repo": "https://github.com/michelleebe/WarioWareGame", "demo": "https://michelleebe.itch.io/hallo-ware"}]...
|
[{"post_id": 50085, "ts": "202 [{"post_id": 50085, "ts": "2026-08-19T04:30:42Z", "hours": 2.0353, "text": "Minigame6! This a flappy bird Halloween inspired game! Its the same gameplay as flappy bird just tweaked to fit my theme!"}, {"post_id": 49993, "ts": "2026-08-19T00:49:11Z", "hours": 1.4578, "text": "Minigame5! During this minigame colors will flash on the screen and the player has 6 seconds to organize the candles in the correct order to complete the level!"}, {"post_id": 49161, "ts": "2026-08-17T19:58:00Z", "hours": 1.5761, "text": "MiniGame 4: This is a pong game that is super easy and basic."}, {"post_id": 47086, "ts": "2026-08-14T18:38:10Z", "hours": 1.5264, "text": "I made my final scene, which is the setting scene. It just lists the controls and how to win the game! I also spent most of this time fixing my code and doing a bunch of troubleshooting!!"}, {"post_id": 46955, "ts": "2026-08-14T15:13:09Z", "hours": 1.0586, "text": "I created my win/lose screen which shows different reactions of the cat. On the win screen there will be cheering in the background. While on the lose screen you will hear a womp womp sound."}, {"post_id": 46710, "ts": "2026-08-14T04:52:05Z", "hours": 0.5639, "text": "Minigame 3! I created my last minigame which is the cutest thing ever. The player has 5 seconds to dodge the falling pumpkins to win the game!"}, {"post_id": 46663, "ts": "2026-08-14T03:00:31Z", "hours": 0.8203, "text": "Minigame 2 is done! This is the clicker minigame, the player has 10 seconds to click all the 10 ghosts to pass on to the next level!"}, {"post_id": 46465, "ts": "2026-08-13T18:06:06Z", "hours": 1.5789, "text": "I finished my first minigame level; it’s super cute to me! Coding was a pain in the butt for the level scene and the minigame. Specifically, making the game go into the next scene after collecting all the potions instead of the timer running out. For some reason, the code in the tutorial wasn’t working for me."}, {"post_id": 45970, "ts": "2026-08-12T20:00:40Z", "hours": 6.4864, "text": "Umm, it’s been a while, and I changed the whole theme of the game. Im not sure what I was doing for those 6 hours, but now I have a completely new title screen and level scene, and I created my player for my first minigame."}, {"post_id": 19665, "ts": "2026-07-01T01:25:09Z", "hours": 0.8506, "text": "I created the base of the start page of my CandyWare game. This isn’t the final look; I am just getting the hang of using Godot. I already have a plan for the minigames that I’ll make!! I am also going to learn how to make a moving background for the rest of my scenes."}]...
|
Title: Hallo-Ware Game by @michellee | Stardance
Title: Hallo-Ware Game by @michellee | Stardance
Devlogs:
I created the base of the start page of my CandyWare game. This isn’t the final look; I am just getting the hang of using Godot. I already have a plan for the minigames that I’ll make!! I am also going to learn how to make a moving background for the rest of my scenes.
Umm, it’s been a while, and I changed the whole theme of the game. Im not sure what I was doing for those 6 hours, but now I have a completely new title screen and level scene, and I created my player for my first minigame.
I finished my first minigame level; it’s super cute to me! Coding was a pain in the butt for the level scene and the minigame. Specifically, making the game go into the next scene after collecting all the potions instead of the timer running out. For some reason, the code in the tutorial wasn’t working for me.
Minigame 2 is done! This is the clicker minigame, the player has 10 seconds to click all the 10 ghosts to pass on to the next level!
Minigame 3! I created my last minigame which is the cutest thing ever. The player has 5 seconds to dodge the falling pumpkins to win the game!
I created my win/lose screen which shows different reactions of the cat. On the win screen there will be cheering in the background. While on the lose screen you will hear a womp womp sound.
I made my final scene, which is the setting scene. It just lists the controls and how to win the game! I also spent most of this time fixing my code and doing a bunch of troubleshooting!!
MiniGame 4: This is a pong game that is super easy and basic.
Minigame5! During this minigame colors will flash on the screen and the player has 6 seconds to organize the candles in the correct order to complete the level!
Minigame6! This a flappy bird Halloween inspired game! Its the same gameplay as flappy bird just tweaked to fit my theme!
Ships:
I made a Halloween-themed WarioWare game! This game consisted of three minigames: a platformer, a clicker, and a dodger (in that order). Coding was challenging, especially because I needed to make some changes that the guide couldn’t help with, and I had to figure them out on my own. Although it was difficult, the outcome of my game made it all worth it! Controls: Left Arrow Key, Right Arrow Key, and Spacebar
Hallo-ware is a fast-paced Halloween minigame collection inspired by WarioWare! You can test your reflexes, memory, and timing across 6 spooky minigames. The minigames are supposed to start easy and increasingly become harder (if it doesn’t for you, good job!)...
|
1792832183.3521557
|
1792918583.3521557
|
|
28918
|
WarioWare Game by @Vigaash | Stardance
|
Vigaash
|
2
|
19.0
|
43
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-20T17:57:40Z", "hours": 10.0, "multiplier": 4.45, "payout": 43, "blessing": "neutral", "text": "I made Warioware, a game full of fun minigames that follows the concept of Mario Party, where you play Wario-related minigames without losing your lives! It was built using Godot, GDscript, and a passion for Nintendo. Currently, there are four games that are active. The games are: Super Wario, Star Collector, Garlic Catcher, and Flappy Bird. A problem that I had with this was trying to create the score and make sure that the score doesn’t automatically update because of a bug in the scoring system. More thorough details are in my Readme! Hope you guys like it! Link: https://github.com/Vigaash-Lingeswaran/WarioWare-game Link to game: https://vigaash-lingeswaran.itch.io/super-wario-ware", "repo": "https://github.com/Vigaash-Lingeswaran/WarioWare-game", "demo": "https://vigaash-lingeswaran.itch.io/super-wario-ware"}, {"ship_num": 2, "ts": "2026-07-04T18:00:55Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hey guys! I made a WarioWare-themed game with 2 minigames so far (I am working on more). You have to beat the game without losing your 5 lives. What I found challenging was trying to both to try to create my own creative screens and addons like GIFS, as well as the coding for these new games. Even though I haven’t added these new games yet, I still have a little trouble with it, especially the code for the PONG game, since it is also my first time using GDscript and Godot. The controls and all other features are in my readme, but it is pretty intuitive to play. Hope you guys like it!", "repo": "https://github.com/Vigaash-Lingeswaran/WarioWare-game", "demo": "https://vigaash-lingeswaran.itch.io/super-wario-ware"}]...
|
[{"post_id": 50463, "ts": "202 [{"post_id": 50463, "ts": "2026-08-19T16:58:08Z", "hours": 1.8992, "text": "Hey guys! I have been working a lot on the Warioware game. Here’s what I have done so far. I started off by creating and finishing the fourth game, which was the flappy bird game. This game was a decent challenge, but I was able to figure it out in the end. I used a player scene (CharacterBody 2D), then an obstacle scene (Area2D), and finally a main game scene. From there, I just combined each of the elements and their respective scripts. One challenge that I faced with this was trying to get the score working for it. Since the score would have to be referenced into two different scripts, I remembered that I could use a Global variable, which allowed me to easily reference the score in both scripts which allowed the game to flow smoothly to the next scenes. I learned a lot through this game. Next steps would be just to finish any polishing steps."}, {"post_id": 49319, "ts": "2026-08-18T02:10:36Z", "hours": 7.7967, "text": "Hey guys! I have been working a lot on the WarioWare game. Here’s what I have done so far. I started off by creating the third game, which would be a catcher game, where the player would move across the x-axis to catch all of the garlic. I did this by combining three different scenes, where one scene was the player, the next was the garlic spawner, and the final one was the entire minigame scene. I learned a lot through this game because it introduced me to how something like a spawner would be created in Godot, where you would have to use a timer, and then load an Sprite2D with a CollisionShape2D attached to it. The next steps would be to create the final game, which I am thinking to be a flappy bird game."}, {"post_id": 22258, "ts": "2026-07-04T17:09:40Z", "hours": 7.0564, "text": "Hey guys! It’s kind of been a while since I last posted, but I have seemed to lock in. Here’s what I did: I started off by basically finishing all of the first game. This included all of the controls of the player and how it interacts with the platform. I have also learned how to start animating things for the coins I created. I then started on the second game, which was the clicker game. I decided it would be good to include a star as the thing to collect. This one was also pretty easy, but I had a little bit of trouble trying to figure out how to get the code for the next level intermission that would come after this, because it would sometimes reload the global variables. After that, I decided to start working on the winner and death scenes. I wanted to try and make the whole game kind of close to the Super Mario vibe, so I also spent a lot of time trying to make different designs. That’s where most of the time was, because I was able to get the background images from things I designed on canva, but some parts I had to overlap onto Godot like the different buttons. After that, I basically put all of the finishing touches on the game. This included any design changes like adding some GIFs at the end of the game, and just adding things like a settings page. Overall, I have pretty much finished all of the required parts of this mission, but I will continue to work on this further. I really had a great time with this mission, as it was my first time using Godot, and it taught me a lot about the game. Next steps would just be to add a little bit more games, and some more animations, and maybe even music."}, {"post_id": 19615, "ts": "2026-06-30T23:54:07Z", "hours": 1.69, "text": "Hey Guys! This is my first devlog for the WarioWare Game. Here’s what I got done. I started off by making the title page. I followed the general guide, but since there were a couple of components that just didn’t seem to work on my side, I ended up switching up some of the elements. These included the types of elements like labels, textureRect, and more. I also didn’t like how the font was on the exmaple so I fooled around with it until I liked it. Another thing that I started on was the usage of buttons and their functions. I haven’t used Java before, so it was a little challenging at the start, especially with the use of “:” instead of “;” which is what I am used to. I have been able to get my first button to work. Another thing that I started was the timer for the minigame. I have figured out how to ensure that the timer ends properly (without going into the negatives), and it has been working so far. I have started a very little bit of the first minigame, but I was a little too tired to keep going. Next steps would be to get the first mingame working. This would mean being able to move the character and have it interact with the different elements on the screen. But pretty good progress for today."}]...
|
Title: WarioWare Game by @Vigaash | Stardance
Dev Title: WarioWare Game by @Vigaash | Stardance
Devlogs:
Hey Guys! This is my first devlog for the WarioWare Game. Here’s what I got done. I started off by making the title page. I followed the general guide, but since there were a couple of components that just didn’t seem to work on my side, I ended up switching up some of the elements. These included the types of elements like labels, textureRect, and more. I also didn’t like how the font was on the exmaple so I fooled around with it until I liked it. Another thing that I started on was the usage of buttons and their functions. I haven’t used Java before, so it was a little challenging at the start, especially with the use of “:” instead of “;” which is what I am used to. I have been able to get my first button to work. Another thing that I started was the timer for the minigame. I have figured out how to ensure that the timer ends properly (without going into the negatives), and it has been working so far. I have started a very little bit of the first minigame, but I was a little too tired to keep going. Next steps would be to get the first mingame working. This would mean being able to move the character and have it interact with the different elements on the screen. But pretty good progress for today.
Hey guys! It’s kind of been a while since I last posted, but I have seemed to lock in. Here’s what I did: I started off by basically finishing all of the first game. This included all of the controls of the player and how it interacts with the platform. I have also learned how to start animating things for the coins I created. I then started on the second game, which was the clicker game. I decided it would be good to include a star as the thing to collect. This one was also pretty easy, but I had a little bit of trouble trying to figure out how to get the code for the next level intermission that would come after this, because it would sometimes reload the global variables. After that, I decided to start working on the winner and death scenes. I wanted to try and make the whole game kind of close to the Super Mario vibe, so I also spent a lot of time trying to make different designs. That’s where most of the time was, because I was able to get the background images from things I designed on canva, but some parts I had to overlap onto Godot like the different buttons. After that, I basically put all of the finishing touches on the game. This included any design changes like adding some GIFs at the end of the game, and just adding things like a settings page. Overall, I have pretty much finished all of the required parts of this mission, but I will continue to work on this further. I really had a great time with this mission, as it was my first time using Godot, and it taught me a lot about the game. Next steps would just be to add a little bit more games, and some more animations, and maybe even music.
Hey guys! I have been working a lot on the WarioWare game. Here’s what I have done so far. I started off by creating the third game, which would be a catcher game, where the player would move across the x-axis to catch all of the garlic. I did this by combining three different scenes, where one scene was the player, the next was the garlic spawner, and the final one was the entire minigame scene. I learned a lot through this game because it introduced me to how something like a spawner would be created in Godot, where you would have to use a timer, and then load an Sprite2D with a CollisionShape2D attached to it. The next steps would be to create the final game, which I am thinking to be a flappy bird game.
Hey guys! I have been working a lot on the Warioware game. Here’s what I have done so far. I started off by creating and finishing the fourth game, which was the flappy bird game. This game was a decent challenge, but I was able to figure it out in the end. I used a player scene (CharacterBody 2D), then an obstacle scene (Area2D), and finally a main game scene. From there, I just combined each of the elements and their respective scripts. One challenge that I faced with this was trying to get the score working for it. Since the score would have to be referenced into two different scripts, I remembered that I could use a Global variable, which allowed me to easily reference the score in both scripts which allowed the game to flow smoothly to the next scenes. I learned a lot through this game. Next steps would be just to finish any polishing steps.
Ships:
Hey guys! I made a WarioWare-themed game with 2 minigames so far (I am working on more). You have to beat the game without losing your 5 lives. What I found challenging was trying to both to try to create my own creative screens and addons like GIFS, as well as the coding for these new games. Even though I haven’t added these new games yet, I still have a little trouble with it, especially the code for the PONG game, since it is also my first time using GDscript and Godot. The controls and all other features are in my readme, but it is pretty intuitive to play. Hope you guys like it!
I made Warioware, a game full of fun minigames that follows the concept of Mario Party, where you play Wario-related minigames without losing your lives! It was built using Godot, GDscript, and a passion for Nintendo. Currently, there are four games that are active. The games are: Super Wario, Star Collector, Garlic Catcher, and Flappy Bird. A problem that I had with this was trying to create the score and make sure that the score doesn’t automatically update because of a bug in the scoring system. More thorough details are in my Readme! Hope you guys like it! Link: https://github.com/Vigaash-Lingeswaran/WarioWare-game Link to game: https://vigaash-lingeswaran.itch.io/super-wario-ware...
|
1792838963.7729385
|
1792925363.7729385
|
|
28962
|
Flappy Bird by @DP | Stardance
|
DP
|
2
|
6.0
|
15
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-22T03:10:08Z", "hours": 0.0, "multiplier": 9.86, "payout": 4, "blessing": "neutral", "text": "I made a flappy bird game, and I made some changes to it including the addition of new colors and the addition of a better-looking bird and especially the physics, most people commented on the physics, and I finally have fixed that part. I hope you like the better version/v2 of this game! Not the best at the game as you can see, my best is 43, try beating it!", "repo": "https://github.com/EinsteinTheEngineer/Flappy-Bird-Game", "demo": "https://einsteintheengineer.github.io/Flappy-Bird-Game/"}, {"ship_num": 2, "ts": "2026-07-01T16:29:21Z", "hours": 6.0, "multiplier": 1.94, "payout": 11, "blessing": "neutral", "text": "I made a Flappy bird game and in this I tried to make it better and look nicer up to my coding knowledge. The hardest part was mainly the tkinter, I wanted to use this so I could learn more about this 3D graphics and stuff.", "repo": "https://github.com/EinsteinTheEngineer/Flappy-Bird-Game", "demo": "https://einsteintheengineer.github.io/Flappy-Bird-Game/"}]...
|
[{"post_id": 32752, "ts": "202 [{"post_id": 32752, "ts": "2026-07-22T03:07:22Z", "hours": 0.4533, "text": "Finally I read through peoples replies and feedback and I already knew the problem was gonna be with the gravity and flap strength, so after fixing that and also making the bird look a little better, I am finally done with this. Hopefully!"}, {"post_id": 20074, "ts": "2026-07-01T16:16:52Z", "hours": 0.515, "text": "We have officially reached the finish line for Iteration 2 of Flappy Bird! The final phase of this sprint was all about pushing the visual aesthetic to a premium arcade standard and overcoming the hurdle of accessibility. Instead of relying on flat, basic shapes, I completely overhauled the rendering logic to introduce true geometric depth. By utilizing advanced vector layering, drop shadows, and gloss highlights directly on the canvas, the bird now sports a vibrant 3D spherical look. The obstacles received a massive upgrade as well; the pipes are now modeled with authentic wide rim caps and custom gradient shading to mimic the nostalgic look of classic arcade games. Players can also fully personalize their experience right from the start menu using interactive on-screen buttons to swap between multiple sky themes like pink, light blue, and midnight black.The biggest breakthrough of this update, however, was figuring out how to bring this desktop application into the modern web ecosystem. Moving away from local Python execution, the project was successfully migrated onto a web framework using a Python Flask backend paired with an HTML5 Canvas frontend. This transition allows the game loop to execute flawlessly at a locked 60 frames per second right inside any web browser, eliminating lag and making the game instantly playable via a single cloud link. With precision collision boundaries fully locked down, dynamic acceleration curves scaling the difficulty every three points, and the live link officially deployed on Replit, the game is polished, optimized, and ready for the world to play. Time to ship it!"}, {"post_id": 20020, "ts": "2026-07-01T14:55:48Z", "hours": 3.5922, "text": "The primary milestone of this development cycle was transforming a loose, functional prototype into a structured, scalable application using Object-Oriented Programming (OOP). By encapsulating all game states—such as scores, velocities, and tracking arrays—inside a master FlappyBirdGame class, the architecture became self-contained, eliminating the risk of global variable pollution. A critical part of this refactoring involved dismantling the splintered, independent. after () loops that separately ran gravity, pipe movement, and scoring. These were consolidated into a single unified game_loop running at approximately 60 frames per second (~16ms). This master clock synchronizes all physics updates and collision checks simultaneously, removing the erratic micro-stutters from the previous version and delivering a noticeably smoother gameplay experience. In addition to structural overhaul, several game-breaking bugs and interface oversights were resolved. The disruptive terminal-based color input was entirely removed, replaced by an integrated canvas menu featuring clickable native tk.Frame buttons for interactive background selection. To fix an instant-death bug where the bird would plunge into the ground the millisecond the game started, an initial upward velocity pulse (FLAP_STRENGTH) was injected straight into the start sequence, giving the player immediate buoyancy and reaction time. Critical syntax errors were also squashed, including a casing typo that turned tk.Frame into an invalid lowercase property, and a keybind mismatch that wrongly mapped the “P” key to a non-existent method instead of the intended toggle_pause function.Finally, core mechanics were tuned to match genuine arcade standards. The superficial timer-based score keeper was abandoned; instead, pipes are now generated with unique geometric tags so that points are only awarded when the bird’s trailing horizontal boundary completely clears the obstacle. A ceiling boundary collision check (b_y1 <= 0) was added to close a loophole where players could fly off-screen to bypass pipes entirely. To keep the gameplay loop engaging, a difficulty scaling mechanic was implemented to speed up the incoming pipes by 1.5 pixels every 3 points, while a session-wide high score counter was added to track and display the player’s best run. The iteration concludes with a polished game loop, stable crash boundaries, and a foundation ready for external asset implementation."}, {"post_id": 19408, "ts": "2026-06-30T18:35:51Z", "hours": 1.4853, "text": "Now working on the bird itself to try and make it look like an actual bird"}]...
|
Title: Flappy Bird by @DP | Stardance
Devlogs:
No Title: Flappy Bird by @DP | Stardance
Devlogs:
Now working on the bird itself to try and make it look like an actual bird
The primary milestone of this development cycle was transforming a loose, functional prototype into a structured, scalable application using Object-Oriented Programming (OOP). By encapsulating all game states—such as scores, velocities, and tracking arrays—inside a master FlappyBirdGame class, the architecture became self-contained, eliminating the risk of global variable pollution. A critical part of this refactoring involved dismantling the splintered, independent. after () loops that separately ran gravity, pipe movement, and scoring. These were consolidated into a single unified game_loop running at approximately 60 frames per second (~16ms). This master clock synchronizes all physics updates and collision checks simultaneously, removing the erratic micro-stutters from the previous version and delivering a noticeably smoother gameplay experience. In addition to structural overhaul, several game-breaking bugs and interface oversights were resolved. The disruptive terminal-based color input was entirely removed, replaced by an integrated canvas menu featuring clickable native tk.Frame buttons for interactive background selection. To fix an instant-death bug where the bird would plunge into the ground the millisecond the game started, an initial upward velocity pulse (FLAP_STRENGTH) was injected straight into the start sequence, giving the player immediate buoyancy and reaction time. Critical syntax errors were also squashed, including a casing typo that turned tk.Frame into an invalid lowercase property, and a keybind mismatch that wrongly mapped the “P” key to a non-existent method instead of the intended toggle_pause function.Finally, core mechanics were tuned to match genuine arcade standards. The superficial timer-based score keeper was abandoned; instead, pipes are now generated with unique geometric tags so that points are only awarded when the bird’s trailing horizontal boundary completely clears the obstacle. A ceiling boundary collision check (b_y1 <= 0) was added to close a loophole where players could fly off-screen to bypass pipes entirely. To keep the gameplay loop engaging, a difficulty scaling mechanic was implemented to speed up the incoming pipes by 1.5 pixels every 3 points, while a session-wide high score counter was added to track and display the player’s best run. The iteration concludes with a polished game loop, stable crash boundaries, and a foundation ready for external asset implementation.
We have officially reached the finish line for Iteration 2 of Flappy Bird! The final phase of this sprint was all about pushing the visual aesthetic to a premium arcade standard and overcoming the hurdle of accessibility. Instead of relying on flat, basic shapes, I completely overhauled the rendering logic to introduce true geometric depth. By utilizing advanced vector layering, drop shadows, and gloss highlights directly on the canvas, the bird now sports a vibrant 3D spherical look. The obstacles received a massive upgrade as well; the pipes are now modeled with authentic wide rim caps and custom gradient shading to mimic the nostalgic look of classic arcade games. Players can also fully personalize their experience right from the start menu using interactive on-screen buttons to swap between multiple sky themes like pink, light blue, and midnight black.The biggest breakthrough of this update, however, was figuring out how to bring this desktop application into the modern web ecosystem. Moving away from local Python execution, the project was successfully migrated onto a web framework using a Python Flask backend paired with an HTML5 Canvas frontend. This transition allows the game loop to execute flawlessly at a locked 60 frames per second right inside any web browser, eliminating lag and making the game instantly playable via a single cloud link. With precision collision boundaries fully locked down, dynamic acceleration curves scaling the difficulty every three points, and the live link officially deployed on Replit, the game is polished, optimized, and ready for the world to play. Time to ship it!
Finally I read through peoples replies and feedback and I already knew the problem was gonna be with the gravity and flap strength, so after fixing that and also making the bird look a little better, I am finally done with this. Hopefully!
Ships:
I made a Flappy bird game and in this I tried to make it better and look nicer up to my coding knowledge. The hardest part was mainly the tkinter, I wanted to use this so I could learn more about this 3D graphics and stuff.
I made a flappy bird game, and I made some changes to it including the addition of new colors and the addition of a better-looking bird and especially the physics, most people commented on the physics, and I finally have fixed that part. I hope you like the better version/v2 of this game! Not the best at the game as you can see, my best is 43, try beating it!...
|
1792839412.581959
|
1792925812.581959
|
|
28981
|
My very own WebOS by @Nikks | Stardance
|
Nikks
|
2
|
18.0
|
14
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T17:07:34Z", "hours": 9.0, "multiplier": 1.52, "payout": 14, "blessing": "neutral", "text": "I made a breaking bad themed OS that’s running in a website. Also the part i was kind of stuck at was the terminal. It was hard trying to make it similar to a traditional on and that’s I’m most proud of too.", "repo": "https://github.com/Nikhil1059/BreakingBadOS", "demo": "https://nikhil1059.github.io/BreakingBadOS/"}, {"ship_num": 2, "ts": "2026-08-17T21:13:35Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I havent completed it but i think this is a good milestone to ship it ad work on it in the future.", "repo": "https://github.com/Nikhil1059/BreakingBadOS", "demo": "https://nikhil1059.github.io/BreakingBadOS/"}]...
|
[{"post_id": 73216, "ts": "202 [{"post_id": 73216, "ts": "2026-09-24T16:48:12Z", "hours": 1.4122, "text": "This time i have added the feature to resize windows. its similar to normal windows resizing windows or linux."}, {"post_id": 65951, "ts": "2026-09-11T13:08:39Z", "hours": 2.1336, "text": "So today i made some good and exciting changes. The changes that were made are: I made a Calendar that pops out when you click the date or time. I redesigned the topbar to kind of look like a taskbar I also made the buttons on the top bar better with animations and shadow. I hope whoever tries this out if any please give me some ideas to further add :)"}, {"post_id": 65322, "ts": "2026-09-10T12:15:23Z", "hours": 1.6089, "text": "So today I made some commands for the terminal. /help gives you all the commands that WORK so feel free to fidget and I’m sure there should be no bugs but please let me know if there are any;)"}, {"post_id": 64171, "ts": "2026-09-08T12:05:35Z", "hours": 1.5844, "text": "I further worked on the terminal. Today i have added two things: The way the input and output is given in the terminal. Its very close to a standard terminal and acts like it. The cursor bar. I have added a distinct function masking the normal cursor bar with a terminal style cursor bar that works so nice. also for now the output of the commands(for now just text) is the input itself but in the next session im going to add official commands and a /help too :)"}, {"post_id": 63473, "ts": "2026-09-07T10:55:18Z", "hours": 1.38, "text": "Today I made the terminal window. As usual it will has all the characteristics of the notes window and also I tried to replicate a terminal design as much as possible. For now the terminal doesn’t work and it just gives the same output as what we type but ill work on that. But I this this was a good front end work."}, {"post_id": 49887, "ts": "2026-08-18T20:56:35Z", "hours": 1.2892, "text": "These are the things i have done in this session: I created a terminal icon and gave it the same charecteristics as the notes icon. I added a reset button which makes the app icons go back to their previous place and this clears the local storage too. I significantly upgraded the dragging system and tbh i spent a really long time for this so please check this out. The icon won’t overlap now and also i gave them real desktop like behaviour. I also added desktop boundaries so that the icons dont go off screen."}, {"post_id": 47641, "ts": "2026-08-15T17:48:50Z", "hours": 1.0669, "text": "I have made the Icon movable like an actual icon on a desktop. Also added a grid so that the icon snapped to a place like again a normal desktop. Also i have added local storage for this icon position so when you change the position of the icon and reload the website the icon will stay at the place you left it. I though it was cool. also for the people who find the boot screen appearing every time you can just change the dev mode true in Script.js and it’ll be bypassed. I planned a solution for this so stay tuned :)"}, {"post_id": 39492, "ts": "2026-08-02T13:58:35Z", "hours": 6.0139, "text": "I have made a lot of changes and forgot to make devlogs. I made a beautiful booting screen and also a beautiful intro screen. I also added a notes app which saves automatically."}, {"post_id": 20284, "ts": "2026-07-01T20:44:38Z", "hours": 1.9125, "text": "I’m working on a os on a web as part of a mission in stardance. I have so far just added some introduction about myself and added a little time and date indicator on the top right. And yeah its Breaking Bad themed so stay tuned i have some good ideas to implement."}]...
|
Title: My very own WebOS by @Nikks | Stardance
De Title: My very own WebOS by @Nikks | Stardance
Devlogs:
I’m working on a os on a web as part of a mission in stardance. I have so far just added some introduction about myself and added a little time and date indicator on the top right. And yeah its Breaking Bad themed so stay tuned i have some good ideas to implement.
I have made a lot of changes and forgot to make devlogs. I made a beautiful booting screen and also a beautiful intro screen. I also added a notes app which saves automatically.
I have made the Icon movable like an actual icon on a desktop. Also added a grid so that the icon snapped to a place like again a normal desktop. Also i have added local storage for this icon position so when you change the position of the icon and reload the website the icon will stay at the place you left it. I though it was cool. also for the people who find the boot screen appearing every time you can just change the dev mode true in Script.js and it’ll be bypassed. I planned a solution for this so stay tuned :)
These are the things i have done in this session: I created a terminal icon and gave it the same charecteristics as the notes icon. I added a reset button which makes the app icons go back to their previous place and this clears the local storage too. I significantly upgraded the dragging system and tbh i spent a really long time for this so please check this out. The icon won’t overlap now and also i gave them real desktop like behaviour. I also added desktop boundaries so that the icons dont go off screen.
Today I made the terminal window. As usual it will has all the characteristics of the notes window and also I tried to replicate a terminal design as much as possible. For now the terminal doesn’t work and it just gives the same output as what we type but ill work on that. But I this this was a good front end work.
I further worked on the terminal. Today i have added two things: The way the input and output is given in the terminal. Its very close to a standard terminal and acts like it. The cursor bar. I have added a distinct function masking the normal cursor bar with a terminal style cursor bar that works so nice. also for now the output of the commands(for now just text) is the input itself but in the next session im going to add official commands and a /help too :)
So today I made some commands for the terminal. /help gives you all the commands that WORK so feel free to fidget and I’m sure there should be no bugs but please let me know if there are any;)
So today i made some good and exciting changes. The changes that were made are: I made a Calendar that pops out when you click the date or time. I redesigned the topbar to kind of look like a taskbar I also made the buttons on the top bar better with animations and shadow. I hope whoever tries this out if any please give me some ideas to further add :)
This time i have added the feature to resize windows. its similar to normal windows resizing windows or linux.
Ships:
I havent completed it but i think this is a good milestone to ship it ad work on it in the future.
I made a breaking bad themed OS that’s running in a website. Also the part i was kind of stuck at was the terminal. It was hard trying to make it similar to a traditional on and that’s I’m most proud of too....
|
1792842625.96969
|
1792929025.96969
|
|
29024
|
NimbusLoft by @SML_365 | Stardance
|
SML_365
|
2
|
11.77
|
169
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-06T21:26:26Z", "hours": 2.0, "multiplier": 8.76, "payout": 21, "blessing": "neutral", "text": "Ship #2 for NimbusLoft - A visual clipboard engine This is NimbusLofts ship for v1.2.0. NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This ship includes: Colored files URL saving (Thank you to an anonymous reviewer for this idea!) Bugfixes File size display And more, which you can try out by downloading the executable on GitHub! Please note that NimbusLoft is intended for 64-bit Windows systems.", "repo": "https://github.com/SML365/NimbusLoft", "demo": "https://github.com/SML365/NimbusLoft/releases/"}, {"ship_num": 2, "ts": "2026-07-02T04:51:07Z", "hours": 8.0, "multiplier": 18.75, "payout": 148, "blessing": "neutral", "text": "I made a utility dock for storing temporary files so you don’t have to juggle three instances of File Explorer.", "repo": "https://github.com/SML365/NimbusLoft", "demo": "https://github.com/SML365/NimbusLoft/releases/"}]...
|
[{"post_id": 70117, "ts": "202 [{"post_id": 70117, "ts": "2026-09-18T14:32:24Z", "hours": 1.7656, "text": "Devlog #6 for NimbusLoft It was mainly just bug fixes. I fixed a couple of style issues as well as the version number. I also made it slightly more stable. No new features were added. Anyways, that’s it from me, and have a nice day/night!"}, {"post_id": 23733, "ts": "2026-07-06T21:04:28Z", "hours": 1.31, "text": "Devlog #5 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This devlog is focused on adding URL saving and loading support and stabilizing existing features, along with the releases of v1.1.1 and v2.1.0, available to try on GitHub! Added: URL saving and loading: You can now drag in URLs to save, drag them out into a browser, and open them with the browser. Everything shoulf work as expected 1-second pause before hiding the window upon startup: It helps first-time users find where NimbusLoft is located on their screen, since it might be different depending on monitor setups Adjusted color-code colors: The purple was a bit too strong, and I’ll be adjusting the yellow in an upcoming stability fix (v1.2.1) to make it a bit less green Upcoming: Settings menu (v2.0.0 planned) Persistent items (v2.0.0 planned) Search and Sort functionality (also mentioned in Devlog #4 ) (v2.0.0 planned) Multi-monitor support (v1.4.0 planned) Custom thumbnails for URLs depending on webpage (v1.3.0 planned)"}, {"post_id": 23255, "ts": "2026-07-06T03:11:47Z", "hours": 1.1003, "text": "Devlog #4 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This devlog is focused on getting all the features working for the v1.1.0 release, available to try on GitHub! Added: Right click context menu for each file entry, with options to open and remove file, as well as color changes Change background color of file for organization, with over 6 color options (as well as the default color) Contextual title also shows file size along with full file name Upcoming: Sort by color to improve organization Search functionality (sort) Settings panel to configure options such as auto startup, themes, and more"}, {"post_id": 20525, "ts": "2026-07-02T04:24:09Z", "hours": 1.5339, "text": "Devlog #3 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This devlog is focused on getting everything up and running for the v1.0.0 release, available to try on GitHub! Done: Horizontal scrolling Clear button now works Stability improvements Common filetypes tested (.mp3, .mp4, .png, .jpg, .html) Folders tested Upcoming (In later versions): Theming More stability improvements Removed: Settings button (Maybe coming in later versions)"}, {"post_id": 20287, "ts": "2026-07-01T20:55:22Z", "hours": 3.5933, "text": "Devlog #2 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This devlog was mostly focused on implementing the file drag/drop and having it all showing up. The next high-priority update involves adding a scrolling shelf, a vital element needed to actually make NimbusLoft scale. Done: File drag + drop Folder drag + drop File cards with icons Blurred background Updated styling Upcoming: Drag out to paste Paste whole folders at once Scrolling shelf! Settings panel Clear button functionality Maybe Adding: Custom icons Context menu for each file with remove, copy, delete, etc. functionality"}, {"post_id": 19699, "ts": "2026-07-01T02:47:31Z", "hours": 2.7972, "text": "Devlog #1 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. Done: Basic structure Quit button Transparent UI language Hides in alt+tab menu / taskbar Upcoming: Clear button File drag + drop support Show + hide when the mouse touches the top of the screen Settings menu Title and filename preview in the remaining space in the top of the bar"}]...
|
Title: NimbusLoft by @SML_365 | Stardance
Devlogs Title: NimbusLoft by @SML_365 | Stardance
Devlogs:
Devlog #1 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. Done: Basic structure Quit button Transparent UI language Hides in alt+tab menu / taskbar Upcoming: Clear button File drag + drop support Show + hide when the mouse touches the top of the screen Settings menu Title and filename preview in the remaining space in the top of the bar
Devlog #2 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This devlog was mostly focused on implementing the file drag/drop and having it all showing up. The next high-priority update involves adding a scrolling shelf, a vital element needed to actually make NimbusLoft scale. Done: File drag + drop Folder drag + drop File cards with icons Blurred background Updated styling Upcoming: Drag out to paste Paste whole folders at once Scrolling shelf! Settings panel Clear button functionality Maybe Adding: Custom icons Context menu for each file with remove, copy, delete, etc. functionality
Devlog #3 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This devlog is focused on getting everything up and running for the v1.0.0 release, available to try on GitHub! Done: Horizontal scrolling Clear button now works Stability improvements Common filetypes tested (.mp3, .mp4, .png, .jpg, .html) Folders tested Upcoming (In later versions): Theming More stability improvements Removed: Settings button (Maybe coming in later versions)
Devlog #4 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This devlog is focused on getting all the features working for the v1.1.0 release, available to try on GitHub! Added: Right click context menu for each file entry, with options to open and remove file, as well as color changes Change background color of file for organization, with over 6 color options (as well as the default color) Contextual title also shows file size along with full file name Upcoming: Sort by color to improve organization Search functionality (sort) Settings panel to configure options such as auto startup, themes, and more
Devlog #5 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This devlog is focused on adding URL saving and loading support and stabilizing existing features, along with the releases of v1.1.1 and v2.1.0, available to try on GitHub! Added: URL saving and loading: You can now drag in URLs to save, drag them out into a browser, and open them with the browser. Everything shoulf work as expected 1-second pause before hiding the window upon startup: It helps first-time users find where NimbusLoft is located on their screen, since it might be different depending on monitor setups Adjusted color-code colors: The purple was a bit too strong, and I’ll be adjusting the yellow in an upcoming stability fix (v1.2.1) to make it a bit less green Upcoming: Settings menu (v2.0.0 planned) Persistent items (v2.0.0 planned) Search and Sort functionality (also mentioned in Devlog #4 ) (v2.0.0 planned) Multi-monitor support (v1.4.0 planned) Custom thumbnails for URLs depending on webpage (v1.3.0 planned)
Devlog #6 for NimbusLoft It was mainly just bug fixes. I fixed a couple of style issues as well as the version number. I also made it slightly more stable. No new features were added. Anyways, that’s it from me, and have a nice day/night!
Ships:
I made a utility dock for storing temporary files so you don’t have to juggle three instances of File Explorer.
Ship #2 for NimbusLoft - A visual clipboard engine This is NimbusLofts ship for v1.2.0. NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This ship includes: Colored files URL saving (Thank you to an anonymous reviewer for this idea!) Bugfixes File size display And more, which you can try out by downloading the executable on GitHub! Please note that NimbusLoft is intended for 64-bit Windows systems....
|
1792832149.7871687
|
1792918549.7871687
|
|
29050
|
FormulaOS by @EndLess9 | Stardance
|
EndLess9
|
2
|
17.0
|
117
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T03:52:01Z", "hours": 12.0, "multiplier": 9.81, "payout": 117, "blessing": "neutral", "text": "New Feature from what I submitted in WebOS 1: Live Drivers Standings using database. Live Constructors Standings using database. Live Lap Records using Database. F1 Calendar app now has more info about race weekends and uses a database instead of a static image. F1 Teams app which has information about each F1 team, using 2 databases collectively. A intro video that transitions to the Start OS screen. New color scheme for windows, header, countdown, etc. Windows can be horizontally and vertically stretched and shrunk.", "repo": "https://github.com/EndLessDude/FormulaOS", "demo": "https://spiffy-youtiao-905629.netlify.app/"}, {"ship_num": 2, "ts": "2026-07-03T23:48:18Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Operating system using html, JavaScript, and Css which runs on the browser. My operating system is called “RaceOS” because the theme is RaceCars. My project also features very unique features such as a count down to the next F1 session and the wallpaper matches the track of the following race week.", "repo": "https://github.com/EndLessDude/FormulaOS", "demo": "https://spiffy-youtiao-905629.netlify.app/"}]...
|
[{"post_id": 43057, "ts": "202 [{"post_id": 43057, "ts": "2026-08-08T03:46:01Z", "hours": 0.2769, "text": "Devlog #15 Finally included details about the new databases and new apps since my last update to my ReadMe."}, {"post_id": 43051, "ts": "2026-08-08T03:27:02Z", "hours": 0.7381, "text": "Devlog #14 Added a 10 second video of f1 cars that transitions into the start os screen. Reworked the color scheme of the windows, header, countdown, start os screen, select time format screen. This was done to make the OS feel modern and clean. Changed the position of the buttons in the windows and make them size adjustable. Added a rectangular task bar with curved edges."}, {"post_id": 42923, "ts": "2026-08-07T21:58:54Z", "hours": 3.8147, "text": "Devlog #13 New databases: constructors.json drivers.json season.json teams.json laprecords.json New Apps: Drivers Standings A table of the drivers standings in the 2026 f1 season. Database used: drivers.json Constructor Standings A table of the constructors standings Database used: constructors.json Lap Records An app that shows information about the lap record at each track. Database used: laprecords.json F1 Calendar An app that shows the entire f1 calendar for 2026. Previously a similar app just showed an image, but this app uses a database to show accurate information. Database used: season.json F1 Teams An app that shows information about each F1 team. Database used: teams.json constructors.json: This database stores the position number, team name, and how many points every team has so far this F1 season. drivers.json: This database stores the position, name, country, team, and points for every driver. season.json: This database stores values for the following: round, country, city, month, days, flag, circuitMap. Round is the order of which f1 race weekends take place 1-24. Country is obviously the country the race weekend will take place. City is the city the race track is located. Month is the month the race weekend takes place, the days are the days the race weekend takes place, race weekends last 3 days. Day 1: practice 1 and 2, Day 2: practice 3 and quali, Day 3: grand prix. The value for flag and circuitMap are the path to the images for the country’s flag’s image and the circuit’s image. teams.json: This database contains values for the team’s name, team principal’s name, drivers names, the engine manufacturer, the car’s name, and paths to the logo and cars images. laprecords.json: This database contains information about the lap records for each track on the F1 calendar. It has values for: round #, race name, circuit, track length, lap record time, driver, team, year, image of the circuit, image of the country’s flag where the track is located."}, {"post_id": 24834, "ts": "2026-07-08T17:25:34Z", "hours": 0.2828, "text": "Devlog #12 The header in the Champions app no longer sticks"}, {"post_id": 24509, "ts": "2026-07-08T03:09:51Z", "hours": 0.8528, "text": "Devlog #11: Deleted the old ReadMe and wrote a brand new one which reflects all the latest updates Made the F1 countdown bigger"}, {"post_id": 24490, "ts": "2026-07-08T02:04:43Z", "hours": 3.2814, "text": "Devlog #10 Highlights: New App: F1 2026 Calendar New App: 2026 F1 Cars New Wallpaper Updated Welcome app Removed Garage app due to issues F1 2026 Calendar: A app that basically shows the dates of every F1 weekend in 2026 all in 1 screen. 2026 F1 Cars: Shows the cars each constructor built for the 2026 F1 season."}, {"post_id": 23085, "ts": "2026-07-05T20:32:19Z", "hours": 2.715, "text": "Devlog #8: Improved taskbar spacing Added better icons for apps Improved overall UI Added a F1 quiz Added a app that shows all F1 world champions with how many WDC’s they won and in which years"}, {"post_id": 21834, "ts": "2026-07-03T23:30:46Z", "hours": 0.2819, "text": "Devlog #7: Final Updated ReadMe Hosted my project on netlify"}, {"post_id": 21807, "ts": "2026-07-03T22:50:55Z", "hours": 0.3297, "text": "Devlog #6: Cleaned up the Task Bar by making it look sleeker and make the icons more user friendly. Fixed bugs related to the next session counter."}, {"post_id": 21764, "ts": "2026-07-03T21:13:34Z", "hours": 0.6497, "text": "Devlog #5: Made a cool welcome screen which looks like the start engine button in a car. Added a new application called “Lights Out” which tests the user’s reaction time."}, {"post_id": 20549, "ts": "2026-07-02T05:04:53Z", "hours": 0.4883, "text": "Devlog #4 Worked on the Script.js: The icons are now functional"}, {"post_id": 20497, "ts": "2026-07-02T03:09:50Z", "hours": 0.6442, "text": "Devlog #3 Worked on Style.css, went from a blank html OS to a OS with a visual interface. Next I will work on the script.js to develop the frontend"}, {"post_id": 20297, "ts": "2026-07-01T21:08:22Z", "hours": 0.6175, "text": "Devlog #2: Index.html: Worked on Welcome window Worked on Garage window"}, {"post_id": 19731, "ts": "2026-07-01T03:51:37Z", "hours": 1.5917, "text": "Devlog #1 Additions to Index.html Wallpaper Top Bar Desktop Icons I have only worked on the index for now so it doesn’t have a UI."}]...
|
Title: FormulaOS by @EndLess9 | Stardance
Devlogs Title: FormulaOS by @EndLess9 | Stardance
Devlogs:
Devlog #1 Additions to Index.html Wallpaper Top Bar Desktop Icons I have only worked on the index for now so it doesn’t have a UI.
Devlog #2: Index.html: Worked on Welcome window Worked on Garage window
Devlog #3 Worked on Style.css, went from a blank html OS to a OS with a visual interface. Next I will work on the script.js to develop the frontend
Devlog #4 Worked on the Script.js: The icons are now functional
Devlog #5: Made a cool welcome screen which looks like the start engine button in a car. Added a new application called “Lights Out” which tests the user’s reaction time.
Devlog #6: Cleaned up the Task Bar by making it look sleeker and make the icons more user friendly. Fixed bugs related to the next session counter.
Devlog #7: Final Updated ReadMe Hosted my project on netlify
Devlog #8: Improved taskbar spacing Added better icons for apps Improved overall UI Added a F1 quiz Added a app that shows all F1 world champions with how many WDC’s they won and in which years
Devlog #10 Highlights: New App: F1 2026 Calendar New App: 2026 F1 Cars New Wallpaper Updated Welcome app Removed Garage app due to issues F1 2026 Calendar: A app that basically shows the dates of every F1 weekend in 2026 all in 1 screen. 2026 F1 Cars: Shows the cars each constructor built for the 2026 F1 season.
Devlog #11: Deleted the old ReadMe and wrote a brand new one which reflects all the latest updates Made the F1 countdown bigger
Devlog #12 The header in the Champions app no longer sticks
Devlog #13 New databases: constructors.json drivers.json season.json teams.json laprecords.json New Apps: Drivers Standings A table of the drivers standings in the 2026 f1 season. Database used: drivers.json Constructor Standings A table of the constructors standings Database used: constructors.json Lap Records An app that shows information about the lap record at each track. Database used: laprecords.json F1 Calendar An app that shows the entire f1 calendar for 2026. Previously a similar app just showed an image, but this app uses a database to show accurate information. Database used: season.json F1 Teams An app that shows information about each F1 team. Database used: teams.json constructors.json: This database stores the position number, team name, and how many points every team has so far this F1 season. drivers.json: This database stores the position, name, country, team, and points for every driver. season.json: This database stores values for the following: round, country, city, month, days, flag, circuitMap. Round is the order of which f1 race weekends take place 1-24. Country is obviously the country the race weekend will take place. City is the city the race track is located. Month is the month the race weekend takes place, the days are the days the race weekend takes place, race weekends last 3 days. Day 1: practice 1 and 2, Day 2: practice 3 and quali, Day 3: grand prix. The value for flag and circuitMap are the path to the images for the country’s flag’s image and the circuit’s image. teams.json: This database contains values for the team’s name, team principal’s name, drivers names, the engine manufacturer, the car’s name, and paths to the logo and cars images. laprecords.json: This database contains information about the lap records for each track on the F1 calendar. It has values for: round #, race name, circuit, track length, lap record time, driver, team, year, image of the circuit, image of the country’s flag where the track is located.
Devlog #14 Added a 10 second video of f1 cars that transitions into the start os screen. Reworked the color scheme of the windows, header, countdown, start os screen, select time format screen. This was done to make the OS feel modern and clean. Changed the position of the buttons in the windows and make them size adjustable. Added a rectangular task bar with curved edges.
Devlog #15 Finally included details about the new databases and new apps since my last update to my ReadMe.
Ships:
I made a Operating system using html, JavaScript, and Css which runs on the browser. My operating system is called “RaceOS” because the theme is RaceCars. My project also features very unique features such as a count down to the next F1 session and the wallpaper matches the track of the following race week.
New Feature from what I submitted in WebOS 1: Live Drivers Standings using database. Live Constructors Standings using database. Live Lap Records using Database. F1 Calendar app now has more info about race weekends and uses a database instead of a static image. F1 Teams app which has information about each F1 team, using 2 databases collectively. A intro video that transitions to the Start OS screen. New color scheme for windows, header, countdown, etc. Windows can be horizontally and vertically stretched and shrunk....
|
1792846530.614369
|
1792932930.614369
|
|
29073
|
MR. ELECTRIC! by @Nicholas-Reyne | Stardance
|
Nicholas-Reyne
|
2
|
35.0
|
403
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-28T02:17:38Z", "hours": 9.0, "multiplier": 6.27, "payout": 55, "blessing": "neutral", "text": "I made an electric field simulator, and added two new key features from the last ship. The first being a ring charge, the second being a permittivity changer. I found the physics behind the ring charge to be very challenging, and it required many hours of brainstorming and drafting on paper to figure out. I’m very happy with how it all turned out, and I think the actual html now looks very pretty with the new background and organization!", "repo": "https://github.com/RaduUdrea1/Mr_Electric2", "demo": "https://raduudrea1.github.io/Mr_Electric2/"}, {"ship_num": 2, "ts": "2026-08-29T02:34:50Z", "hours": 26.0, "multiplier": 14.95, "payout": 348, "blessing": "neutral", "text": "I made an electric field simulator. It took about the past two or so months to actually figure out how anything works. It’s designed to help people visualize electric fields when doing electrostatics. It took a long time to learn the HTML, Python and JS to actually code it but I’m proud of the fact that it even exists. Future modes will include more stuff, and I’m happy to get a chance to ship it!", "repo": "https://github.com/RaduUdrea1/Mr_Electric2", "demo": "https://raduudrea1.github.io/Mr_Electric2/"}]...
|
[{"post_id": 74721, "ts": "202 [{"post_id": 74721, "ts": "2026-09-28T02:15:44Z", "hours": 4.9092, "text": "Hello all: I replaced the buggy dirac-delta mode with two new modes. The first is the ring charge mode, this creates a superposition of 36 point charges, which effectively simulates a continuous charged ring (not perfectly, but close enough to minimize error). This is especially useful for physics problems, as tons of them involve ring charges. Next, I added a mode that allowed you to change the permittivity of the space the charge is in, with a handful of presets ranging from the vacuum (free space) to pure water, all the way to titanium dioxide. In so doing, I also modified the guide and physics, enjoy these modes as you please. Furthermore, electric potential and electric potential energy were added to each mode, denoted by variables V and U. More additions to come in the future, stay tuned!"}, {"post_id": 68954, "ts": "2026-09-16T03:25:31Z", "hours": 3.9431, "text": "Hello all: I added a new background to make Mr. Electric feel less bland. I organized the information in the pages into blocks, this way it is easier to read, and less info-dumpy. I introduced a slider mode for the charges as well, this way you could drag the slider along and it would update the charge. Future changes are coming: Potentials, Electric Potential Energy, Better Dirac-Delta and more! Stay tuned!"}, {"post_id": 56994, "ts": "2026-08-29T01:55:13Z", "hours": 4.7481, "text": "Devlog 3: I added the ability to set a probe point on the first three run modes, the probe point will return electric field magnitude at that point, but it will also return the x, y and z components of that magnitude, so that anyone doing electrostatics problems can check their work as well. The graph now takes inputs in nanocoulombs, and it grows when larger inputs are put in, rather than changing the color. Guide and gallery have been updated to include these changes as well. Inputs have also been stacked neatly rather than arrayed one by one. Honest limits: One single color for all the plots, Gaussian mode not yet helpful because it still only contains one charge, and Dirac Delta is still just cosmetic! Future work will fix these!"}, {"post_id": 53475, "ts": "2026-08-24T01:20:19Z", "hours": 13.0117, "text": "It’s been a while since I’ve posted a devlog! This is Mr. Electric updates. I’ve brought the simulator into the html proper with a new simulate page. The code uses python connected to javascript. New features: Smoothed out the html and cleaned up any bugs. Added a simulate.html page where the simulator actually runs using Pyodide. Added dropdown options and menus to input values for the simulator. Future features: Planned expansion of simulator with more probe points, and drag and drop feature for probes. Ability to do actual calculations with the fields, and more dynamic fields that are prettier and smoother. Cleaner html and better style and buttons, including a unified nav style."}, {"post_id": 34082, "ts": "2026-07-24T15:36:43Z", "hours": 8.5542, "text": "This is the first devlog for my Mr. Electric project, its a small scale passion project designed to simulate electric fields with user input. I designed it over the span of about eight hours, alongside working the physics problems myself from Griffiths Electrodynamics Fourth Edition. Cursor assisted in debugging the code. The code uses NumPy, SciPy and Matplotlib. There are a few honest limits: I had to scale the arrows so nothing was generated close to the origin, the result was monstrous arrows because of the divide by zero issue. Dirac Delta is furthermore, simply a cosmetic feature. Dirac Delta represents particles, and graphically it is just an infinitely tall spike, I tried to simulate that in 3d and ended up with the current delta cluster. The project contains four run modes, one charge, two charge, Gaussian sphere plus probe and delta cluster. The main issue for this log was simply setting up the functions, and making sure everything worked! Up next is a public demo, more features, and a heatmap to help indicate relative vector strength."}]...
|
Title: MR. ELECTRIC! by @Nicholas-Reyne | Stardanc Title: MR. ELECTRIC! by @Nicholas-Reyne | Stardance
Devlogs:
This is the first devlog for my Mr. Electric project, its a small scale passion project designed to simulate electric fields with user input. I designed it over the span of about eight hours, alongside working the physics problems myself from Griffiths Electrodynamics Fourth Edition. Cursor assisted in debugging the code. The code uses NumPy, SciPy and Matplotlib. There are a few honest limits: I had to scale the arrows so nothing was generated close to the origin, the result was monstrous arrows because of the divide by zero issue. Dirac Delta is furthermore, simply a cosmetic feature. Dirac Delta represents particles, and graphically it is just an infinitely tall spike, I tried to simulate that in 3d and ended up with the current delta cluster. The project contains four run modes, one charge, two charge, Gaussian sphere plus probe and delta cluster. The main issue for this log was simply setting up the functions, and making sure everything worked! Up next is a public demo, more features, and a heatmap to help indicate relative vector strength.
It’s been a while since I’ve posted a devlog! This is Mr. Electric updates. I’ve brought the simulator into the html proper with a new simulate page. The code uses python connected to javascript. New features: Smoothed out the html and cleaned up any bugs. Added a simulate.html page where the simulator actually runs using Pyodide. Added dropdown options and menus to input values for the simulator. Future features: Planned expansion of simulator with more probe points, and drag and drop feature for probes. Ability to do actual calculations with the fields, and more dynamic fields that are prettier and smoother. Cleaner html and better style and buttons, including a unified nav style.
Devlog 3: I added the ability to set a probe point on the first three run modes, the probe point will return electric field magnitude at that point, but it will also return the x, y and z components of that magnitude, so that anyone doing electrostatics problems can check their work as well. The graph now takes inputs in nanocoulombs, and it grows when larger inputs are put in, rather than changing the color. Guide and gallery have been updated to include these changes as well. Inputs have also been stacked neatly rather than arrayed one by one. Honest limits: One single color for all the plots, Gaussian mode not yet helpful because it still only contains one charge, and Dirac Delta is still just cosmetic! Future work will fix these!
Hello all: I added a new background to make Mr. Electric feel less bland. I organized the information in the pages into blocks, this way it is easier to read, and less info-dumpy. I introduced a slider mode for the charges as well, this way you could drag the slider along and it would update the charge. Future changes are coming: Potentials, Electric Potential Energy, Better Dirac-Delta and more! Stay tuned!
Hello all: I replaced the buggy dirac-delta mode with two new modes. The first is the ring charge mode, this creates a superposition of 36 point charges, which effectively simulates a continuous charged ring (not perfectly, but close enough to minimize error). This is especially useful for physics problems, as tons of them involve ring charges. Next, I added a mode that allowed you to change the permittivity of the space the charge is in, with a handful of presets ranging from the vacuum (free space) to pure water, all the way to titanium dioxide. In so doing, I also modified the guide and physics, enjoy these modes as you please. Furthermore, electric potential and electric potential energy were added to each mode, denoted by variables V and U. More additions to come in the future, stay tuned!
Ships:
I made an electric field simulator. It took about the past two or so months to actually figure out how anything works. It’s designed to help people visualize electric fields when doing electrostatics. It took a long time to learn the HTML, Python and JS to actually code it but I’m proud of the fact that it even exists. Future modes will include more stuff, and I’m happy to get a chance to ship it!
I made an electric field simulator, and added two new key features from the last ship. The first being a ring charge, the second being a permittivity changer. I found the physics behind the ring charge to be very challenging, and it required many hours of brainstorming and drafting on paper to figure out. I’m very happy with how it all turned out, and I think the actual html now looks very pretty with the new background and organization!...
|
1792832024.0736177
|
1792918424.0736177
|
|
29189
|
Seven Minute Shadow by @aamosm | Stardance
|
aamosm
|
2
|
17.46
|
110
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T13:41:13Z", "hours": 5.0, "multiplier": 17.52, "payout": 110, "blessing": "neutral", "text": "Seven Minute Shadow - shipping I’ve attached a video so you can actually see the game in action. Seven Minute Shadow is a small historical fiction game built around a simple idea: the whole experience should take about 7 minutes . It’s not a huge game, and it’s definitely not trying to be one. The focus is on the little story behind it, the decisions you make while playing, and what those decisions leave behind. The ending itself cannot be changed. What can change is everything that happens before it, and what you leave behind. I made this as my first proper Godot game, so it’s still a pretty rough little project, but I’d really like people to try it and see what they take from it. **check it out. or check out the video on github. **", "repo": "https://github.com/aamosm/SevenMinuteShadow", "demo": "https://aamosm.itch.io/seven-minute-shadow"}, {"ship_num": 2, "ts": "2026-07-06T09:56:12Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Seven Minute Shadow - Ship! 🚀 🎉 Finally shipped the first playable version! This is still a demo, but it has the complete gameplay loop: title screen → story → cutscenes → minigames → ending. It actually feels like a game now instead of a bunch of disconnected scenes. 🕹️ Right now there are 2 playable minigames connected together with lives, transitions, fail states and a temporary ending that scores you based on your remaining hearts, there is no best score because the minigames are a part of the story. A story which i have not fleshed out yet. It’s still a WarioWare game with some cutscenes in between. 🎭 A lot of the art is still bad. like very bad. ik i have to up my skills. And also there’s barely any music yet. I wanted to get something playable out first before spending time polishing everything. 📖 The full vision is still 7 minigames tied together by one story, with multiple endings depending on how well you play. This demo is basically the foundation for all of that. Thanks for playing! Time to get back to making the rest of the game. 🤌 Play the demo and tell me abt it.", "repo": "https://github.com/aamosm/SevenMinuteShadow", "demo": "https://aamosm.itch.io/seven-minute-shadow"}]...
|
[{"post_id": 57287, "ts": "202 [{"post_id": 57287, "ts": "2026-08-29T12:09:54Z", "hours": 0.4636, "text": "✦ BEFORE YOU RATE THIS ✦ or interact in whatever way the story is a little confusing without context. Seven Minute Shadow starts at 17:53 . At 18:00 , Kiyoshima will be bombed. You are just a postman trying to finish one last route before it happens. You cannot stop the bombing . You can only decide how much gets delivered before the seven minutes are over. That is basically the whole point of the game. Not saving the city. Not changing history. Just trying to finish something before there is no time left. and the end scene after the game over or you win scene is the same throughout. it is set in the future with the kiyoshima bombing archived, however many minigames you complete is the number of the letters that survived, and the letters that you can read. YOU CAN PLAY THE GAME HERE : https://aamosm.itch.io/seven-minute-shadow"}, {"post_id": 56617, "ts": "2026-08-28T13:21:48Z", "hours": 5.0194, "text": "devlog - reworking the game I ended up reworking a lot of the game, and it’s definitely better than where it started. It is not the exact idea I came into this with . The current version is still pretty crude, but it’s now a proper playable game with 4 minigames, win and game over scenes, and an actual ending. This is still my first Godot game, so I’m going to keep it around as a benchmark for myself and see how much better I get over time. There is a storyline to it too. Do check it out guys and tell me how you liked it."}, {"post_id": 24235, "ts": "2026-07-07T17:40:08Z", "hours": 0.2583, "text": "Seven Minute Shadow - devlog 6 . writing this out quick with no formatting First devlog after trying to ship, there are evident problems with even the v0.1 demo. Whenever someone clicked on try again or would reset the game, the counter in global for mingames would still remain the incremented value. Basically it would not be a new instance. So I hardcoded the values to what they are supposed to be in the beginning. it would also track hearts and if it became 0 once it would carry forward which i had to fix. The mailman is not supposed to be playable. I probably shouldnt have made it able to move by player but i did just in case but also caused an issue when it didnt remain in animation. so had to fix that crack. Also there would be errors in the console that while not game breaking would affect performance. it was due to the fov being under 1 after subtraction in tween. had to fix that. i thought my devlog after ship would be for more feature but ig im stuck on bugs. but ill continue working on this and my other project. still have to implement music, more minigames, and the full storyline. Anyways, i hope you find demo v0.2 interesting till then."}, {"post_id": 23372, "ts": "2026-07-06T09:28:22Z", "hours": 2.6267, "text": "Seven Minute Shadow - Devlog 5 The demo is out The first playable version is finally shipped. I added the second minigame and spent some time going back through the first one to fix bugs and make the transition between them actually work from start to finish. The ending The Game Over and Win scenes are now connected too. The current win screen is still temporary. It pulls the remaining hearts from global.gd and shows them as the score. For now, this is basically Ending 0: The Demo Ending . The plane still flies, the day went well, and that’s about as far as the ending goes for now. What’s next Now that the demo is playable, I can finally focus on the actual game. Music and sound effects Reworking my pixel art The remaining 5 minigames The proper story and endings The full game is planned around 7 minigames and 3 actual endings . The demo is just the starting point."}, {"post_id": 22846, "ts": "2026-07-05T13:45:31Z", "hours": 2.705, "text": "Seven Minute Shadow - Devlog 4 Progress Been busy. I adjusted the mailman cutscene and finally got the core loop feeling like an actual game instead of a bunch of separate pieces. The minigame I fixed the heart subtraction system, so messing up now actually costs a life. I also added the proper fail states so the minigame knows when you’ve lost. I also made a general Level Info scene that can be shown before each minigame. It displays your lives, timer and a short instruction so you know what you’re supposed to do before starting. Scope For the first playable version, I’m aiming to finish 2 minigames . The full idea is 7 minigames , all connected by the story and narration. I want to spend more time on that side as I continue, although I probably make it sound more grand than it actually is. More to come."}, {"post_id": 22084, "ts": "2026-07-04T10:36:26Z", "hours": 3.735, "text": "Seven Minute Shadow - Devlog 3 Progress Made some solid progress over the last couple of days. Player movement is working now, along with an exit point. I also finished the first 2D cutscene, added dialogue, and got the transition between the 3D intro and the 2D world working. Getting the animations to line up with the dialogue took a bit of tweaking, but it all flows much better now. Building the world I also started putting the actual game together. The tilemap is in place, the first environment is coming together, and I added the mailman character with working sprite animations. The next step is building his cutscene and the minigame that goes with it. Assets A lot of the art is still placeholder made by me for now. Finding good free assets with the right license takes time, so I’m using temporary sprites where needed. Some things, like the post box, are my own, and I’ll replace the placeholders with better assets later on. Music will also come much later in development."}, {"post_id": 21355, "ts": "2026-07-03T07:45:55Z", "hours": 1.4667, "text": "Seven Minute Shadow - Devlog 2 Learning Godot I’m still pretty new to Godot, and while following the guide I kept wanting to do my own thing instead of sticking to it. That ended up making things harder than they probably needed to be. Cutscenes I wanted to mix 2D gameplay with 3D cutscenes, so I spent a while figuring out how to get both working together. It took a bit of trial and error, but the first 3D cutscene is finally working. Now I can get back to actually making the game."}, {"post_id": 20573, "ts": "2026-07-02T05:58:27Z", "hours": 1.1708, "text": "Seven Minute Shadow - Devlog 1 Getting started I just finished the title screen. I’ve played a lot of WarioWare-style games over the years, especially thanks to my GBA ROM addiction, but this is my first time using Godot, so I’m learning as I go. The story I’ve settled on the title: Seven Minute Shadow . I want the game to have a proper narrative instead of just being a collection of minigames, so I’ll be keeping most of the story out of these devlogs. I’d rather people experience it for themselves. The first ship will mostly be about getting a playable version out. After that, I’ll focus on polishing the experience and expanding the story."}]...
|
Title: Seven Minute Shadow by @aamosm | Stardance
Title: Seven Minute Shadow by @aamosm | Stardance
Devlogs:
Seven Minute Shadow - Devlog 1 Getting started I just finished the title screen. I’ve played a lot of WarioWare-style games over the years, especially thanks to my GBA ROM addiction, but this is my first time using Godot, so I’m learning as I go. The story I’ve settled on the title: Seven Minute Shadow . I want the game to have a proper narrative instead of just being a collection of minigames, so I’ll be keeping most of the story out of these devlogs. I’d rather people experience it for themselves. The first ship will mostly be about getting a playable version out. After that, I’ll focus on polishing the experience and expanding the story.
Seven Minute Shadow - Devlog 2 Learning Godot I’m still pretty new to Godot, and while following the guide I kept wanting to do my own thing instead of sticking to it. That ended up making things harder than they probably needed to be. Cutscenes I wanted to mix 2D gameplay with 3D cutscenes, so I spent a while figuring out how to get both working together. It took a bit of trial and error, but the first 3D cutscene is finally working. Now I can get back to actually making the game.
Seven Minute Shadow - Devlog 3 Progress Made some solid progress over the last couple of days. Player movement is working now, along with an exit point. I also finished the first 2D cutscene, added dialogue, and got the transition between the 3D intro and the 2D world working. Getting the animations to line up with the dialogue took a bit of tweaking, but it all flows much better now. Building the world I also started putting the actual game together. The tilemap is in place, the first environment is coming together, and I added the mailman character with working sprite animations. The next step is building his cutscene and the minigame that goes with it. Assets A lot of the art is still placeholder made by me for now. Finding good free assets with the right license takes time, so I’m using temporary sprites where needed. Some things, like the post box, are my own, and I’ll replace the placeholders with better assets later on. Music will also come much later in development.
Seven Minute Shadow - Devlog 4 Progress Been busy. I adjusted the mailman cutscene and finally got the core loop feeling like an actual game instead of a bunch of separate pieces. The minigame I fixed the heart subtraction system, so messing up now actually costs a life. I also added the proper fail states so the minigame knows when you’ve lost. I also made a general Level Info scene that can be shown before each minigame. It displays your lives, timer and a short instruction so you know what you’re supposed to do before starting. Scope For the first playable version, I’m aiming to finish 2 minigames . The full idea is 7 minigames , all connected by the story and narration. I want to spend more time on that side as I continue, although I probably make it sound more grand than it actually is. More to come.
Seven Minute Shadow - Devlog 5 The demo is out The first playable version is finally shipped. I added the second minigame and spent some time going back through the first one to fix bugs and make the transition between them actually work from start to finish. The ending The Game Over and Win scenes are now connected too. The current win screen is still temporary. It pulls the remaining hearts from global.gd and shows them as the score. For now, this is basically Ending 0: The Demo Ending . The plane still flies, the day went well, and that’s about as far as the ending goes for now. What’s next Now that the demo is playable, I can finally focus on the actual game. Music and sound effects Reworking my pixel art The remaining 5 minigames The proper story and endings The full game is planned around 7 minigames and 3 actual endings . The demo is just the starting point.
Seven Minute Shadow - devlog 6 . writing this out quick with no formatting First devlog after trying to ship, there are evident problems with even the v0.1 demo. Whenever someone clicked on try again or would reset the game, the counter in global for mingames would still remain the incremented value. Basically it would not be a new instance. So I hardcoded the values to what they are supposed to be in the beginning. it would also track hearts and if it became 0 once it would carry forward which i had to fix. The mailman is not supposed to be playable. I probably shouldnt have made it able to move by player but i did just in case but also caused an issue when it didnt remain in animation. so had to fix that crack. Also there would be errors in the console that while not game breaking would affect performance. it was due to the fov being under 1 after subtraction in tween. had to fix that. i thought my devlog after ship would be for more feature but ig im stuck on bugs. but ill continue working on this and my other project. still have to implement music, more minigames, and the full storyline. Anyways, i hope you find demo v0.2 interesting till then.
devlog - reworking the game I ended up reworking a lot of the game, and it’s definitely better than where it started. It is not the exact idea I came into this with . The current version is still pretty crude, but it’s now a proper playable game with 4 minigames, win and game over scenes, and an actual ending. This is still my first Godot game, so I’m going to keep it around as a benchmark for myself and see how much better I get over time. There is a storyline to it too. Do check it out guys and tell me how you liked it.
✦ BEFORE YOU RATE THIS ✦ or interact in whatever way the story is a little confusing without context. Seven Minute Shadow starts at 17:53 . At 18:00 , Kiyoshima will be bombed. You are just a postman trying to finish one last route before it happens. You cannot stop the bombing . You can only decide how much gets delivered before the seven minutes are over. That is basically the whole point of the game. Not saving the city. Not changing history. Just trying to finish something before there is no time left. and the end scene after the game over or you win scene is the same throughout. it is set in the future with the kiyoshima bombing archived, however many minigames you complete is the number of the letters that survived, and the letters that you can read. YOU CAN PLAY THE GAME HERE : https://aamosm.itch.io/seven-minute-shadow
Ships:
Seven Minute Shadow - Ship! 🚀 🎉 Finally shipped the first playable version! This is still a demo, but it has the complete gameplay loop: title screen → story → cutscenes → minigames → ending. It actually feels like a game now instead of a bunch of disconnected scenes. 🕹️ Right now there are 2 playable minigames connected together with lives, transitions, fail states and a temporary ending that scores you based on your remaining hearts, there is no best score because the minigames are a part of the story. A story which i have not fleshed out yet. It’s still a WarioWare game with some cutscenes in between. 🎭 A lot of the art is still bad. like very bad. ik i have to up my skills. And also there’s barely any music yet. I wanted to get something playable out first before spending time polishing everything. 📖 The full vision is still 7 minigames tied together by one story, with multiple endings depending on how well you play. This demo is basically the foundation for all of that. Thanks for playing! Time to get back to making the rest of the game. 🤌 Play the demo and tell me abt it.
Seven Minute Shadow - shipping I’ve attached a video so you can actually see the game in action. Seven Minute Shadow is a small historical fiction game built around a simple idea: the whole experience should take about 7 minutes . It’s not a huge game, and it’s definitely not trying to be one. The focus is on the little story behind it, the decisions you make while playing, and what those decisions leave behind. The ending itself cannot be changed. What can change is everything that happens before it, and what you leave behind. I made this as my first proper Godot game, so it’s still a pretty rough little project, but I’d really like people to try it and see what they take from it. **check it out. or check out the video on github. **...
|
1792839170.334002
|
1792925570.334002
|
|
29324
|
My own site! by @____ | Stardance
|
____
|
2
|
2.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-06T14:39:48Z", "hours": 1.0, "multiplier": 1.09, "payout": 1, "blessing": "neutral", "text": "I made a simple, basic website called EcoIndia to raise awareness on environmental costs and concerns in India. Things that I faced that were particularly challenging was trying to figure out if I was suppose to write something in HTML or CSS, in terms of styling (using CSS document or in-line styling in html). I’m proud of being able to efficiently code this in less time because that shows an increase in my speed in ability to do this. To test my project, all you need to do is to click on the button to Try my project and it should show the website.", "repo": "https://github.com/Explore2333/personalsite", "demo": "https://explore2333.github.io/personalsite/index.html"}, {"ship_num": 2, "ts": "2026-07-01T19:07:14Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a simple, basic website called EcoIndia to raise awareness on environmental costs and concerns in India. Things that I faced that were particularly challenging was trying to figure out if I was suppose to write something in HTML or CSS, in terms of styling (using CSS document or in-line styling in html). I’m proud of being able to efficiently code this in less time because that shows an increase in my speed in ability to do this. To test my project, all you need to do is to click on the button to Try my project and it should show the website.", "repo": "https://github.com/Explore2333/personalsite", "demo": "https://explore2333.github.io/personalsite/index.html"}]...
|
[{"post_id": 21404, "ts": "202 [{"post_id": 21404, "ts": "2026-07-03T10:17:53Z", "hours": 0.2667, "text": "Small fixes in usage were made!"}, {"post_id": 21059, "ts": "2026-07-02T20:48:14Z", "hours": 0.3003, "text": "Worked on developing more content!"}, {"post_id": 20039, "ts": "2026-07-01T15:25:55Z", "hours": 0.6478, "text": "I finished designing the layout of my website. I also changed up the colors a bit to be more appealing. For the About Us, Environmental Issues, and Steps to Take Today, I added content relating to the mission, issues India is currently facing, and steps that people there can take to combat those issues."}, {"post_id": 20008, "ts": "2026-07-01T14:27:39Z", "hours": 0.5314, "text": "So far, I’ve designed the basic layout of my website and then the pages for the first ship!"}]...
|
Title: My own site! by @____ | Stardance
Devlogs: Title: My own site! by @____ | Stardance
Devlogs:
So far, I’ve designed the basic layout of my website and then the pages for the first ship!
I finished designing the layout of my website. I also changed up the colors a bit to be more appealing. For the About Us, Environmental Issues, and Steps to Take Today, I added content relating to the mission, issues India is currently facing, and steps that people there can take to combat those issues.
Worked on developing more content!
Small fixes in usage were made!
Ships:
I made a simple, basic website called EcoIndia to raise awareness on environmental costs and concerns in India. Things that I faced that were particularly challenging was trying to figure out if I was suppose to write something in HTML or CSS, in terms of styling (using CSS document or in-line styling in html). I’m proud of being able to efficiently code this in less time because that shows an increase in my speed in ability to do this. To test my project, all you need to do is to click on the button to Try my project and it should show the website.
I made a simple, basic website called EcoIndia to raise awareness on environmental costs and concerns in India. Things that I faced that were particularly challenging was trying to figure out if I was suppose to write something in HTML or CSS, in terms of styling (using CSS document or in-line styling in html). I’m proud of being able to efficiently code this in less time because that shows an increase in my speed in ability to do this. To test my project, all you need to do is to click on the button to Try my project and it should show the website....
|
1792835343.1364112
|
1792921743.1364112
|
|
29340
|
Nidofy Next.JS by @NiDo | Stardance
|
NiDo
|
2
|
4.47
|
7
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-04T02:41:53Z", "hours": 1.0, "multiplier": 6.71, "payout": 7, "blessing": "neutral", "text": "I looked at my Nidofy site made in React and wondered “What if SSR and SEO?” and that’s how I decided it’s time for me to rewrite the site (again) in Next.JS. It wasn’t very hard and I learnt how to build, test and deploy a Next.JS application. The site also serves as my poetry page and is self-hosted (which is why it got pushed back into review last time due to an outage)", "repo": "https://github.com/ElectroBoy404NotFound/nidofy-nextjs", "demo": "https://www.nikunjdoke.in/"}, {"ship_num": 2, "ts": "2026-07-02T17:27:01Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I looked at my Nidofy site made in React and wondered “What if SSR and SEO?” and that’s how I decided it’s time for me to rewrite the site (again) in Next.JS. It wasn’t very hard and I learnt how to build, test and deploy a Next.JS application. The site also serves as my poetry page.", "repo": "https://github.com/ElectroBoy404NotFound/nidofy-nextjs", "demo": "https://www.nikunjdoke.in/"}]...
|
[{"post_id": 59660, "ts": "202 [{"post_id": 59660, "ts": "2026-09-01T16:04:51Z", "hours": 0.4711, "text": "Long time, and there have been a few changes! I got myself a domain (nikunjdoke.in) and so the site now lives there. So because of that I had to update the robots.txt and sitemap.xml. Apart from that, the LinkedIn URL was wrong, and later I added an Email option. So this is what I’m planning next- A contact box where you can type in your details along with email address and other stuff, and on my admin dashboard I’ll be able to read it."}, {"post_id": 21907, "ts": "2026-07-04T02:40:48Z", "hours": 0.9933, "text": "Well, because of the server going down yesterday the projet got pushed to Changes Requested… But oh well, I took the oportunity to add a footer to the site."}, {"post_id": 20906, "ts": "2026-07-02T17:05:00Z", "hours": 0.4631, "text": "As few people have suggested in Nidofy v2, I’ve changed the background of the poem cards to GitHub black (or atleast a similar shade) to remove the contrasting white card and grey background. I’ve also added the dynamic robots.txt and sitemap.xml. I just need to deploy it and I’ll be done with this project!"}, {"post_id": 20875, "ts": "2026-07-02T16:24:15Z", "hours": 1.1406, "text": "Okiee so I’m finally done with the poem view. It also has a dynamic Metadata generator so that search engines could actually pick the data up. I just have to finish implementing robots.txt and sitemap to finish the coding… Deploying is going to be kinda interesting as I never self-hosted a Next.JS site but let’s see."}, {"post_id": 20120, "ts": "2026-07-01T17:26:13Z", "hours": 0.5161, "text": "Okie so I think I’m finally understanding how to use next.js. I redid the home page splitting the page into server side and client side. And the buttons actually work now. Next.JS is actually cool!! P.S. I got the background working now by just getting rid of some CSS related to default colours… It’s some black magic stuff but it works…."}, {"post_id": 20072, "ts": "2026-07-01T16:15:24Z", "hours": 0.5178, "text": "I was planning to do this in the Nidofy v2 project itself but it wasn’t allowing me to link it to a mission… So I had to make this into a separate project so that I can work on it and not gonna lie, it’s kinda harder than i thought it’ll be. I thought I could move the react files over as it is and call it a day but it turns out there’s strict server and client code separation so I have to think about everything and stuff. And no, I’m not rewriting the backend in JS… Maybe not now, atleast I haven’t yet planned it. P.S. I have no idea why the background decided to be white… debugging css and regreting life choice :/"}]...
|
Title: Nidofy Next.JS by @NiDo | Stardance
Devlog Title: Nidofy Next.JS by @NiDo | Stardance
Devlogs:
I was planning to do this in the Nidofy v2 project itself but it wasn’t allowing me to link it to a mission… So I had to make this into a separate project so that I can work on it and not gonna lie, it’s kinda harder than i thought it’ll be. I thought I could move the react files over as it is and call it a day but it turns out there’s strict server and client code separation so I have to think about everything and stuff. And no, I’m not rewriting the backend in JS… Maybe not now, atleast I haven’t yet planned it. P.S. I have no idea why the background decided to be white… debugging css and regreting life choice :/
Okie so I think I’m finally understanding how to use next.js. I redid the home page splitting the page into server side and client side. And the buttons actually work now. Next.JS is actually cool!! P.S. I got the background working now by just getting rid of some CSS related to default colours… It’s some black magic stuff but it works….
Okiee so I’m finally done with the poem view. It also has a dynamic Metadata generator so that search engines could actually pick the data up. I just have to finish implementing robots.txt and sitemap to finish the coding… Deploying is going to be kinda interesting as I never self-hosted a Next.JS site but let’s see.
As few people have suggested in Nidofy v2, I’ve changed the background of the poem cards to GitHub black (or atleast a similar shade) to remove the contrasting white card and grey background. I’ve also added the dynamic robots.txt and sitemap.xml. I just need to deploy it and I’ll be done with this project!
Well, because of the server going down yesterday the projet got pushed to Changes Requested… But oh well, I took the oportunity to add a footer to the site.
Long time, and there have been a few changes! I got myself a domain (nikunjdoke.in) and so the site now lives there. So because of that I had to update the robots.txt and sitemap.xml. Apart from that, the LinkedIn URL was wrong, and later I added an Email option. So this is what I’m planning next- A contact box where you can type in your details along with email address and other stuff, and on my admin dashboard I’ll be able to read it.
Ships:
I looked at my Nidofy site made in React and wondered “What if SSR and SEO?” and that’s how I decided it’s time for me to rewrite the site (again) in Next.JS. It wasn’t very hard and I learnt how to build, test and deploy a Next.JS application. The site also serves as my poetry page.
I looked at my Nidofy site made in React and wondered “What if SSR and SEO?” and that’s how I decided it’s time for me to rewrite the site (again) in Next.JS. It wasn’t very hard and I learnt how to build, test and deploy a Next.JS application. The site also serves as my poetry page and is self-hosted (which is why it got pushed back into review last time due to an outage)...
|
1792810376.492518
|
1792896776.492518
|
|
29342
|
Art Dump by @Dragaroni | Stardance
|
Dragaroni
|
2
|
11.0
|
51
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-22T20:31:15Z", "hours": 7.0, "multiplier": 3.44, "payout": 24, "blessing": "neutral", "text": "I made a simple HTML and CSS website containing some of my art and doodles. It has a simple header and footer, and the colours correlate to a slightly muted version of the lesbian flag. I didn’t really like the first version of this website so I decided to update and improve it (also because the previous version was very simple). I really hope you enjoy my art and my website! Thank you!", "repo": "https://github.com/Pinklady1209/art-dump", "demo": "https://art-dump.vercel.app"}, {"ship_num": 2, "ts": "2026-07-21T17:37:31Z", "hours": 4.0, "multiplier": 6.44, "payout": 27, "blessing": "neutral", "text": "Finally finished it!! Just a little something I’ve been working on since my school’s sports day. It’s just something for me to post my art on since I’ve finally become more confident on sharing my art with others. I hope you all like my little doodles and I hope to be adding more soon!", "repo": "https://github.com/Pinklady1209/art-dump", "demo": "https://art-dump.vercel.app"}]...
|
[{"post_id": 81869, "ts": "202 [{"post_id": 81869, "ts": "2026-10-22T20:15:51Z", "hours": 1.4703, "text": "Started contact page! I’m going to add a link to my Slack profile and add rules if people want to DM me about any art bounties and stuff like that. I’m so close to getting that bag and I really hope that this project gives me enough stardust to finish it."}, {"post_id": 81269, "ts": "2026-10-20T15:30:37Z", "hours": 0.8281, "text": "Halfway finished with the updated version! I’m halfway down the ‘Art’ page and now all I have to do is the ‘Contact’ page and the buttons for it and then I’ll be done! I really hope that I don’t have to do any more then like 12-14hrs (since thats what I’m planning to do) otherwise I might not have time to do any art bounties or my OS for expedition."}, {"post_id": 81105, "ts": "2026-10-19T21:37:22Z", "hours": 0.8639, "text": "Finished my home page and started on my art page! I’m writing my own comments and opinions on my art and how I can improve in the future. I hoped to have got this done last night but I’m currently on holiday and had to go to bed early. I might not be able to finish it tonight but I really hope to get it done as quickly as possible so the campfire bag will arrive before Haven."}, {"post_id": 80759, "ts": "2026-10-18T18:25:23Z", "hours": 3.7256, "text": "Reworking the whole thing. I’ve been put off by the whole first version of the website so I decided to re-code the whole thing to make it look better since the first was a bit sloppy. I’ve added a nav bar and some info so far and I hope to get enough hours so I can get the campfire laptop bag before haven :)"}, {"post_id": 32451, "ts": "2026-07-21T17:29:04Z", "hours": 0.7483, "text": "Just fixed some spelling errors and added a READ ME. About to ship it so I hope you enjoy!!"}, {"post_id": 29501, "ts": "2026-07-16T14:05:04Z", "hours": 1.8069, "text": "Another hour and 48 minutes in and I’ve almost finished!!! Just have a few more captions and artworks to add then I can make it public"}, {"post_id": 29428, "ts": "2026-07-16T11:30:09Z", "hours": 1.5958, "text": "So for the past hour and a half I’ve been working on a website for my self to post all my traditional (a maybe a couple digital) artworks!! It’s half finished currently but I hope to get it finished before I fly to Egypt!"}]...
|
Title: Art Dump by @Dragaroni | Stardance
Devlogs Title: Art Dump by @Dragaroni | Stardance
Devlogs:
So for the past hour and a half I’ve been working on a website for my self to post all my traditional (a maybe a couple digital) artworks!! It’s half finished currently but I hope to get it finished before I fly to Egypt!
Another hour and 48 minutes in and I’ve almost finished!!! Just have a few more captions and artworks to add then I can make it public
Just fixed some spelling errors and added a READ ME. About to ship it so I hope you enjoy!!
Reworking the whole thing. I’ve been put off by the whole first version of the website so I decided to re-code the whole thing to make it look better since the first was a bit sloppy. I’ve added a nav bar and some info so far and I hope to get enough hours so I can get the campfire laptop bag before haven :)
Finished my home page and started on my art page! I’m writing my own comments and opinions on my art and how I can improve in the future. I hoped to have got this done last night but I’m currently on holiday and had to go to bed early. I might not be able to finish it tonight but I really hope to get it done as quickly as possible so the campfire bag will arrive before Haven.
Halfway finished with the updated version! I’m halfway down the ‘Art’ page and now all I have to do is the ‘Contact’ page and the buttons for it and then I’ll be done! I really hope that I don’t have to do any more then like 12-14hrs (since thats what I’m planning to do) otherwise I might not have time to do any art bounties or my OS for expedition.
Started contact page! I’m going to add a link to my Slack profile and add rules if people want to DM me about any art bounties and stuff like that. I’m so close to getting that bag and I really hope that this project gives me enough stardust to finish it.
Ships:
Finally finished it!! Just a little something I’ve been working on since my school’s sports day. It’s just something for me to post my art on since I’ve finally become more confident on sharing my art with others. I hope you all like my little doodles and I hope to be adding more soon!
I made a simple HTML and CSS website containing some of my art and doodles. It has a simple header and footer, and the colours correlate to a slightly muted version of the lesbian flag. I didn’t really like the first version of this website so I decided to update and improve it (also because the previous version was very simple). I really hope you enjoy my art and my website! Thank you!...
|
1792817564.444363
|
1792903964.444363
|
|
29435
|
Beyond the Nebula by @SMD | Stardance
|
SMD
|
2
|
20.0
|
63
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-04T10:44:19Z", "hours": 8.0, "multiplier": 7.87, "payout": 63, "blessing": "neutral", "text": "Beyond the Nebula A game full of short space-themed minigames! Survive to make it safely back to Earth. DISCLAIMER:- It is preferred to use a PC for better game performance. Thank you! How to Play You have 5 live and each round, a minigame is chosen to for you to beat. Complete the objective to survive. Fail and you lose a life. Lose all 5 and it’s game over. Minigames: #1 Platformer game - Collect all 3 stars within 10 seconds #2 Clicker game - Click all 7 stars within 7 seconds #3 Pong game - Bounce off the ball using your paddle for 30 seconds #4 Dino game - Jump over the cactus as it spawns and scrolls towards you. Survive for 20 seconds! (Use spacebar) #5 Flappy Bird - Fly between pipes. Survive for 15 seconds! Controls For Desktop/Laptop users: Left and Right -> Arrow buttons Jump -> Space bar For Mobile/Tablet users: Use the virtual joystick situated on the bottom left of the game screen NOTE: Mobile/Tablet users will not be able to play the 4th minigame i.e the DIno game. For that game only the spacebar button works in order to jump over cacti. Credits: Game built using Godot Engine All assets used in the game are open source The main character is a fan art and is not affiliated with Amongus All music and SFX from Pixabay.com https://github.com/russs123/dino-run-assets -> For DIno assets https://github.com/russs123/godot_flappy_bird_assets -> For Flappy Bird assets", "repo": "https://github.com/DakshikaaTech/Beyond-the-Nebula", "demo": "https://stellarbyte.itch.io/beyond-the-nebula"}, {"ship_num": 2, "ts": "2026-08-07T11:03:15Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a warioware game called “Beyond the Nebula”. The player has to complete 2 minigames within the time allotted and not lose 5 lives in the process. Once the games are successfully completed, the player reaches safely back to Earth. Just so you know the game is not complete yet and I am planning to add more games in due time!", "repo": "https://github.com/DakshikaaTech/Beyond-the-Nebula", "demo": "https://stellarbyte.itch.io/beyond-the-nebula"}]...
|
[{"post_id": 61385, "ts": "202 [{"post_id": 61385, "ts": "2026-09-04T08:36:12Z", "hours": 4.1225, "text": "Devlog #7: Created a dino game Goal: Jump over cacti Just don’t get hit by a cactus! Survive for 15 seconds Features I’ve added: A jungle themed background 3d scrolling effect with Parallax background Cactus spawning and scrolling towards dino The dino remains still (all the player has to do is to jump over cactus as it scrolls near the dino) The game lasts for 15 seconds before moving onto the next. NOTE: The game seems easy to make, but it’s really hard. Might be easier to play compared to “Flappy Bird”."}, {"post_id": 56677, "ts": "2026-08-28T15:15:16Z", "hours": 1.9656, "text": "Devlog #6: Created Flappy bird game Goal: Keep the bird in the air without hitting the pipes or the ground. Keep tapping on the screen to do so. Maintain this for 15 seconds straight to survive and move on to the next minigame. Else, you lose a life. Features I’ve added: 3 flappy birds for seamless animation Blue sky, green grass, white cloud background Endless scrolling of ground Code to generate new pair of pipes with the same magnitude of distance between them. (Just their positions on the y-axis change) Flap SFX (Same as jump and bounce effects) NOTE: I might change this minigame to the last one as I find this one to be of immense difficulty."}, {"post_id": 55388, "ts": "2026-08-27T05:59:08Z", "hours": 1.9714, "text": "Devlog #5: Creating Pong game After venturing on a lot of sidequests (HTM+CSS+JS), I’m back on Godot, baby! ngl, Godot is by far the simplest thing to code on. Plus, it’s really, really fun. I’ve managed to create my 3rd minigame: Pong game Goal: Keep bouncing the ball using your paddle for 30 seconds straight. If the ball leaves the screen, you lose a life. Features I’ve added: Ball bouncing off the walls and paddle Ball bouncing SFX Easily movable paddle (controllable by mouse and touch screen) Black starry background One thing I struggles with originally was that the paddle was bouncing off the screen once the ball hit it. So to solve that problem I switched my paddle from CharacterBody2D to StatucBody2D NOTE : You may not be able to see the timer. But the game will end within 30 second, trust me! It’s just so as to introduce as element of suspense."}, {"post_id": 41311, "ts": "2026-08-05T13:41:22Z", "hours": 2.0242, "text": "Devlog #4: Added a bunch of cool things!!! Hello ppl!!! Greetings from Nebula! I know it’s been a long time since I posted a Devlog (I was a bit busy with life). But here I am, at last! What I did: Added a settings page that allows you to toggle the volume and put the game on full screen mode Added music and SFX from Pixabay Optimized the platformer game so that it can be played on a mobile phone (my bestiee was complaining she couldn’t play the game, but now she can! :)) Added a VirtualController for my platformer game. So that’s it for now! I’m gonna ship this project! Problems I encountered: “Exit” button on final screen not working once I uploaded it to itch.io Volume control slider not toggling on a mobile device But for now, Imma ship the project as it is! I worked really hard on it and I hope you guys enjoy playing the game as much as I did making it! I’m open to feedback and suggestions on what more games to add! Thanks so much for reading this and comment down below what you think! P.S.S : This is not my final ship….I’ll do some changes, add more games and then do my 2nd ship (which’ll most likely be my final)"}, {"post_id": 25170, "ts": "2026-07-09T06:56:20Z", "hours": 2.0486, "text": "Devlog #3: Added winner and loser scenes Winner’s Scene: I’ve added a “Congrats!” message. A hovering red Amongus An image of Earth rotating 360 degrees A “Play Again!” button, which takes you to a level select screen where you can then choose which level you wanna attempt again. Loser’s Scene: I’ve added a “Better luck next time!” message. A dead red Amongus A “Try Again!” button, which takes you back to level #0 A “Main Menu” button, which takes you back to the main title screen. What I plan on doing next: Create a Readme file on Github"}, {"post_id": 24234, "ts": "2026-07-07T17:38:50Z", "hours": 1.2147, "text": "Devlog #2: Added Minigame #2 I managed to solve the problem I had mentioned on my previous devlog. Turns out I had actually forgotten to connect my Star_collected() signal onto the main GD script. How silly of me! ^^ So basically, that’s the reason why my system wasn’t recognizing that all the stars were collected and instead deducting lives. Next I added Minigame#2 which is basically a Star Clicker game. GOAL:- Click all 7 stars in 7 seconds. Up next on my to-do list: Add winner and loser scenes Update my ReadMe file on Github"}, {"post_id": 22982, "ts": "2026-07-05T17:50:32Z", "hours": 6.9953, "text": "Devlog #1: Building my space-themed warioware game Sooo about a week ago, I started building my game “Beyond the Nebula” on Godot. Things I’ve added: Title Screen (With Start Game, Settings and Quit buttons) Levels Screen (Displays what level of minigame the player’s on and how many lives the player has….I’ve used Godot faces for lives:)) Themed Timer (This is a 10 second timer that can be added onto any minigame I create) Player Sprite (a red Amongus character ;D) And last but not the least…..MINIGAME #1:- Creating my first minigame has been somewhat of a challenge since I’m new to the Godot interface. But, I think I’m starting to get the hang of it :D. The goal of the game is simple: collect all the 3 stars before the timer hits 0. I enjoyed building this platformer game, but I bumped into a slight but major problem: despite my character collecting all the stars, the game doesn’t go back to the levels screen and load the next minigame. Instead, it decreases a life. So this is a problem that I’ve got to find a solution to and I hope to do it soon! Besides this, there was another issue I encountered while playtesting my game: My sprite going out of the screen’s viewport accidentally. I quickly solved this issue by altering my gd script code so that the sprite can’t leave the screen, even if the player tried to. Further Plans: Solve the aforementioned problem of losing a life despite winning the game Add Minigame #2 I shall update regarding the same on my next Devlog… This is SMD signing off! Keep coding xo"}]...
|
Title: Beyond the Nebula by @SMD | Stardance
Devl Title: Beyond the Nebula by @SMD | Stardance
Devlogs:
Devlog #1: Building my space-themed warioware game Sooo about a week ago, I started building my game “Beyond the Nebula” on Godot. Things I’ve added: Title Screen (With Start Game, Settings and Quit buttons) Levels Screen (Displays what level of minigame the player’s on and how many lives the player has….I’ve used Godot faces for lives:)) Themed Timer (This is a 10 second timer that can be added onto any minigame I create) Player Sprite (a red Amongus character ;D) And last but not the least…..MINIGAME #1:- Creating my first minigame has been somewhat of a challenge since I’m new to the Godot interface. But, I think I’m starting to get the hang of it :D. The goal of the game is simple: collect all the 3 stars before the timer hits 0. I enjoyed building this platformer game, but I bumped into a slight but major problem: despite my character collecting all the stars, the game doesn’t go back to the levels screen and load the next minigame. Instead, it decreases a life. So this is a problem that I’ve got to find a solution to and I hope to do it soon! Besides this, there was another issue I encountered while playtesting my game: My sprite going out of the screen’s viewport accidentally. I quickly solved this issue by altering my gd script code so that the sprite can’t leave the screen, even if the player tried to. Further Plans: Solve the aforementioned problem of losing a life despite winning the game Add Minigame #2 I shall update regarding the same on my next Devlog… This is SMD signing off! Keep coding xo
Devlog #2: Added Minigame #2 I managed to solve the problem I had mentioned on my previous devlog. Turns out I had actually forgotten to connect my Star_collected() signal onto the main GD script. How silly of me! ^^ So basically, that’s the reason why my system wasn’t recognizing that all the stars were collected and instead deducting lives. Next I added Minigame#2 which is basically a Star Clicker game. GOAL:- Click all 7 stars in 7 seconds. Up next on my to-do list: Add winner and loser scenes Update my ReadMe file on Github
Devlog #3: Added winner and loser scenes Winner’s Scene: I’ve added a “Congrats!” message. A hovering red Amongus An image of Earth rotating 360 degrees A “Play Again!” button, which takes you to a level select screen where you can then choose which level you wanna attempt again. Loser’s Scene: I’ve added a “Better luck next time!” message. A dead red Amongus A “Try Again!” button, which takes you back to level #0 A “Main Menu” button, which takes you back to the main title screen. What I plan on doing next: Create a Readme file on Github
Devlog #4: Added a bunch of cool things!!! Hello ppl!!! Greetings from Nebula! I know it’s been a long time since I posted a Devlog (I was a bit busy with life). But here I am, at last! What I did: Added a settings page that allows you to toggle the volume and put the game on full screen mode Added music and SFX from Pixabay Optimized the platformer game so that it can be played on a mobile phone (my bestiee was complaining she couldn’t play the game, but now she can! :)) Added a VirtualController for my platformer game. So that’s it for now! I’m gonna ship this project! Problems I encountered: “Exit” button on final screen not working once I uploaded it to itch.io Volume control slider not toggling on a mobile device But for now, Imma ship the project as it is! I worked really hard on it and I hope you guys enjoy playing the game as much as I did making it! I’m open to feedback and suggestions on what more games to add! Thanks so much for reading this and comment down below what you think! P.S.S : This is not my final ship….I’ll do some changes, add more games and then do my 2nd ship (which’ll most likely be my final)
Devlog #5: Creating Pong game After venturing on a lot of sidequests (HTM+CSS+JS), I’m back on Godot, baby! ngl, Godot is by far the simplest thing to code on. Plus, it’s really, really fun. I’ve managed to create my 3rd minigame: Pong game Goal: Keep bouncing the ball using your paddle for 30 seconds straight. If the ball leaves the screen, you lose a life. Features I’ve added: Ball bouncing off the walls and paddle Ball bouncing SFX Easily movable paddle (controllable by mouse and touch screen) Black starry background One thing I struggles with originally was that the paddle was bouncing off the screen once the ball hit it. So to solve that problem I switched my paddle from CharacterBody2D to StatucBody2D NOTE : You may not be able to see the timer. But the game will end within 30 second, trust me! It’s just so as to introduce as element of suspense.
Devlog #6: Created Flappy bird game Goal: Keep the bird in the air without hitting the pipes or the ground. Keep tapping on the screen to do so. Maintain this for 15 seconds straight to survive and move on to the next minigame. Else, you lose a life. Features I’ve added: 3 flappy birds for seamless animation Blue sky, green grass, white cloud background Endless scrolling of ground Code to generate new pair of pipes with the same magnitude of distance between them. (Just their positions on the y-axis change) Flap SFX (Same as jump and bounce effects) NOTE: I might change this minigame to the last one as I find this one to be of immense difficulty.
Devlog #7: Created a dino game Goal: Jump over cacti Just don’t get hit by a cactus! Survive for 15 seconds Features I’ve added: A jungle themed background 3d scrolling effect with Parallax background Cactus spawning and scrolling towards dino The dino remains still (all the player has to do is to jump over cactus as it scrolls near the dino) The game lasts for 15 seconds before moving onto the next. NOTE: The game seems easy to make, but it’s really hard. Might be easier to play compared to “Flappy Bird”.
Ships:
I made a warioware game called “Beyond the Nebula”. The player has to complete 2 minigames within the time allotted and not lose 5 lives in the process. Once the games are successfully completed, the player reaches safely back to Earth. Just so you know the game is not complete yet and I am planning to add more games in due time!
Beyond the Nebula A game full of short space-themed minigames! Survive to make it safely back to Earth. DISCLAIMER:- It is preferred to use a PC for better game performance. Thank you! How to Play You have 5 live and each round, a minigame is chosen to for you to beat. Complete the objective to survive. Fail and you lose a life. Lose all 5 and it’s game over. Minigames: #1 Platformer game - Collect all 3 stars within 10 seconds #2 Clicker game - Click all 7 stars within 7 seconds #3 Pong game - Bounce off the ball using your paddle for 30 seconds #4 Dino game - Jump over the cactus as it spawns and scrolls towards you. Survive for 20 seconds! (Use spacebar) #5 Flappy Bird - Fly between pipes. Survive for 15 seconds! Controls For Desktop/Laptop users: Left and Right -> Arrow buttons Jump -> Space bar For Mobile/Tablet users: Use the virtual joystick situated on the bottom left of the game screen NOTE: Mobile/Tablet users will not be able to play the 4th minigame i.e the DIno game. For that game only the spacebar button works in order to jump over cacti. Credits: Game built using Godot Engine All assets used in the game are open source The main character is a fan art and is not affiliated with Amongus All music and SFX from Pixabay.com https://github.com/russs123/dino-run-assets -> For DIno assets https://github.com/russs123/godot_flappy_bird_assets -> For Flappy Bird assets...
|
1792850171.432227
|
1792936571.432227
|
|
29560
|
WarioWare Game by @NC | Stardance
|
NC
|
2
|
9.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-14T10:02:59Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my WarioWare Game for the 2nd mission. Something I changed was all the assets. I made them all by myself in Piskel! I made 5 minigames Minigame 1 - Collect all the pieces of garlic as Wario before the timer runs out Minigame 2 - Click all the pieces of garlic before the timer runs out Minigame 3 - Dodge the Boulders until the timer runs out Minigame 4 - Parkour up the platforms as the orange lava rises Minigame 5 - Jump over the Koopa Shells before time runs out", "repo": "https://github.com/NCGameMaking/WarioWare", "demo": "https://ncgamemaking.itch.io/warioware"}, {"ship_num": 2, "ts": "2026-07-04T01:46:29Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A Warioware style minigame project. Fast-paced levels with a life system. Custom lose screen interface tracking score. I made a WarioWare themed game with 5 minigames in total. You have to beat all 5 minigames What I found was challenging was designing and creating my own minigames as well as linking my own minigames to the ones in the guide. What I am most proud of is how polished the game feels especially and how fun the games turned out to be. The controls are intuitive and easy to learn as in most of the minigames, you only use the arrow keys", "repo": "https://github.com/NCGameMaking/WarioWare", "demo": "https://ncgamemaking.itch.io/warioware"}]...
|
[{"post_id": 79499, "ts": "202 [{"post_id": 79499, "ts": "2026-10-14T09:55:38Z", "hours": 0.4294, "text": "Finished the README Just added a few pics and description no big deal"}, {"post_id": 67103, "ts": "2026-09-13T05:05:04Z", "hours": 1.0717, "text": "Update on Game Assets and Minigame 4 I have made my own asset for the game, the Wario, the boulders, the koopa shells myself now and adjusted the platform layout for the lava rising level to make it easier for the player."}, {"post_id": 21838, "ts": "2026-07-03T23:42:02Z", "hours": 1.9581, "text": "its done… Just spent time fixing on Warioware game, it took a really long, I was trying to figure out why my level for some reason, was going on level 1,2,3 straight to 5! What happened to my level 4. I literally just exported the game, uploaded it on itch.io played it, then realised HUH? for the next hour I just sat there staring at lines of code scrutinizing every individual variable line of code, (heck I even paid attention to the yellow labels!) I realised that I had been giving an extra command Global.minigames_done += 1 when my timer screen was already running that command, so the Global variable will run twice causing it to skip the 4th level. And also it happened that the lose screen buttons happened to not work, it was so annoying, RAAAAH. After another whole hour, it works! I had this function func _process ( delta ): if lives == 0 : lives = 5 get_tree () . change_scene_to_file ( \"res://lose_screen.tscn\" ) so i just added a line in front of the get_tree() function lives = 5 . It’s finally working now!!"}, {"post_id": 21188, "ts": "2026-07-03T00:16:07Z", "hours": 0.7503, "text": "Minigames 3, 4, & 5 Complete! Just made minigames 3, 4, and 5! The code the course provided was really helpful. It was incredibly modular , in fact, almost like a copy-paste job, other than the individual logic behind each minigame. Minigame 3: Boulder Dodge Type : Dodging game Mechanic : Boulders fall out of the sky. Objective : Wario has to dodge them until the timer runs out. Minigame 4: The Floor is Lava Type : Survival Parkour Mechanic : Orange lava slowly rises up to catch you. It rises faster and faster as time goes on! Objective : Wario has to parkour up the platforms and survive the full 10 seconds by climbing up. Minigame 5: Koopa Shell dodge Type : Horizontal Dodging game Mechanic : Instead of boulders falling from the sky, Koopa Shells fly across the ground. Objective : Wario has to jump over the Koopa Shells and dodge them until the timer runs out!"}, {"post_id": 21110, "ts": "2026-07-02T22:09:07Z", "hours": 1.3694, "text": "Forgot to say I added minigame 1, yeah Wario just collects the Garlics, you have to collect the garlics before the timer runs out"}, {"post_id": 20551, "ts": "2026-07-02T05:07:12Z", "hours": 2.2422, "text": "Just made minigame 2, code is fairly simple its working, now onto the third game my own choice, I am thinking of making a dodging game. Boulder fall out of the sky and Wario has to dodge them before by the time the timer runs out"}, {"post_id": 20373, "ts": "2026-07-01T23:18:31Z", "hours": 0.7239, "text": "Just made the title slide and level lives thingy. Put basic functions for the buttons, yeah, its looking good. Now making the player for platformer"}]...
|
Title: WarioWare Game by @NC | Stardance
Devlogs: Title: WarioWare Game by @NC | Stardance
Devlogs:
Just made the title slide and level lives thingy. Put basic functions for the buttons, yeah, its looking good. Now making the player for platformer
Just made minigame 2, code is fairly simple its working, now onto the third game my own choice, I am thinking of making a dodging game. Boulder fall out of the sky and Wario has to dodge them before by the time the timer runs out
Forgot to say I added minigame 1, yeah Wario just collects the Garlics, you have to collect the garlics before the timer runs out
Minigames 3, 4, & 5 Complete! Just made minigames 3, 4, and 5! The code the course provided was really helpful. It was incredibly modular , in fact, almost like a copy-paste job, other than the individual logic behind each minigame. Minigame 3: Boulder Dodge Type : Dodging game Mechanic : Boulders fall out of the sky. Objective : Wario has to dodge them until the timer runs out. Minigame 4: The Floor is Lava Type : Survival Parkour Mechanic : Orange lava slowly rises up to catch you. It rises faster and faster as time goes on! Objective : Wario has to parkour up the platforms and survive the full 10 seconds by climbing up. Minigame 5: Koopa Shell dodge Type : Horizontal Dodging game Mechanic : Instead of boulders falling from the sky, Koopa Shells fly across the ground. Objective : Wario has to jump over the Koopa Shells and dodge them until the timer runs out!
its done… Just spent time fixing on Warioware game, it took a really long, I was trying to figure out why my level for some reason, was going on level 1,2,3 straight to 5! What happened to my level 4. I literally just exported the game, uploaded it on itch.io played it, then realised HUH? for the next hour I just sat there staring at lines of code scrutinizing every individual variable line of code, (heck I even paid attention to the yellow labels!) I realised that I had been giving an extra command Global.minigames_done += 1 when my timer screen was already running that command, so the Global variable will run twice causing it to skip the 4th level. And also it happened that the lose screen buttons happened to not work, it was so annoying, RAAAAH. After another whole hour, it works! I had this function func _process ( delta ): if lives == 0 : lives = 5 get_tree () . change_scene_to_file ( "res://lose_screen.tscn" ) so i just added a line in front of the get_tree() function lives = 5 . It’s finally working now!!
Update on Game Assets and Minigame 4 I have made my own asset for the game, the Wario, the boulders, the koopa shells myself now and adjusted the platform layout for the lava rising level to make it easier for the player.
Finished the README Just added a few pics and description no big deal
Ships:
A Warioware style minigame project. Fast-paced levels with a life system. Custom lose screen interface tracking score. I made a WarioWare themed game with 5 minigames in total. You have to beat all 5 minigames What I found was challenging was designing and creating my own minigames as well as linking my own minigames to the ones in the guide. What I am most proud of is how polished the game feels especially and how fun the games turned out to be. The controls are intuitive and easy to learn as in most of the minigames, you only use the arrow keys
I made my WarioWare Game for the 2nd mission. Something I changed was all the assets. I made them all by myself in Piskel! I made 5 minigames Minigame 1 - Collect all the pieces of garlic as Wario before the timer runs out Minigame 2 - Click all the pieces of garlic before the timer runs out Minigame 3 - Dodge the Boulders until the timer runs out Minigame 4 - Parkour up the platforms as the orange lava rises Minigame 5 - Jump over the Koopa Shells before time runs out...
|
1792849829.3629599
|
1792936229.3629599
|
|
29619
|
Arduino Slot Machine by @GeorgeSun | Stardance
|
GeorgeSun
|
2
|
3.0
|
16
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-01T01:30:25Z", "hours": 2.0, "multiplier": 5.0, "payout": 11, "blessing": "neutral", "text": "I made an interactive, hardware-driven slot machine featuring three physical reels, automated coin detection, a joystick lever mechanism, and a custom payout dispenser. Getting the physical wheels of the slot machine to spin was the first challenging part. I originally planned to have two Arduinos, one to control the wheels and one to control the rest of the components. However, I am not very experienced with Arduino communication, and it didn’t end up going anywhere. Instead, I had to go for the easiest solution, which was to wire everything to one Arduino instead, which had its caveats, such as not having enough pins. Also, making sure that the step motors did not jam was a huge issue, as we had a 12V 5A power supply that was on the lower end to power these motors that perform much better on 24V. To fix this, I ended up just running them at a slower speed and acceleration. The part I am most proud of is the look of the slot machine. Even though I didn’t end up getting all of the 3d prints I needed, I compromised with cardboard, and the design of it still ended up looking pretty cool. I am also happy about the fact that all of the components work together as it goes from the different game states, completing the game loop.", "repo": "https://github.com/JaydenPan110/TaikoDrum-Project", "demo": ""}, {"ship_num": 2, "ts": "2026-07-03T22:30:48Z", "hours": 1.0, "multiplier": 5.0, "payout": 5, "blessing": "neutral", "text": "I made an interactive, hardware-driven slot machine featuring three physical reels, automated coin detection, a joystick lever mechanism, and a custom payout dispenser. Getting the physical wheels of the slot machine to spin was the first challenging part. I originally planned to have two Arduinos, one to control the wheels and one to control the rest of the components. However, I am not very experienced with Arduino communication, and it didn’t end up going anywhere. Instead, I had to go for the easiest solution, which was to wire everything to one Arduino instead, which had its caveats, such as not having enough pins. Also, making sure that the step motors did not jam was a huge issue, as we had a 12V 5A power supply that was on the lower end to power these motors that perform much better on 24V. To fix this, I ended up just running them at a slower speed and acceleration. The part I am most proud of is the look of the slot machine. Even though I didn’t end up getting all of the 3d prints I needed, I compromised with cardboard, and the design of it still ended up looking pretty cool. I am also happy about the fact that all of the components work together as it goes from the different game states, completing the game loop.", "repo": "https://github.com/JaydenPan110/TaikoDrum-Project", "demo": ""}]...
|
[{"post_id": 23870, "ts": "202 [{"post_id": 23870, "ts": "2026-07-07T02:04:17Z", "hours": 1.8836, "text": "Here are some schematic and 3D models I had made of the slot machine before I started building it. I had modelled everything first to ensure building was a smooth process."}, {"post_id": 20436, "ts": "2026-07-02T01:00:58Z", "hours": 0.8203, "text": "Made an interactive slot machine with three wheels. Each wheel has 10 different symbols, and if the wheels show the same symbol, the user gets a jackpot. The user inserts a coin to activate the system, then switches the joystick down to spin the physical reels. Each time after the user presses the joystick down, it stops each motor until each motor has stopped. Each motor self-adjusts to display a specific symbol to the user. If the user hits a jackpot, a specialized dispensing mechanism triggers a payout to reward the user."}]...
|
Title: Arduino Slot Machine by @GeorgeSun | Starda Title: Arduino Slot Machine by @GeorgeSun | Stardance
Devlogs:
Made an interactive slot machine with three wheels. Each wheel has 10 different symbols, and if the wheels show the same symbol, the user gets a jackpot. The user inserts a coin to activate the system, then switches the joystick down to spin the physical reels. Each time after the user presses the joystick down, it stops each motor until each motor has stopped. Each motor self-adjusts to display a specific symbol to the user. If the user hits a jackpot, a specialized dispensing mechanism triggers a payout to reward the user.
Here are some schematic and 3D models I had made of the slot machine before I started building it. I had modelled everything first to ensure building was a smooth process.
Ships:
I made an interactive, hardware-driven slot machine featuring three physical reels, automated coin detection, a joystick lever mechanism, and a custom payout dispenser. Getting the physical wheels of the slot machine to spin was the first challenging part. I originally planned to have two Arduinos, one to control the wheels and one to control the rest of the components. However, I am not very experienced with Arduino communication, and it didn’t end up going anywhere. Instead, I had to go for the easiest solution, which was to wire everything to one Arduino instead, which had its caveats, such as not having enough pins. Also, making sure that the step motors did not jam was a huge issue, as we had a 12V 5A power supply that was on the lower end to power these motors that perform much better on 24V. To fix this, I ended up just running them at a slower speed and acceleration. The part I am most proud of is the look of the slot machine. Even though I didn’t end up getting all of the 3d prints I needed, I compromised with cardboard, and the design of it still ended up looking pretty cool. I am also happy about the fact that all of the components work together as it goes from the different game states, completing the game loop.
I made an interactive, hardware-driven slot machine featuring three physical reels, automated coin detection, a joystick lever mechanism, and a custom payout dispenser. Getting the physical wheels of the slot machine to spin was the first challenging part. I originally planned to have two Arduinos, one to control the wheels and one to control the rest of the components. However, I am not very experienced with Arduino communication, and it didn’t end up going anywhere. Instead, I had to go for the easiest solution, which was to wire everything to one Arduino instead, which had its caveats, such as not having enough pins. Also, making sure that the step motors did not jam was a huge issue, as we had a 12V 5A power supply that was on the lower end to power these motors that perform much better on 24V. To fix this, I ended up just running them at a slower speed and acceleration. The part I am most proud of is the look of the slot machine. Even though I didn’t end up getting all of the 3d prints I needed, I compromised with cardboard, and the design of it still ended up looking pretty cool. I am also happy about the fact that all of the components work together as it goes from the different game states, completing the game loop....
|
1792835464.3458989
|
1792921864.3458989
|
|
29634
|
DumbFish by @jujharseehra | Stardance
|
jujharseehra
|
2
|
14.0
|
125
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-08T22:57:19Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Added a few more features to DumbFish, to ensure that it is ready! They are now also part of the newest release, feel free to try them out. Still only Mac exclusive though, but this is a goal for next years stardance challenge. Even Magnus gotta be worried by my progress.", "repo": "https://github.com/JujharSeehra/DumbFish", "demo": "https://github.com/JujharSeehra/DumbFish/releases/tag/v1.0.4"}, {"ship_num": 2, "ts": "2026-08-25T00:38:02Z", "hours": 13.0, "multiplier": 9.71, "payout": 125, "blessing": "neutral", "text": "Shipped DumbFish! While I may improve the bot further on in the future, I feel quite content where it currently is, and I wish to move onto other projects. Let me know if you have any feedback for me!", "repo": "https://github.com/JujharSeehra/DumbFish", "demo": "https://github.com/JujharSeehra/DumbFish/releases/tag/v1.0.4"}]...
|
[{"post_id": 59293, "ts": "202 [{"post_id": 59293, "ts": "2026-09-01T00:30:41Z", "hours": 1.0722, "text": "Made changes to DumbFish to make it easier for testing, as well as fixing a bug related to how the release worked. This will hopefully be my final work on DumbFish for now."}, {"post_id": 54031, "ts": "2026-08-24T19:41:20Z", "hours": 1.2878, "text": "I’ve finished my Chess Engine for now! I have made the code more efficient, and the engine was able to beat a Chess.com 1600 bot comfortably, probably putting it on a higher skill level than myself. In the future, I may revisit this project, but for now, I will be working on another project. I also named it DumbFish, as a parody of the famous Chess Engine Stockfish"}, {"post_id": 53918, "ts": "2026-08-24T16:58:52Z", "hours": 1.7072, "text": "Improved the performance of my Chess Project, but now the movement speed of the engine has significantly gotten worse. I will now need to start working on improved efficiency for the engine. However, it does look to be playing at a level similar to mine, if not slightly better. We will see in a bit if it has continued to improve."}, {"post_id": 47715, "ts": "2026-08-15T20:12:28Z", "hours": 2.6536, "text": "Finally built the first iteration of my Chess Engine. While still not being quite good at the game (Likely around 700-1000 elo) it is able to play chess reasonably and in fact, was able to checkmate my younger brother (9 years old). Now, I will be continuously improving this Chess Engine until it can beat me comfortably (1600 elo) and then we will see from there. The image below is the final position, with my brother as white, and the engine as black."}, {"post_id": 47182, "ts": "2026-08-14T21:55:24Z", "hours": 1.1506, "text": "Finished the evaluation function for my Chess Engine project! While this is still barely comparable to Chess evaluation on websites like Chess.com, it is actually working reasonably well now! My next step will be to actually make the engine, though this will definitely be the hardest part of the project."}, {"post_id": 46983, "ts": "2026-08-14T15:54:09Z", "hours": 1.7422, "text": "Hi Everyone! I finally finished the whole chess game, adding features such as Castling and En Passant. Next, I have started building a evaluation function, similar to those on chess websites, but wayyy worse. I hope to make it half decent before I move onto the final part of my project, the Search algorithm."}, {"post_id": 46596, "ts": "2026-08-13T22:53:47Z", "hours": 3.0064, "text": "Been working on my Chess Engine Project. Today, I finished the basic chessboard! It has everything from Promotion to checkmate and even Stalemate. However, my next step (Before I start building the chess engine) will be to add advanced movements, such as Castling and En Passant, and to optimize my code (So that my future chess engine moves at a reasonable speed)."}, {"post_id": 41003, "ts": "2026-08-04T21:47:03Z", "hours": 1.3444, "text": "Started working on My Chess Engine! I am still learning how to effectively use Pygame for the board, but I have completed my research on how to build chess engines. I shall soon obtain all of the required skills for building the chessboard, but until then, I can’t wait to learn how to use PyGame! Wanted to learn it for a long time, but never had a reason to."}]...
|
Title: DumbFish by @jujharseehra | Stardance
Devl Title: DumbFish by @jujharseehra | Stardance
Devlogs:
Started working on My Chess Engine! I am still learning how to effectively use Pygame for the board, but I have completed my research on how to build chess engines. I shall soon obtain all of the required skills for building the chessboard, but until then, I can’t wait to learn how to use PyGame! Wanted to learn it for a long time, but never had a reason to.
Been working on my Chess Engine Project. Today, I finished the basic chessboard! It has everything from Promotion to checkmate and even Stalemate. However, my next step (Before I start building the chess engine) will be to add advanced movements, such as Castling and En Passant, and to optimize my code (So that my future chess engine moves at a reasonable speed).
Hi Everyone! I finally finished the whole chess game, adding features such as Castling and En Passant. Next, I have started building a evaluation function, similar to those on chess websites, but wayyy worse. I hope to make it half decent before I move onto the final part of my project, the Search algorithm.
Finished the evaluation function for my Chess Engine project! While this is still barely comparable to Chess evaluation on websites like Chess.com, it is actually working reasonably well now! My next step will be to actually make the engine, though this will definitely be the hardest part of the project.
Finally built the first iteration of my Chess Engine. While still not being quite good at the game (Likely around 700-1000 elo) it is able to play chess reasonably and in fact, was able to checkmate my younger brother (9 years old). Now, I will be continuously improving this Chess Engine until it can beat me comfortably (1600 elo) and then we will see from there. The image below is the final position, with my brother as white, and the engine as black.
Improved the performance of my Chess Project, but now the movement speed of the engine has significantly gotten worse. I will now need to start working on improved efficiency for the engine. However, it does look to be playing at a level similar to mine, if not slightly better. We will see in a bit if it has continued to improve.
I’ve finished my Chess Engine for now! I have made the code more efficient, and the engine was able to beat a Chess.com 1600 bot comfortably, probably putting it on a higher skill level than myself. In the future, I may revisit this project, but for now, I will be working on another project. I also named it DumbFish, as a parody of the famous Chess Engine Stockfish
Made changes to DumbFish to make it easier for testing, as well as fixing a bug related to how the release worked. This will hopefully be my final work on DumbFish for now.
Ships:
Shipped DumbFish! While I may improve the bot further on in the future, I feel quite content where it currently is, and I wish to move onto other projects. Let me know if you have any feedback for me!
Added a few more features to DumbFish, to ensure that it is ready! They are now also part of the newest release, feel free to try them out. Still only Mac exclusive though, but this is a goal for next years stardance challenge. Even Magnus gotta be worried by my progress....
|
1792821017.6811676
|
1792907417.6811676
|
|
29734
|
Portfolio :) by @vedasm | Stardance
|
vedasm
|
2
|
4.0
|
8
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-04T07:13:50Z", "hours": 1.0, "multiplier": 10.2, "payout": 8, "blessing": "neutral", "text": "I made a portfolio webpage, a minimalist personal developer portfolio site to show who I am and what I build. Snappy start with bold typography to highlight my specialisations (Backend & AI/ML) Clean Tech Arsenal Grid to show my tech skills Dedicated contact area for networking. The hardest part was to get one web page to align perfectly. I’m very happy with the clean look, and the bold typography hierarchy. It felt so good to be able to take a page from a basic foundation and build it into a fully responsive, structured, multi-section layout that really represents my style as a computer science student!", "repo": "https://github.com/vedasm/vedasm.github.io", "demo": "https://vedasm.github.io/"}, {"ship_num": 2, "ts": "2026-07-04T05:58:54Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a portfolio webpage, a minimalist personal developer portfolio site to show who I am and what I build. Snappy start with bold typography to highlight my specialisations (Backend & AI/ML) Clean Tech Arsenal Grid to show my tech skills Dedicated contact area for networking. The hardest part was to get one web page to align perfectly. I’m very happy with the clean look, and the bold typography hierarchy. It felt so good to be able to take a page from a basic foundation and build it into a fully responsive, structured, multi-section layout that really represents my style as a computer science student!", "repo": "https://github.com/vedasm/vedasm.github.io", "demo": "https://vedasm.github.io/"}]...
|
[{"post_id": 22002, "ts": "202 [{"post_id": 22002, "ts": "2026-07-04T07:13:01Z", "hours": 0.755, "text": "New Project Section Added # New Project Section Added I grew my page and completely updated the visual look of the website. Project Showcase : Added a separate section to show the things I’ve built with nice project cards with clear tech stack badges like Python, Flask, Docker and JavaScript. Better Responsiveness : We’ve tweaked the mobile and desktop grid systems to provide a more fluid layout that scales to different screen sizes."}, {"post_id": 21962, "ts": "2026-07-04T05:30:54Z", "hours": 1.9336, "text": "Built a Minimalist Developer Portfolio Today I exapanded my page and changed the whole look of the webpage. Content: - Who am I : Created punchy intro with bold typography hierarchy (Veda S M) accompanied by inline sub-tags (backend, AI/ML) to quickly declare my specialization. Added primary action buttons linking to skills, contact info, and GitHub. Tech Arsenal Grid : Showcase my improtant skills Contact info : for people to find and connect with me!fix if there is any mistakes"}, {"post_id": 21411, "ts": "2026-07-03T10:43:59Z", "hours": 0.7819, "text": "Laying the Foundations I have started the development of Veda’s Web Quarter, which is my personal portfolio site. Since this project is very personal to me, I wanted to focus first on creating a bold, unique visual identity that represents who I am as a computer science student and developer."}]...
|
Title: Portfolio :) by @vedasm | Stardance
Devlog Title: Portfolio :) by @vedasm | Stardance
Devlogs:
Laying the Foundations I have started the development of Veda’s Web Quarter, which is my personal portfolio site. Since this project is very personal to me, I wanted to focus first on creating a bold, unique visual identity that represents who I am as a computer science student and developer.
Built a Minimalist Developer Portfolio Today I exapanded my page and changed the whole look of the webpage. Content: - Who am I : Created punchy intro with bold typography hierarchy (Veda S M) accompanied by inline sub-tags (backend, AI/ML) to quickly declare my specialization. Added primary action buttons linking to skills, contact info, and GitHub. Tech Arsenal Grid : Showcase my improtant skills Contact info : for people to find and connect with me!fix if there is any mistakes
New Project Section Added # New Project Section Added I grew my page and completely updated the visual look of the website. Project Showcase : Added a separate section to show the things I’ve built with nice project cards with clear tech stack badges like Python, Flask, Docker and JavaScript. Better Responsiveness : We’ve tweaked the mobile and desktop grid systems to provide a more fluid layout that scales to different screen sizes.
Ships:
I made a portfolio webpage, a minimalist personal developer portfolio site to show who I am and what I build. Snappy start with bold typography to highlight my specialisations (Backend & AI/ML) Clean Tech Arsenal Grid to show my tech skills Dedicated contact area for networking. The hardest part was to get one web page to align perfectly. I’m very happy with the clean look, and the bold typography hierarchy. It felt so good to be able to take a page from a basic foundation and build it into a fully responsive, structured, multi-section layout that really represents my style as a computer science student!
I made a portfolio webpage, a minimalist personal developer portfolio site to show who I am and what I build. Snappy start with bold typography to highlight my specialisations (Backend & AI/ML) Clean Tech Arsenal Grid to show my tech skills Dedicated contact area for networking. The hardest part was to get one web page to align perfectly. I’m very happy with the clean look, and the bold typography hierarchy. It felt so good to be able to take a page from a basic foundation and build it into a fully responsive, structured, multi-section layout that really represents my style as a computer science student!...
|
1792835557.78532
|
1792921957.78532
|
|
29750
|
Thintensors by @satvikhardat | Stardance
|
satvikhardat
|
2
|
106.0
|
1763
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-23T10:54:37Z", "hours": 74.0, "multiplier": 18.49, "payout": 1252, "blessing": "neutral", "text": "Its a runtime-aware LLM archive format built for fast, efficient inference, This ship basically integrates MoE model paths, that allows you to run models like gpt-oss-20B on speeds and quality faster and better than llama.cpp!! (at q4) its not just the storage format that allows for the improvements, its a combination of different selective layers being quantized with the better storage format, allowing to run inference with higher speed and quality than just simple q8,q4 etc quants. the storage format only gain is only like 10%, but combined with middle out fp8 quants, and even int4 for some performance profiles, it can reach better speeds than the other ways to run inference This does not beat TRT / TRT LM, it does allow for quicker inference, and a more portable solution because for TRT you need to compile the plan (one time) for a few mins before being able to run the model, and it has to be compiled on every machine you run the model on, thintensor allows you to directly have the .thin file and run it on any machine with similar results! and it takes just a few seconds compared to about 30 mins on trt and trt lm reddit post for this project- https://www.reddit.com/r/LocalLLM/comments/1uqr1o3/i_made_a_llm_storage_format_that_makes_llms_run/ independent tester’s view- https://github.com/random-unknown-username/Thintensor/issues/1 Let me know if u find any issues, tried a lot of other models here too, as u can see in the graphs :D let me know of any bugs on slack", "repo": "https://github.com/random-unknown-username/Thintensor", "demo": "https://pypi.org/project/thintensor/1.0.1/"}, {"ship_num": 2, "ts": "2026-07-08T11:29:10Z", "hours": 32.0, "multiplier": 18.95, "payout": 511, "blessing": "neutral", "text": "I made ThinTensor, a runtime-aware LLM archive and inference runtime. Instead of only storing tensor bytes, it stores tensor roles, memory pages, quant metadata, and execution hints so the runtime can choose faster kernels and precision paths. The hardest part was keeping speed gains honest with HF correctness checks. So far it reaches up to ~94 tok/s on SmolLM3-3B with full BF16 KV retention and high logit similarity. After being tested on multiple models, you can get a avg 2x performance increase on most LLM archs, all archs are still not implemented, ik but this is workable with qwen, gemma, some MoE models, and SmolLM and a most others, but it wont be as optimized for all the model types Follow the guide at https://github.com/random-unknown-username/Thintensor#fast-path-setting-up-on-a-new-laptop To install thintensor runtime and use this guide to get a sample qwen model up and running https://github.com/random-unknown-username/Thintensor#quickstart-downloading--running-a-sample-model-qwen-08b", "repo": "https://github.com/random-unknown-username/Thintensor", "demo": "https://pypi.org/project/thintensor/1.0.1/"}]...
|
[{"post_id": 52970, "ts": "202 [{"post_id": 52970, "ts": "2026-08-23T10:50:48Z", "hours": 0.4203, "text": "Fixed a few Dense path issues, because the MoE path somehow made the dense path completely usable, fixed a few small one line bugs i got to know from the last ship’s reviews, read to for ship 2!!"}, {"post_id": 47007, "ts": "2026-08-14T16:14:41Z", "hours": 7.4253, "text": "Hitting 100hrs and final ship Didnt get time to work on this idea, since quite the while. And it has js about reached the state i can probably get it to MoE arch works, dense models work, cpu/gpu streaming works well, context/kv cache is also dynamically quanted lm_head quants are also there now The motivation really died out because of this project not getting reviewed its been over a month, leaving this as is, tho its not perfect, but it js about has enough features that i wanted Here are the final results after a ton of benchmarking- Phi-4: ThinTensor 28.21 tok/s vs llama.cpp 17.50 tok/s — 1.61× faster (+61.2%). Quality: 0.999949 cosine vs 0.997281. OpenReasoning-Nemotron-14B: ThinTensor 23.79 tok/s vs llama.cpp 19.79 tok/s — 1.20× faster (+20.2%). Quality: 0.999533 vs 0.967140. Llama 3.2 11B: ThinTensor 41.02 tok/s vs llama.cpp 39.82 tok/s — 1.03× faster (+3.0%). Quality: 0.995095 vs 0.991938. Qwen3.5-9B: ThinTensor 43.28 tok/s vs llama.cpp 42.83 tok/s — 1.01× faster (+1.1%). Quality: 0.973334 vs 0.894908. GPT-OSS-20B: ThinTensor 50.34 tok/s vs llama.cpp 40.36 tok/s — 1.25× faster (+24.7%). Quality: 0.983299 vs 0.792350. *all are apples to apples btw Overall: ThinTensor beats llama.cpp Q4 throughput on 5/5 tested architectures , with a geometric-mean speedup of approximately 1.203× . Probably gonna take a break, and learn before comming back to this, after the ship-2 on stardance!"}, {"post_id": 36344, "ts": "2026-07-28T12:16:13Z", "hours": 6.2056, "text": "ThinTensor Improvements Universal semantic-IR runtime for mixed attention, dense and MoE architectures. Per-tensor precision, kernel and residency planning instead of layer-wide quantization. Production FP8, INT4, MXFP4, Q2 and Q1 quantizers with calibration-aware scoring. Hard ≥0.995 cosine certification with exact routing, greedy-token and KV checks. Qwen3.5 hybrid linear-attention, shared-expert and packed rank-3 MoE support. Durable grouped-INT4 expert sidecars with bounded-RAM, mmap-based construction. Fixed four-matrix Triton projection, cuda / cuda:0 , layer-zero and converter-role bugs. Improved fused kernels, KV caching, expert routing and decode hot paths. Strict cache identity across model, tokenizer, GPU, CUDA, kernels and calibration. Remaining goal: prove ≥30 tok/s on Qwen3.5-35B-A3B at certified ≥0.995 cosine. Getting way better speed on 27B dense models at a cosine that is also way better"}, {"post_id": 34506, "ts": "2026-07-25T08:53:57Z", "hours": 11.7969, "text": "I ammmm tierdd i tried a billionn things over the last 8 hours i just cant seem to understand why gemma4 doesnt want to workkkkk I dont have much to write in this devlog, other than, i am not gonna implement gemma arch for now"}, {"post_id": 33051, "ts": "2026-07-22T17:00:01Z", "hours": 1.0547, "text": "what I did to fix the numerical drift & get some speedups: The Root Cause of the Drift (The Cosine Fix): I discovered that in triton_kernels.py , the tl.dot_scaled call inside _mxfp_lowbit_selected_tensorcore_matvec_kernel (and the mxfp4 variant) had fast_math=True . The fast_math option drops critical precision bits during accumulator addition which was causing the MoE kernels to completely obliterate the trajectory. I disabled it globally using fast_math=False , and this instantly restored our cosine similarity to a perfect 1.000000 over the entire benchmark trajectory. The VRAM Bottleneck: When relying purely on MXFP4 experts, they required over 9.5 GB, breaking the 6.6 GiB budget and forcing the runtime to stream them via PCIe (which tanks performance down to ~5-10tok/s). The Q2 and Q1 low-bit expert decoding kernels actually achieve identical numerical accuracy to the baseline while aggressively packing the weights. The 97.87 tok/s Optimization: I configured bench.py and check_baseline_cosine.py to use: packed_expert_q1_layers=\"0:24\" : All 24 layers of MoE experts are now tightly packed into 1-bit Q1 structures, shrinking the expert memory footprint down to just 2.38 GB (from 9.52 GB). dense_int4_layers=\"all\" : Shrunk the non-expert dense projection weights (Q, K, V, O) into INT4, dropping their footprint from ~1.1 GB to ~0.27 GB. Since the entire model now takes 5.29 GiB (fitting entirely within the 6.6 GiB budget), all layers are pinned directly to VRAM. Because zero layers are streamed (any_streamed=False), the runtime successfully builds the fully fused cuda_graphs execution path, accelerating generation from a crawl to 97.87 tok/s ON gpt-oss-20b. I believe ill be moving to dense models just about now All these issues took SOOO many tests to find"}, {"post_id": 32869, "ts": "2026-07-22T09:43:09Z", "hours": 6.2739, "text": "What I’ve Done: Fixed KV Cache Indexing in Graph Mode: The previous cudaErrorStreamCaptureUnsupported error and out-of-bounds access were caused by assigning python integers dynamically during capture, and failing to respect block sizing. I modified the KV cache’s _in_graph_mode behavior to compute the tensor-based slot offset dynamically ((slot % block_size).view(1)) directly inside the graph capture. This worked successfully and fully restored the model’s coherent output without breaking graph logic. Experimented with MLP Block Sizing: I attempted to increase block_m and num_warps in the 1-bit Triton kernel (mxfp_lowbit_selected_swiglu) to reduce redundant memory loads of the intermediate x tensor. Unfortunately, register limits and memory layout meant it actually resulted in worse throughput, so I reverted those changes. Experimented with Attention Loop Early Exit: The single_token_gqa_attention_kernel is statically unrolled up to token_bucket (256). I tried adding a dynamic while loop to break early for short context sizes, but Triton’s compiler handles static for loops much better. reached around 65tk/s on gpt-oss-20b, constantly improvising MoE performance, next ima lock in for dense models but for now on MoE"}, {"post_id": 32489, "ts": "2026-07-21T18:25:21Z", "hours": 3.3508, "text": "Implemented a huge list of fixes Lazy page-ID tensor resolution after quantization Storage-alias-aware VRAM accounting Correct affine INT4 partial-group quantization KV sequence continuity checks Free-page geometry invalidation Canonical LM-head bias and final-softcap handling Certified shortlist logic with exact fallback Gemma-style attention scaling/softcap fixes Removal of hot-path CUDA scalar tensor allocations Device normalization for “cuda”, “cuda:N”, and torch.device Profile separation has been reconnected and different profiles select different kernels. Paged KV storage exists through SlabbedKVCache. A prior paged-attention slowdown was caused by GPU synchronization from .item() calls in SlabbedKVCache.append(), not by paged addressing itself. Logical page ownership is now tracked CPU-side to avoid those synchronizations. Paged attention has measured approximately: Materialized: 55.1 tok/s Paged: 57.5 tok/s on a relevant smaller models"}, {"post_id": 32108, "ts": "2026-07-21T01:27:17Z", "hours": 10.3133, "text": "Devlog-idk atp Well i said that i would stop working on this project last devlog, butttt, i just saw this https://github.com/random-unknown-username/Thintensor/issues/1 Someone tried thintensor on a 128gb unified ram DGX spark, ANDDDDD now i wanna make it good enough like so its a finished thing"}, {"post_id": 28811, "ts": "2026-07-15T09:45:15Z", "hours": 0.805, "text": "Final devlog: I would be moving from this project to other cool stuff i have in mind, the final benchmarks i got and everything, is pushed, had to do a lot of improvements to get bigger models running just as good as small ones I know there can be a lot of other optmizations, but maybe a few months later ill come back to this, but for now, its gonna stay as is."}, {"post_id": 28164, "ts": "2026-07-14T09:02:15Z", "hours": 13.7189, "text": "This devlog retains the apples-to-apples GPT-OSS control plus fresh Qwen3.5-9B, Llama 3.2 11B text-path, OpenReasoning-Nemotron-14B, and Phi-4 A LOT of optimizations were done to achive this results and 100s of benchmarks in different profiles and stuff, to get to this final table"}, {"post_id": 26560, "ts": "2026-07-11T13:36:08Z", "hours": 2.2911, "text": "ThinRuntime GPT-OSS-20B now achieves: 50.3445 tok/s median across three explicit 200-token runs. llama.cpp b9964 Q4_K_M: 40.3631 tok/s mean. ThinRuntime is 24.73% faster. Exact embedding and LM head; Q1/Q2 applies only to experts. Zero expert transfers during decode. Top-1 unchanged through step 4. Cosine: 0.987376 step 1, 0.983299 step 4. Accepted one-step configuration: 0.991415 cosine. llama.cpp Q4_K_M source-relative cosine: 0.792350."}, {"post_id": 26399, "ts": "2026-07-11T05:13:04Z", "hours": 7.2128, "text": "Worked over a LOT of stuff, like doing apples to apples comparisions of models such as LLama 11b vision instruct, So over time I fixed a lot of stuff added a new profile, that quants and quants and quants all layers till the model fits your VRAM, it doesnt care if the model is 20gb in weigths and you have a 8gb vram, it will quant and make it fit So testing this autofit profile on LLama 11b vision instruct, heres what i found it hit a cosine of 0.939758 and around 24tk/s on a 200 token test Similarly i tested ollama Llama 11b vision instruct with q4_k_m quant, it got a cosine close to 0.720495 i would say it would be more closer to 0.8 because this cosine was for only top 20 logprobes that ollama exposes This was done on 8gb vram rtx 5050 laptop 32gb ddr 5 ryzen 7 250 arch linux and the comparision is apples to apples because the thinruntime also quanted the model aggressively"}, {"post_id": 25725, "ts": "2026-07-10T05:02:15Z", "hours": 1.8908, "text": "Devlog: Resolving GPU Memory Corruption & CUDA Assertions on Wide Matvecs 1. The Symptoms When running inference/benchmarks on unquantized models (like Qwen3.5-9B) using the Triton backend on laptop GPUs (e.g., RTX 5050), the runtime encountered two asynchronous CUDA faults: • cudaErrorIllegalAddress (Illegal memory access) during cache eviction. • device-side assert triggered ( indexSelectSmallIndex assertion failed) during embedding vocabulary lookups. 2. The Root Cause (Resource Starvation & Memory Corruption) Wide Layer Geometries: In Qwen3.5, the projection matrices (Query, Key, Value) have a columns dimension of cols = 3584 . Triton Padded Tiling: Triton pads non-power-of-two shapes to the next power of two ( BLOCK_N = 4096 ). Static Tile Size: The default Triton config mapping uses BLOCK_M = 64 for wide matrices. This instructs Triton to compile a kernel loading a massive static tile size of 64 × 4096 = 262,144 elements. Register & Shared Memory Overflow: In FP32 accumulation, this tile requires 1 MB of memory per thread block. However, laptop GPU streaming multiprocessors (SMs) have a physical hardware limit of 96KB–100KB of shared memory/register files. The Failure Cascade: The compiler failed to allocate resources cleanly, resulting in severe register spills and memory read violations. Triton silently returned corrupted/NaN outputs. The subsequent argmax logit lookup generated a garbage token index (out of bounds), which triggered the PyTorch device-side assertion on the next step. 3. The Fix (Dynamic Chunked Looping) To prevent resource starvation, we modified Triton’s launching configuration in triton_kernels.py: Wide Column Routing: Added a check to detect if cols > 2048 . Looped Execution: Instead of loading the entire 4096 columns block statically, we force the kernel to execute _matvec_looped_kernel using a chunk size of BLOCK_N = 512 . Memory Optimization: The kernel loops through the columns sequentially in chunks of 512. This drops the tile size memory requirement per block to under 64 KB, which safely fits inside any laptop GPU’s physical SM limits. 4. Results I am currently running the final profiles ( max-performance and max-max-perf ). Let me check on the status!"}, {"post_id": 25311, "ts": "2026-07-09T15:03:13Z", "hours": 0.8025, "text": "Posted about this on reddit! https://www.reddit.com/r/LocalLLM/comments/1uqr1o3/i_made_a_llm_storage_format_that_makes_llms_run/ Got a lot of feedback, gonna try to work over it over the next few weeks"}, {"post_id": 24643, "ts": "2026-07-08T11:18:54Z", "hours": 0.3739, "text": "Final benchmarks Smaller models have lower cosine because there are like really small like 1B but, some archs are still not fully optimized to run at a good bit faster speed, ik, but i would want to do a ship before working on getting the speed up on those"}, {"post_id": 24238, "ts": "2026-07-07T17:44:41Z", "hours": 0.9025, "text": "Finished benchmarking a few more models Hitting really really good tk/s when compared to hf that even fails to load the models on my 8gb vram, so its a HUGE improvement for gpu poor ppl like me 😭 Reason a lot less improvement for many models is that, each model has a different structure and i havent been able to make a generalized algorithm that would work for all, so for now, we are working with just a simple implementation Benchmark Methodology and Metrics Calculation To ensure accurate, robust, and reproducible results, the benchmarking and correctness scoring flow is executed as follows: 1. Benchmark Execution Workflow Benchmarks are run in isolated, dedicated Python processes for each engine (ThinTensor vs. Hugging Face Transformers) to prevent memory leakage or process interference: ThinTensor Baseline : The model is loaded via the thin_runtime.py engine. Weight Fit Planning : The runtime runs _automatic_fit_plan to estimate weight size. If the model’s weights do not fit within the available GPU VRAM (accounting for system/display manager overhead), it dynamically configures streaming weight residency ( --weight-residency stream ) and streams layers/experts block-by-block from CPU/RAM to the GPU. If the weights fit, it uses fully resident weights ( --weight-residency all ). Timing : Prefills the prompt (default “Hello”), decodes a number of warmup tokens (default 10) to initialize caches and compile/warm up Triton kernels, and then times the next decode steps (default 200) using wall-clock time ( time.perf_counter() ). Transformers (Hugging Face) Baseline : The model is loaded via a dedicated script bench_hf_transformers_decode.py in BF16 precision. RAM/CPU Offloading : For larger models (e.g. Gemma-4-E2B, OLMoE), loading the model fully on memory-constrained GPUs (like the RTX 5050 Laptop GPU with 7.57 GiB VRAM) causes CUDA OOM. To prevent OOM, RAM offloading is enabled via device_map=\"auto\" . Weights that exceed VRAM capacity are kept in CPU system RAM and loaded/swapped as needed. Timing : Like ThinTensor, it pre-runs a prompt prefill, decodes warmup tokens (default 10), and then times steps (default 200) decode steps. The decode loop avoids GPU-to-CPU synchronization (e.g. calling .item() inside the timed loop) to measure pure GPU decoding speed. 2. Metrics & Scores Calculation Thin/HF Peak GiB (Peak GPU Memory) : Tracks peak allocated VRAM in GiB using torch.cuda.max_memory_allocated() . This measures active tensors allocated by PyTorch’s allocator during the decode phase (excluding unallocated cache reserve or general display server memory). Min Cosine (Cosine Similarity) : In compare_hf_thin_logits.py , the logits of the final linear projection layer are collected for both models. Cosine similarity is calculated for the target token index at each step. The minimum cosine similarity found across all decode steps (e.g., step 1 and step 10) and prefill lengths (e.g., 1 and 128) is reported. Top-1 Match : A boolean check indicating whether the token ID with the highest probability (highest logit value) is identical between ThinTensor and HF at all decode steps. Top-5 Set : A boolean check indicating whether the set of top-5 highest-probability token IDs is identical between the two models at all steps (ignoring their internal sorted order). Top-5 Order : A boolean check indicating whether the exact sorted order of the top-5 token IDs matches between ThinTensor and HF at all steps. KV Retention : Specifies the KV cache precision format (e.g. full BF16 )."}, {"post_id": 24052, "ts": "2026-07-07T10:55:07Z", "hours": 5.2325, "text": "Dev Log #4 — 91–96 tok/s with Selective MXFP4 This was the first ThinTensor run that felt genuinely fast. On SmolLM3-3B, the selective MXFP4 gate/up profile reached around: ~91–96 tok/s and on the strong tested record it still preserved: cosine_similarity: 0.9994624257087708 top1_same: true top5_overlap: 0.8 generated_token_match_rate: 0.875 KV retention: full BF16 That cosine is extremely close to the HF BF16 reference: 1.0 - 0.9994624257087708 = 0.0005375742912292 So the run was only about 0.054% away from perfect cosine on that tested checkpoint. Why this was not just normal quantization The profile was selective: MXFP4 gate/up layers: 0:24 MXFP4 row postscale: enabled LM head: FP8 guarded path KV cache: full BF16 attention path: causal KV QKV/O/down: not blindly pushed into MXFP4 A full MXFP4 sweep over QKV, O, down, and gate/up was fast, but it destroyed the logits. That proved the obvious thing: fewer bytes alone is not enough. ThinTensor’s win comes from being role-aware. The runtime knows what each tensor does: Q / K / V O projection gate projection up projection down projection norm embedding LM head KV cache That means the runtime can apply aggressive precision only to the parts that tolerate it. For this result, the safe target was the MLP gate/up path. Why gate/up was the right target Single-token decoding is mostly a weight-read problem. Tthe goal became: reduce gate/up bytes keep attention stable keep KV exact keep LM head guarded preserve token ranking That is exactly what the selective MXFP4 profile does. It uses MXFP4 on the gate/up projections for layers 0:24 , but it does not blindly lower every sensitive path. Where Blackwell helps The test GPU is an RTX 5050 laptop GPU, which is Blackwell. That matters because Blackwell has native low-precision paths for FP4/MXFP4-style execution. ThinTensor uses this through Triton kernels that treat MXFP4 as an execution format, not just a smaller storage format. The idea is: store/read fewer bytes use block scales multiply against BF16 activations accumulate safely then apply row postscale The goal is to make each token cheaper to decode while keeping the output distribution close to HF BF16. The code side The relevant code is built around these ideas: 1. Honest quantization descriptors The QuantizationDescriptor describes the source format: method storage_dtype bits group_size scale_dtype zero_point modules_to_not_convert source_config For example: INT4 != FP4 Q8 != FP8 MXFP4 != generic Q4 The precision_ladder() function makes that explicit. It lists safe choices, opt-in choices, and lossy choices. So instead of silently lowering precision, the runtime can say: preserve native format fallback to BF16 or require explicit validation before requantization 2. Execution planning plan_quantization() decides what should happen at runtime. It can choose: preserve source storage use native kernel dequantize to BF16 or reject unsupported requantization The important flag is this: exact_storage_preserved If this is true, the runtime is using the source encoding directly. Whats next I would have to implement all mainstream model archs manually because all are diff, and like right now you can see, there are a lot of models that are heavily un-optimized Also im messaging stardance team on slack these devlogs too smol for me"}, {"post_id": 22313, "ts": "2026-07-04T18:31:05Z", "hours": 0.8797, "text": "Just hit 91tk/s with “cosine_similarity”: 0.9994624257087708 its actually crazy its like 5x faster the hf full devlog comming soon! ITS LIKE 0.054% away from perfect!!! The selective MXFP4 gate/up profile reached ~96 tok/s while preserving top-1 on the tested SmolLM3-3B through my thintensor runtimeeeee Full DevLogs gonna be crazy"}, {"post_id": 22113, "ts": "2026-07-04T12:07:02Z", "hours": 0.4494, "text": "Initial benchmarks based on some testing on a 3B model Why response similarity? Because we are making a storage format not “just” a runtime, so we need to ensure the model we are optimizing using thintensor runtime it HAS to be replying with the same responses like the original model! So with casual Kv implemented these are the benchmarks i gathered, if you wanna learn what quality fp8 is read my last devlog :D PS- the vram usage on our ThinTensor quality FP8 is just 500 mb more than the q8 even though there is a HUGE difference in the response similarity"}, {"post_id": 22063, "ts": "2026-07-04T09:46:10Z", "hours": 7.5944, "text": "Dev Log #3 — SmolLM3-3B Results SmolLM3-3B was the first real test of ThinTensor as an inference runtime. The baseline was Hugging Face BF16 on my RTX 5050 laptop GPU: HF BF16: ~17.8 tok/s ThinTensor BF16 reached: ThinTensor BF16: ~32–33 tok/s with cosine around 0.999 , meaning the logits stayed extremely close to the original SafeTensors/HF path. That matters because a storage/runtime format should not make the model noticeably worse. Then came the quality FP8 profile: ThinTensor quality FP8: ~46–48 tok/s This was not “quantize everything.” The profile was selective: gate/up projections: FP8 middle down projections: FP8 attention path: BF16 O-proj: BF16 LM head: BF16 KV cache: BF16 ThinTensor can do this because the .thin manifest and execution tape know tensor roles: Q, K, V, O, gate, up, down, norm, embedding, LM head, etc. The runtime can then lower precision only where the model tolerates it, while keeping sensitive paths in BF16. The kernel side reflects this. Attention uses single-token GQA and maps each query head to the right KV head: head = tl . program_id ( 0 ) kv_head = head // ( heads // kv_heads ) scores = tl . sum ( key * q [ None , :], axis = 1 ) * scale The FP8 MLP path uses scaled matvecs: w = tl . load ( weight + offs_m [:, None ] * stride_wm + offs_n [ None , :]) xv = tl . load ( x + offs_n ). to ( tl . float32 ) scale = tl . load ( scales + offs_m ). to ( tl . float32 ) acc = tl . sum ( w * xv [ None , :], axis = 1 ) * scale In one full-vocab centered-logit comparison: GGUF Q8_0 min cosine: 0.952666 ThinTensor BF16 min cosine: 0.999596 ThinTensor quality FP8 min cosine: 0.995366 So ThinTensor quality FP8 stayed much closer to BF16 than the measured Q8 path, while staying in the same speed class. Final speed table: HF BF16: ~17.8 tok/s ThinTensor BF16: ~32–33 tok/s ThinTensor quality FP8: ~46–48 tok/s Ollama / GGUF Q8_0: ~44.1 tok/s Headline: ThinTensor BF16 was ~1.8x faster than HF BF16. ThinTensor quality FP8 was ~2.6x faster than HF BF16. ThinTensor quality FP8 was faster than the measured Q8 baseline while preserving much better logit fidelity. This is where ThinTensor stopped being just an archive experiment and started looking like a real inference runtime :D"}, {"post_id": 20838, "ts": "2026-07-02T15:28:02Z", "hours": 1.5392, "text": "Js got to know that devlogs longer than 10hrs are stripped to 10 😭, i cant have more than 4k char so bear with me theres a LOT to tell that im not able to fit, but ill try my best anyways Dev Log #2 — Converting SafeTensors Into .thin (had to cut so much explaination bcs i HATE THE CHAR LIMIT, id add them in another devlog) The main conversion flow is: pub fn convert_hf ( options : ConvertHfOptions ) -> Result < ConvertHfResult > { let config : Value = serde_json :: from_reader ( File :: open ( options .hf_dir .join ( \"config.json\" )) ? ) ? ; let safetensor_paths = collect_safetensors ( & options .hf_dir ) ? ; let tensors = collect_tensors ( & safetensor_paths ) ? ; let layers = required_u32 ( & config , \"num_hidden_layers\" ) ? ; let model = build_model_spec ( & config , layers , & tensors , & options , & mut warnings ) ? ; let pages = build_pages ( & tensors , & config ) ? ; let execution_tape = build_execution_tape ( layers , & tensors , & mut warnings ) ? ; let manifest = Manifest { format : FORMAT_NAME .to_string (), version : FORMAT_VERSION , model , execution_tape , pages , memory_plan : build_memory_plan ( & config , & tensors ), }; write_archive_pages ( & options .out_path , & manifest , & archive_pages ) ? ; let archive = Archive :: open ( & options .out_path ) ? ; verify_archive ( & archive ) ? ; Ok ( ConvertHfResult { archive , warnings }) } The converter memory-maps each SafeTensors file read-only: let mmap = unsafe { Mmap :: map ( & file ) ? }; let safetensors = SafeTensors :: deserialize ( & mmap ) ? ; let base = mmap .as_ptr () as usize ; Then every tensor becomes a page candidate. The converter records where the tensor bytes live inside the mapped file: let data = tensor .data (); let offset = ( data .as_ptr () as usize ) .checked_sub ( base ) ? ; and stores: struct TensorPage { id : String , path : PathBuf , offset : u64 , size : u64 , checksum : [ u8 ; 32 ], dtype : String , shape : Vec < u64 > , } This avoids rebuilding every tensor in memory. The archive can later copy the original byte range directly: ArchivePageSource :: FileRange { path : tensor .path .clone (), offset : tensor .offset , } After collecting raw tensor data, the converter builds the model spec. It extracts or infers things like hidden size, layer count, attention heads, KV heads, head dimension, RoPE settings, vocab size, activation type, quantization config, and required runtime operators. One important field is attention type: let attention_kind = if kv_heads == heads { \"mha\" } else if kv_heads == 1 { \"mqa\" } else { \"gqa\" }; This matters because many modern decoder models use grouped-query attention. If the runtime only sees shapes but does not understand Q heads vs KV heads, causal attention can be wrong while still looking structurally valid. The converter also records required operators: let mut required_operators = vec! [ \"embedding\" .to_string (), \"rms_norm\" .to_string (), \"qkv_projection\" .to_string (), \"rope\" .to_string (), format! ( \"{attention_kind}_attention\" ), \"o_projection\" .to_string (), \"lm_head\" .to_string (), ]; For dense MLPs it adds: gated_activation down_projection For MoE models it records router and expert stages instead. the rest would be explained in another devlog, i hate the char limit (had to re-write like 10 times btw)"}, {"post_id": 20663, "ts": "2026-07-02T10:03:23Z", "hours": 14.5956, "text": "Dev Log #1 — Why ThinTensor Exists SafeTensors is already a very good format for what it was designed to do: store tensors safely. It keeps tensor metadata simple. For normal model distribution, that is enough. The problem starts when the tensor file becomes the runtime boundary. That is enough if another framework already knows the model class and execution graph. But for an inference runtime, especially one focused on single-token decode, those fields are not enough. The runtime needs to know what each tensor means . The .thin Format The first .thin archive is intentionally simple: .thin = fixed header + JSON manifest + page table + raw page data The Rust implementation defines the archive identity and header size directly: pub const MAGIC: &[u8; 8] = b\"THINv0\\0\\0\"; pub const HEADER_LEN: u32 = 88; The header stores the physical structure of the archive: pub struct Header { pub header_len: u32, pub version: u32, pub manifest_off: u64, pub manifest_len: u64, pub page_table_off: u64, pub page_count: u64, pub data_off: u64, pub archive_hash: [u8; 32], } This lets the loader open the file without guessing. It reads the header, jumps to the manifest, then reads the page table, then maps the raw page data. The manifest is JSON because the early format needed to stay inspectable. It contains the model-level information needed to reconstruct decode: architecture hidden size number of layers attention heads KV heads head dimension vocabulary size RoPE settings tensor names tensor shapes tensor dtypes tensor roles quantization metadata runtime/backend hints validation metadata The page table connects the manifest to real bytes inside the archive: pub struct PageTableRecord { pub page_id: String, pub offset: u64, pub stored_size: u64, pub raw_size: u64, pub flags: u32, pub checksum: [u8; 32], } A page record gives the runtime a verified byte range, not just a tensor name. This matters because pages can later be scheduled, streamed, cached, kept on CPU, moved to GPU, or assigned different execution policies. Packing and Verification The packer does not blindly write files into an archive. It validates the manifest first: let report = validate_manifest(&manifest); if !report.is_ok() { bail!(\"manifest invalid:\\n{}\", report.errors.join(\"\\n\")); } Then every page declared in the manifest must exist and match its declared size: if bytes.len() as u64 != page.size { bail!(\"page declared size does not match file size\"); } It also verifies the page checksum: let checksum = blake3::hash(&bytes); if checksum.as_bytes().as_slice() != expected.as_slice() { bail!(\"page checksum does not match manifest\"); } Only after validation does the writer emit the archive: write_header(&mut file, &header)?; file.write_all(&manifest_bytes)?; for record in &records { write_page_table_record(&mut file, record)?; } for page in pages { write_page_source(&mut file, page)?; } So the final file is structured as: [ header ] [ manifest JSON ] [ page table records ] [ raw page blobs ]"}]...
|
Title: Thintensors by @satvikhardat | Stardance
D Title: Thintensors by @satvikhardat | Stardance
Devlogs:
Dev Log #1 — Why ThinTensor Exists SafeTensors is already a very good format for what it was designed to do: store tensors safely. It keeps tensor metadata simple. For normal model distribution, that is enough. The problem starts when the tensor file becomes the runtime boundary. That is enough if another framework already knows the model class and execution graph. But for an inference runtime, especially one focused on single-token decode, those fields are not enough. The runtime needs to know what each tensor means . The .thin Format The first .thin archive is intentionally simple: .thin = fixed header + JSON manifest + page table + raw page data The Rust implementation defines the archive identity and header size directly: pub const MAGIC: &[u8; 8] = b"THINv0\0\0"; pub const HEADER_LEN: u32 = 88; The header stores the physical structure of the archive: pub struct Header { pub header_len: u32, pub version: u32, pub manifest_off: u64, pub manifest_len: u64, pub page_table_off: u64, pub page_count: u64, pub data_off: u64, pub archive_hash: [u8; 32], } This lets the loader open the file without guessing. It reads the header, jumps to the manifest, then reads the page table, then maps the raw page data. The manifest is JSON because the early format needed to stay inspectable. It contains the model-level information needed to reconstruct decode: architecture hidden size number of layers attention heads KV heads head dimension vocabulary size RoPE settings tensor names tensor shapes tensor dtypes tensor roles quantization metadata runtime/backend hints validation metadata The page table connects the manifest to real bytes inside the archive: pub struct PageTableRecord { pub page_id: String, pub offset: u64, pub stored_size: u64, pub raw_size: u64, pub flags: u32, pub checksum: [u8; 32], } A page record gives the runtime a verified byte range, not just a tensor name. This matters because pages can later be scheduled, streamed, cached, kept on CPU, moved to GPU, or assigned different execution policies. Packing and Verification The packer does not blindly write files into an archive. It validates the manifest first: let report = validate_manifest(&manifest); if !report.is_ok() { bail!("manifest invalid:\n{}", report.errors.join("\n")); } Then every page declared in the manifest must exist and match its declared size: if bytes.len() as u64 != page.size { bail!("page declared size does not match file size"); } It also verifies the page checksum: let checksum = blake3::hash(&bytes); if checksum.as_bytes().as_slice() != expected.as_slice() { bail!("page checksum does not match manifest"); } Only after validation does the writer emit the archive: write_header(&mut file, &header)?; file.write_all(&manifest_bytes)?; for record in &records { write_page_table_record(&mut file, record)?; } for page in pages { write_page_source(&mut file, page)?; } So the final file is structured as: [ header ] [ manifest JSON ] [ page table records ] [ raw page blobs ]
Js got to know that devlogs longer than 10hrs are stripped to 10 😭, i cant have more than 4k char so bear with me theres a LOT to tell that im not able to fit, but ill try my best anyways Dev Log #2 — Converting SafeTensors Into .thin (had to cut so much explaination bcs i HATE THE CHAR LIMIT, id add them in another devlog) The main conversion flow is: pub fn convert_hf ( options : ConvertHfOptions ) -> Result < ConvertHfResult > { let config : Value = serde_json :: from_reader ( File :: open ( options .hf_dir .join ( "config.json" )) ? ) ? ; let safetensor_paths = collect_safetensors ( & options .hf_dir ) ? ; let tensors = collect_tensors ( & safetensor_paths ) ? ; let layers = required_u32 ( & config , "num_hidden_layers" ) ? ; let model = build_model_spec ( & config , layers , & tensors , & options , & mut warnings ) ? ; let pages = build_pages ( & tensors , & config ) ? ; let execution_tape = build_execution_tape ( layers , & tensors , & mut warnings ) ? ; let manifest = Manifest { format : FORMAT_NAME .to_string (), version : FORMAT_VERSION , model , execution_tape , pages , memory_plan : build_memory_plan ( & config , & tensors ), }; write_archive_pages ( & options .out_path , & manifest , & archive_pages ) ? ; let archive = Archive :: open ( & options .out_path ) ? ; verify_archive ( & archive ) ? ; Ok ( ConvertHfResult { archive , warnings }) } The converter memory-maps each SafeTensors file read-only: let mmap = unsafe { Mmap :: map ( & file ) ? }; let safetensors = SafeTensors :: deserialize ( & mmap ) ? ; let base = mmap .as_ptr () as usize ; Then every tensor becomes a page candidate. The converter records where the tensor bytes live inside the mapped file: let data = tensor .data (); let offset = ( data .as_ptr () as usize ) .checked_sub ( base ) ? ; and stores: struct TensorPage { id : String , path : PathBuf , offset : u64 , size : u64 , checksum : [ u8 ; 32 ], dtype : String , shape : Vec < u64 > , } This avoids rebuilding every tensor in memory. The archive can later copy the original byte range directly: ArchivePageSource :: FileRange { path : tensor .path .clone (), offset : tensor .offset , } After collecting raw tensor data, the converter builds the model spec. It extracts or infers things like hidden size, layer count, attention heads, KV heads, head dimension, RoPE settings, vocab size, activation type, quantization config, and required runtime operators. One important field is attention type: let attention_kind = if kv_heads == heads { "mha" } else if kv_heads == 1 { "mqa" } else { "gqa" }; This matters because many modern decoder models use grouped-query attention. If the runtime only sees shapes but does not understand Q heads vs KV heads, causal attention can be wrong while still looking structurally valid. The converter also records required operators: let mut required_operators = vec! [ "embedding" .to_string (), "rms_norm" .to_string (), "qkv_projection" .to_string (), "rope" .to_string (), format! ( "{attention_kind}_attention" ), "o_projection" .to_string (), "lm_head" .to_string (), ]; For dense MLPs it adds: gated_activation down_projection For MoE models it records router and expert stages instead. the rest would be explained in another devlog, i hate the char limit (had to re-write like 10 times btw)
Dev Log #3 — SmolLM3-3B Results SmolLM3-3B was the first real test of ThinTensor as an inference runtime. The baseline was Hugging Face BF16 on my RTX 5050 laptop GPU: HF BF16: ~17.8 tok/s ThinTensor BF16 reached: ThinTensor BF16: ~32–33 tok/s with cosine around 0.999 , meaning the logits stayed extremely close to the original SafeTensors/HF path. That matters because a storage/runtime format should not make the model noticeably worse. Then came the quality FP8 profile: ThinTensor quality FP8: ~46–48 tok/s This was not “quantize everything.” The profile was selective: gate/up projections: FP8 middle down projections: FP8 attention path: BF16 O-proj: BF16 LM head: BF16 KV cache: BF16 ThinTensor can do this because the .thin manifest and execution tape know tensor roles: Q, K, V, O, gate, up, down, norm, embedding, LM head, etc. The runtime can then lower precision only where the model tolerates it, while keeping sensitive paths in BF16. The kernel side reflects this. Attention uses single-token GQA and maps each query head to the right KV head: head = tl . program_id ( 0 ) kv_head = head // ( heads // kv_heads ) scores = tl . sum ( key * q [ None , :], axis = 1 ) * scale The FP8 MLP path uses scaled matvecs: w = tl . load ( weight + offs_m [:, None ] * stride_wm + offs_n [ None , :]) xv = tl . load ( x + offs_n ). to ( tl . float32 ) scale = tl . load ( scales + offs_m ). to ( tl . float32 ) acc = tl . sum ( w * xv [ None , :], axis = 1 ) * scale In one full-vocab centered-logit comparison: GGUF Q8_0 min cosine: 0.952666 ThinTensor BF16 min cosine: 0.999596 ThinTensor quality FP8 min cosine: 0.995366 So ThinTensor quality FP8 stayed much closer to BF16 than the measured Q8 path, while staying in the same speed class. Final speed table: HF BF16: ~17.8 tok/s ThinTensor BF16: ~32–33 tok/s ThinTensor quality FP8: ~46–48 tok/s Ollama / GGUF Q8_0: ~44.1 tok/s Headline: ThinTensor BF16 was ~1.8x faster than HF BF16. ThinTensor quality FP8 was ~2.6x faster than HF BF16. ThinTensor quality FP8 was faster than the measured Q8 baseline while preserving much better logit fidelity. This is where ThinTensor stopped being just an archive experiment and started looking like a real inference runtime :D
Initial benchmarks based on some testing on a 3B model Why response similarity? Because we are making a storage format not “just” a runtime, so we need to ensure the model we are optimizing using thintensor runtime it HAS to be replying with the same responses like the original model! So with casual Kv implemented these are the benchmarks i gathered, if you wanna learn what quality fp8 is read my last devlog :D PS- the vram usage on our ThinTensor quality FP8 is just 500 mb more than the q8 even though there is a HUGE difference in the response similarity
Just hit 91tk/s with “cosine_similarity”: 0.9994624257087708 its actually crazy its like 5x faster the hf full devlog comming soon! ITS LIKE 0.054% away from perfect!!! The selective MXFP4 gate/up profile reached ~96 tok/s while preserving top-1 on the tested SmolLM3-3B through my thintensor runtimeeeee Full DevLogs gonna be crazy
Dev Log #4 — 91–96 tok/s with Selective MXFP4 This was the first ThinTensor run that felt genuinely fast. On SmolLM3-3B, the selective MXFP4 gate/up profile reached around: ~91–96 tok/s and on the strong tested record it still preserved: cosine_similarity: 0.9994624257087708 top1_same: true top5_overlap: 0.8 generated_token_match_rate: 0.875 KV retention: full BF16 That cosine is extremely close to the HF BF16 reference: 1.0 - 0.9994624257087708 = 0.0005375742912292 So the run was only about 0.054% away from perfect cosine on that tested checkpoint. Why this was not just normal quantization The profile was selective: MXFP4 gate/up layers: 0:24 MXFP4 row postscale: enabled LM head: FP8 guarded path KV cache: full BF16 attention path: causal KV QKV/O/down: not blindly pushed into MXFP4 A full MXFP4 sweep over QKV, O, down, and gate/up was fast, but it destroyed the logits. That proved the obvious thing: fewer bytes alone is not enough. ThinTensor’s win comes from being role-aware. The runtime knows what each tensor does: Q / K / V O projection gate projection up projection down projection norm embedding LM head KV cache That means the runtime can apply aggressive precision only to the parts that tolerate it. For this result, the safe target was the MLP gate/up path. Why gate/up was the right target Single-token decoding is mostly a weight-read problem. Tthe goal became: reduce gate/up bytes keep attention stable keep KV exact keep LM head guarded preserve token ranking That is exactly what the selective MXFP4 profile does. It uses MXFP4 on the gate/up projections for layers 0:24 , but it does not blindly lower every sensitive path. Where Blackwell helps The test GPU is an RTX 5050 laptop GPU, which is Blackwell. That matters because Blackwell has native low-precision paths for FP4/MXFP4-style execution. ThinTensor uses this through Triton kernels that treat MXFP4 as an execution format, not just a smaller storage format. The idea is: store/read fewer bytes use block scales multiply against BF16 activations accumulate safely then apply row postscale The goal is to make each token cheaper to decode while keeping the output distribution close to HF BF16. The code side The relevant code is built around these ideas: 1. Honest quantization descriptors The QuantizationDescriptor describes the source format: method storage_dtype bits group_size scale_dtype zero_point modules_to_not_convert source_config For example: INT4 != FP4 Q8 != FP8 MXFP4 != generic Q4 The precision_ladder() function makes that explicit. It lists safe choices, opt-in choices, and lossy choices. So instead of silently lowering precision, the runtime can say: preserve native format fallback to BF16 or require explicit validation before requantization 2. Execution planning plan_quantization() decides what should happen at runtime. It can choose: preserve source storage use native kernel dequantize to BF16 or reject unsupported requantization The important flag is this: exact_storage_preserved If this is true, the runtime is using the source encoding directly. Whats next I would have to implement all mainstream model archs manually because all are diff, and like right now you can see, there are a lot of models that are heavily un-optimized Also im messaging stardance team on slack these devlogs too smol for me
Finished benchmarking a few more models Hitting really really good tk/s when compared to hf that even fails to load the models on my 8gb vram, so its a HUGE improvement for gpu poor ppl like me 😭 Reason a lot less improvement for many models is that, each model has a different structure and i havent been able to make a generalized algorithm that would work for all, so for now, we are working with just a simple implementation Benchmark Methodology and Metrics Calculation To ensure accurate, robust, and reproducible results, the benchmarking and correctness scoring flow is executed as follows: 1. Benchmark Execution Workflow Benchmarks are run in isolated, dedicated Python processes for each engine (ThinTensor vs. Hugging Face Transformers) to prevent memory leakage or process interference: ThinTensor Baseline : The model is loaded via the thin_runtime.py engine. Weight Fit Planning : The runtime runs _automatic_fit_plan to estimate weight size. If the model’s weights do not fit within the available GPU VRAM (accounting for system/display manager overhead), it dynamically configures streaming weight residency ( --weight-residency stream ) and streams layers/experts block-by-block from CPU/RAM to the GPU. If the weights fit, it uses fully resident weights ( --weight-residency all ). Timing : Prefills the prompt (default “Hello”), decodes a number of warmup tokens (default 10) to initialize caches and compile/warm up Triton kernels, and then times the next decode steps (default 200) using wall-clock time ( time.perf_counter() ). Transformers (Hugging Face) Baseline : The model is loaded via a dedicated script bench_hf_transformers_decode.py in BF16 precision. RAM/CPU Offloading : For larger models (e.g. Gemma-4-E2B, OLMoE), loading the model fully on memory-constrained GPUs (like the RTX 5050 Laptop GPU with 7.57 GiB VRAM) causes CUDA OOM. To prevent OOM, RAM offloading is enabled via device_map="auto" . Weights that exceed VRAM capacity are kept in CPU system RAM and loaded/swapped as needed. Timing : Like ThinTensor, it pre-runs a prompt prefill, decodes warmup tokens (default 10), and then times steps (default 200) decode steps. The decode loop avoids GPU-to-CPU synchronization (e.g. calling .item() inside the timed loop) to measure pure GPU decoding speed. 2. Metrics & Scores Calculation Thin/HF Peak GiB (Peak GPU Memory) : Tracks peak allocated VRAM in GiB using torch.cuda.max_memory_allocated() . This measures active tensors allocated by PyTorch’s allocator during the decode phase (excluding unallocated cache reserve or general display server memory). Min Cosine (Cosine Similarity) : In compare_hf_thin_logits.py , the logits of the final linear projection layer are collected for both models. Cosine similarity is calculated for the target token index at each step. The minimum cosine similarity found across all decode steps (e.g., step 1 and step 10) and prefill lengths (e.g., 1 and 128) is reported. Top-1 Match : A boolean check indicating whether the token ID with the highest probability (highest logit value) is identical between ThinTensor and HF at all decode steps. Top-5 Set : A boolean check indicating whether the set of top-5 highest-probability token IDs is identical between the two models at all steps (ignoring their internal sorted order). Top-5 Order : A boolean check indicating whether the exact sorted order of the top-5 token IDs matches between ThinTensor and HF at all steps. KV Retention : Specifies the KV cache precision format (e.g. full BF16 ).
Final benchmarks Smaller models have lower cosine because there are like really small like 1B but, some archs are still not fully optimized to run at a good bit faster speed, ik, but i would want to do a ship before working on getting the speed up on those
Posted about this on reddit! https://www.reddit.com/r/LocalLLM/comments/1uqr1o3/i_made_a_llm_storage_format_that_makes_llms_run/ Got a lot of feedback, gonna try to work over it over the next few weeks
Devlog: Resolving GPU Memory Corruption & CUDA Assertions on Wide Matvecs 1. The Symptoms When running inference/benchmarks on unquantized models (like Qwen3.5-9B) using the Triton backend on laptop GPUs (e.g., RTX 5050), the runtime encountered two asynchronous CUDA faults: • cudaErrorIllegalAddress (Illegal memory access) during cache eviction. • device-side assert triggered ( indexSelectSmallIndex assertion failed) during embedding vocabulary lookups. 2. The Root Cause (Resource Starvation & Memory Corruption) Wide Layer Geometries: In Qwen3.5, the projection matrices (Query, Key, Value) have a columns dimension of cols = 3584 . Triton Padded Tiling: Triton pads non-power-of-two shapes to the next power of two ( BLOCK_N = 4096 ). Static Tile Size: The default Triton config mapping uses BLOCK_M = 64 for wide matrices. This instructs Triton to compile a kernel loading a massive static tile size of 64 × 4096 = 262,144 elements. Register & Shared Memory Overflow: In FP32 accumulation, this tile requires 1 MB of memory per thread block. However, laptop GPU streaming multiprocessors (SMs) have a physical hardware limit of 96KB–100KB of shared memory/register files. The Failure Cascade: The compiler failed to allocate resources cleanly, resulting in severe register spills and memory read violations. Triton silently returned corrupted/NaN outputs. The subsequent argmax logit lookup generated a garbage token index (out of bounds), which triggered the PyTorch device-side assertion on the next step. 3. The Fix (Dynamic Chunked Looping) To prevent resource starvation, we modified Triton’s launching configuration in triton_kernels.py: Wide Column Routing: Added a check to detect if cols > 2048 . Looped Execution: Instead of loading the entire 4096 columns block statically, we force the kernel to execute _matvec_looped_kernel using a chunk size of BLOCK_N = 512 . Memory Optimization: The kernel loops through the columns sequentially in chunks of 512. This drops the tile size memory requirement per block to under 64 KB, which safely fits inside any laptop GPU’s physical SM limits. 4. Results I am currently running the final profiles ( max-performance and max-max-perf ). Let me check on the status!
Worked over a LOT of stuff, like doing apples to apples comparisions of models such as LLama 11b vision instruct, So over time I fixed a lot of stuff added a new profile, that quants and quants and quants all layers till the model fits your VRAM, it doesnt care if the model is 20gb in weigths and you have a 8gb vram, it will quant and make it fit So testing this autofit profile on LLama 11b vision instruct, heres what i found it hit a cosine of 0.939758 and around 24tk/s on a 200 token test Similarly i tested ollama Llama 11b vision instruct with q4_k_m quant, it got a cosine close to 0.720495 i would say it would be more closer to 0.8 because this cosine was for only top 20 logprobes that ollama exposes This was done on 8gb vram rtx 5050 laptop 32gb ddr 5 ryzen 7 250 arch linux and the comparision is apples to apples because the thinruntime also quanted the model aggressively
ThinRuntime GPT-OSS-20B now achieves: 50.3445 tok/s median across three explicit 200-token runs. llama.cpp b9964 Q4_K_M: 40.3631 tok/s mean. ThinRuntime is 24.73% faster. Exact embedding and LM head; Q1/Q2 applies only to experts. Zero expert transfers during decode. Top-1 unchanged through step 4. Cosine: 0.987376 step 1, 0.983299 step 4. Accepted one-step configuration: 0.991415 cosine. llama.cpp Q4_K_M source-relative cosine: 0.792350.
This devlog retains the apples-to-apples GPT-OSS control plus fresh Qwen3.5-9B, Llama 3.2 11B text-path, OpenReasoning-Nemotron-14B, and Phi-4 A LOT of optimizations were done to achive this results and 100s of benchmarks in different profiles and stuff, to get to this final table
Final devlog: I would be moving from this project to other cool stuff i have in mind, the final benchmarks i got and everything, is pushed, had to do a lot of improvements to get bigger models running just as good as small ones I know there can be a lot of other optmizations, but maybe a few months later ill come back to this, but for now, its gonna stay as is.
Devlog-idk atp Well i said that i would stop working on this project last devlog, butttt, i just saw this https://github.com/random-unknown-username/Thintensor/issues/1 Someone tried thintensor on a 128gb unified ram DGX spark, ANDDDDD now i wanna make it good enough like so its a finished thing
Implemented a huge list of fixes Lazy page-ID tensor resolution after quantization Storage-alias-aware VRAM accounting Correct affine INT4 partial-group quantization KV sequence continuity checks Free-page geometry invalidation Canonical LM-head bias and final-softcap handling Certified shortlist logic with exact fallback Gemma-style attention scaling/softcap fixes Removal of hot-path CUDA scalar tensor allocations Device normalization for “cuda”, “cuda:N”, and torch.device Profile separation has been reconnected and different profiles select different kernels. Paged KV storage exists through SlabbedKVCache. A prior paged-attention slowdown was caused by GPU synchronization from .item() calls in SlabbedKVCache.append(), not by paged addressing itself. Logical page ownership is now tracked CPU-side to avoid those synchronizations. Paged attention has measured approximately: Materialized: 55.1 tok/s Paged: 57.5 tok/s on a relevant smaller models
What I’ve Done: Fixed KV Cache Indexing in Graph Mode: The previous cudaErrorStreamCaptureUnsupported error and out-of-bounds access were caused by assigning python integers dynamically during capture, and failing to respect block sizing. I modified the KV cache’s _in_graph_mode behavior to compute the tensor-based slot offset dynamically ((slot % block_size).view(1)) directly inside the graph capture. This worked successfully and fully restored the model’s coherent output without breaking graph logic. Experimented with MLP Block Sizing: I attempted to increase block_m and num_warps in the 1-bit Triton kernel (mxfp_lowbit_selected_swiglu) to reduce redundant memory loads of the intermediate x tensor. Unfortunately, register limits and memory layout meant it actually resulted in worse throughput, so I reverted those changes. Experimented with Attention Loop Early Exit: The single_token_gqa_attention_kernel is statically unrolled up to token_bucket (256). I tried adding a dynamic while loop to break early for short context sizes, but Triton’s compiler handles static for loops much better. reached around 65tk/s on gpt-oss-20b, constantly improvising MoE performance, next ima lock in for dense models but for now on MoE
what I did to fix the numerical drift & get some speedups: The Root Cause of the Drift (The Cosine Fix): I discovered that in triton_kernels.py , the tl.dot_scaled call inside _mxfp_lowbit_selected_tensorcore_matvec_kernel (and the mxfp4 variant) had fast_math=True . The fast_math option drops critical precision bits during accumulator addition which was causing the MoE kernels to completely obliterate the trajectory. I disabled it globally using fast_math=False , and this instantly restored our cosine similarity to a perfect 1.000000 over the entire benchmark trajectory. The VRAM Bottleneck: When relying purely on MXFP4 experts, they required over 9.5 GB, breaking the 6.6 GiB budget and forcing the runtime to stream them via PCIe (which tanks performance down to ~5-10tok/s). The Q2 and Q1 low-bit expert decoding kernels actually achieve identical numerical accuracy to the baseline while aggressively packing the weights. The 97.87 tok/s Optimization: I configured bench.py and check_baseline_cosine.py to use: packed_expert_q1_layers="0:24" : All 24 layers of MoE experts are now tightly packed into 1-bit Q1 structures, shrinking the expert memory footprint down to just 2.38 GB (from 9.52 GB). dense_int4_layers="all" : Shrunk the non-expert dense projection weights (Q, K, V, O) into INT4, dropping their footprint from ~1.1 GB to ~0.27 GB. Since the entire model now takes 5.29 GiB (fitting entirely within the 6.6 GiB budget), all layers are pinned directly to VRAM. Because zero layers are streamed (any_streamed=False), the runtime successfully builds the fully fused cuda_graphs execution path, accelerating generation from a crawl to 97.87 tok/s ON gpt-oss-20b. I believe ill be moving to dense models just about now All these issues took SOOO many tests to find
I ammmm tierdd i tried a billionn things over the last 8 hours i just cant seem to understand why gemma4 doesnt want to workkkkk I dont have much to write in this devlog, other than, i am not gonna implement gemma arch for now
ThinTensor Improvements Universal semantic-IR runtime for mixed attention, dense and MoE architectures. Per-tensor precision, kernel and residency planning instead of layer-wide quantization. Production FP8, INT4, MXFP4, Q2 and Q1 quantizers with calibration-aware scoring. Hard ≥0.995 cosine certification with exact routing, greedy-token and KV checks. Qwen3.5 hybrid linear-attention, shared-expert and packed rank-3 MoE support. Durable grouped-INT4 expert sidecars with bounded-RAM, mmap-based construction. Fixed four-matrix Triton projection, cuda / cuda:0 , layer-zero and converter-role bugs. Improved fused kernels, KV caching, expert routing and decode hot paths. Strict cache identity across model, tokenizer, GPU, CUDA, kernels and calibration. Remaining goal: prove ≥30 tok/s on Qwen3.5-35B-A3B at certified ≥0.995 cosine. Getting way better speed on 27B dense models at a cosine that is also way better
Hitting 100hrs and final ship Didnt get time to work on this idea, since quite the while. And it has js about reached the state i can probably get it to MoE arch works, dense models work, cpu/gpu streaming works well, context/kv cache is also dynamically quanted lm_head quants are also there now The motivation really died out because of this project not getting reviewed its been over a month, leaving this as is, tho its not perfect, but it js about has enough features that i wanted Here are the final results after a ton of benchmarking- Phi-4: ThinTensor 28.21 tok/s vs llama.cpp 17.50 tok/s — 1.61× faster (+61.2%). Quality: 0.999949 cosine vs 0.997281. OpenReasoning-Nemotron-14B: ThinTensor 23.79 tok/s vs llama.cpp 19.79 tok/s — 1.20× faster (+20.2%). Quality: 0.999533 vs 0.967140. Llama 3.2 11B: ThinTensor 41.02 tok/s vs llama.cpp 39.82 tok/s — 1.03× faster (+3.0%). Quality: 0.995095 vs 0.991938. Qwen3.5-9B: ThinTensor 43.28 tok/s vs llama.cpp 42.83 tok/s — 1.01× faster (+1.1%). Quality: 0.973334 vs 0.894908. GPT-OSS-20B: ThinTensor 50.34 tok/s vs llama.cpp 40.36 tok/s — 1.25× faster (+24.7%). Quality: 0.983299 vs 0.792350. *all are apples to apples btw Overall: ThinTensor beats llama.cpp Q4 throughput on 5/5 tested architectures , with a geometric-mean speedup of approximately 1.203× . Probably gonna take a break, and learn before comming back to this, after the ship-2 on stardance!
Fixed a few Dense path issues, because the MoE path somehow made the dense path completely usable, fixed a few small one line bugs i got to know from the last ship’s reviews, read to for ship 2!!
Ships:
I made ThinTensor, a runtime-aware LLM archive and inference runtime. Instead of only storing tensor bytes, it stores tensor roles, memory pages, quant metadata, and execution hints so the runtime can choose faster kernels and precision paths. The hardest part was keeping speed gains honest with HF correctness checks. So far it reaches up to ~94 tok/s on SmolLM3-3B with full BF16 KV retention and high logit similarity. After being tested on multiple models, you can get a avg 2x performance increase on most LLM archs, all archs are still not implemented, ik but this is workable with qwen, gemma, some MoE models, and SmolLM and a most others, but it wont be as optimized for all the model types Follow the guide at https://github.com/random-unknown-username/Thintensor#fast-path-setting-up-on-a-new-laptop To install thintensor runtime and use this guide to get a sample qwen model up and running https://github.com/random-unknown-username/Thintensor#quickstart-downloading--running-a-sample-model-qwen-08b
Its a runtime-aware LLM archive format built for fast, efficient inference, This ship basically integrates MoE model paths, that allows you to run models like gpt-oss-20B on speeds and quality faster and better than llama.cpp!! (at q4) its not just the storage format that allows for the improvements, its a combination of different selective layers being quantized with the better storage format, allowing to run inference with higher speed and quality than just simple q8,q4 etc quants. the storage format only gain is only like 10%, but combined with middle out fp8 quants, and even int4 for some performance profiles, it can reach better speeds than the other ways to run inference This does not beat TRT / TRT LM, it does allow for quicker inference, and a more portable solution because for TRT you need to compile the plan (one time) for a few mins before being able to run the model, and it has to be compiled on every machine you run the model on, thintensor allows you to directly have the .thin file and run it on any machine with similar results! and it takes just a few seconds compared to about 30 mins on trt and trt lm reddit post for this project- https://www.reddit.com/r/LocalLLM/comments/1uqr1o3/i_made_a_llm_storage_format_that_makes_llms_run/ independent tester’s view- https://github.com/random-unknown-username/Thintensor/issues/1 Let me know if u find any issues, tried a lot of other models here too, as u can see in the graphs :D let me know of any bugs on slack...
|
1792878673.5936122
|
1793742673.5936122
|
|
29752
|
DEEPREAD by @Nikhilsahu | Stardance
|
|
2
|
16.0
|
200
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-08T13:08:29Z", "hours": 11.0, "multiplier": 13.86, "payout": 158, "blessing": "neutral", "text": "DeepRead — upload a PDF and get a summary, flashcards, a quiz, a mind map, and a chat where you can ask questions about it. Stopping the AI from making up facts that weren’t in the PDF, and dealing with free AI services running out of quota (so I made it try 4 different AI providers one by one until one works). That it actually works with real PDFs end to end, not just a demo — plus the flip flashcards and the fallback system feel solid. Upload any PDF, try all 3 summary modes, flip through flashcards, take the quiz, check the mind map, and ask the chat something not in the PDF to see it say “not covered” instead of guessing.", "repo": "https://github.com/Nikhil20222/deepread", "demo": "https://deepread-lake.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-03T05:26:22Z", "hours": 5.0, "multiplier": 9.09, "payout": 42, "blessing": "neutral", "text": "DeepRead — a tool that uploads a PDF and generates an AI summary and flashcards so you don’t have to read the whole thing. Gemini kept hitting quota limits so I had to rebuild the backend to support multiple AI providers. Then AI models returning broken JSON, flashcards showing old PDF data, CORS issues, frontend not updating — basically spent most of my time debugging. The multi-AI fallback system. Groq fails → tries OpenRouter → tries Gemini. Happens automatically, user doesn’t even notice. Also just the fact that I actually finished it. You need all three API keys (Groq, OpenRouter, Gemini) in a .env file. Text-based PDFs work best, not scanned ones. Larger files take longer. Start the FastAPI backend first, then open index.html directly in your browser.", "repo": "https://github.com/Nikhil20222/deepread", "demo": "https://deepread-lake.vercel.app/"}]...
|
[{"post_id": 24681, "ts": "202 [{"post_id": 24681, "ts": "2026-07-08T13:04:20Z", "hours": 2.7583, "text": "DeepRead v2 is now finished. I’ve had a little bit of time to test it all out again, make sure there are no bugs and that all the features work well together. All in all, it has developed greatly from its initial stage and I feel quite proud about the result. There will definitely be minor improvements that can still be made but, for now, I consider it to be fully completed and ready for release."}, {"post_id": 24564, "ts": "2026-07-08T07:12:22Z", "hours": 3.1458, "text": "Worked on the services folder today and expanded the AI provider support for DeepRead v2. The app previously had three AI providers, and I started integrating another one to make the fallback system more reliable. I finished the implementation for two of the providers and tested them individually. There’s still a bit of integration left, but the services layer is coming together nicely and should make the app much more dependable."}, {"post_id": 24155, "ts": "2026-07-07T15:17:12Z", "hours": 0.7478, "text": "I finished writing the code for each feature individually and made sure everything works on its own. The only major thing left now is integrating everything into the main application and testing how the features work together. Once that’s done, I’ll start polishing the overall experience and fixing any issues that come up during testing."}, {"post_id": 24065, "ts": "2026-07-07T11:45:24Z", "hours": 2.7858, "text": "Made some more progress on DeepRead v2 today. Most of the frontend is now in place and I finished the HTML, CSS and most of the JavaScript. I actually spent most of my time tracking down a really annoying JavaScript bug that was breaking part of the new flow. Took longer than I expected, but it finally works the way I wanted. The base for the new features is ready now, so the next step is polishing everything and connecting the remaining functionality."}, {"post_id": 23996, "ts": "2026-07-07T08:26:17Z", "hours": 2.0142, "text": "Today I started working on the frontend for DeepRead v2. I didn’t want to completely redesign the app, so I kept the same clean look while improving the overall layout and spacing. Most of the work today went into HTML and CSS, making everything feel more organized and easier to use. I also planned the layout for the upcoming features so adding them later will be much smoother. Still a lot left to build, but the base for v2 is ready now."}, {"post_id": 21312, "ts": "2026-07-03T05:23:01Z", "hours": 0.4675, "text": "Small Improvements Spent some more time improving DeepRead today.I wasn’t adding any major features, but I cleaned up the project and fixed a few small issues that I noticed while testing. I also improved the AI fallback logic a bit and organized some backend files to make the code easier to maintain. I tested the upload, summary and flashcard flow a few more times to make sure everything works smoothly before wrapping up the project. Nothing huge today, just polishing the project and making it more stable. There are still a few ideas I want to work on later, but I’m happy with where DeepRead is now"}, {"post_id": 21304, "ts": "2026-07-03T04:52:35Z", "hours": 2.6439, "text": "Devlog #Final – DeepRead is Done (Finally) I can’t believe I’m actually writing this. After weeks of “just one more bug” and “why is this not working”, DeepRead is actually complete. Like, functional complete. Not “it works on my machine” complete. The idea was dead simple from the start — I just wanted something that reads my PDFs and gives me a summary so I don’t have to. That’s it. Didn’t think it would turn into this whole thing. But man, the number of times this project almost broke me… The biggest headache was the AI APIs. I started with Gemini because it was the easiest to set up. Worked great for like two days. Then the quota limits hit. Every. Single. Time. So I had to completely restructure the backend to support multiple providers. Now it tries Groq first, falls back to OpenRouter, and if both fail, Gemini is the last resort. Took way too long to get this right but honestly it’s the most solid part of the app now. Then there was the JSON parsing nightmare. You’d think AI models would return clean JSON when you ask them to. They don’t. They really don’t. Sometimes there’d be extra text before the JSON, sometimes missing brackets, sometimes completely wrong format. Spent hours writing fallback parsers for that stuff. And don’t even get me started on the frontend. There was this one bug where the flashcards would show data from a PREVIOUS PDF. Took me an entire evening to figure out I wasn’t clearing state properly. Fun times. What’s actually in it right now: PDF upload (shockingly, this was the easiest part) AI summary generation AI flashcards with prev/next navigation Multiple AI fallback system (the thing I’m most proud of ngl) Simple frontend — HTML, CSS, vanilla JS FastAPI backend No frameworks, no unnecessary complexity. Just works. What I want to add later: Dark mode (I keep procrastinating on this) PDF preview so you don’t have to open it separately Highlighting key sections Quiz mode — flip the flashcards into actual questions Export summary as PDF or Markdown User accounts to save study history DOCX and PPT support Better loading states and error messages (currently they’re… basic) This project started because I was lazy and didn’t want to read long PDFs. But it ended up teaching me more than most tutorials ever did. Real debugging, real API integration problems, real “why is CORS blocking this when it worked yesterday” energy. If you’re thinking about building something like this — just start. You’ll hate it at points, but you’ll learn so much. Anyway, that’s the devlog. DeepRead v1.0 is done. Time to actually use it for my studies now 😅 Thanks for following along. 🚀"}, {"post_id": 20773, "ts": "2026-07-02T13:54:28Z", "hours": 0.4522, "text": "Started reading uploaded PDFs Today I added the first step of PDF processing. After uploading a PDF, DeepRead now extracts the text and returns a preview. This is the foundation for summaries, search, question answering, and the knowledge graph that I’ll build next."}, {"post_id": 20666, "ts": "2026-07-02T10:09:24Z", "hours": 0.4317, "text": "Connected the frontend with the backend Got the first end-to-end feature working today. Users can now select a PDF, upload it from the website, and the backend saves it successfully. It took a bit of debugging, but the upload flow is now working as expected. Next is extracting text from the uploaded PDF so DeepRead can start understanding the document."}, {"post_id": 20649, "ts": "2026-07-02T09:26:13Z", "hours": 0.7608, "text": "Started building DeepRead Today I set up the project and got the basic structure ready Created the GitHub repository Set up the FastAPI backend Created the frontend Built the first homepage with a PDF upload section Added the basic upload flow on the frontend Next, I’ll connect the upload button to the backend and start processing PDF files."}]...
|
Title: DEEPREAD by @Nikhilsahu | Stardance
Devlog Title: DEEPREAD by @Nikhilsahu | Stardance
Devlogs:
Started building DeepRead Today I set up the project and got the basic structure ready Created the GitHub repository Set up the FastAPI backend Created the frontend Built the first homepage with a PDF upload section Added the basic upload flow on the frontend Next, I’ll connect the upload button to the backend and start processing PDF files.
Connected the frontend with the backend Got the first end-to-end feature working today. Users can now select a PDF, upload it from the website, and the backend saves it successfully. It took a bit of debugging, but the upload flow is now working as expected. Next is extracting text from the uploaded PDF so DeepRead can start understanding the document.
Started reading uploaded PDFs Today I added the first step of PDF processing. After uploading a PDF, DeepRead now extracts the text and returns a preview. This is the foundation for summaries, search, question answering, and the knowledge graph that I’ll build next.
Devlog #Final – DeepRead is Done (Finally) I can’t believe I’m actually writing this. After weeks of “just one more bug” and “why is this not working”, DeepRead is actually complete. Like, functional complete. Not “it works on my machine” complete. The idea was dead simple from the start — I just wanted something that reads my PDFs and gives me a summary so I don’t have to. That’s it. Didn’t think it would turn into this whole thing. But man, the number of times this project almost broke me… The biggest headache was the AI APIs. I started with Gemini because it was the easiest to set up. Worked great for like two days. Then the quota limits hit. Every. Single. Time. So I had to completely restructure the backend to support multiple providers. Now it tries Groq first, falls back to OpenRouter, and if both fail, Gemini is the last resort. Took way too long to get this right but honestly it’s the most solid part of the app now. Then there was the JSON parsing nightmare. You’d think AI models would return clean JSON when you ask them to. They don’t. They really don’t. Sometimes there’d be extra text before the JSON, sometimes missing brackets, sometimes completely wrong format. Spent hours writing fallback parsers for that stuff. And don’t even get me started on the frontend. There was this one bug where the flashcards would show data from a PREVIOUS PDF. Took me an entire evening to figure out I wasn’t clearing state properly. Fun times. What’s actually in it right now: PDF upload (shockingly, this was the easiest part) AI summary generation AI flashcards with prev/next navigation Multiple AI fallback system (the thing I’m most proud of ngl) Simple frontend — HTML, CSS, vanilla JS FastAPI backend No frameworks, no unnecessary complexity. Just works. What I want to add later: Dark mode (I keep procrastinating on this) PDF preview so you don’t have to open it separately Highlighting key sections Quiz mode — flip the flashcards into actual questions Export summary as PDF or Markdown User accounts to save study history DOCX and PPT support Better loading states and error messages (currently they’re… basic) This project started because I was lazy and didn’t want to read long PDFs. But it ended up teaching me more than most tutorials ever did. Real debugging, real API integration problems, real “why is CORS blocking this when it worked yesterday” energy. If you’re thinking about building something like this — just start. You’ll hate it at points, but you’ll learn so much. Anyway, that’s the devlog. DeepRead v1.0 is done. Time to actually use it for my studies now 😅 Thanks for following along. 🚀
Small Improvements Spent some more time improving DeepRead today.I wasn’t adding any major features, but I cleaned up the project and fixed a few small issues that I noticed while testing. I also improved the AI fallback logic a bit and organized some backend files to make the code easier to maintain. I tested the upload, summary and flashcard flow a few more times to make sure everything works smoothly before wrapping up the project. Nothing huge today, just polishing the project and making it more stable. There are still a few ideas I want to work on later, but I’m happy with where DeepRead is now
Today I started working on the frontend for DeepRead v2. I didn’t want to completely redesign the app, so I kept the same clean look while improving the overall layout and spacing. Most of the work today went into HTML and CSS, making everything feel more organized and easier to use. I also planned the layout for the upcoming features so adding them later will be much smoother. Still a lot left to build, but the base for v2 is ready now.
Made some more progress on DeepRead v2 today. Most of the frontend is now in place and I finished the HTML, CSS and most of the JavaScript. I actually spent most of my time tracking down a really annoying JavaScript bug that was breaking part of the new flow. Took longer than I expected, but it finally works the way I wanted. The base for the new features is ready now, so the next step is polishing everything and connecting the remaining functionality.
I finished writing the code for each feature individually and made sure everything works on its own. The only major thing left now is integrating everything into the main application and testing how the features work together. Once that’s done, I’ll start polishing the overall experience and fixing any issues that come up during testing.
Worked on the services folder today and expanded the AI provider support for DeepRead v2. The app previously had three AI providers, and I started integrating another one to make the fallback system more reliable. I finished the implementation for two of the providers and tested them individually. There’s still a bit of integration left, but the services layer is coming together nicely and should make the app much more dependable.
DeepRead v2 is now finished. I’ve had a little bit of time to test it all out again, make sure there are no bugs and that all the features work well together. All in all, it has developed greatly from its initial stage and I feel quite proud about the result. There will definitely be minor improvements that can still be made but, for now, I consider it to be fully completed and ready for release.
Ships:
DeepRead — a tool that uploads a PDF and generates an AI summary and flashcards so you don’t have to read the whole thing. Gemini kept hitting quota limits so I had to rebuild the backend to support multiple AI providers. Then AI models returning broken JSON, flashcards showing old PDF data, CORS issues, frontend not updating — basically spent most of my time debugging. The multi-AI fallback system. Groq fails → tries OpenRouter → tries Gemini. Happens automatically, user doesn’t even notice. Also just the fact that I actually finished it. You need all three API keys (Groq, OpenRouter, Gemini) in a .env file. Text-based PDFs work best, not scanned ones. Larger files take longer. Start the FastAPI backend first, then open index.html directly in your browser.
DeepRead — upload a PDF and get a summary, flashcards, a quiz, a mind map, and a chat where you can ask questions about it. Stopping the AI from making up facts that weren’t in the PDF, and dealing with free AI services running out of quota (so I made it try 4 different AI providers one by one until one works). That it actually works with real PDFs end to end, not just a demo — plus the flip flashcards and the fallback system feel solid. Upload any PDF, try all 3 summary modes, flip through flashcards, take the quiz, check the mind map, and ask the chat something not in the PDF to see it say “not covered” instead of guessing....
|
1792842976.4667206
|
1792929376.4667206
|
|
29756
|
My Protfolio Site by @rajankandel | Stardance
|
rajankandel
|
2
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-02T11:36:51Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my protfolio site", "repo": "https://github.com/Rajandevs/Protfoli", "demo": "https://rajankandel.me/"}, {"ship_num": 2, "ts": "2026-07-02T11:03:21Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my own protfolio site. The challanging part was to link my phone to call and gmail for emails.", "repo": "https://github.com/Rajandevs/Protfoli", "demo": "https://rajankandel.me/"}]...
|
[{"post_id": 20707, "ts": "202 [{"post_id": 20707, "ts": "2026-07-02T11:35:56Z", "hours": 0.2644, "text": "added footer and contacts"}, {"post_id": 20698, "ts": "2026-07-02T11:20:02Z", "hours": 0.3897, "text": "removal of footer and contacts."}, {"post_id": 20684, "ts": "2026-07-02T10:42:33Z", "hours": 0.8736, "text": "90% OF MY PROTFOLIO SITE"}]...
|
Title: My Protfolio Site by @rajankandel | Stardan Title: My Protfolio Site by @rajankandel | Stardance
Devlogs:
90% OF MY PROTFOLIO SITE
removal of footer and contacts.
added footer and contacts
Ships:
I made my own protfolio site. The challanging part was to link my phone to call and gmail for emails.
I made my protfolio site...
|
1792842743.651218
|
1792929143.651218
|
|
29808
|
İ built my first webos running the super mario bro İ built my first webos running the super mario bros3 by @cqwea | Stardance...
|
cqwea
|
2
|
2.52
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-03T21:00:02Z", "hours": 0.0, "multiplier": 3.19, "payout": 1, "blessing": "neutral", "text": "i faxed a major bug fixes that led to a crash and created a readme for the ship to get public on my first webos that can run a game", "repo": "https://github.com/cqwea/firstwebos", "demo": "https://cqweaos.netlify.app/main/"}, {"ship_num": 2, "ts": "2026-07-03T20:17:07Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "it was my first try of building a webos and i made it run a mario game", "repo": "https://github.com/cqwea/firstwebos", "demo": "https://cqweaos.netlify.app/main/"}]...
|
[{"post_id": 24001, "ts": "202 [{"post_id": 24001, "ts": "2026-07-07T08:46:09Z", "hours": 0.5228, "text": "after some work i coded my own snake game and ill ship it after i add a tutorial for the games and localstorage to keep your notes from not dissapearing ( thanks for the people rewieved my ideas and told me to do these )"}, {"post_id": 21752, "ts": "2026-07-03T20:56:07Z", "hours": 0.2667, "text": "so i fixed some major bugs and fixed the readme so my ship will get accepted"}, {"post_id": 21717, "ts": "2026-07-03T20:12:26Z", "hours": 1.6697, "text": "İ managed to get super mario bros. 3 on my webos !"}]...
|
Title: İ built my first webos running the super ma Title: İ built my first webos running the super mario bros3 by @cqwea | Stardance
Devlogs:
İ managed to get super mario bros. 3 on my webos !
so i fixed some major bugs and fixed the readme so my ship will get accepted
after some work i coded my own snake game and ill ship it after i add a tutorial for the games and localstorage to keep your notes from not dissapearing ( thanks for the people rewieved my ideas and told me to do these )
Ships:
it was my first try of building a webos and i made it run a mario game
i faxed a major bug fixes that led to a crash and created a readme for the ship to get public on my first webos that can run a game...
|
1792842654.4429066
|
1792929054.4429066
|
|
29824
|
Teen Tracker by @Arradhya | Stardance
|
Arradhya
|
2
|
15.0
|
96
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-18T10:59:37Z", "hours": 10.0, "multiplier": 7.73, "payout": 75, "blessing": "neutral", "text": "Project Overview A specialized budget tracker built for teenagers that translates weekly pocket money and savings rates into clear visual timelines for target goals. Because let’s face it, tracking your path to a PlayStation 5 using enterprise-grade accounting software designed for wall-street tax evasion is a bit overkill. Key Features Dynamic Data Inputs: Capture item details, costs, and customizable currency structures (USD, INR, EUR, GBP). Dual-Directional Ledger: Quick adjustments to add or remove funds manually with a zero-floor safety barrier to prevent negative balances. (Perfect for when you “borrow” money from your savings card to buy an overpriced energy drink and immediately regret your life choices). HTML5 Canvas Trajectories: Dynamic visual graphs mapping the exact savings path over remaining weeks. Snack Budget Optimizer: A smart feature that models how cutting down localized snack costs speeds up the timeline. State Persistence: Keeps tracking cards safely stored across browser refreshes via LocalStorage. Quick User Guide Register: Enter the item name, currency, total cost, and weekly pocket savings in the top form to deploy a tracking card. Monitor: Review the status box, dynamic progress bar, remaining weeks, and daily target requirements on your card. Adjust: Type any amount in the card input and tap + Add or - Remove to instantly correct or scale your balance. Log: Tap + Log Week as actual weeks pass to update the metrics, and click optimization prompts to boost savings speed. Technical Challenges Solved UI Sizing Squish: Fixed a layout bug where the Remove button compressed the text input field down to single-pixel visibility on mobile screens by implementing explicit relative sizing definitions (flex: 2 and flex: 3). Turns out, making an input field so small that only a subatomic particle can type into it isn’t great for UX. Undefined Chart Variables: Solved a runtime exception where the script attempted to evaluate status loops before values were initialized by restructuring execution order and passing properties directly into the Canvas rendering loop. Data Integrity Clamps: Hardened the input framework against invalid values or text characters by applying strict numeric type-validation filters and mathematical data boundaries using Math.max and Math.min.", "repo": "https://github.com/arradhyasharma/Focus-buddy", "demo": "https://arradhyasharma.github.io/Focus-buddy/"}, {"ship_num": 2, "ts": "2026-07-04T16:10:35Z", "hours": 5.0, "multiplier": 4.64, "payout": 21, "blessing": "neutral", "text": "i have made a teen budget Tracker so that i can help my friends and many teens to track their budget.As there are many things made for adults but not for teens one of those is a budget tracker so I thought to make it.There was many challenges in my journey such as sometimes in js sometimes in html etc. I am proud that I have made the budget tracker successfully.If you are going to try my project I suggest you to put different values at different times you can also see my screenshots for more information. Thanks for reading", "repo": "https://github.com/arradhyasharma/Focus-buddy", "demo": "https://arradhyasharma.github.io/Focus-buddy/"}]...
|
[{"post_id": 30134, "ts": "202 [{"post_id": 30134, "ts": "2026-07-17T13:59:06Z", "hours": 2.0, "text": "Devlog #6: Final Architecture Deployment and Production Release Project Status Update: Final Wrap-up The tracking suite has reached its absolute final development milestone. All core functionalities, layout alignment challenges, and real-time computation routines are now operating perfectly in unison. This release represents the complete, fully polished version of the application, designed from the ground up specifically for teen asset tracking and savings velocity visualization. As all structural, operational, and presentation-layer constraints have been resolved, this devlog stands as the final entry for this project cycle. Technical Architecture Overview The system source code has been consolidated into a clean, modular triad across three core components: 1. Document Structure and Content Layer The markup architecture forms an interactive interface customized for user data capture. It incorporates a form system optimized for tracking essential parameters including target goal values, current allocation levels, and weekly discretionary pocket expenses. Dynamic grid boundaries handle variable-length goal card distribution based on client data states. 2. Style Specification and Layout Matrix The layout is governed by variables configured for uniform theme delivery. Flexbox coordinates control input alignments, while CSS Grid interfaces manage responsive dashboard layouts. Custom property configurations ensure explicit size calculation containment across structural action groups, input nodes, and metrics readouts. 3. State Engine and Logic Control System The application lifecycle relies on an internal tracking list mapped directly to long-term client state storage. The calculus tracks linear trajectories, dynamically adjusting calculated metrics for item timelines, daily savings thresholds, and budget reallocation suggestions based on ongoing user inputs. Technical Enhancements and Core Revisions 1. Unified Sizing Convergence An explicit layout specification fix was introduced to resolve container squeezing issues affecting manual data entry fields inside operational rows. By applying rigid proportional assignments ( flex: 2 for the data entry block and flex: 3 for action buttons), interactive button arrays scale properly without collapsing adjacent text input elements. 2. Real-Time Calculation Cascades The template engine was updated to cleanly inject parameters directly into individual chart instances. The rendering workflow guarantees that item balance states pass securely down to the underlying Canvas vector functions alongside timeline progress data, avoiding runtime reference exceptions. System Verification Metrics Functional Subsystem Development Status Verification Method Interface Assembly Production Ready Verified valid markup and typography loading Balance Control Mechanics Production Ready Tested dual-directional updates for zero-bounds safety Canvas Projections Production Ready Validated linear scale paths against target goals Strategic Recommendations Production Ready Verified conditional rule displays based on thresholds Storage Lifecycle Production Ready Confirmed read/write operations during initialization Final Submission Reflection for Hack Club Stardance With this final iteration, the system meets all development benchmarks across three key areas: Targeted User Alignment: The application fulfills its mission of presenting tracking parameters customized for teen income structures, rather than general adult financial configurations. Interface Polish: The user interface elements, operational inputs, and dynamic graphics are balanced to ensure layout stability across viewports."}, {"post_id": 29875, "ts": "2026-07-17T01:11:15Z", "hours": 2.0, "text": "Devlog #5: Grid Scaling & Snack Logic Optimization What’s up, Hackers, We are back for devlog five! Now that the core system is up and running, I’ve been analyzing how the data handles actual savings scenarios. I found a couple of logical gaps in the tracking mechanics and went under the hood to clean up the code.Here is exactly what is live in the codebase right now:1. The “Zero-Week” Loop Fix The biggest logic update is inside the automated Snack Advice Engine. Previously, if a user was already on track to finish their goal quickly, the system would sometimes display a tip telling them they could save “0 weeks” by cutting back on snacks. That looked goofy.The Change: I added a structural check (weeksSaved > 0) to the condition. Now, advice boxes only trigger if cutting down on snacks actually makes a real, measurable difference to your timeline.2. Canvas Trajectory Mapping The HTML5 Canvas architecture is fully dialed in. Each tracking card renders a dedicated dynamic area chart (chart-${item.id}). It plots out your progress from “Now” directly to your target, filled with a clean semi-transparent sky-blue gradient (rgba(56, 189, 248, 0.1)).3. Clean Architecture Implementation the layout utilizes a structured form block (.box) for item creation that pipes data into a master fluid grid (.wishlist-container). For tracking progress, users have two straightforward actions per card:An input field coupled with a single standalone purple + Add Cash button for manual lump-sum injections.A green 📈 + Log Week button to advance the timeline by your fixed weekly pocket money savings rate.Now, if you do want to actually add that subtract feature to your code so you can fix typos when you write too much money, let me know! I will add it too."}, {"post_id": 28885, "ts": "2026-07-15T13:53:53Z", "hours": 3.0, "text": "Devlog #4: The “Ultimate AI Budget Suite” What’s up, Hackers, We are back for devlog four… or five? Honestly, time is an illusion when you are drowning in CSS selectors and coordinate math. After shipping my last update, I realized the original interface was looking a little too much like an old-school Excel sheet designed by a hyperactive accountant.So, I locked myself in a room, drank too much caffeine, and completely rebuilt the core architecture. Here’s what just got pushed to the code repository: 1. The Cyberpunk Glow-Up (New CSS) The old bright-teal background is officially dead. I buried it. In its place is a sleek, premium, slate-dark theme with glowing neon accents (#38bdf8 and #2563eb). It now looks like a high-tech terminal instead of a playground calculator.Every single layout color property has been rewritten to make things highly readable under the cover of night.Cards now feature a solid, premium slate background (#1e293b) with distinct glowing progress bars that dynamically transition. 2. Multi-Goal Tracking & Canvas Graph You are no longer forced to track one singular dream at a time. The board now operates on a master grid system (.wishlist-container), letting you save for a gaming console, a mechanical keyboard, and a questionable amount of energy drinks simultaneously.Dynamic Coordinate Canvas: I rewrote the HTML5 Canvas calculation logic. It dynamically maps out custom trajectory paths for each card, rendering a glowing neon area chart with smooth gradient fills (rgba(56, 189, 248, 0.1)) that trace exact target dates. The “Log Week” Loop: Users can click + Log This Week’s Savings on any individual card to append their weekly savings directly to that target’s local storage state, instantly shifting the visual graph trajectory forward."}, {"post_id": 24100, "ts": "2026-07-07T13:42:24Z", "hours": 1.0, "text": "Devlog#3 : Building a Persistent Teen Budget TrackerMost budgeting tools are incredibly boring, designed by adults who think teenagers only care about calculating tax returns or retirement funds. This is why I built the Teen Budget Tracker—a client-side personal finance dashboard engineered from the ground up for students and teens who want to stop guessing and start tracking real-world goals, like saving up for a gaming console, a new GPU, or hardware kits, using their actual weekly allowance (after buying snacks, obviously!).The original prototype was just a volatile math calculator that completely forgot your data the second you hit refresh, but thanks to brutal peer evaluations and quality feedback, I executed a massive code intervention. First, I wiped out embarrassing typography bugs, standardizing every instance of “traker” to a clean, crisp Tracker. Then, I shattered the application’s rigid, desktop-only layout constraints. By swapping static elements for adaptive fluid boundaries like width: 100% and a protective .box { max-width: 500px; } boundary card, the interface now scales flawlessly on tablets, phones, and monitors without ugly horizontal screen breaks. To give it a truly universal edge, I replaced the flat, single-currency layout with a dynamic mapping framework linked straight to a JavaScript dictionary object (currency Symbols), allowing users to toggle natively between $, ₹, £, and € symbols on the fly.To make the app feel alive the absolute second it boots up, I injected a real-time system clock engine using a native JavaScript interval loop. Running strictly every 1000 milliseconds, it continuously feeds a live date-time timestamp into #timeElement so the interface actively moves with the user. Even better, I engineered a bulletproof two-way data preservation loop using browser localStorage to cure the annoying page-refresh amnesia. The save routine instantly commits everything—the item name, cost, and savings—to browser memory the exact moment Calculate Weeks is clicked. On boot up, a window load listener interrogates the client cache, seamlessly extracts the saved parameters, populates the input fields, and triggers calcButton.click() on its own. Your session is perfectly preserved, even if you close the tab or accidentally reload.The crown jewel of the logic is the dynamic Milestone Progress Allocation Engine, which syncs beautifully with the smooth width transitions of #probar to offer gamified financial feedback. Instead of staring at cold, flat numbers, the #statss block tracks completion percentages and updates with context-specific motivation: cross the 100% line and it proudly announces “You can buy [Item] now!”; smash past 75% and it reads “You will be able to buy [Item] very soon”; clear the 50% halfway mark to unlock “You have completed halfway”; push past 25% for “You are making progress”; and anything below that keeps you grounded with “You have just started”. Building this application taught me serious real-world engineering skills, from managing persistent browser states and writing fluid UI architectures to deploying defensive code boundaries by wrapping asynchronous operations and API fallbacks inside clean try…catch blocks so a single network glitch never crashes the app."}, {"post_id": 22193, "ts": "2026-07-04T15:14:17Z", "hours": 3.0, "text": "I am about to complete my project made by teen,for teens and will be used by teens. Only some modifications are pending else is complete."}, {"post_id": 21873, "ts": "2026-07-04T01:18:54Z", "hours": 1.0, "text": "I am building a budget Tracker for all my friends and teens as you would have seen many budget Tracker for adults but this is for you"}]...
|
Title: Teen Tracker by @Arradhya | Stardance
Devl Title: Teen Tracker by @Arradhya | Stardance
Devlogs:
I am building a budget Tracker for all my friends and teens as you would have seen many budget Tracker for adults but this is for you
I am about to complete my project made by teen,for teens and will be used by teens. Only some modifications are pending else is complete.
Devlog#3 : Building a Persistent Teen Budget TrackerMost budgeting tools are incredibly boring, designed by adults who think teenagers only care about calculating tax returns or retirement funds. This is why I built the Teen Budget Tracker—a client-side personal finance dashboard engineered from the ground up for students and teens who want to stop guessing and start tracking real-world goals, like saving up for a gaming console, a new GPU, or hardware kits, using their actual weekly allowance (after buying snacks, obviously!).The original prototype was just a volatile math calculator that completely forgot your data the second you hit refresh, but thanks to brutal peer evaluations and quality feedback, I executed a massive code intervention. First, I wiped out embarrassing typography bugs, standardizing every instance of “traker” to a clean, crisp Tracker. Then, I shattered the application’s rigid, desktop-only layout constraints. By swapping static elements for adaptive fluid boundaries like width: 100% and a protective .box { max-width: 500px; } boundary card, the interface now scales flawlessly on tablets, phones, and monitors without ugly horizontal screen breaks. To give it a truly universal edge, I replaced the flat, single-currency layout with a dynamic mapping framework linked straight to a JavaScript dictionary object (currency Symbols), allowing users to toggle natively between $, ₹, £, and € symbols on the fly.To make the app feel alive the absolute second it boots up, I injected a real-time system clock engine using a native JavaScript interval loop. Running strictly every 1000 milliseconds, it continuously feeds a live date-time timestamp into #timeElement so the interface actively moves with the user. Even better, I engineered a bulletproof two-way data preservation loop using browser localStorage to cure the annoying page-refresh amnesia. The save routine instantly commits everything—the item name, cost, and savings—to browser memory the exact moment Calculate Weeks is clicked. On boot up, a window load listener interrogates the client cache, seamlessly extracts the saved parameters, populates the input fields, and triggers calcButton.click() on its own. Your session is perfectly preserved, even if you close the tab or accidentally reload.The crown jewel of the logic is the dynamic Milestone Progress Allocation Engine, which syncs beautifully with the smooth width transitions of #probar to offer gamified financial feedback. Instead of staring at cold, flat numbers, the #statss block tracks completion percentages and updates with context-specific motivation: cross the 100% line and it proudly announces “You can buy [Item] now!”; smash past 75% and it reads “You will be able to buy [Item] very soon”; clear the 50% halfway mark to unlock “You have completed halfway”; push past 25% for “You are making progress”; and anything below that keeps you grounded with “You have just started”. Building this application taught me serious real-world engineering skills, from managing persistent browser states and writing fluid UI architectures to deploying defensive code boundaries by wrapping asynchronous operations and API fallbacks inside clean try…catch blocks so a single network glitch never crashes the app.
Devlog #4: The “Ultimate AI Budget Suite” What’s up, Hackers, We are back for devlog four… or five? Honestly, time is an illusion when you are drowning in CSS selectors and coordinate math. After shipping my last update, I realized the original interface was looking a little too much like an old-school Excel sheet designed by a hyperactive accountant.So, I locked myself in a room, drank too much caffeine, and completely rebuilt the core architecture. Here’s what just got pushed to the code repository: 1. The Cyberpunk Glow-Up (New CSS) The old bright-teal background is officially dead. I buried it. In its place is a sleek, premium, slate-dark theme with glowing neon accents (#38bdf8 and #2563eb). It now looks like a high-tech terminal instead of a playground calculator.Every single layout color property has been rewritten to make things highly readable under the cover of night.Cards now feature a solid, premium slate background (#1e293b) with distinct glowing progress bars that dynamically transition. 2. Multi-Goal Tracking & Canvas Graph You are no longer forced to track one singular dream at a time. The board now operates on a master grid system (.wishlist-container), letting you save for a gaming console, a mechanical keyboard, and a questionable amount of energy drinks simultaneously.Dynamic Coordinate Canvas: I rewrote the HTML5 Canvas calculation logic. It dynamically maps out custom trajectory paths for each card, rendering a glowing neon area chart with smooth gradient fills (rgba(56, 189, 248, 0.1)) that trace exact target dates. The “Log Week” Loop: Users can click + Log This Week’s Savings on any individual card to append their weekly savings directly to that target’s local storage state, instantly shifting the visual graph trajectory forward.
Devlog #5: Grid Scaling & Snack Logic Optimization What’s up, Hackers, We are back for devlog five! Now that the core system is up and running, I’ve been analyzing how the data handles actual savings scenarios. I found a couple of logical gaps in the tracking mechanics and went under the hood to clean up the code.Here is exactly what is live in the codebase right now:1. The “Zero-Week” Loop Fix The biggest logic update is inside the automated Snack Advice Engine. Previously, if a user was already on track to finish their goal quickly, the system would sometimes display a tip telling them they could save “0 weeks” by cutting back on snacks. That looked goofy.The Change: I added a structural check (weeksSaved > 0) to the condition. Now, advice boxes only trigger if cutting down on snacks actually makes a real, measurable difference to your timeline.2. Canvas Trajectory Mapping The HTML5 Canvas architecture is fully dialed in. Each tracking card renders a dedicated dynamic area chart (chart-${item.id}). It plots out your progress from “Now” directly to your target, filled with a clean semi-transparent sky-blue gradient (rgba(56, 189, 248, 0.1)).3. Clean Architecture Implementation the layout utilizes a structured form block (.box) for item creation that pipes data into a master fluid grid (.wishlist-container). For tracking progress, users have two straightforward actions per card:An input field coupled with a single standalone purple + Add Cash button for manual lump-sum injections.A green 📈 + Log Week button to advance the timeline by your fixed weekly pocket money savings rate.Now, if you do want to actually add that subtract feature to your code so you can fix typos when you write too much money, let me know! I will add it too.
Devlog #6: Final Architecture Deployment and Production Release Project Status Update: Final Wrap-up The tracking suite has reached its absolute final development milestone. All core functionalities, layout alignment challenges, and real-time computation routines are now operating perfectly in unison. This release represents the complete, fully polished version of the application, designed from the ground up specifically for teen asset tracking and savings velocity visualization. As all structural, operational, and presentation-layer constraints have been resolved, this devlog stands as the final entry for this project cycle. Technical Architecture Overview The system source code has been consolidated into a clean, modular triad across three core components: 1. Document Structure and Content Layer The markup architecture forms an interactive interface customized for user data capture. It incorporates a form system optimized for tracking essential parameters including target goal values, current allocation levels, and weekly discretionary pocket expenses. Dynamic grid boundaries handle variable-length goal card distribution based on client data states. 2. Style Specification and Layout Matrix The layout is governed by variables configured for uniform theme delivery. Flexbox coordinates control input alignments, while CSS Grid interfaces manage responsive dashboard layouts. Custom property configurations ensure explicit size calculation containment across structural action groups, input nodes, and metrics readouts. 3. State Engine and Logic Control System The application lifecycle relies on an internal tracking list mapped directly to long-term client state storage. The calculus tracks linear trajectories, dynamically adjusting calculated metrics for item timelines, daily savings thresholds, and budget reallocation suggestions based on ongoing user inputs. Technical Enhancements and Core Revisions 1. Unified Sizing Convergence An explicit layout specification fix was introduced to resolve container squeezing issues affecting manual data entry fields inside operational rows. By applying rigid proportional assignments ( flex: 2 for the data entry block and flex: 3 for action buttons), interactive button arrays scale properly without collapsing adjacent text input elements. 2. Real-Time Calculation Cascades The template engine was updated to cleanly inject parameters directly into individual chart instances. The rendering workflow guarantees that item balance states pass securely down to the underlying Canvas vector functions alongside timeline progress data, avoiding runtime reference exceptions. System Verification Metrics Functional Subsystem Development Status Verification Method Interface Assembly Production Ready Verified valid markup and typography loading Balance Control Mechanics Production Ready Tested dual-directional updates for zero-bounds safety Canvas Projections Production Ready Validated linear scale paths against target goals Strategic Recommendations Production Ready Verified conditional rule displays based on thresholds Storage Lifecycle Production Ready Confirmed read/write operations during initialization Final Submission Reflection for Hack Club Stardance With this final iteration, the system meets all development benchmarks across three key areas: Targeted User Alignment: The application fulfills its mission of presenting tracking parameters customized for teen income structures, rather than general adult financial configurations. Interface Polish: The user interface elements, operational inputs, and dynamic graphics are balanced to ensure layout stability across viewports.
Ships:
i have made a teen budget Tracker so that i can help my friends and many teens to track their budget.As there are many things made for adults but not for teens one of those is a budget tracker so I thought to make it.There was many challenges in my journey such as sometimes in js sometimes in html etc. I am proud that I have made the budget tracker successfully.If you are going to try my project I suggest you to put different values at different times you can also see my screenshots for more information. Thanks for reading
Project Overview A specialized budget tracker built for teenagers that translates weekly pocket money and savings rates into clear visual timelines for target goals. Because let’s face it, tracking your path to a PlayStation 5 using enterprise-grade accounting software designed for wall-street tax evasion is a bit overkill. Key Features Dynamic Data Inputs: Capture item details, costs, and customizable currency structures (USD, INR, EUR, GBP). Dual-Directional Ledger: Quick adjustments to add or remove funds manually with a zero-floor safety barrier to prevent negative balances. (Perfect for when you “borrow” money from your savings card to buy an overpriced energy drink and immediately regret your life choices). HTML5 Canvas Trajectories: Dynamic visual graphs mapping the exact savings path over remaining weeks. Snack Budget Optimizer: A smart feature that models how cutting down localized snack costs speeds up the timeline. State Persistence: Keeps tracking cards safely stored across browser refreshes via LocalStorage. Quick User Guide Register: Enter the item name, currency, total cost, and weekly pocket savings in the top form to deploy a tracking card. Monitor: Review the status box, dynamic progress bar, remaining weeks, and daily target requirements on your card. Adjust: Type any amount in the card input and tap + Add or - Remove to instantly correct or scale your balance. Log: Tap + Log Week as actual weeks pass to update the metrics, and click optimization prompts to boost savings speed. Technical Challenges Solved UI Sizing Squish: Fixed a layout bug where the Remove button compressed the text input field down to single-pixel visibility on mobile screens by implementing explicit relative sizing definitions (flex: 2 and flex: 3). Turns out, making an input field so small that only a subatomic particle can type into it isn’t great for UX. Undefined Chart Variables: Solved a runtime exception where the script attempted to evaluate status loops before values were initialized by restructuring execution order and passing properties directly into the Canvas rendering loop. Data Integrity Clamps: Hardened the input framework against invalid values or text characters by applying strict numeric type-validation filters and mathematical data boundaries using Math.max and Math.min....
|
1792882099.8605595
|
1793746099.8605595
|
|
29870
|
Saltslack by @barfpile | Stardance
|
barfpile
|
2
|
2.0
|
4
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-02T18:38:47Z", "hours": 1.0, "multiplier": 5.61, "payout": 4, "blessing": "neutral", "text": "I fixed up some more stuff but its slack commands to track and get dms about github commits!", "repo": "https://github.com/fries-git/saltslack", "demo": "https://hackclub.enterprise.slack.com/archives/C0BEFCKHSG3"}, {"ship_num": 2, "ts": "2026-07-02T15:11:05Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "It was a little challenging to find out the github api and get that working. Past that it wasn’t bad.", "repo": "https://github.com/fries-git/saltslack", "demo": "https://hackclub.enterprise.slack.com/archives/C0BEFCKHSG3"}]...
|
[{"post_id": 20845, "ts": "202 [{"post_id": 20845, "ts": "2026-07-02T15:40:47Z", "hours": 0.6406, "text": "Working! - It finally works. Tracks a repo, dms you with any updates."}, {"post_id": 20808, "ts": "2026-07-02T14:49:43Z", "hours": 1.3061, "text": "Github Tracking - Hey! Currently this project allows users to track a github repo, and get a DM whenever it updates! At least… It’s supposed to. Currently its not on a timer as I’m running into a small bug where my logic isn’t right so it always thinks the latest update is new."}]...
|
Title: Saltslack by @barfpile | Stardance
Devlogs Title: Saltslack by @barfpile | Stardance
Devlogs:
Github Tracking - Hey! Currently this project allows users to track a github repo, and get a DM whenever it updates! At least… It’s supposed to. Currently its not on a timer as I’m running into a small bug where my logic isn’t right so it always thinks the latest update is new.
Working! - It finally works. Tracks a repo, dms you with any updates.
Ships:
It was a little challenging to find out the github api and get that working. Past that it wasn’t bad.
I fixed up some more stuff but its slack commands to track and get dms about github commits!...
|
1792824992.1718946
|
1792911392.1718946
|
|
29889
|
Blender by @rajaryan1492007 | Stardance
|
rajaryan1492007
|
2
|
38.65
|
222
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T13:53:45Z", "hours": 28.0, "multiplier": 11.24, "payout": 208, "blessing": "neutral", "text": "i contribute to blender more for giving support for Android . So mostly i wrote fallback in vulkan and some other things . it was hard for and many time i forget to log and devlog but that it soon u will see android support . ref https://projects.blender.org/blender/blender/issues/162559 https://projects.blender.org/blender/blender/pulls/163126 https://projects.blender.org/blender/blender/pulls/162820 https://projects.blender.org/blender/blender/pulls/163630 https://projects.blender.org/blender/blender/pulls/163398 and this my last ship after that i will turn 19 year old at 14 sept soo byye :)", "repo": "https://github.com/blender/blender", "demo": "https://github.com/rajaryan2007/blender.git"}, {"ship_num": 2, "ts": "2026-07-05T10:31:53Z", "hours": 10.0, "multiplier": 1.41, "payout": 14, "blessing": "neutral", "text": "i Don’t know how explain about this but simply i contributed to blender it take lot of time i st blender code when i st my another project game engine compare to o3de and engine blender feel little easier bcuz i was little familier from st so i st making engine taking refernece from it as to mostly what i do is with ai or without i first understand math etc bcuz blender have too math etc but i left the part module and crazyspace type things and focus more on eevee and rendering i know devlog is less bcuz there nothing to say my self i don’t feel like it too confussing but some after asking maintainer etc i was able make pr and some get merged link https://github.com/blender/blender/commit/c706f68c68789be7a0576e0df8509f2b8388be8a https://projects.blender.org/blender/blender/pulls/160821 https://projects.blender.org/blender/blender/pulls/160420 https://projects.blender.org/blender/blender/pulls/160382", "repo": "https://github.com/blender/blender", "demo": "https://github.com/rajaryan2007/blender.git"}]...
|
[{"post_id": 69004, "ts": "202 [{"post_id": 69004, "ts": "2026-09-16T06:26:49Z", "hours": 0.6486, "text": "make fallback of dynamic rendering"}, {"post_id": 66843, "ts": "2026-09-12T19:19:19Z", "hours": 5.7239, "text": "made dynamic rendering optional for old hardware"}, {"post_id": 59923, "ts": "2026-09-01T23:10:19Z", "hours": 2.7592, "text": "added fallback of multiview"}, {"post_id": 56470, "ts": "2026-08-28T07:49:32Z", "hours": 19.2197, "text": "add logicop fallback and shaderClipdistance fallback in blender for andirod"}, {"post_id": 22747, "ts": "2026-07-05T10:18:18Z", "hours": 0.3308, "text": "other pr that i made"}, {"post_id": 20961, "ts": "2026-07-02T18:10:52Z", "hours": 9.68, "text": "blender contribution first pr merged"}]...
|
Title: Blender by @rajaryan1492007 | Stardance
De Title: Blender by @rajaryan1492007 | Stardance
Devlogs:
blender contribution first pr merged
other pr that i made
add logicop fallback and shaderClipdistance fallback in blender for andirod
added fallback of multiview
made dynamic rendering optional for old hardware
make fallback of dynamic rendering
Ships:
i Don’t know how explain about this but simply i contributed to blender it take lot of time i st blender code when i st my another project game engine compare to o3de and engine blender feel little easier bcuz i was little familier from st so i st making engine taking refernece from it as to mostly what i do is with ai or without i first understand math etc bcuz blender have too math etc but i left the part module and crazyspace type things and focus more on eevee and rendering i know devlog is less bcuz there nothing to say my self i don’t feel like it too confussing but some after asking maintainer etc i was able make pr and some get merged link https://github.com/blender/blender/commit/c706f68c68789be7a0576e0df8509f2b8388be8a https://projects.blender.org/blender/blender/pulls/160821 https://projects.blender.org/blender/blender/pulls/160420 https://projects.blender.org/blender/blender/pulls/160382
i contribute to blender more for giving support for Android . So mostly i wrote fallback in vulkan and some other things . it was hard for and many time i forget to log and devlog but that it soon u will see android support . ref https://projects.blender.org/blender/blender/issues/162559 https://projects.blender.org/blender/blender/pulls/163126 https://projects.blender.org/blender/blender/pulls/162820 https://projects.blender.org/blender/blender/pulls/163630 https://projects.blender.org/blender/blender/pulls/163398 and this my last ship after that i will turn 19 year old at 14 sept soo byye :)...
|
1792846534.9036105
|
1792932934.9036105
|
|
29967
|
Trivia Game by @starkiller261 | Stardance
|
starkiller261
|
2
|
34.0
|
82
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T16:52:41Z", "hours": 22.0, "multiplier": 1.59, "payout": 35, "blessing": "neutral", "text": "NO AI– completely coded by hand. Spent 20 more hours on this new redesign following the recommendations from my last ship about changing the ui. This is a self hosted kubernetes cluster and full stack website with a flutter ui, Spring Boot backend, connected using a RESTful architectured api. I also used postgresql to store user information and that was seperately hosted using supabase. I then used tailscale to tunnel traffic to my home lab setup. It all works be allowing a user to sign in with jwt authentication through the spring boot backend and generating trivia questions through the open trivia database api.", "repo": "https://github.com/petevass/Trivia-Generator", "demo": "https://stardance-frontend.tail5b0cb9.ts.net/"}, {"ship_num": 2, "ts": "2026-07-22T02:52:42Z", "hours": 12.0, "multiplier": 4.01, "payout": 47, "blessing": "neutral", "text": "This a fullstack app using the spring mvc framework which allows users to test their knowledge to the limits through the variety of trivia topics and questions in the app. The webstack is a Spring MVC, Thymeleaf, and Postgres app with supabase used to host the database and ngrok used to tunnel from a self-hosting rig", "repo": "https://github.com/petevass/Trivia-Generator", "demo": "https://stardance-frontend.tail5b0cb9.ts.net/"}]...
|
[{"post_id": 46589, "ts": "202 [{"post_id": 46589, "ts": "2026-08-13T22:36:31Z", "hours": 6.3025, "text": "Finished Game Play UI"}, {"post_id": 37423, "ts": "2026-07-30T04:01:22Z", "hours": 8.8994, "text": "Working on the Leaderboard"}, {"post_id": 35331, "ts": "2026-07-26T17:26:18Z", "hours": 6.865, "text": "New Flutter Frontend in the works"}, {"post_id": 32041, "ts": "2026-07-20T22:33:58Z", "hours": 3.5997, "text": "UIs Finnaly Done"}, {"post_id": 31269, "ts": "2026-07-19T15:23:08Z", "hours": 4.86, "text": "Trivia API is finished, now I just have to make the frontend"}, {"post_id": 29885, "ts": "2026-07-17T01:32:18Z", "hours": 3.2933, "text": "Just finished configuring my data base and jwt authentication system"}]...
|
Title: Trivia Game by @starkiller261 | Stardance
Title: Trivia Game by @starkiller261 | Stardance
Devlogs:
Just finished configuring my data base and jwt authentication system
Trivia API is finished, now I just have to make the frontend
UIs Finnaly Done
New Flutter Frontend in the works
Working on the Leaderboard
Finished Game Play UI
Ships:
This a fullstack app using the spring mvc framework which allows users to test their knowledge to the limits through the variety of trivia topics and questions in the app. The webstack is a Spring MVC, Thymeleaf, and Postgres app with supabase used to host the database and ngrok used to tunnel from a self-hosting rig
NO AI– completely coded by hand. Spent 20 more hours on this new redesign following the recommendations from my last ship about changing the ui. This is a self hosted kubernetes cluster and full stack website with a flutter ui, Spring Boot backend, connected using a RESTful architectured api. I also used postgresql to store user information and that was seperately hosted using supabase. I then used tailscale to tunnel traffic to my home lab setup. It all works be allowing a user to sign in with jwt authentication through the spring boot backend and generating trivia questions through the open trivia database api....
|
1792832013.8594046
|
1792918413.8594046
|
|
30039
|
Pirate Cats by @Vishy | Stardance
|
Vishy
|
2
|
82.0
|
1600
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-15T23:16:06Z", "hours": 5.0, "multiplier": 19.74, "payout": 104, "blessing": "neutral", "text": "Second Ship for Pirate Cats. In this ship there have been many changes to the games. Some changes include making instructions/tasks clearer, many visual changes, and easter eggs/new features. Many of you guys said the instructions were not clear so I spent a lot of time going through to fix it, and made it more clearer here and there. Also you guys said to put space to skip, so I added that now you can just zoom through the text (if you please). There were not any bugs but some items that were not connected allowing you to not see the bubbles, making some visual fixes like the shells was so blurry and there were some fade in’s coming in really early. Then I added some easter eggs and new dialogue for you guys to find. I hope you guys enjoy the new and improved version!", "repo": "https://github.com/justvishy12/Pirate-Cats", "demo": "https://vishyyyyyyyyy.itch.io/pirate-cats"}, {"ship_num": 2, "ts": "2026-08-01T23:26:58Z", "hours": 77.0, "multiplier": 19.55, "payout": 1496, "blessing": "neutral", "text": "Welcome to my ship of Pirate Cats. Pirate Cats is a 2d godot interactive game using point and click and other buttons such as arrow keys and space. This was the most complex game I have ever built and I have learned so much from it. This game has taken me over a month to build and I am so proud of my self. From learning that there are other ways to create assets (like figma) to how to create save manager (saving the users progress) this was a very fun game to build. Building this game was not so easy, as it required alot of logic, and some of that was repeating so I had to keep rechecking it. Also there were some items I did not know how to use so I had to do research. As this game is only a point and click I am sure you guys will find it entertaining, as I spent a long time on making this good. After building a game so long, and finishing, I realized I want to expand on this! So this is version one where I have your guys feedback! So I can improve my game and add a hard mode where you have lives and other suggestions you guys have. This game has tested my patience as I have spent countless nights coding and building this game from scratch. I have learned so many things that I previously did not know. I didnt know a panel takes mouse input or that there were sliders, those were the easy things to conquer. But items such as creating a full on working save manager took some time to understand, or creating a full fishing minigame, with different sounds and other cool features. I am sure you guys will love what I have put into this game. It also makes me want to learn how to use figma more. From playing minigames on the ship, to steering a ship, to helping the cats escape from crabs, this game has great variety. So who is ready to help the cats (and of course a parrot) and find their treasure!", "repo": "https://github.com/justvishy12/Pirate-Cats", "demo": "https://vishyyyyyyyyy.itch.io/pirate-cats"}]...
|
[{"post_id": 47246, "ts": "202 [{"post_id": 47246, "ts": "2026-08-15T01:34:45Z", "hours": 1.3317, "text": "Captains Secret??? I designeed the figma cat for the captain, along with the frame, then implemented the photo/frame in godot behind the chair in the captains room. This is a relatively short devlog as it is just one added feature that I think makes the game cooler. Figma For the figma first we start off with creating the cat, it is the same as usual, I don’t use the pen tool because it is very unconsistent, anyways we start with the head then the body then add legs, one thing about figma is they dont have vertical and horizontal align just horizontal with items, they should have an option to enable a grid. Anyways for the secret I figured I would make it contrast the captain ( we are talking about the cat) the captain has textured and not very furry fur, but I made this cat have furry skin/fur, and not textured, and kind of short/tall (depending on which cat you are comparing it to). Anyways I used the Pen tool to create the frame as it is easier and faster, even though the alignment is not perfect, it is hard to see just from the human eye, Godot To input this in godot we have to get the image, so we upload it into the file system then I had to re export the chair (seperatley) so I could have it like the photo is behind the chair and the user can press the photo (only the part sticking out) then the captains text plays. This is like a secret and for you guys to find out, so good luck and go try it out!"}, {"post_id": 44656, "ts": "2026-08-10T15:53:19Z", "hours": 3.9511, "text": "Recommended Fixes Hello everyone I just recently shipped and I was really happy with the votes I got so thank you to everyone that supported me but with all the suggestions you guys gave and some of mine that I knew i had to do, I have fixed up the game. Before I get started the godot wakatime extention is broken so now I have to use lapse which makes it harder for me because I have to do the whole recording in one sitting and I cant do some work close it and continue. The video attached includes a few of the fixes and I will start using paragraphs in my writing. But without further to do lets get started. List Of Fixes With all you guys said I have made a list of fixes such as during the cooking scene it was not clear what to do after you made a plate so at the end of the training round I added a arrow so that users can try it before they are on their own. Second There is this flag in the powder monkey’s area, which is side ship view 1. When the flag raises its fine but it does some bugs when coming back down and the way I structured it was weird so I deleted all the code and had a area 2d mouse enter and exit, and I start the animation one 1 speed when they hover over it and when they let go I put it on -1 speed and play it. This makes it look like you are raising the flag and when you stop it goes down. Another thing was all the shells in that scene were blurry. I forgot what did but in figma I think the items were way to small so when scaling up t was very blurry. Also for the space star scene when the user gets it wrong the dialogue for it says that they found the island but then says they should set sail tomorrow, I had the order of items wrong so I flipped them (in the dialogue) and made it stop 1 line earlier in the code. Also after the user gets 3 constellations correct to go to the island it goes to the scene fades in and out then next scene then fades in and out and same for third scene. The problem was that it was making things visible after the fade out finished, it should have been doing it when fade in was done so when fade out was done like you were traveling. Skip text!!! I know this is a big one, so I added it, so I had a line of code that was like if event.is_action_pressed(\"ui_accept\") and !typing: So I just flipped it so that when the dialogue is playing and if they call it it makes a variable true, and in the code where it is playing the text out (its a for loop) I break the for loop and make the ammount of characters visible the ammount of characters there are. Then I also made all the text that says space to continue, to space to skip. This one I did most recently but it was with the crabs, I added a randomizer for the audio so when they shoot the cannons, I just made a randi for -0.1 - 0.1 and added it to the pitch of 1 to the audio stream player so it was random. I also made a new scene for the explosion boom like visual effect and made it fade in and out. I have also commented all the code to make it easier for you guys to understand! That is all I have done and will always be looking for more suggestions to do more work, thank you and hope yall enjoy!"}, {"post_id": 38867, "ts": "2026-08-01T13:04:48Z", "hours": 2.4856, "text": "Finishing Touches Hello everyone we have finally finished Pirate Cats. After weeks of coding, building and testing, we have finally come up with a playable version. In this version everything is finished, but there is only one mode. So as this is the last devlog for this ship let me explain what I have done this time. Bugs After game testing we found some bugs out like there was no music for the cooking puzzle, or the sponge was not visible for the sponge scene, or the button in the island was not working, or the typing settings broke down. So let me start each of the bugs and how I fixed this (all these bugs came up yesterday as I only post a devlog once a day). So first the cooking music puzzle, I forgot to play it in the code, this was a simple fix but the other ones were not. For the scrubbing scene the sponge was not visible, in the code again I forgot to set it to visible but then I found another bug from fixing one it was that I need to turn it back after the scene otherwise it will always stay like that. So I figured out you have to set the cursor to null, that way it doesn’t put a preloaded asset and just has the normal one. This next one was tricky, on the island minigame where you are digging after you finish digging, sometimes you can not press certain parts of the button (to finish the dialogue and go to the end scene) I was so confused on what to problem was, then after some time I realized it only happened because I was initiating a scene, and I thought that it was over it, so I set some of the items including the buttons z index near 1000, because there was only going to be like 100 of the items. So then I thought the button for the sand was over, but it was not and I disabled it after the treasure was found, so I was so confused, then I realized there was a panel in the scene being initiated. So then I finally thought dont panels take the mouse input? And that was when I realized that I had a random panel there stealing the mouse, so i set the mouse input on it to pass, so it can not take it. Finally the typing settings. I learned how to use sliders, but there was one thing I could not figure out, how to flip a slider, so for the text slider, it was fast (the bottom one) to slow (the top one) instead of slow to fast as a slider should be, but then when assigning the value I put a - infront of it, I thought this fixed it because when I went in the speed was on the slower side but max speed. Then I tested it, and I could not change the speed, the problem was when you do - it puts the lowest setting meaning it can not be put to the highest, so I had to put it back and I still don not know how to flip a slider, but that is for next ship. See you guys!"}, {"post_id": 37977, "ts": "2026-07-31T01:49:51Z", "hours": 4.8392, "text": "Finishing Touches (Saving Special ✨) Hello everyone, I am getting close to shipping this project and I have done the finishing touches today which is so much, and I just have to get my fellow game testers up and test the game for any bugs or anything. I know there are a few here and there, but I should have fixed them when I started, doing it now will be too much, and I will fix it in the second ship. So without further to do lets get straight into it. Loading Scenes The loading scenes are the guide scene, preference scene, and the loading part itself. So now in the preference scene there are volume sliders for the different things like sfx, audio in general and bg music. And there is also a slider for the speed on how fast the text goes by, since you can not skip it i thought \"SHould it not be useful to just have a speed, so fast and slow readers can adjust it to make it feel more like a game? So then I added a slider, all the settings are saved I think, but since this is just finishing the logic and not the testing part I will not know for a fact. Overall the ui looks great, and mainly for the save manager, I was working on connecting the variables throughout the different scenes, and when they load a game, based on where they are in the game (like progress wise) then it will put them in the corresponding scene, this was not hard but I kept on forgetting what to add until I started wroking on a different scene. Other Fixes So one major bug I had was previously when I was working on the map scene, I thought I saved the progress but I didn’t and then I committed and all my progress was gone, so I had to spend some time today fixing all the bugs there, and then some of the dialogue in that scene, I thought for some reason was inputted incorrectly, then I proceeded to re fix the whole structure adding lines to the dialogue and then I realized it was wrong and had to put it back, since changing dialogue doesnt sound like a big deal, you have to understand, I changed all the variables because of that. Anyways that was the last thing I did today but lets talk about some other progress I did today. Audio The audio for the game was all recorded today, and everything is handmade (like in the meaning that it is not taken from somewhere else) the only thing that is going to be used for the game that is not handmade, is the background music (im not a good artist, but I am a musician so I am sure I can learn how to do it) and also the fonts, the fonts used for this game look amazing, and I will use it again for all my other games. After making the audio I had to implement it everywhere such as keyboard noise for the letters typing on the screen. Or the crabs moving, or the sponge scrubbing, or the cannons firing going like \"Boom Boom\" and other stuff. Anyways that summarizes most of the things I have done today, and tomorrow I will official test the game and get ready to ship, bye guys!"}, {"post_id": 37400, "ts": "2026-07-30T02:48:14Z", "hours": 7.0306, "text": "Bugs + Fixes Hello everyone, I am getting very close to finishing Pirate Cats and will probably only work on it for a few more days (like until the 31st then ship on the first). I have big changes coming in after this ship. So today I will talk about to big progress and what I will be working on! The Game Tester So I had a game tester come and try my game, like obviously not everything is connected, but I had him try the individual scenes, and lets just say I was not happy. Before you guys all start talking about how I hired a Professional Game Tester with Money for a project for stardance, relax. The game tester is my friend, he has tested all my projects and lets just say, I am so glad he does. Anyways he found some bugs and it took a while to fix it (considering I was on a time crunch and had to go out somewhere today and the due date (the end ofthe month) is coming soon ). So first of all he tested the back ship scene which is the video linked, so what is supposed to happen when u click the cat, it is supposed to talk about either if you have completed the minigame \"Oh come eat supper again\" or if you havent \"Welcome, want to help me cook\" and then go to cooking mingame, but all this is set in one array of dialogue, and I call the dialogue from either number one or two and then I only make it go to the next dialogue if it is not one of the ending numbers for talking other wise I just make it not visible. The bug was that I needed an if statement that checked if it was an ending dialogue, and if not it goes to the next. This is the one of the least complex of problems, the second is with the digging scene. So the problem was after it started the dialogue explaining how to play, it went on one dialogue extra, I realized I had included one more so I just deleted that including code, this was the least of complex, but the third bug is massive. So the bug was after the cooking scene, once the dialogue finished (which is the tutorial) the user couldn’t play them selves. I slowly realized the problem was that it worked before and when I included the dialogue, it broke, since the tutorial completely changed how I had built it. So I had to go one by one and fix every little thing, first after you completed the tutorial, it automatically sends you back, but then you cant even get another plate, so I had to fix that, then once you get the plate I realized there was no order, then I made it so before you go back the order comes, then I realized after you got the plate nothing happens, its supposed to go to the next scene, then it went to the next scene which was getting the sand castle, which worked fine then it went to the scene to get toppings like the shell and flag and star, and that worked fine, then I went to the check scene, I realized there was no way to get back to use up the other plates. Then I fixed that, and when I went back, I realized the plate count never changed, for some reason in the code I was setting it back to 0, so it never changed how many plates the user did. So after I fixed this, I played it again, then I realized the second time you do it, the first times items that they picked were not visible and disabled, so in the reset code (after one full round) I made sure everything became visible and not disabled, then because of this I finally fixed it! Work I need to fix the star scene next, so it plays what happens before they go and after they get it right. My goal is to do as much hours as possible because I am trying to get the framework 13 in this ship, and hopefully this project will do it. After I do this ship I will work on a hard mode for this game, so if users want a challenge they shall get it. Anyways that is it for now, see you guys next devlog!"}, {"post_id": 36182, "ts": "2026-07-28T03:15:49Z", "hours": 5.3925, "text": "The Cats Can Now Talk? Hello everyone, it has been 4 days, and I have done a lot of work on the game for the past few days, and am getting very close to submitting it. So I have finished the last mini game, which is finding the treasure to save the cats (or aid them depending on how you take giving cats treats ) and now I have implemented the dialogue part such as the cats and you talking, and the map being found in most of the scenes. So without further to do lets get straight in it and talk about the minigame. Digging up treasure So right now I have made the basic part of the treasure scene, it still needs to be decorated and I need to push the borders out a little but to start its good. It will not be in the video posted but it will be tomorrow. So how it works is I have this scene called sand, it is an area 2d and everything is not visible besides the smallest hole and smalest pile of sand, and you can press the area 2d 3 times and it will have the medium pile and hole and large pile and hole. And in it, I have it calling functions from the main scene. So in the main scene I call the scene for every time the press a button (the whole screen consists of 6 buttons, if they dig fully and that button is the treasure one, then you get it for the cats) it mainly consists of buttons and randi functions and caling functions from two different scenes. Cats are Talking IF you want to see the desert scene or the cats talking you can see it on https://www.youtube.com/shorts/6k6MWErv86k , anyways the logic for this is we call next dialogue, and this checks the index and then adds one too it and goes to the next. Then if it is cat speaking, it waits for the user to press space (skip) then it adds one to the index and plays the next if it is the users turn to talk (the user can talk using a button they press) then they press a button and the text becomes the dialogue and then it adds one to its index and then plays the next. Then when the index is the second to last I stop it from playing anymore dialogue. Then when the user completes the task like sorting then it makes the map visible and then it plays the last dialogue (when they press the map because it is a button) and it says something like, THANK YOU SO MUCH FOR FINDING IT, PLEASE PUT THAT PIECE OF MAP ON THE CAPTAINS DESK then that will add, and once you have all the pieces you can put the map together. That is all I have to say, and I will do alot more in the next few days, as I need to finish up dialogue and work on the save, and global variables. But for now, bye guys!"}, {"post_id": 34058, "ts": "2026-07-24T14:49:39Z", "hours": 6.0272, "text": "The Minigames Are Coming To An End… Hello everyone, I have completed two more minigames for my game pirate cat, and only have one last game to create. I have been very productive, and learned how to code more efficiently, as I finished two minigames yesterday. Without further to do, lets get into the first minigame I finished. Scrubber Cat By the name you might get what the scrubber cat does, the scrubber cat is the cat/pirate that will be scrubbing and cleaning the decks/the ship. So for a minigame I have created one where you scrub the dirt to get rid. I still need to make the colors more vibrant but the logic is done, and I did have some few bugs but we will start about the game. So for the game, for each round there are a certain amount of stains. Each stain gets its own button and each button has mouse entered and mouse exited which goes to a variable. The variable is either false or true. So if mouse entered the variable is true otherwise it is false. Then in the beginning I call round 1, in round I check if the items are visible, then I check if the mouse entered is true and if the mouse is moving, because I have a variable called mose pos, and in the ready is set it to the mouse position, and then I compare it with the current mouse position when round 1 goes, then i set it to mose pos. Then if the mouse is moving, and the variable is true. The stain looses some of its visiblity, like its going away. I am going to find out how to make the cursor a scrubber, but for now its not. And the user will do this for 3 different round. Constellations So if you saw the video you might have saw the constellation game, I recommend you watch the video to understand what I say. So there are two different types of constellations, human constellations, and cat constellations. So the goal is the user to always pick the cat constellations. So there is 2 sides, one side is the cat and the other is the human, the sides will switch, and you have to pick the cat one, if you dont, that round restarts. I had so many bugs with this, and the main one wasthe timer. In godot I had no clue that you have to stop a timer after it timed out. This created a majority of the bugs. And since it was basically the same logic for most of it, I did copy and pasting and because of this I forgot to change some of the variables, so it did changes to things that did not need changes, and did not do changes to things that did changes. I am going to finish up this game soon and submit it. Bye guys!"}, {"post_id": 33306, "ts": "2026-07-23T03:10:54Z", "hours": 7.845, "text": "Powder Monkey (Major Bug Not Fixed) Hello guys, this devlog is going to be max characters and if its not I have so much to complain about… I have worked so long today and dont so much, and I think that everything I have done was very great. So without much to do lets get into todays progress. Before Powder Monkey Mini game So I am going to talk about what I did before I started the powder monkey minigame. So today, before I ate lunch I was working on other stuff, like not minigames but the travel, so now users can travel around the boat, to the parrot area (in the front), powder monkeys area (going to be discussed in todays devlog and its on the side) the back of the ship which has both the cooking cat, and also the fishing cat. And then there is one more side of the boat, which is the other side, side view 2 which has the scrubber cat (I am going to save the scrubber cat for tomorrow when I start working on him and his mini game). So now that I have explained what I spent the first 1 and a half hours on lets get into the Powder Monkey Minigame. The powder monkey minigame Okay guys now we are going to start talking about the powder monkey’s minigame. So if you see the video you might start to see where the video game is going. But if you don’t understand the video or have not seen the video (due to personal reasons) then let me explain. Ever see those fake mobile ads that don’t let you play the game but give you a preview? Well I am building that fake mobile ad, im not trying to say it’s fake, but this time you can actually now play the one level until you beat it. So the game is like you drag the different colored balls into the different beakers and try to get beakers with only one of the same colored balls. So I spent 5 hours creating the logic, then I realized i made the game wrong 😭 Then I had to get rid of this one part of a line in 45 lines, then I deleted it and then it didnt save and I had to redo it, and that took 30 minutes already, then redoing it made it an hour. So the line I said that I deleted checked if the when placing a ball (we will call the different objects you can move a ball) so when moving the balls i made it so you had to place it in either an empty beaker or ontop of a ball of the same type. I didnt know that it could be placed on different types. So then after deleting that line of code when running there are still some bugs here and there that dont allow one of the coconuts and one of the ballons to move. I have checked 2000 LINES OF CODE 15 TIMES, MAYBE MORE. And me not finding this bug is annoying because I still have to write the check feature. Anyways I will try to fix the bugs, but here is yesterdays video https://www.youtube.com/shorts/7UFbDQq-l0Q and by guys see you later!"}, {"post_id": 32344, "ts": "2026-07-21T13:34:14Z", "hours": 5.2003, "text": "You can Finally Fix the map Hello guys, we have spent another 5 hours on this game. I have got to say, I am starting to love this game. Day by day, the more I do the more I get drawn in. I have got to say at the beginning I didn’t really feel like doing this game. But now after I see everything I am amazed. As usual if you want to see yesterdays progress on the captains room you can see it on Vishy Labs or https://www.youtube.com/shorts/0w2feNxZQ5A The Map For the past few day’s I have been working on the map scene, if you see it, it may not look complicated but I have spent longer than the fishing minigame to create this, let me explain why. So there are 6 maps, and 6 panels. One panel for each map. If you place a map in the panel, either that is the right panel to place it in or the wrong one. There is over 40 variables for this scene, since there are 6 buttons, we have 6 of placed 1-6 and 6 of map 1-6, (now these are for dragging the maps) 6 offsets 1-6 6 dragging 1-6, 6 inzone 1-6 and for the panels 6 pan 1-6. So this makes it hard to keep track of all of them. And let me talk about the logic, so when you press a button like hold it down you have to change the position with the offset and the mouses position, but now we have to check if the piece of the map is intersecting with the panel, and if it is, which panel is it intersecting, then if there is already a panel there. And it gets ever more complicated, if there is a map intersecting or above 2 panels, then you have to subtract the values from all the panels and see which one is the closest from the center of the map, because in godot for some reason it likes putting its point in the top left. And I have made over 8 different functions not including the button up and down or godot made functions just for this. This has got to be one of the most complicated minigames yet but im glad I did it. We have function snap map which gets the center of the panel and places the center of the map there, and this only works if that panel doesn’t have a map and the map was placed there. We also have func_panel_taken you input the panel which in my case is closest because that is what I have put for the closest panel in the code, and you also input which map your moving, so it ignores that when it does the check for intersection. But the process_function is the most complicated to keep track of. Since it does 60 times per second, you have to make sure everything doesnt run more than once by having variables that become true when the condition is false. And you have to make sure what your doing is supposed to be checked, because if it is not and the values get changed, then you have to find a new way to implament it. If you guys saw the attachment I have showed a little of the sideview1 and I will get more into that tomorrow. Bye guys!"}, {"post_id": 31767, "ts": "2026-07-20T12:37:58Z", "hours": 3.7061, "text": "Captain’s Room + Ship Hello everyone I have done 7 hours yesterday and devloged 3 of them with the crabfight and the others hours now. I have been very productive and had a lot of progres on my game pirate cats. I have finished major parts of scenes. Captains Room First I would like to talk about the Captains Room, this is the first part of the video and you see a lot of things start to move when I put my mouse over them, that is the hover. You can do it with a button 2d with mouse entered and exited, in the start I had it as mouse entered meant animation played and mouse exited mean animation stopped on a button. and if you watched the video, you saw that my camera moved when the mouse was on the side of the view. To do this I used a camera, and put two button 2d’s on the edge, and I had mouse exited for the left side was left camera move = true and I set it false when it was exited, I did the same with the right side button and had a variable called right camera move = false . You might wonder how just having variables would move the camera, it doesn’t. In the process code (which runs 60 frames per second) there is this var delta, which means run at 60 frames per second. So for the camera to move left I did $Camera2D.global_position : Vector2 = -1 * Speed * Delta I could set speed to whatever I wanted such as 300 and then when it was for the right side I just switched -1 to 1. This was all working I had no bugs, but in the scene tree the camera is at the bottom. So the buttons are children of the camera, and there are other buttons above it such as the ones I use to hover. So when I was moving the camera my cursor landed on one of the other items that hover, and the camera stopped moving. It was very annoying and I didn’t know how to fix it. It turns out you can use area 2D’s they have a mouse entered, mouse exited, and a click function. The only difference is you can not see the area 2d’s like if you are putting an icon or text or style on the button like a panel you wont see it. But luckily for me I but the button over the assets. So this was a big problem I solved. Back of The Ship I have started working, just the back part. That is the second part of the video, when it goes to that new scene after pressing the arrow. I have the fisher and the cook there. So as you see the arrows are what guides the players, and there is a camera and some items to hover at the back of the ship and I am using area 2d’s. Game Information If you want to see my crab mini game in Pirate Cats, or previous history you can see it on Vishy Labs on Instagram https://www.youtube.com/shorts/dKRGESaI7ss I will continue working on the map part, where the user has to put the map together after getting all the pieces. See you guys later!"}, {"post_id": 31240, "ts": "2026-07-19T14:25:01Z", "hours": 7.3289, "text": "Crab Fight 🦀 Hello everyone it’s getting close to the day when I get to submit, Pirate Cats, and as usual if you want to view my game’s previous progress you can see it on youtube https://youtu.be/XgYkeBUyqbE?si=mVQkA0oVtBkzSB1x Well now I have currently finished the crab fight. I usually only devlog after the day is done, but for pirate cats I devlog when I finish one minigame, so now today I have finished the crab fight minigame, so I will be explaining all about it. I dont have the dialouge and the text or the home pages or settings done yet, but I will be submiting on the 30th. I think i might need to go back and fix the assets for some other items, as like the fishing game the place holders are still there and the cannon doesn’t really look like a cannon, but let’s get started and talk about my progress. Crabs So now it is time for me to talk on what I have been doing for the past 2 days, well I have been working on the actual minigame as always, if you watched the video and have any suggestions please comment it, I will take it into account! So for the crabs, there are 3 crabs, they dont really do anything just different colored hats for variety but what happens is that there are 3 groups, left right and middle, I do a randi function randi_range(1,2) if it is 1 the crabs in the first group are not part of the first round if it is 2 they are part of the first round. Then I do an function for each group and do an if statment to see which crab color should be visible then in that I do the calculations. Alright you might be wondering, what are the calculations? Well the calculations are how much the crab has to move each time. So I have to take account the height of the waves, how much room I have between waves, and how many times the crabs will pop up. So in the code I make the crab go up, then go down. I use the tween function to move the crab, since using an animation player and you can only run 1 animation at a time, it would be a pain to keep track of all the animation players, so I use tween as I have said before tween moves the item smootly so it is not teleporting. Then I do either of two things, one if the crab gets all the way to the bottom then the players screen flashes red, then it repeats the process. Cannon So in godot, you can add inputs, I added left, right, and space. So then in the code I did in the process, using direction and inputted left and right. The first one inputed is -1 second is 1 and if both or none is being pressed then direction is 0. This is built into godot so I got lucky, because it saved some time in the coding process. Then I have a speed, which I set to 200-300. Then in process I did ~$Cannon.global_position = direction * speed * delta` this makes it so that it moves every esecond something is being held down. Now that I have explained how the cannon is working I will explain how the cannon ball works. Cannon Ball So everyone, the cannon ball is a new scene, I can just call it every time and this makes it so I dont have to make alot of them, because I don’t know how many the user will use, so it would be hard to make so many. So in the new scene I have a panel on the cannon ball, as my other mini games. The panel on the crabs and the panel on the cannon ball interact, this happens when they are in direct contact, I check if that crab is visible, and then if that crab should be caught, it can only be caught if it is above the wave (if it is not above the wave then it is hiding but can still be triggered, not visible) then I make that group not visible, and do it for all the other crabs that got hit. I use tween to make the cannon move up by 300. The work I have done in the past few days were alot more complicated, but I will keep doing more, my goal is to reach 50 hours by the end of this month and submit. Thank you guys, if you want to see progress its Vishy Labs on both youtube and instagram. See you guys!"}, {"post_id": 30207, "ts": "2026-07-17T16:32:01Z", "hours": 2.5833, "text": "Parrot Feeding Time 🦜 Hello everyone it has been some time since I have posted a devlog, like 4 days but here I am with some exciting news to share. I have finished the parrot feeding scene and made the check feature for the cooking scene. If you want to see what I did it is on https://youtube.com/shorts/XgYkeBUyqbE?si=7PP_u8wK7GwFHCAd Parrot Scene For the parrot scene the user is supposed to feed the parrot cookies, because i dont really know anything more interesting if you guys do please tell me. So to feed the parrot cookies I have to make the cookies dragable so they can give it to the parrot, and doing this will play a cool extra animation of the parrot chewing. Since I already did the cooking scene making the dragging part was already really easy, since I just add a button and a panel. I told you guys last time what the button does it has the button up and down function so it can detect when the button is being held down and released and when the mouse is moving so I can drag the item. So then I have a panel on both the item and the parrot, and I check that when button is let go and they are making contact, then if they are it is not visible and the parrot chewing animation plays, and I did this for pretty much all of them. Cooking Scene So we did some more things for the cooking scene, so I was working on a check feature, then I was moving all my data to a new computer, and I accidently commited on both computers for same scene to github, and they both overrid eachother and all my progress was lost, then after spending some time researching I realized I can pull back commits by reverting and I got my progress on the checking part back. Then after this I checked if the items on the plate, and assigned each one to a variable, if it is visible or not then this variable is true or false, and i did that both for the order and the plate. The actual checking feature is it checks if both of the variables for the same item are the same then if they are the light for that item becomes visible, I show it in the video attached so if you want to see please watch. Future Steps So there are a few things I need to make and I need help from you guys, so what should the powder monkey do, and what should the captain do, it was thought that the map puzzle piece will just be in the captains poket, and users will have to set up the cannon for the pirate monkey, if you guys have anything else more interesting please share! Bye guys!"}, {"post_id": 28060, "ts": "2026-07-14T02:41:44Z", "hours": 5.6961, "text": "Cat Cooking Hello everyone, it might be a day or two since I have devloged, since I finished the fishing game mechanics, I wanted to take a short break and now I am back and starting the cooking minigame for the cook cat whose name is BISCUITS Thats right everybody, lets give it up for our cook cat buiscuits, and for the fisher cat, I forgot to put names back then, so his name is now Minnow If you guys have any suggestions for names I will take it in for my game! So without further to do, lets get into Pirate Cats, Cooking! (And if you wanted to see yesterdays progress you can view it on https://www.youtube.com/shorts/XgLbwD1cwBg ) Logic If you saw the video (I put the link above) I made it yesterday, which is when I made the logic. So for each item, like the cakes shown in yesterday’s video, or the plates, sand castles, and toppings shown in today’s video. They all have a base node of a Sprite. But you might be thinking \"How can a sprite 2D be draggable?\" Well to make this possible, we added a button and code, so the button takes up the whole sprite space (where ever you want the user to be able to click and let it drag the item). So you add a script to your base layer, keep in mind you can do this to anything by just adding a button and script to it. In my script I had an offset, the global position and the global mouse position. I made the offset 0,0, which is where the item or sprite in my case starts off (Im just going to start referring the item using sprite from now on). Then on the button, you don’t do a button pressed signal, you do a button down and button up signal (this is to imitate the button being held down and dragged). Then you create another variable which is dragging and if you want you can have can_drag. When button is down dragging = true and when it is up dragging = false. Then in the process you subtract the offset from the global position of the mouse and the global position. And for the items to make them visible on the plate I had a plate that had all the items already there, and a panel. Because an area 2d does not react with a panel, every draggable item had to have a panel, and in their process it had when their panel interacted with the other panel, it will check if they already have it, can they have it, and it will do it, this will make the items on the plate appear and the off plate draggable’s disapear. Appearence As I have already told you guys, we are using figma. It makes the art look way better than my pixel art for other games. I guess it is just your opinion/the person. Anyways I think it all looks way better. But one thing that really weighed me down is that im not getting much support on youtube and instagram for Vishy Labs for progress on my game, and I was even accused of having my game as a copy. So I am persevering and making this game better than any game out there. If you want to support me I am Vishy Labs on youtube and instagram. Stay tunned for more progress!"}, {"post_id": 26273, "ts": "2026-07-10T23:34:22Z", "hours": 6.0039, "text": "MAJOR FISHING UPDATES, READ NOW Hello everyone, today is the best day for me! So many things happened and I can’t wait to share it. So please watch the video added below because it is basically all I did today. If you would like to know what I did yesterday, im on Vishy Labs on Youtube and Instagram , with that said lets get into todays progress. Fishing Logic I basically am done with the fishing game, but there were major things in the logic that had to be changed, and I would like to talk about it. So first I have different rarity fish. At the beginning I just made it so it pulls a random fish, but that doesn’t really aid the term rarity, and in the last devlog I was talking about how a fish was chosen, by the randi function. So to actually turn it into a rarity I just made the randi range longer, from 1-3 to 1-7, so the first fish takes number 1 2 and 3, the second takes 4 and 5, the third takes 6, the golden takes 7. Alot of places in my code, I forgot to change it because in the original code I had made it so there were only 1-3 so then in the new code when a number past 3 came, it didn’t know what to do and it ended there. I would also like to learn about this new thing I learned, clamping. $Outside/Slider.position.x = clamp( $Outside/Slider.position.x, 0, $Outside.size.x - $Outside/Slider.size.x this is clamping. There are 3 inputs, value, minimum, and maximum. You might be wondering how did I use it in my game. Well for the slider, I need to make sure that the slider does not go past the barrier/border/past the edge of the outside panel. Because if it does, it decreases the value of the game (by the value I mean it doesn’t look good for the user). So I just made the value the position of the slider, and the minimum is 0 and the maximum is the big bar, subtract the slider size (all x values). This all makes it so the slider can not escape the barrier, because I am changing the position with tween, so it moves, and since the position is manually changed it doesn’t mean that it can have contact with the collision body. I would also like to take about tween. Tween is built in godot, and there are many ways to use it, I just used it so that when I change the position of the slider it is smooth and I do not have to use an animation player ( animation player would not work because then in is all predictable). So for the tween I put what I want to smooth, and what duration, and then in the code I set the distance. All theses little features is what makes my game look better and more playable. And that is it for the logic. Fishing Visuals If you saw the video, I think you will be very pleased with the visuals. All of this is being made in figma, as it is much easier to make than libre sprite. So the waves are just the waves from the first scene, but just stacked. Then the brown stuff is not a dock, it is the ship (like you are on the edge fishing). Then everything else is pretty much self explanatory. So to make it replaced from last time, the only thing I did was add a background, change the bobber, and scale the fishing line to be attached. And because of this, in my code I am resizing the button, so the user can not press on the dock when fishing but when clicking for the actual game part, they can. That is it for today, by tomorrow I am pretty sure the whole fishing mini game will be done, with the fish popping up with a banner, and I will most likely be starting the next game."}, {"post_id": 25612, "ts": "2026-07-10T00:03:03Z", "hours": 6.6575, "text": "Pirate Cats - Fishing Hello everyone, today was a big day, as you can see I spent over 6 hours again. I have alot to say, alot to announce, and a new limit for me while I also unbox new scenes. If you want to check out my progress you can see it on Vishy Labs , on Instagram or Youtube, https://www.youtube.com/channel/UCv318x8ryMI-l4kxYvwhLog Bugs Well since I just started there were not many bugs, but there was one very annoying one that bothered me so much. Everything in Godot was blurry. At first I thought it was because the assets were getting made small and imported, but that was not the case. Even after scaling the assets up by a lot and re-importing it and scaling it down, you can tell it was still very blurry. I thought all the settings were correct because I put the texture/render to linear, because it is not a pixel game, so linear is the right texture for our game. But it turns out it was the view port… I set it to view_port instead of canvas_items . View port is meant to match you screen size, while canvas items matches your godot size (how you import it, basically how you make the game, just keeping the same size), now that this bug is fixed (or should I say mystery solved) let me get into what progress I made today. Fishing Mini-Game So now it is time to get into our fishing mini game. If you saw the video you either might think, “wow that is hard to build” or “that looks so bad, what even is that”. Well if you were impressed, im just building a blue print, but if you thought it was bad, don’t worry, im just planning it out. You might wonder what it is or how it works. So this is a fishing mini game, the goal of this is to find the fish with the map, and use the map piece to get the final map which leads to the treassure (I covered this last devlog) if you want to know more on how my game will work, read my last devlog. Anyways, so in this game, the user is going to cast the rod (fishing line) and then have to wait for the fish to get hooked, and when it does, they have to beat the mini game. The minigame is hard to understand but if you watch the video it will make sense. So the mini game is that there is a slider, and it is moving, left (constantly) and you goal is to not let it stay out of the safe zone for too long, or let it touch the border once, if it does you lose that fish you will have to fish more, and that fish wont add to your stats (how many fish you fish). So basically what I did I made the whole screen a button, when the user clicks the screen they cast the rod, if they click again and there is no fish caught they reel the rod in (bring it back). If they catch a fish, there is a function, it is either the fish starts to jerk, or moves slowly. If the fish jerks it will make the bar move left 40 (different based on level of the fish) if it is slow moving or idling, then the bar moves 15 (might be different for the fish types). To make this look smooth, since I am not using an animation player, I am using the godot function tween, this allows it to move smoothly and not be rapid, making my game more like a game instead of a twitch. I am mainly using randi functions (randi functions are basically random functions, if you input items into them they will choose a random item from that list). So I am randomly choosing, the time the user waits, and if their fish will be jerking or idling at the moment. Now that I have explained this I want to talk about my save manager."}, {"post_id": 23834, "ts": "2026-07-07T00:32:57Z", "hours": 5.9386, "text": "Introducing Pirate Cats Hello everyone, I am officially introducing pirate cats. Pirate cats is a 2d game, including pirates and cats with the theme of summer. Users will be helping cats find their long lost tressure (Cats love this). I am of course making this game in godot, along side with pirate cats I am also working on a hack pad and I am having a lot of trouble, so this month we are staying motivated! This game is still being planned but currently I have thought out alot of it and came up with a detailed plan which is still a work in progress. Ideas There were a lot of ideas in circulation and I still might include them but here were the ideas Cat Dress up Previously for another hackclub event called flavortown I made a game called demegorgon dressup, it was ment for the new stranger things season and it went pretty well. I was planning on making it like you give cats different accessories and fufill customer orders and that was going to be a part of the game. Keep in mind, I was planning on making a large long game. Idea number two Icecream serving I was planning on making an ice cream serving game, because ice cream relates to summer and you would have a time limit and put certain toppings on a cone. That was also going to be another part of the game not a full game. Finally my last idea Treasure Finding What if there were cats which were actually pirates trying to find treasure. Pirate Cats Finding Treasure Now that we came to the present idea that is in making, I will explain how this game will function, and currently its core features. In this game, you are not a cat you are the human. The human’s goal is to find missing pieces of the treasure map, help them defeat raids and invasions, gain loyalty and trust (may be a sidequest) and read the ancient language (english) which only humans can understand. There are different types of cats, and you must help them solve their problem so they willingly offer you the piece of the map that they somehow have. Currently the cats are Captain, Fisher, Cook, Scrubber, and Powder Monkey. Game Introduction The game starts you off looking at a moving ship with a pirate cat logo. Then you meet the scrubber cat, and the powder monkey rats you off. This leads you to the captain, which explains their map problem and you agree to help. You must defeat the crabs, this will be done by blasting cannon balls at them, possibly destroying the ship. Then you have to help the scrubber cat scrub the deck, and that helps you get a piece of the map. For the powder monkey, it is still being decided how you get the piece of a map, either you will untangle the ropes of the cannon, or set fuse to the correct barrel, and the paper will be lodged inside. For the cook, you must creat sandcastles cakes and cookies. There will be a map piece hiding behind a dish. For the fisher, you will be on the plank fishing, when a fish pops up you have to click them, one of the fish will have a map inside them. Also if you get the golden fish, you gains cats loyalty. The captains part is still being thought of, and if you have any ideas, it would be good. The captains parrot also has a piece, it needs you to answer a question correctly, and feed it, to get the piece back. After putting the pieces on the table, the human which is you will have to make sense of the ancient text and unscrammble the map. This leads them to find the ancient treasure making the cats happy again. Game Progress I have done alot of work, I dont have much space left to talk about it, but currently I have had the parallax 2d backgrounds made, so it makes the background look more live when the ship is moving past. Also I was spending alot of time today on working with the animation player so that when the menu is open, it will be clear so you can see behind it and the ship will be moving. I have much more to say but I have reached the MAX CHARACTER LENGTH, so I will explain in next devlog, bye!"}]...
|
Title: Pirate Cats by @Vishy | Stardance
Devlogs: Title: Pirate Cats by @Vishy | Stardance
Devlogs:
Introducing Pirate Cats Hello everyone, I am officially introducing pirate cats. Pirate cats is a 2d game, including pirates and cats with the theme of summer. Users will be helping cats find their long lost tressure (Cats love this). I am of course making this game in godot, along side with pirate cats I am also working on a hack pad and I am having a lot of trouble, so this month we are staying motivated! This game is still being planned but currently I have thought out alot of it and came up with a detailed plan which is still a work in progress. Ideas There were a lot of ideas in circulation and I still might include them but here were the ideas Cat Dress up Previously for another hackclub event called flavortown I made a game called demegorgon dressup, it was ment for the new stranger things season and it went pretty well. I was planning on making it like you give cats different accessories and fufill customer orders and that was going to be a part of the game. Keep in mind, I was planning on making a large long game. Idea number two Icecream serving I was planning on making an ice cream serving game, because ice cream relates to summer and you would have a time limit and put certain toppings on a cone. That was also going to be another part of the game not a full game. Finally my last idea Treasure Finding What if there were cats which were actually pirates trying to find treasure. Pirate Cats Finding Treasure Now that we came to the present idea that is in making, I will explain how this game will function, and currently its core features. In this game, you are not a cat you are the human. The human’s goal is to find missing pieces of the treasure map, help them defeat raids and invasions, gain loyalty and trust (may be a sidequest) and read the ancient language (english) which only humans can understand. There are different types of cats, and you must help them solve their problem so they willingly offer you the piece of the map that they somehow have. Currently the cats are Captain, Fisher, Cook, Scrubber, and Powder Monkey. Game Introduction The game starts you off looking at a moving ship with a pirate cat logo. Then you meet the scrubber cat, and the powder monkey rats you off. This leads you to the captain, which explains their map problem and you agree to help. You must defeat the crabs, this will be done by blasting cannon balls at them, possibly destroying the ship. Then you have to help the scrubber cat scrub the deck, and that helps you get a piece of the map. For the powder monkey, it is still being decided how you get the piece of a map, either you will untangle the ropes of the cannon, or set fuse to the correct barrel, and the paper will be lodged inside. For the cook, you must creat sandcastles cakes and cookies. There will be a map piece hiding behind a dish. For the fisher, you will be on the plank fishing, when a fish pops up you have to click them, one of the fish will have a map inside them. Also if you get the golden fish, you gains cats loyalty. The captains part is still being thought of, and if you have any ideas, it would be good. The captains parrot also has a piece, it needs you to answer a question correctly, and feed it, to get the piece back. After putting the pieces on the table, the human which is you will have to make sense of the ancient text and unscrammble the map. This leads them to find the ancient treasure making the cats happy again. Game Progress I have done alot of work, I dont have much space left to talk about it, but currently I have had the parallax 2d backgrounds made, so it makes the background look more live when the ship is moving past. Also I was spending alot of time today on working with the animation player so that when the menu is open, it will be clear so you can see behind it and the ship will be moving. I have much more to say but I have reached the MAX CHARACTER LENGTH, so I will explain in next devlog, bye!
Pirate Cats - Fishing Hello everyone, today was a big day, as you can see I spent over 6 hours again. I have alot to say, alot to announce, and a new limit for me while I also unbox new scenes. If you want to check out my progress you can see it on Vishy Labs , on Instagram or Youtube, https://www.youtube.com/channel/UCv318x8ryMI-l4kxYvwhLog Bugs Well since I just started there were not many bugs, but there was one very annoying one that bothered me so much. Everything in Godot was blurry. At first I thought it was because the assets were getting made small and imported, but that was not the case. Even after scaling the assets up by a lot and re-importing it and scaling it down, you can tell it was still very blurry. I thought all the settings were correct because I put the texture/render to linear, because it is not a pixel game, so linear is the right texture for our game. But it turns out it was the view port… I set it to view_port instead of canvas_items . View port is meant to match you screen size, while canvas items matches your godot size (how you import it, basically how you make the game, just keeping the same size), now that this bug is fixed (or should I say mystery solved) let me get into what progress I made today. Fishing Mini-Game So now it is time to get into our fishing mini game. If you saw the video you either might think, “wow that is hard to build” or “that looks so bad, what even is that”. Well if you were impressed, im just building a blue print, but if you thought it was bad, don’t worry, im just planning it out. You might wonder what it is or how it works. So this is a fishing mini game, the goal of this is to find the fish with the map, and use the map piece to get the final map which leads to the treassure (I covered this last devlog) if you want to know more on how my game will work, read my last devlog. Anyways, so in this game, the user is going to cast the rod (fishing line) and then have to wait for the fish to get hooked, and when it does, they have to beat the mini game. The minigame is hard to understand but if you watch the video it will make sense. So the mini game is that there is a slider, and it is moving, left (constantly) and you goal is to not let it stay out of the safe zone for too long, or let it touch the border once, if it does you lose that fish you will have to fish more, and that fish wont add to your stats (how many fish you fish). So basically what I did I made the whole screen a button, when the user clicks the screen they cast the rod, if they click again and there is no fish caught they reel the rod in (bring it back). If they catch a fish, there is a function, it is either the fish starts to jerk, or moves slowly. If the fish jerks it will make the bar move left 40 (different based on level of the fish) if it is slow moving or idling, then the bar moves 15 (might be different for the fish types). To make this look smooth, since I am not using an animation player, I am using the godot function tween, this allows it to move smoothly and not be rapid, making my game more like a game instead of a twitch. I am mainly using randi functions (randi functions are basically random functions, if you input items into them they will choose a random item from that list). So I am randomly choosing, the time the user waits, and if their fish will be jerking or idling at the moment. Now that I have explained this I want to talk about my save manager.
MAJOR FISHING UPDATES, READ NOW Hello everyone, today is the best day for me! So many things happened and I can’t wait to share it. So please watch the video added below because it is basically all I did today. If you would like to know what I did yesterday, im on Vishy Labs on Youtube and Instagram , with that said lets get into todays progress. Fishing Logic I basically am done with the fishing game, but there were major things in the logic that had to be changed, and I would like to talk about it. So first I have different rarity fish. At the beginning I just made it so it pulls a random fish, but that doesn’t really aid the term rarity, and in the last devlog I was talking about how a fish was chosen, by the randi function. So to actually turn it into a rarity I just made the randi range longer, from 1-3 to 1-7, so the first fish takes number 1 2 and 3, the second takes 4 and 5, the third takes 6, the golden takes 7. Alot of places in my code, I forgot to change it because in the original code I had made it so there were only 1-3 so then in the new code when a number past 3 came, it didn’t know what to do and it ended there. I would also like to learn about this new thing I learned, clamping. $Outside/Slider.position.x = clamp( $Outside/Slider.position.x, 0, $Outside.size.x - $Outside/Slider.size.x this is clamping. There are 3 inputs, value, minimum, and maximum. You might be wondering how did I use it in my game. Well for the slider, I need to make sure that the slider does not go past the barrier/border/past the edge of the outside panel. Because if it does, it decreases the value of the game (by the value I mean it doesn’t look good for the user). So I just made the value the position of the slider, and the minimum is 0 and the maximum is the big bar, subtract the slider size (all x values). This all makes it so the slider can not escape the barrier, because I am changing the position with tween, so it moves, and since the position is manually changed it doesn’t mean that it can have contact with the collision body. I would also like to take about tween. Tween is built in godot, and there are many ways to use it, I just used it so that when I change the position of the slider it is smooth and I do not have to use an animation player ( animation player would not work because then in is all predictable). So for the tween I put what I want to smooth, and what duration, and then in the code I set the distance. All theses little features is what makes my game look better and more playable. And that is it for the logic. Fishing Visuals If you saw the video, I think you will be very pleased with the visuals. All of this is being made in figma, as it is much easier to make than libre sprite. So the waves are just the waves from the first scene, but just stacked. Then the brown stuff is not a dock, it is the ship (like you are on the edge fishing). Then everything else is pretty much self explanatory. So to make it replaced from last time, the only thing I did was add a background, change the bobber, and scale the fishing line to be attached. And because of this, in my code I am resizing the button, so the user can not press on the dock when fishing but when clicking for the actual game part, they can. That is it for today, by tomorrow I am pretty sure the whole fishing mini game will be done, with the fish popping up with a banner, and I will most likely be starting the next game.
Cat Cooking Hello everyone, it might be a day or two since I have devloged, since I finished the fishing game mechanics, I wanted to take a short break and now I am back and starting the cooking minigame for the cook cat whose name is BISCUITS Thats right everybody, lets give it up for our cook cat buiscuits, and for the fisher cat, I forgot to put names back then, so his name is now Minnow If you guys have any suggestions for names I will take it in for my game! So without further to do, lets get into Pirate Cats, Cooking! (And if you wanted to see yesterdays progress you can view it on https://www.youtube.com/shorts/XgLbwD1cwBg ) Logic If you saw the video (I put the link above) I made it yesterday, which is when I made the logic. So for each item, like the cakes shown in yesterday’s video, or the plates, sand castles, and toppings shown in today’s video. They all have a base node of a Sprite. But you might be thinking "How can a sprite 2D be draggable?" Well to make this possible, we added a button and code, so the button takes up the whole sprite space (where ever you want the user to be able to click and let it drag the item). So you add a script to your base layer, keep in mind you can do this to anything by just adding a button and script to it. In my script I had an offset, the global position and the global mouse position. I made the offset 0,0, which is where the item or sprite in my case starts off (Im just going to start referring the item using sprite from now on). Then on the button, you don’t do a button pressed signal, you do a button down and button up signal (this is to imitate the button being held down and dragged). Then you create another variable which is dragging and if you want you can have can_drag. When button is down dragging = true and when it is up dragging = false. Then in the process you subtract the offset from the global position of the mouse and the global position. And for the items to make them visible on the plate I had a plate that had all the items already there, and a panel. Because an area 2d does not react with a panel, every draggable item had to have a panel, and in their process it had when their panel interacted with the other panel, it will check if they already have it, can they have it, and it will do it, this will make the items on the plate appear and the off plate draggable’s disapear. Appearence As I have already told you guys, we are using figma. It makes the art look way better than my pixel art for other games. I guess it is just your opinion/the person. Anyways I think it all looks way better. But one thing that really weighed me down is that im not getting much support on youtube and instagram for Vishy Labs for progress on my game, and I was even accused of having my game as a copy. So I am persevering and making this game better than any game out there. If you want to support me I am Vishy Labs on youtube and instagram. Stay tunned for more progress!
Parrot Feeding Time 🦜 Hello everyone it has been some time since I have posted a devlog, like 4 days but here I am with some exciting news to share. I have finished the parrot feeding scene and made the check feature for the cooking scene. If you want to see what I did it is on https://youtube.com/shorts/XgYkeBUyqbE?si=7PP_u8wK7GwFHCAd Parrot Scene For the parrot scene the user is supposed to feed the parrot cookies, because i dont really know anything more interesting if you guys do please tell me. So to feed the parrot cookies I have to make the cookies dragable so they can give it to the parrot, and doing this will play a cool extra animation of the parrot chewing. Since I already did the cooking scene making the dragging part was already really easy, since I just add a button and a panel. I told you guys last time what the button does it has the button up and down function so it can detect when the button is being held down and released and when the mouse is moving so I can drag the item. So then I have a panel on both the item and the parrot, and I check that when button is let go and they are making contact, then if they are it is not visible and the parrot chewing animation plays, and I did this for pretty much all of them. Cooking Scene So we did some more things for the cooking scene, so I was working on a check feature, then I was moving all my data to a new computer, and I accidently commited on both computers for same scene to github, and they both overrid eachother and all my progress was lost, then after spending some time researching I realized I can pull back commits by reverting and I got my progress on the checking part back. Then after this I checked if the items on the plate, and assigned each one to a variable, if it is visible or not then this variable is true or false, and i did that both for the order and the plate. The actual checking feature is it checks if both of the variables for the same item are the same then if they are the light for that item becomes visible, I show it in the video attached so if you want to see please watch. Future Steps So there are a few things I need to make and I need help from you guys, so what should the powder monkey do, and what should the captain do, it was thought that the map puzzle piece will just be in the captains poket, and users will have to set up the cannon for the pirate monkey, if you guys have anything else more interesting please share! Bye guys!
Crab Fight 🦀 Hello everyone it’s getting close to the day when I get to submit, Pirate Cats, and as usual if you want to view my game’s previous progress you can see it on youtube https://youtu.be/XgYkeBUyqbE?si=mVQkA0oVtBkzSB1x Well now I have currently finished the crab fight. I usually only devlog after the day is done, but for pirate cats I devlog when I finish one minigame, so now today I have finished the crab fight minigame, so I will be explaining all about it. I dont have the dialouge and the text or the home pages or settings done yet, but I will be submiting on the 30th. I think i might need to go back and fix the assets for some other items, as like the fishing game the place holders are still there and the cannon doesn’t really look like a cannon, but let’s get started and talk about my progress. Crabs So now it is time for me to talk on what I have been doing for the past 2 days, well I have been working on the actual minigame as always, if you watched the video and have any suggestions please comment it, I will take it into account! So for the crabs, there are 3 crabs, they dont really do anything just different colored hats for variety but what happens is that there are 3 groups, left right and middle, I do a randi function randi_range(1,2) if it is 1 the crabs in the first group are not part of the first round if it is 2 they are part of the first round. Then I do an function for each group and do an if statment to see which crab color should be visible then in that I do the calculations. Alright you might be wondering, what are the calculations? Well the calculations are how much the crab has to move each time. So I have to take account the height of the waves, how much room I have between waves, and how many times the crabs will pop up. So in the code I make the crab go up, then go down. I use the tween function to move the crab, since using an animation player and you can only run 1 animation at a time, it would be a pain to keep track of all the animation players, so I use tween as I have said before tween moves the item smootly so it is not teleporting. Then I do either of two things, one if the crab gets all the way to the bottom then the players screen flashes red, then it repeats the process. Cannon So in godot, you can add inputs, I added left, right, and space. So then in the code I did in the process, using direction and inputted left and right. The first one inputed is -1 second is 1 and if both or none is being pressed then direction is 0. This is built into godot so I got lucky, because it saved some time in the coding process. Then I have a speed, which I set to 200-300. Then in process I did ~$Cannon.global_position = direction * speed * delta` this makes it so that it moves every esecond something is being held down. Now that I have explained how the cannon is working I will explain how the cannon ball works. Cannon Ball So everyone, the cannon ball is a new scene, I can just call it every time and this makes it so I dont have to make alot of them, because I don’t know how many the user will use, so it would be hard to make so many. So in the new scene I have a panel on the cannon ball, as my other mini games. The panel on the crabs and the panel on the cannon ball interact, this happens when they are in direct contact, I check if that crab is visible, and then if that crab should be caught, it can only be caught if it is above the wave (if it is not above the wave then it is hiding but can still be triggered, not visible) then I make that group not visible, and do it for all the other crabs that got hit. I use tween to make the cannon move up by 300. The work I have done in the past few days were alot more complicated, but I will keep doing more, my goal is to reach 50 hours by the end of this month and submit. Thank you guys, if you want to see progress its Vishy Labs on both youtube and instagram. See you guys!
Captain’s Room + Ship Hello everyone I have done 7 hours yesterday and devloged 3 of them with the crabfight and the others hours now. I have been very productive and had a lot of progres on my game pirate cats. I have finished major parts of scenes. Captains Room First I would like to talk about the Captains Room, this is the first part of the video and you see a lot of things start to move when I put my mouse over them, that is the hover. You can do it with a button 2d with mouse entered and exited, in the start I had it as mouse entered meant animation played and mouse exited mean animation stopped on a button. and if you watched the video, you saw that my camera moved when the mouse was on the side of the view. To do this I used a camera, and put two button 2d’s on the edge, and I had mouse exited for the left side was left camera move = true and I set it false when it was exited, I did the same with the right side button and had a variable called right camera move = false . You might wonder how just having variables would move the camera, it doesn’t. In the process code (which runs 60 frames per second) there is this var delta, which means run at 60 frames per second. So for the camera to move left I did $Camera2D.global_position : Vector2 = -1 * Speed * Delta I could set speed to whatever I wanted such as 300 and then when it was for the right side I just switched -1 to 1. This was all working I had no bugs, but in the scene tree the camera is at the bottom. So the buttons are children of the camera, and there are other buttons above it such as the ones I use to hover. So when I was moving the camera my cursor landed on one of the other items that hover, and the camera stopped moving. It was very annoying and I didn’t know how to fix it. It turns out you can use area 2D’s they have a mouse entered, mouse exited, and a click function. The only difference is you can not see the area 2d’s like if you are putting an icon or text or style on the button like a panel you wont see it. But luckily for me I but the button over the assets. So this was a big problem I solved. Back of The Ship I have started working, just the back part. That is the second part of the video, when it goes to that new scene after pressing the arrow. I have the fisher and the cook there. So as you see the arrows are what guides the players, and there is a camera and some items to hover at the back of the ship and I am using area 2d’s. Game Information If you want to see my crab mini game in Pirate Cats, or previous history you can see it on Vishy Labs on Instagram https://www.youtube.com/shorts/dKRGESaI7ss I will continue working on the map part, where the user has to put the map together after getting all the pieces. See you guys later!
You can Finally Fix the map Hello guys, we have spent another 5 hours on this game. I have got to say, I am starting to love this game. Day by day, the more I do the more I get drawn in. I have got to say at the beginning I didn’t really feel like doing this game. But now after I see everything I am amazed. As usual if you want to see yesterdays progress on the captains room you can see it on Vishy Labs or https://www.youtube.com/shorts/0w2feNxZQ5A The Map For the past few day’s I have been working on the map scene, if you see it, it may not look complicated but I have spent longer than the fishing minigame to create this, let me explain why. So there are 6 maps, and 6 panels. One panel for each map. If you place a map in the panel, either that is the right panel to place it in or the wrong one. There is over 40 variables for this scene, since there are 6 buttons, we have 6 of placed 1-6 and 6 of map 1-6, (now these are for dragging the maps) 6 offsets 1-6 6 dragging 1-6, 6 inzone 1-6 and for the panels 6 pan 1-6. So this makes it hard to keep track of all of them. And let me talk about the logic, so when you press a button like hold it down you have to change the position with the offset and the mouses position, but now we have to check if the piece of the map is intersecting with the panel, and if it is, which panel is it intersecting, then if there is already a panel there. And it gets ever more complicated, if there is a map intersecting or above 2 panels, then you have to subtract the values from all the panels and see which one is the closest from the center of the map, because in godot for some reason it likes putting its point in the top left. And I have made over 8 different functions not including the button up and down or godot made functions just for this. This has got to be one of the most complicated minigames yet but im glad I did it. We have function snap map which gets the center of the panel and places the center of the map there, and this only works if that panel doesn’t have a map and the map was placed there. We also have func_panel_taken you input the panel which in my case is closest because that is what I have put for the closest panel in the code, and you also input which map your moving, so it ignores that when it does the check for intersection. But the process_function is the most complicated to keep track of. Since it does 60 times per second, you have to make sure everything doesnt run more than once by having variables that become true when the condition is false. And you have to make sure what your doing is supposed to be checked, because if it is not and the values get changed, then you have to find a new way to implament it. If you guys saw the attachment I have showed a little of the sideview1 and I will get more into that tomorrow. Bye guys!
Powder Monkey (Major Bug Not Fixed) Hello guys, this devlog is going to be max characters and if its not I have so much to complain about… I have worked so long today and dont so much, and I think that everything I have done was very great. So without much to do lets get into todays progress. Before Powder Monkey Mini game So I am going to talk about what I did before I started the powder monkey minigame. So today, before I ate lunch I was working on other stuff, like not minigames but the travel, so now users can travel around the boat, to the parrot area (in the front), powder monkeys area (going to be discussed in todays devlog and its on the side) the back of the ship which has both the cooking cat, and also the fishing cat. And then there is one more side of the boat, which is the other side, side view 2 which has the scrubber cat (I am going to save the scrubber cat for tomorrow when I start working on him and his mini game). So now that I have explained what I spent the first 1 and a half hours on lets get into the Powder Monkey Minigame. The powder monkey minigame Okay guys now we are going to start talking about the powder monkey’s minigame. So if you see the video you might start to see where the video game is going. But if you don’t understand the video or have not seen the video (due to personal reasons) then let me explain. Ever see those fake mobile ads that don’t let you play the game but give you a preview? Well I am building that fake mobile ad, im not trying to say it’s fake, but this time you can actually now play the one level until you beat it. So the game is like you drag the different colored balls into the different beakers and try to get beakers with only one of the same colored balls. So I spent 5 hours creating the logic, then I realized i made the game wrong 😭 Then I had to get rid of this one part of a line in 45 lines, then I deleted it and then it didnt save and I had to redo it, and that took 30 minutes already, then redoing it made it an hour. So the line I said that I deleted checked if the when placing a ball (we will call the different objects you can move a ball) so when moving the balls i made it so you had to place it in either an empty beaker or ontop of a ball of the same type. I didnt know that it could be placed on different types. So then after deleting that line of code when running there are still some bugs here and there that dont allow one of the coconuts and one of the ballons to move. I have checked 2000 LINES OF CODE 15 TIMES, MAYBE MORE. And me not finding this bug is annoying because I still have to write the check feature. Anyways I will try to fix the bugs, but here is yesterdays video https://www.youtube.com/shorts/7UFbDQq-l0Q and by guys see you later!
The Minigames Are Coming To An End… Hello everyone, I have completed two more minigames for my game pirate cat, and only have one last game to create. I have been very productive, and learned how to code more efficiently, as I finished two minigames yesterday. Without further to do, lets get into the first minigame I finished. Scrubber Cat By the name you might get what the scrubber cat does, the scrubber cat is the cat/pirate that will be scrubbing and cleaning the decks/the ship. So for a minigame I have created one where you scrub the dirt to get rid. I still need to make the colors more vibrant but the logic is done, and I did have some few bugs but we will start about the game. So for the game, for each round there are a certain amount of stains. Each stain gets its own button and each button has mouse entered and mouse exited which goes to a variable. The variable is either false or true. So if mouse entered the variable is true otherwise it is false. Then in the beginning I call round 1, in round I check if the items are visible, then I check if the mouse entered is true and if the mouse is moving, because I have a variable called mose pos, and in the ready is set it to the mouse position, and then I compare it with the current mouse position when round 1 goes, then i set it to mose pos. Then if the mouse is moving, and the variable is true. The stain looses some of its visiblity, like its going away. I am going to find out how to make the cursor a scrubber, but for now its not. And the user will do this for 3 different round. Constellations So if you saw the video you might have saw the constellation game, I recommend you watch the video to understand what I say. So there are two different types of constellations, human constellations, and cat constellations. So the goal is the user to always pick the cat constellations. So there is 2 sides, one side is the cat and the other is the human, the sides will switch, and you have to pick the cat one, if you dont, that round restarts. I had so many bugs with this, and the main one wasthe timer. In godot I had no clue that you have to stop a timer after it timed out. This created a majority of the bugs. And since it was basically the same logic for most of it, I did copy and pasting and because of this I forgot to change some of the variables, so it did changes to things that did not need changes, and did not do changes to things that did changes. I am going to finish up this game soon and submit it. Bye guys!
The Cats Can Now Talk? Hello everyone, it has been 4 days, and I have done a lot of work on the game for the past few days, and am getting very close to submitting it. So I have finished the last mini game, which is finding the treasure to save the cats (or aid them depending on how you take giving cats treats ) and now I have implemented the dialogue part such as the cats and you talking, and the map being found in most of the scenes. So without further to do lets get straight in it and talk about the minigame. Digging up treasure So right now I have made the basic part of the treasure scene, it still needs to be decorated and I need to push the borders out a little but to start its good. It will not be in the video posted but it will be tomorrow. So how it works is I have this scene called sand, it is an area 2d and everything is not visible besides the smallest hole and smalest pile of sand, and you can press the area 2d 3 times and it will have the medium pile and hole and large pile and hole. And in it, I have it calling functions from the main scene. So in the main scene I call the scene for every time the press a button (the whole screen consists of 6 buttons, if they dig fully and that button is the treasure one, then you get it for the cats) it mainly consists of buttons and randi functions and caling functions from two different scenes. Cats are Talking IF you want to see the desert scene or the cats talking you can see it on https://www.youtube.com/shorts/6k6MWErv86k , anyways the logic for this is we call next dialogue, and this checks the index and then adds one too it and goes to the next. Then if it is cat speaking, it waits for the user to press space (skip) then it adds one to the index and plays the next if it is the users turn to talk (the user can talk using a button they press) then they press a button and the text becomes the dialogue and then it adds one to its index and then plays the next. Then when the index is the second to last I stop it from playing anymore dialogue. Then when the user completes the task like sorting then it makes the map visible and then it plays the last dialogue (when they press the map because it is a button) and it says something like, THANK YOU SO MUCH FOR FINDING IT, PLEASE PUT THAT PIECE OF MAP ON THE CAPTAINS DESK then that will add, and once you have all the pieces you can put the map together. That is all I have to say, and I will do alot more in the next few days, as I need to finish up dialogue and work on the save, and global variables. But for now, bye guys!
Bugs + Fixes Hello everyone, I am getting very close to finishing Pirate Cats and will probably only work on it for a few more days (like until the 31st then ship on the first). I have big changes coming in after this ship. So today I will talk about to big progress and what I will be working on! The Game Tester So I had a game tester come and try my game, like obviously not everything is connected, but I had him try the individual scenes, and lets just say I was not happy. Before you guys all start talking about how I hired a Professional Game Tester with Money for a project for stardance, relax. The game tester is my friend, he has tested all my projects and lets just say, I am so glad he does. Anyways he found some bugs and it took a while to fix it (considering I was on a time crunch and had to go out somewhere today and the due date (the end ofthe month) is coming soon ). So first of all he tested the back ship scene which is the video linked, so what is supposed to happen when u click the cat, it is supposed to talk about either if you have completed the minigame "Oh come eat supper again" or if you havent "Welcome, want to help me cook" and then go to cooking mingame, but all this is set in one array of dialogue, and I call the dialogue from either number one or two and then I only make it go to the next dialogue if it is not one of the ending numbers for talking other wise I just make it not visible. The bug was that I needed an if statement that checked if it was an ending dialogue, and if not it goes to the next. This is the one of the least complex of problems, the second is with the digging scene. So the problem was after it started the dialogue explaining how to play, it went on one dialogue extra, I realized I had included one more so I just deleted that including code, this was the least of complex, but the third bug is massive. So the bug was after the cooking scene, once the dialogue finished (which is the tutorial) the user couldn’t play them selves. I slowly realized the problem was that it worked before and when I included the dialogue, it broke, since the tutorial completely changed how I had built it. So I had to go one by one and fix every little thing, first after you completed the tutorial, it automatically sends you back, but then you cant even get another plate, so I had to fix that, then once you get the plate I realized there was no order, then I made it so before you go back the order comes, then I realized after you got the plate nothing happens, its supposed to go to the next scene, then it went to the next scene which was getting the sand castle, which worked fine then it went to the scene to get toppings like the shell and flag and star, and that worked fine, then I went to the check scene, I realized there was no way to get back to use up the other plates. Then I fixed that, and when I went back, I realized the plate count never changed, for some reason in the code I was setting it back to 0, so it never changed how many plates the user did. So after I fixed this, I played it again, then I realized the second time you do it, the first times items that they picked were not visible and disabled, so in the reset code (after one full round) I made sure everything became visible and not disabled, then because of this I finally fixed it! Work I need to fix the star scene next, so it plays what happens before they go and after they get it right. My goal is to do as much hours as possible because I am trying to get the framework 13 in this ship, and hopefully this project will do it. After I do this ship I will work on a hard mode for this game, so if users want a challenge they shall get it. Anyways that is it for now, see you guys next devlog!
Finishing Touches (Saving Special ✨) Hello everyone, I am getting close to shipping this project and I have done the finishing touches today which is so much, and I just have to get my fellow game testers up and test the game for any bugs or anything. I know there are a few here and there, but I should have fixed them when I started, doing it now will be too much, and I will fix it in the second ship. So without further to do lets get straight into it. Loading Scenes The loading scenes are the guide scene, preference scene, and the loading part itself. So now in the preference scene there are volume sliders for the different things like sfx, audio in general and bg music. And there is also a slider for the speed on how fast the text goes by, since you can not skip it i thought "SHould it not be useful to just have a speed, so fast and slow readers can adjust it to make it feel more like a game? So then I added a slider, all the settings are saved I think, but since this is just finishing the logic and not the testing part I will not know for a fact. Overall the ui looks great, and mainly for the save manager, I was working on connecting the variables throughout the different scenes, and when they load a game, based on where they are in the game (like progress wise) then it will put them in the corresponding scene, this was not hard but I kept on forgetting what to add until I started wroking on a different scene. Other Fixes So one major bug I had was previously when I was working on the map scene, I thought I saved the progress but I didn’t and then I committed and all my progress was gone, so I had to spend some time today fixing all the bugs there, and then some of the dialogue in that scene, I thought for some reason was inputted incorrectly, then I proceeded to re fix the whole structure adding lines to the dialogue and then I realized it was wrong and had to put it back, since changing dialogue doesnt sound like a big deal, you have to understand, I changed all the variables because of that. Anyways that was the last thing I did today but lets talk about some other progress I did today. Audio The audio for the game was all recorded today, and everything is handmade (like in the meaning that it is not taken from somewhere else) the only thing that is going to be used for the game that is not handmade, is the background music (im not a good artist, but I am a musician so I am sure I can learn how to do it) and also the fonts, the fonts used for this game look amazing, and I will use it again for all my other games. After making the audio I had to implement it everywhere such as keyboard noise for the letters typing on the screen. Or the crabs moving, or the sponge scrubbing, or the cannons firing going like "Boom Boom" and other stuff. Anyways that summarizes most of the things I have done today, and tomorrow I will official test the game and get ready to ship, bye guys!
Finishing Touches Hello everyone we have finally finished Pirate Cats. After weeks of coding, building and testing, we have finally come up with a playable version. In this version everything is finished, but there is only one mode. So as this is the last devlog for this ship let me explain what I have done this time. Bugs After game testing we found some bugs out like there was no music for the cooking puzzle, or the sponge was not visible for the sponge scene, or the button in the island was not working, or the typing settings broke down. So let me start each of the bugs and how I fixed this (all these bugs came up yesterday as I only post a devlog once a day). So first the cooking music puzzle, I forgot to play it in the code, this was a simple fix but the other ones were not. For the scrubbing scene the sponge was not visible, in the code again I forgot to set it to visible but then I found another bug from fixing one it was that I need to turn it back after the scene otherwise it will always stay like that. So I figured out you have to set the cursor to null, that way it doesn’t put a preloaded asset and just has the normal one. This next one was tricky, on the island minigame where you are digging after you finish digging, sometimes you can not press certain parts of the button (to finish the dialogue and go to the end scene) I was so confused on what to problem was, then after some time I realized it only happened because I was initiating a scene, and I thought that it was over it, so I set some of the items including the buttons z index near 1000, because there was only going to be like 100 of the items. So then I thought the button for the sand was over, but it was not and I disabled it after the treasure was found, so I was so confused, then I realized there was a panel in the scene being initiated. So then I finally thought dont panels take the mouse input? And that was when I realized that I had a random panel there stealing the mouse, so i set the mouse input on it to pass, so it can not take it. Finally the typing settings. I learned how to use sliders, but there was one thing I could not figure out, how to flip a slider, so for the text slider, it was fast (the bottom one) to slow (the top one) instead of slow to fast as a slider should be, but then when assigning the value I put a - infront of it, I thought this fixed it because when I went in the speed was on the slower side but max speed. Then I tested it, and I could not change the speed, the problem was when you do - it puts the lowest setting meaning it can not be put to the highest, so I had to put it back and I still don not know how to flip a slider, but that is for next ship. See you guys!
Recommended Fixes Hello everyone I just recently shipped and I was really happy with the votes I got so thank you to everyone that supported me but with all the suggestions you guys gave and some of mine that I knew i had to do, I have fixed up the game. Before I get started the godot wakatime extention is broken so now I have to use lapse which makes it harder for me because I have to do the whole recording in one sitting and I cant do some work close it and continue. The video attached includes a few of the fixes and I will start using paragraphs in my writing. But without further to do lets get started. List Of Fixes With all you guys said I have made a list of fixes such as during the cooking scene it was not clear what to do after you made a plate so at the end of the training round I added a arrow so that users can try it before they are on their own. Second There is this flag in the powder monkey’s area, which is side ship view 1. When the flag raises its fine but it does some bugs when coming back down and the way I structured it was weird so I deleted all the code and had a area 2d mouse enter and exit, and I start the animation one 1 speed when they hover over it and when they let go I put it on -1 speed and play it. This makes it look like you are raising the flag and when you stop it goes down. Another thing was all the shells in that scene were blurry. I forgot what did but in figma I think the items were way to small so when scaling up t was very blurry. Also for the space star scene when the user gets it wrong the dialogue for it says that they found the island but then says they should set sail tomorrow, I had the order of items wrong so I flipped them (in the dialogue) and made it stop 1 line earlier in the code. Also after the user gets 3 constellations correct to go to the island it goes to the scene fades in and out then next scene then fades in and out and same for third scene. The problem was that it was making things visible after the fade out finished, it should have been doing it when fade in was done so when fade out was done like you were traveling. Skip text!!! I know this is a big one, so I added it, so I had a line of code that was like if event.is_action_pressed("ui_accept") and !typing: So I just flipped it so that when the dialogue is playing and if they call it it makes a variable true, and in the code where it is playing the text out (its a for loop) I break the for loop and make the ammount of characters visible the ammount of characters there are. Then I also made all the text that says space to continue, to space to skip. This one I did most recently but it was with the crabs, I added a randomizer for the audio so when they shoot the cannons, I just made a randi for -0.1 - 0.1 and added it to the pitch of 1 to the audio stream player so it was random. I also made a new scene for the explosion boom like visual effect and made it fade in and out. I have also commented all the code to make it easier for you guys to understand! That is all I have done and will always be looking for more suggestions to do more work, thank you and hope yall enjoy!
Captains Secret??? I designeed the figma cat for the captain, along with the frame, then implemented the photo/frame in godot behind the chair in the captains room. This is a relatively short devlog as it is just one added feature that I think makes the game cooler. Figma For the figma first we start off with creating the cat, it is the same as usual, I don’t use the pen tool because it is very unconsistent, anyways we start with the head then the body then add legs, one thing about figma is they dont have vertical and horizontal align just horizontal with items, they should have an option to enable a grid. Anyways for the secret I figured I would make it contrast the captain ( we are talking about the cat) the captain has textured and not very furry fur, but I made this cat have furry skin/fur, and not textured, and kind of short/tall (depending on which cat you are comparing it to). Anyways I used the Pen tool to create the frame as it is easier and faster, even though the alignment is not perfect, it is hard to see just from the human eye, Godot To input this in godot we have to get the image, so we upload it into the file system then I had to re export the chair (seperatley) so I could have it like the photo is behind the chair and the user can press the photo (only the part sticking out) then the captains text plays. This is like a secret and for you guys to find out, so good luck and go try it out!
Ships:
Welcome to my ship of Pirate Cats. Pirate Cats is a 2d godot interactive game using point and click and other buttons such as arrow keys and space. This was the most complex game I have ever built and I have learned so much from it. This game has taken me over a month to build and I am so proud of my self. From learning that there are other ways to create assets (like figma) to how to create save manager (saving the users progress) this was a very fun game to build. Building this game was not so easy, as it required alot of logic, and some of that was repeating so I had to keep rechecking it. Also there were some items I did not know how to use so I had to do research. As this game is only a point and click I am sure you guys will find it entertaining, as I spent a long time on making this good. After building a game so long, and finishing, I realized I want to expand on this! So this is version one where I have your guys feedback! So I can improve my game and add a hard mode where you have lives and other suggestions you guys have. This game has tested my patience as I have spent countless nights coding and building this game from scratch. I have learned so many things that I previously did not know. I didnt know a panel takes mouse input or that there were sliders, those were the easy things to conquer. But items such as creating a full on working save manager took some time to understand, or creating a full fishing minigame, with different sounds and other cool features. I am sure you guys will love what I have put into this game. It also makes me want to learn how to use figma more. From playing minigames on the ship, to steering a ship, to helping the cats escape from crabs, this game has great variety. So who is ready to help the cats (and of course a parrot) and find their treasure!
Second Ship for Pirate Cats. In this ship there have been many changes to the games. Some changes include making instructions/tasks clearer, many visual changes, and easter eggs/new features. Many of you guys said the instructions were not clear so I spent a lot of time going through to fix it, and made it more clearer here and there. Also you guys said to put space to skip, so I added that now you can just zoom through the text (if you please). There were not any bugs but some items that were not connected allowing you to not see the bubbles, making some visual fixes like the shells was so blurry and there were some fade in’s coming in really early. Then I added some easter eggs and new dialogue for you guys to find. I hope you guys enjoy the new and improved version!...
|
1792846417.9992166
|
1792932817.9992166
|
|
30157
|
Own web page: Alimentae by @Domenica | Stardance
|
Domenica
|
2
|
9.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-30T01:51:18Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "ALIMENTAE I built an interactive and responsive demo website for Alimentae, my food rescue initiative alongside my friends. The platform is divided into two files with multiple sections within both. On the one hand there’s the index.html which covers the general introduction to Alimentae, gives facts and stats, quotes and most importantly, a call to action section to invite the reader to take part. On the other hand, I developed the somos.html which focuses on introducing the team as it contains more detailed info about Alimentae’s creators. Finally, the last addition to the website ahs been the accion.html, which focuses on the merch of Alimentae (featuring hoddies, t-shirts and tote bags). As with any project, there were challenges to overcome. I believe that the hardest challenge I had to overcome was managing to make the site easy to view regardless of the device being used. Secondly, making the navigation smooth and finally, establishing a clear visual hierarchy while maintaining the brand identity so it remained legible and appealing. With practice, it has become easier to overcome this challenges. I’m really proud of creating a website which has a clear branding aesthetic and manages to give an interactive experience for anyone using it. Moreover, I believe I succesfully represented my project’s core ideas. Finally, when opening the website you won’t need to do anything other than click the link. Hope you like it!", "repo": "https://github.com/Domenica-Santayana/alimentae.pe/", "demo": "https://alimentae.netlify.app/"}, {"ship_num": 2, "ts": "2026-08-06T17:42:02Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "ALIMENTAE I built an interactive and responsive demo website for Alimentae, my food rescue initiative alongside my friends. The platform is divided into two files with multiple sections within both. On the one hand there’s the index.html which covers the general introduction to Alimentae, gives facts and stats, quotes and most importantly, a call to action section to invite the reader to take part. On the other hand, I developed the somos.html which focuses on introducing the team as it contains more detailed info about Alimentae’s creators. As with any project, there were challenges to overcome. I believe that the hardest challenge I had to overcome was managing to make the site easy to view regardless of the device being used. Secondly, making the navigation smooth and finally, establishing a clear visual hierarchy while maintaining the brand identity so it remained legible and appealing. I’m really proud of creating a website which has a clear branding aesthetic and manages to give an interactive experience for anyone using it. Moreover, I believe I succesfully represented my project’s core ideas. Finally, when opening the website you won’t need to do anything other than click the link. Hope you like it!", "repo": "https://github.com/Domenica-Santayana/alimentae.pe/", "demo": "https://alimentae.netlify.app/"}]...
|
[{"post_id": 75419, "ts": "202 [{"post_id": 75419, "ts": "2026-09-30T01:33:41Z", "hours": 1.38, "text": "Hello there! So, I’ve managed to accomplish the final page of Alimentae. I did it quite fast considering I copied part of the code of the index and the somos.html. When I was working on it, at first I put all the products and all its ways of looking at them, but I didn’t like it. That’s when I thought, hey, what if I search for Gucci’s way of doing so. That’s what inspired me on doing the thing with the arrows in the section of gallery. As well, I kinda copied the same design of the cta of the index, but I managed to discover how to put it some movement. Check out the new changes. Hope you like it!"}, {"post_id": 75091, "ts": "2026-09-29T04:11:01Z", "hours": 1.1436, "text": "Hello there! So I kinda decide to change some things. Well, you know I was working on the action.html. Well, let’s say I keep working on it but with a new goal: merch. I’ve manage to make mockups of the products and start coding. See you!"}, {"post_id": 63254, "ts": "2026-09-06T23:45:36Z", "hours": 0.4986, "text": "Hello there! So, I was thinking, what if I add something else to Alimentae’s site. I mean, there are 3 colours, blue for the index, white for the somos.html, but what about yellow? Inspired by that idea and my belief that I can make Alimentae much better, I decided to create the accion.html file. See you!"}, {"post_id": 42075, "ts": "2026-08-06T17:10:31Z", "hours": 2.4147, "text": "Hello there! Great News! I’ve just finished the demo website for Alimentae. I made some changes in the headers, added information to the somos page, bigger brand logos and so on. Try it now! Hope you like it!"}, {"post_id": 40476, "ts": "2026-08-04T01:10:34Z", "hours": 0.3856, "text": "Hello there! In the last devlog, I commented that I managed to get on with the Somos page, yet when I was in the Index page, I found it “odd” that by clicking on “somos” it took you directly to the new html when there’s also a description in the index page as well. Soooo, I decided to make some changes. Now, clicking on “Somos” redirects you to the section in the index page, and in that same section, you’lll find a “Read more” that takes you to the somos.html file. Check it out!"}, {"post_id": 39030, "ts": "2026-08-01T18:15:54Z", "hours": 1.0808, "text": "Hello there! So, I’ve been working on the Somos site. As you can see, I managed to link it with the Index site, I added some buttons in the nav bar to redirect to each part of the Somos page: Inicio goes back to the index, Historia goes to the nuestra historia section, Sé parte del cambio redirects back to the Index html to the section of calling to action. Hope you like it!"}, {"post_id": 38365, "ts": "2026-07-31T18:26:42Z", "hours": 1.2278, "text": "Hello there! I’ve been working on the “Somos” site and I managed to set up the main structure. So, my biggest accomplishments on this time working were my finished header (logo + nav bar) plus the introductory “hero section” with the main message and action buttons. I also built a sidebar card in order to summarize Alimentae’s current activities. Moreover, I was able to work on the CSS general variables for colors and typography for the following sections. Now, I’m looking foward to making a section more connected to the team behind Alimentae."}, {"post_id": 34353, "ts": "2026-07-24T23:37:33Z", "hours": 0.9706, "text": "Right now I’m working on a new separate HTML file for the section “Somos” of my website. This new page will allow for a more in depth presentation of Alimentae’s identity, including our mission, vision, values, and story, without overcrowding the index page."}]...
|
Title: Own web page: Alimentae by @Domenica | Star Title: Own web page: Alimentae by @Domenica | Stardance
Devlogs:
Right now I’m working on a new separate HTML file for the section “Somos” of my website. This new page will allow for a more in depth presentation of Alimentae’s identity, including our mission, vision, values, and story, without overcrowding the index page.
Hello there! I’ve been working on the “Somos” site and I managed to set up the main structure. So, my biggest accomplishments on this time working were my finished header (logo + nav bar) plus the introductory “hero section” with the main message and action buttons. I also built a sidebar card in order to summarize Alimentae’s current activities. Moreover, I was able to work on the CSS general variables for colors and typography for the following sections. Now, I’m looking foward to making a section more connected to the team behind Alimentae.
Hello there! So, I’ve been working on the Somos site. As you can see, I managed to link it with the Index site, I added some buttons in the nav bar to redirect to each part of the Somos page: Inicio goes back to the index, Historia goes to the nuestra historia section, Sé parte del cambio redirects back to the Index html to the section of calling to action. Hope you like it!
Hello there! In the last devlog, I commented that I managed to get on with the Somos page, yet when I was in the Index page, I found it “odd” that by clicking on “somos” it took you directly to the new html when there’s also a description in the index page as well. Soooo, I decided to make some changes. Now, clicking on “Somos” redirects you to the section in the index page, and in that same section, you’lll find a “Read more” that takes you to the somos.html file. Check it out!
Hello there! Great News! I’ve just finished the demo website for Alimentae. I made some changes in the headers, added information to the somos page, bigger brand logos and so on. Try it now! Hope you like it!
Hello there! So, I was thinking, what if I add something else to Alimentae’s site. I mean, there are 3 colours, blue for the index, white for the somos.html, but what about yellow? Inspired by that idea and my belief that I can make Alimentae much better, I decided to create the accion.html file. See you!
Hello there! So I kinda decide to change some things. Well, you know I was working on the action.html. Well, let’s say I keep working on it but with a new goal: merch. I’ve manage to make mockups of the products and start coding. See you!
Hello there! So, I’ve managed to accomplish the final page of Alimentae. I did it quite fast considering I copied part of the code of the index and the somos.html. When I was working on it, at first I put all the products and all its ways of looking at them, but I didn’t like it. That’s when I thought, hey, what if I search for Gucci’s way of doing so. That’s what inspired me on doing the thing with the arrows in the section of gallery. As well, I kinda copied the same design of the cta of the index, but I managed to discover how to put it some movement. Check out the new changes. Hope you like it!
Ships:
ALIMENTAE I built an interactive and responsive demo website for Alimentae, my food rescue initiative alongside my friends. The platform is divided into two files with multiple sections within both. On the one hand there’s the index.html which covers the general introduction to Alimentae, gives facts and stats, quotes and most importantly, a call to action section to invite the reader to take part. On the other hand, I developed the somos.html which focuses on introducing the team as it contains more detailed info about Alimentae’s creators. As with any project, there were challenges to overcome. I believe that the hardest challenge I had to overcome was managing to make the site easy to view regardless of the device being used. Secondly, making the navigation smooth and finally, establishing a clear visual hierarchy while maintaining the brand identity so it remained legible and appealing. I’m really proud of creating a website which has a clear branding aesthetic and manages to give an interactive experience for anyone using it. Moreover, I believe I succesfully represented my project’s core ideas. Finally, when opening the website you won’t need to do anything other than click the link. Hope you like it!
ALIMENTAE I built an interactive and responsive demo website for Alimentae, my food rescue initiative alongside my friends. The platform is divided into two files with multiple sections within both. On the one hand there’s the index.html which covers the general introduction to Alimentae, gives facts and stats, quotes and most importantly, a call to action section to invite the reader to take part. On the other hand, I developed the somos.html which focuses on introducing the team as it contains more detailed info about Alimentae’s creators. Finally, the last addition to the website ahs been the accion.html, which focuses on the merch of Alimentae (featuring hoddies, t-shirts and tote bags). As with any project, there were challenges to overcome. I believe that the hardest challenge I had to overcome was managing to make the site easy to view regardless of the device being used. Secondly, making the navigation smooth and finally, establishing a clear visual hierarchy while maintaining the brand identity so it remained legible and appealing. With practice, it has become easier to overcome this challenges. I’m really proud of creating a website which has a clear branding aesthetic and manages to give an interactive experience for anyone using it. Moreover, I believe I succesfully represented my project’s core ideas. Finally, when opening the website you won’t need to do anything other than click the link. Hope you like it!...
|
1792824696.6901517
|
1792911096.6901517
|
|
30194
|
my APOD site by @blackbird | Stardance
|
|
2
|
9.31
|
33
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-04T15:57:56Z", "hours": 6.0, "multiplier": 5.59, "payout": 33, "blessing": "neutral", "text": "I added the final change of this site, which was the test clock that syncs to your device. This was a lot simpler than I thought due to already-existing clock features. One of the hardest parts was doing the planet, which I had to look up a tutorial for and took much longer than otherwise thought to center correctly. The memo feature at the bottom of the page took the longest to implement, but there were no large snags in the work, other than a quickly-figured-out issue where the page didn’t reload with the notes.", "repo": "https://github.com/flyingchickensaucer/NASA_Site", "demo": "https://flyingchickensaucer.github.io/NASA_Site/"}, {"ship_num": 2, "ts": "2026-07-04T04:54:25Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a NASA Astronomy Picture of the Day site built with Vite and vanilla JS. It pulls the day’s image or video, title, and explanation from NASA’s API, has a date picker to browse any past day, and a space theme with shooting stars. The toughest part was that the shooting stars had three separate bugs, each from a different layer: they flew backward, spawned offset from the cursor, and all burst at once after leaving the tab. I’m really proud of how I navigated fixing those issues.", "repo": "https://github.com/flyingchickensaucer/NASA_Site", "demo": "https://flyingchickensaucer.github.io/NASA_Site/"}]...
|
[{"post_id": 22473, "ts": "202 [{"post_id": 22473, "ts": "2026-07-04T23:05:14Z", "hours": 0.3131, "text": "There is a request to change my readme to the raw version before reshipping."}, {"post_id": 22199, "ts": "2026-07-04T15:36:13Z", "hours": 5.8992, "text": "I mostly made a few changes to personalize the site. A notes section was added to the bottom, as I enjoy being able to write memos for myself to keep. These notes will pop up on the same day the next year, and they are saved in a bubble at the bottom of the page which will open the page up to that day when clicked. I added a semi-transparent planet to the background to learn more about gradients, which took a massive amount of time, and a lot of trial and error for positioning the ring vs the main body. To Do: make a clock that can sync time from the device (planning on doing something similar for personal website so this will be good practice)"}, {"post_id": 21949, "ts": "2026-07-04T04:41:00Z", "hours": 1.6069, "text": "Made the page look a lot more space-y with a dark gradient theme and a starfield background. Allowed the user to switch the date to a previous one and the corresponding image of that day. Added shooting stars that streak by on their own and move from your cursor when you click the background. Bugs I fixed: Shooting stars flew backward (gradient was on the wrong end) Stars spawned offset from the cursor (was positioning by the corner) All shooting stars appeared at once after leaving the tab (paused the spawner with the Page Visibility API)"}, {"post_id": 21621, "ts": "2026-07-03T17:40:59Z", "hours": 0.9769, "text": "Wow, the picture actually shows!"}, {"post_id": 21566, "ts": "2026-07-03T16:19:53Z", "hours": 0.9031, "text": "Starting my NASA Astronomy Picture of the Day page. This is a small site that will pull NASA’s APOD API and show the day’s title, image or video, and explanation. For this session I decided to deploy-first and get a live (but nearly empty) page onto GitHub Pages before building any features. Set up: the Vite scaffold, a .gitignore keeping my .env safe, .env.example, vite.config.js so Pages serves assets from the right path (otherwise 404s), and a GitHub Actions workflow that builds and publishes to Pages. First deploy actually failed on the Pages step because Pages wasn’t enabled yet. I enabled it, re-ran, green check, live page confirmed. Next session: fetch and render the APOD data"}]...
|
Title: my APOD site by @blackbird | Stardance
Dev Title: my APOD site by @blackbird | Stardance
Devlogs:
Starting my NASA Astronomy Picture of the Day page. This is a small site that will pull NASA’s APOD API and show the day’s title, image or video, and explanation. For this session I decided to deploy-first and get a live (but nearly empty) page onto GitHub Pages before building any features. Set up: the Vite scaffold, a .gitignore keeping my .env safe, .env.example, vite.config.js so Pages serves assets from the right path (otherwise 404s), and a GitHub Actions workflow that builds and publishes to Pages. First deploy actually failed on the Pages step because Pages wasn’t enabled yet. I enabled it, re-ran, green check, live page confirmed. Next session: fetch and render the APOD data
Wow, the picture actually shows!
Made the page look a lot more space-y with a dark gradient theme and a starfield background. Allowed the user to switch the date to a previous one and the corresponding image of that day. Added shooting stars that streak by on their own and move from your cursor when you click the background. Bugs I fixed: Shooting stars flew backward (gradient was on the wrong end) Stars spawned offset from the cursor (was positioning by the corner) All shooting stars appeared at once after leaving the tab (paused the spawner with the Page Visibility API)
I mostly made a few changes to personalize the site. A notes section was added to the bottom, as I enjoy being able to write memos for myself to keep. These notes will pop up on the same day the next year, and they are saved in a bubble at the bottom of the page which will open the page up to that day when clicked. I added a semi-transparent planet to the background to learn more about gradients, which took a massive amount of time, and a lot of trial and error for positioning the ring vs the main body. To Do: make a clock that can sync time from the device (planning on doing something similar for personal website so this will be good practice)
There is a request to change my readme to the raw version before reshipping.
Ships:
I made a NASA Astronomy Picture of the Day site built with Vite and vanilla JS. It pulls the day’s image or video, title, and explanation from NASA’s API, has a date picker to browse any past day, and a space theme with shooting stars. The toughest part was that the shooting stars had three separate bugs, each from a different layer: they flew backward, spawned offset from the cursor, and all burst at once after leaving the tab. I’m really proud of how I navigated fixing those issues.
I added the final change of this site, which was the test clock that syncs to your device. This was a lot simpler than I thought due to already-existing clock features. One of the hardest parts was doing the planet, which I had to look up a tutorial for and took much longer than otherwise thought to center correctly. The memo feature at the bottom of the page took the longest to implement, but there were no large snags in the work, other than a quickly-figured-out issue where the page didn’t reload with the notes....
|
1792842484.8748639
|
1792928884.8748639
|
|
30230
|
personal site mission by @00alexo | Stardance
|
00alexo
|
2
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-16T19:50:54Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finished the interactive projects page", "repo": "https://github.com/00Alexo/personal-site-mission", "demo": "https://personal-site-mission.vercel.app"}, {"ship_num": 2, "ts": "2026-07-09T15:09:08Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Added an animated background, navbar, a typewriter effect on the homepage and a notfound component for inexistent pages", "repo": "https://github.com/00Alexo/personal-site-mission", "demo": "https://personal-site-mission.vercel.app"}]...
|
[{"post_id": 27681, "ts": "202 [{"post_id": 27681, "ts": "2026-07-13T13:49:04Z", "hours": 1.1228, "text": "Added a carousel for the project page to showcase some of my latest projects, also changed the website theme a bit, now with purple being the main color"}, {"post_id": 25306, "ts": "2026-07-09T14:59:05Z", "hours": 0.8197, "text": "Added an animated background, navbar and a typewriter effect on the homepage"}, {"post_id": 21582, "ts": "2026-07-03T16:45:32Z", "hours": 0.555, "text": "Project setup"}]...
|
Title: personal site mission by @00alexo | Stardan Title: personal site mission by @00alexo | Stardance
Devlogs:
Project setup
Added an animated background, navbar and a typewriter effect on the homepage
Added a carousel for the project page to showcase some of my latest projects, also changed the website theme a bit, now with purple being the main color
Ships:
Added an animated background, navbar, a typewriter effect on the homepage and a notfound component for inexistent pages
Finished the interactive projects page...
|
1792817560.9680867
|
1792903960.9680867
|
|
30287
|
very professional site by @ele-na | Stardance
|
ele-na
|
2
|
10.0
|
49
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-07T22:26:56Z", "hours": 8.0, "multiplier": 6.11, "payout": 49, "blessing": "neutral", "text": "i made a website all about myself! features: nav bar custom css 5 pages of real content lots of links (resume, linkedin, etc etc.) site title and favicon interactive devlog and projects page optimization for smaller screens future features: more graphics actual mini project demos credits: pinterest for images google for some code tutorials", "repo": "https://github.com/ele-na2011/personal-site", "demo": "https://ele-na2011.github.io/personal-site/"}, {"ship_num": 2, "ts": "2026-07-29T20:19:48Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "this is my very professional personal website! this is js the first draft, with some simple sections composed of text and images, as well as a custom CSS theme i also hyperlinked some text and added section breakers in the future i will add a proper navigation system and more graphics, etc., as well as a blog and information about the very amazing projects", "repo": "https://github.com/ele-na2011/personal-site", "demo": "https://ele-na2011.github.io/personal-site/"}]...
|
[{"post_id": 42838, "ts": "202 [{"post_id": 42838, "ts": "2026-08-07T19:37:08Z", "hours": 0.4089, "text": "okay so forget the graphics i’m gonna ship it as is i added a favicon and some more content today!! and i think it’s finally time to ship!"}, {"post_id": 42164, "ts": "2026-08-06T19:26:03Z", "hours": 0.6083, "text": "today i optimized the site for mobile viewing and tinier screens. when i would make my screen smaller before, it would format awkwardly, so i decided to optimize it it runs fine on localhost rn but my github is like just lagging and not deploying i will add more graphics believe me guys and a favicon before i ship…looking forward to this!!"}, {"post_id": 41513, "ts": "2026-08-05T19:26:05Z", "hours": 1.4058, "text": "yesterday and today i’ve been doing other things, so i haven’t gotten as much time to work on this i added a footer to my website with links to my external accounts and stuff, and i think i’m finally starting to get the hang of css!! i finally figured out the difference between margin and padding lmao i also changed my header a bit, renamed my home page and isolated it from the rest of the nav links so it looks more professional i think i’m very close to actually shipping the project, my goal for tomorrow is to just find images and add image credits to the site i do want an opinion tho, do you guys think i should add more images to the website?"}, {"post_id": 40261, "ts": "2026-08-03T17:48:42Z", "hours": 1.4042, "text": "today i added a card format for my devlog, now u click on an article and it expands for you to read instead of having like 10 articles literally smacked in your face. i also added more content and images, im still trying to figure out the css grid (forget wordpress, css may be my biggest op) but for now everything looks pretty good! i really still like the cozy vibe im considering adding a section but idt there would be any point cuz theres nothing else to yap about"}, {"post_id": 39237, "ts": "2026-08-02T02:28:05Z", "hours": 0.74, "text": "today i didn’t have much time to work on this, but i added some more inspos and stuff, and i also am trying to figure out how to add graphics the domain grant showed up, but im probs gonna save it for when the website is actually done to get a good domain and publish it the inspiration section is now very tuff and inspirational, im experimenting with graphics on the home page, so don’t mind if stuff looks off"}, {"post_id": 38357, "ts": "2026-07-31T18:15:00Z", "hours": 1.2494, "text": "today i just mostly focused on adding more content, no graphics yet, but i hyperlinked a lot of stuff i also changed the css a bit and fixed the formatting of the dropdown on the projects page. honestly imo everything looks better now with this new font and the changed coloring of the nav bar (has sm more of a cozy vibe!!) help guys i genuinely don’t know what i can write for inspo without sounding cringe and stuff ToT"}, {"post_id": 37987, "ts": "2026-07-31T02:36:20Z", "hours": 2.2431, "text": "post-ship!! this ship got approved sm faster than the other one lmao today i added new pages, as well as a proper navigation system. rn the content is mostly larp, but i will add more authentic stuff as time goes on (there is alr quite a bit of stuff in there tho) but as of right now everything works!! (knock on wood) i reformatted the home page to be less crowded and moved a lot of the content to their respective pages – i also encountered a tiny bug with the nav but that got fixed pretty easily without me having to go to claude… im gonna fix the dropdown on the projects page tmr, i dont really like how it looks rn (lowk chopped) i also want to change a lot of the css (mostly font and stuff) and add more graphics bc rn it looks really dry and the colors rn are kinda clashing…"}, {"post_id": 37230, "ts": "2026-07-29T19:41:55Z", "hours": 1.7358, "text": "all right. so about the 3 sections… my git was having a lot of trouble deploying the page, so i decided to reduce it down to one page. this probably isnt wise, but i added all the css straight in the header of the html (i will change this someday) other than that, i pretty much finished, with a couple sections and custom css and stuff…i’ll prob spend a couple more minutes fixing formatting and stuff and yayy ima ship it and after this ship im going to add actual navigation and project demo carousels and lots of cool stuff"}, {"post_id": 31556, "ts": "2026-07-20T01:49:59Z", "hours": 0.4322, "text": "so after ElenaOS i wanted to have an actual more professional site (cuz iykyk elenaOS is lowk unprofessional) and thus i came here to create the more professional version this website is only gonna have 3 tabs (i’ll add more if needed) and today i just set up the framework and chose a color theme (cuz aesthetics r rlly important trust) i also coded a nav bar and started formatting some other pages like the home page and stuff im having a bit of trouble getting github to deploy the fricking site so i can’t test until that gets fixed so for now ima just plan out the general layout and stuff bc i tend to have the most trouble with that anyways i really like this color theme!!"}]...
|
Title: very professional site by @ele-na | Stardan Title: very professional site by @ele-na | Stardance
Devlogs:
so after ElenaOS i wanted to have an actual more professional site (cuz iykyk elenaOS is lowk unprofessional) and thus i came here to create the more professional version this website is only gonna have 3 tabs (i’ll add more if needed) and today i just set up the framework and chose a color theme (cuz aesthetics r rlly important trust) i also coded a nav bar and started formatting some other pages like the home page and stuff im having a bit of trouble getting github to deploy the fricking site so i can’t test until that gets fixed so for now ima just plan out the general layout and stuff bc i tend to have the most trouble with that anyways i really like this color theme!!
all right. so about the 3 sections… my git was having a lot of trouble deploying the page, so i decided to reduce it down to one page. this probably isnt wise, but i added all the css straight in the header of the html (i will change this someday) other than that, i pretty much finished, with a couple sections and custom css and stuff…i’ll prob spend a couple more minutes fixing formatting and stuff and yayy ima ship it and after this ship im going to add actual navigation and project demo carousels and lots of cool stuff
post-ship!! this ship got approved sm faster than the other one lmao today i added new pages, as well as a proper navigation system. rn the content is mostly larp, but i will add more authentic stuff as time goes on (there is alr quite a bit of stuff in there tho) but as of right now everything works!! (knock on wood) i reformatted the home page to be less crowded and moved a lot of the content to their respective pages – i also encountered a tiny bug with the nav but that got fixed pretty easily without me having to go to claude… im gonna fix the dropdown on the projects page tmr, i dont really like how it looks rn (lowk chopped) i also want to change a lot of the css (mostly font and stuff) and add more graphics bc rn it looks really dry and the colors rn are kinda clashing…
today i just mostly focused on adding more content, no graphics yet, but i hyperlinked a lot of stuff i also changed the css a bit and fixed the formatting of the dropdown on the projects page. honestly imo everything looks better now with this new font and the changed coloring of the nav bar (has sm more of a cozy vibe!!) help guys i genuinely don’t know what i can write for inspo without sounding cringe and stuff ToT
today i didn’t have much time to work on this, but i added some more inspos and stuff, and i also am trying to figure out how to add graphics the domain grant showed up, but im probs gonna save it for when the website is actually done to get a good domain and publish it the inspiration section is now very tuff and inspirational, im experimenting with graphics on the home page, so don’t mind if stuff looks off
today i added a card format for my devlog, now u click on an article and it expands for you to read instead of having like 10 articles literally smacked in your face. i also added more content and images, im still trying to figure out the css grid (forget wordpress, css may be my biggest op) but for now everything looks pretty good! i really still like the cozy vibe im considering adding a section but idt there would be any point cuz theres nothing else to yap about
yesterday and today i’ve been doing other things, so i haven’t gotten as much time to work on this i added a footer to my website with links to my external accounts and stuff, and i think i’m finally starting to get the hang of css!! i finally figured out the difference between margin and padding lmao i also changed my header a bit, renamed my home page and isolated it from the rest of the nav links so it looks more professional i think i’m very close to actually shipping the project, my goal for tomorrow is to just find images and add image credits to the site i do want an opinion tho, do you guys think i should add more images to the website?
today i optimized the site for mobile viewing and tinier screens. when i would make my screen smaller before, it would format awkwardly, so i decided to optimize it it runs fine on localhost rn but my github is like just lagging and not deploying i will add more graphics believe me guys and a favicon before i ship…looking forward to this!!
okay so forget the graphics i’m gonna ship it as is i added a favicon and some more content today!! and i think it’s finally time to ship!
Ships:
this is my very professional personal website! this is js the first draft, with some simple sections composed of text and images, as well as a custom CSS theme i also hyperlinked some text and added section breakers in the future i will add a proper navigation system and more graphics, etc., as well as a blog and information about the very amazing projects
i made a website all about myself! features: nav bar custom css 5 pages of real content lots of links (resume, linkedin, etc etc.) site title and favicon interactive devlog and projects page optimization for smaller screens future features: more graphics actual mini project demos credits: pinterest for images google for some code tutorials...
|
1792839388.7782462
|
1792925788.7782462
|
|
30293
|
My own site! by @Ahmed-Tantawy | Stardance
|
Ahmed-Tantawy
|
2
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-11T21:23:33Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I’ve completed my very first personal website using HTML and CSS, It was a bit challenging when choosing the colors and the styles, but I’m proud of my hard working and the final result, hope you like it!!!", "repo": "https://github.com/Ahmed-Tantawyy/My-Personal-Site", "demo": "https://ahmed-tantawyy.github.io/My-Personal-Site/"}, {"ship_num": 2, "ts": "2026-07-04T00:39:06Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I’ve made my personal website, I was happy when doing it, but it was a bit challenging when choosing the colors and the fonts, hope you like it :3", "repo": "https://github.com/Ahmed-Tantawyy/My-Personal-Site", "demo": "https://ahmed-tantawyy.github.io/My-Personal-Site/"}]...
|
[{"post_id": 26842, "ts": "202 [{"post_id": 26842, "ts": "2026-07-11T21:20:24Z", "hours": 1.6964, "text": "Finally! I finished the second version of my personal website after adding the details in the HTML and CSS."}, {"post_id": 21484, "ts": "2026-07-03T13:48:21Z", "hours": 0.0, "text": "I am working on my first ever personal website : )"}]...
|
Title: My own site! by @Ahmed-Tantawy | Stardance
Title: My own site! by @Ahmed-Tantawy | Stardance
Devlogs:
I am working on my first ever personal website : )
Finally! I finished the second version of my personal website after adding the details in the HTML and CSS.
Ships:
I’ve made my personal website, I was happy when doing it, but it was a bit challenging when choosing the colors and the fonts, hope you like it :3
I’ve completed my very first personal website using HTML and CSS, It was a bit challenging when choosing the colors and the styles, but I’m proud of my hard working and the final result, hope you like it!!!...
|
1792810459.6427824
|
1792896859.6427824
|
|
30352
|
Dungen Escape 2D by @Ahmed_Gayipov | Stardance
|
Ahmed_Gayipov
|
2
|
41.0
|
77
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T17:50:42Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made the game dungun escape 2d it is a maze game were you try to find keys and escape guards And whill escaping there are coins which you can collect to go to the Black Market Were you buy new colors and shapes to costomize your charecter", "repo": "https://github.com/Cr7-is-the-best/Dungeon-Escape2D", "demo": "https://effortless-cobbler-a1d824.netlify.app/"}, {"ship_num": 2, "ts": "2026-07-19T15:16:44Z", "hours": 36.0, "multiplier": 3.33, "payout": 77, "blessing": "neutral", "text": "I made the game dungun escape 2d it is a maze game were you try to find keys and escape guards And whill escaping there are coins which you can collect to go to the Black Market Were you buy new colors and shapes to costomize your charecter", "repo": "https://github.com/Cr7-is-the-best/Dungeon-Escape2D", "demo": "https://effortless-cobbler-a1d824.netlify.app/"}]...
|
[{"post_id": 48359, "ts": "202 [{"post_id": 48359, "ts": "2026-08-16T17:50:01Z", "hours": 0.5675, "text": "Add A few more stuff that should make the game a little harder"}, {"post_id": 32022, "ts": "2026-07-20T21:51:02Z", "hours": 4.3436, "text": "I add better lighting to my game"}, {"post_id": 31254, "ts": "2026-07-19T14:50:20Z", "hours": 0.3278, "text": "I added a save progress button to my game, which saves your character color and shape."}, {"post_id": 30800, "ts": "2026-07-18T18:09:35Z", "hours": 4.0128, "text": "I added diffrent shapes and colors that you can buy to make your charecter look better"}, {"post_id": 30232, "ts": "2026-07-17T17:24:35Z", "hours": 5.2639, "text": "i made it so that now you have to escape a maze"}, {"post_id": 28553, "ts": "2026-07-14T21:33:30Z", "hours": 3.3769, "text": "Made it so that the loot crats give you better loot depending on the wave you are on"}, {"post_id": 24975, "ts": "2026-07-08T21:18:55Z", "hours": 23.475, "text": "I am working on an open-world zombie survival game"}]...
|
Title: Dungen Escape 2D by @Ahmed_Gayipov | Starda Title: Dungen Escape 2D by @Ahmed_Gayipov | Stardance
Devlogs:
I am working on an open-world zombie survival game
Made it so that the loot crats give you better loot depending on the wave you are on
i made it so that now you have to escape a maze
I added diffrent shapes and colors that you can buy to make your charecter look better
I added a save progress button to my game, which saves your character color and shape.
I add better lighting to my game
Add A few more stuff that should make the game a little harder
Ships:
I made the game dungun escape 2d it is a maze game were you try to find keys and escape guards And whill escaping there are coins which you can collect to go to the Black Market Were you buy new colors and shapes to costomize your charecter
I made the game dungun escape 2d it is a maze game were you try to find keys and escape guards And whill escaping there are coins which you can collect to go to the Black Market Were you buy new colors and shapes to costomize your charecter...
|
1792878858.5052361
|
1793742858.5052361
|
|
30355
|
Pew Pew by @Venkatesh | Stardance
|
Venkatesh
|
2
|
8.0
|
40
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T00:37:04Z", "hours": 7.0, "multiplier": 5.5, "payout": 38, "blessing": "neutral", "text": "Finally added in some bosses now the players are encouraged to always be moving and avoiding shots fired by the boss. The boss is more passive in the sense that it does not actively seek the player out but puts on pressure in the background. The player now has to dodge the bosses attacks, destroy immediate threats like the red and purple enemies and then focus on reducing the bosses health. The boss gives a huge amount of money so that the players are truly incentivised to destroy it. playing further, i realise i can improve further by adding: durability to the weapons so that the player has to be in a cycle of buying more weapons with increasing prices there can be more movement options and movement mechanics that can affect the gameplay like how Ultrakill feels There can be more points of interest to encourage travelling longer distances. Maybe some loot boxes, destroyed freighters or like lore exposition like in No Man’s Sky", "repo": "https://github.com/vensah-dev/pew-pew", "demo": "https://github.com/vensah-dev/pew-pew/releases/"}, {"ship_num": 2, "ts": "2026-07-03T16:30:07Z", "hours": 1.0, "multiplier": 2.71, "payout": 2, "blessing": "neutral", "text": "can be downloaded at https://github.com/vensah-dev/pew-pew/releases/tag/v1.1.0 I am working on a game called Pew Pew. The concept is a wave based arcade style 3D space shooter. Some of the controls are inspired by No Man’s Sky. The game aims to fill the void of 3D space games that aren’t arcade style combat oriented with quick rounds and meta progression. Eventually, i aim to be able to have a campaign mode for the game! Currently the game has: better starship handling taking inspiration from No Man’s Sky unique enemy AI behaviour for three different unique enemies with different styles wave based game loop death screen purchase store in space station for 2 other guns and health repair kits/boosters or shield boosters/repairs currently the shooting and can feel hard or buggy, i would be adding in an auto aim assist for long range targets on the machine gun so that early game can be more enjoyable and easier to play before the target seeking weapons are available i started this game a few months ago but had some struggles with motivation and so am now updating it again to reignite my passion for it and eventually release a full version.", "repo": "https://github.com/vensah-dev/pew-pew", "demo": "https://github.com/vensah-dev/pew-pew/releases/"}]...
|
[{"post_id": 55566, "ts": "202 [{"post_id": 55566, "ts": "2026-08-27T14:33:20Z", "hours": 5.8481, "text": "BOSSES: i have finally added bosses! unlike a traditional boss fight where theres an isolated focus on the boss and its attacks, i have chosen to make the boss a much larger enemy that spawns in with the rest of enemy wave. Only one boss can spawn at a time with 5 other normal enemies. The player would be aiming toward eventually destroying the boss for a huge bonus but until they deplete the massive amount of health it has they have to kill normal enemies and dodge attacks. Personally, i think it has upped the stakes of the gameplay and made it so much more fun!"}, {"post_id": 26538, "ts": "2026-07-11T12:36:50Z", "hours": 1.195, "text": "Made the controls better and made the combat more fast paced the combat frankly felt aweful and even the controls were super buggy and not at all intuitive after i played No Man’s Sky for the first time. Taking what i learnt from that game, i made it so that the enemies move around closer to the player so that its easier to aim at the enemy and also ensure that the combat is not slow and boring, with a significant amount of time spent on waiting for the enemies to come to you or chasing them. Additionally I changed the controls to make sure the reticle is confined within a larger circle in the middle to ensure that the player has a visual understanding of how far they can move their mouse and a feel for if they are at max turning speed. More features that i though of include: making the space station more accessible and polished ensuring that the there is some form of aim assist for the machine guns a tutorial or better guidance toward progression and interaction, like locking onto targets, entering the space station, purchasing new weapons etc…"}, {"post_id": 21569, "ts": "2026-07-03T16:24:02Z", "hours": 1.2039, "text": "can be downloaded at https://github.com/vensah-dev/pew-pew/releases/tag/v1.1.0 I am working on a game called Pew Pew. The concept is a wave based arcade style 3D space shooter. Some of the controls are inspired by No Man’s Sky. The game aims to fill the void of 3D space games that aren’t arcade style combat oriented with quick rounds and meta progression. Eventually, i aim to be able to have a campaign mode for the game! i started this game a few months ago and am now updating it again to reignite my passion for it and eventually release a full version."}]...
|
Title: Pew Pew by @Venkatesh | Stardance
Devlogs: Title: Pew Pew by @Venkatesh | Stardance
Devlogs:
can be downloaded at https://github.com/vensah-dev/pew-pew/releases/tag/v1.1.0 I am working on a game called Pew Pew. The concept is a wave based arcade style 3D space shooter. Some of the controls are inspired by No Man’s Sky. The game aims to fill the void of 3D space games that aren’t arcade style combat oriented with quick rounds and meta progression. Eventually, i aim to be able to have a campaign mode for the game! i started this game a few months ago and am now updating it again to reignite my passion for it and eventually release a full version.
Made the controls better and made the combat more fast paced the combat frankly felt aweful and even the controls were super buggy and not at all intuitive after i played No Man’s Sky for the first time. Taking what i learnt from that game, i made it so that the enemies move around closer to the player so that its easier to aim at the enemy and also ensure that the combat is not slow and boring, with a significant amount of time spent on waiting for the enemies to come to you or chasing them. Additionally I changed the controls to make sure the reticle is confined within a larger circle in the middle to ensure that the player has a visual understanding of how far they can move their mouse and a feel for if they are at max turning speed. More features that i though of include: making the space station more accessible and polished ensuring that the there is some form of aim assist for the machine guns a tutorial or better guidance toward progression and interaction, like locking onto targets, entering the space station, purchasing new weapons etc…
BOSSES: i have finally added bosses! unlike a traditional boss fight where theres an isolated focus on the boss and its attacks, i have chosen to make the boss a much larger enemy that spawns in with the rest of enemy wave. Only one boss can spawn at a time with 5 other normal enemies. The player would be aiming toward eventually destroying the boss for a huge bonus but until they deplete the massive amount of health it has they have to kill normal enemies and dodge attacks. Personally, i think it has upped the stakes of the gameplay and made it so much more fun!
Ships:
can be downloaded at https://github.com/vensah-dev/pew-pew/releases/tag/v1.1.0 I am working on a game called Pew Pew. The concept is a wave based arcade style 3D space shooter. Some of the controls are inspired by No Man’s Sky. The game aims to fill the void of 3D space games that aren’t arcade style combat oriented with quick rounds and meta progression. Eventually, i aim to be able to have a campaign mode for the game! Currently the game has: better starship handling taking inspiration from No Man’s Sky unique enemy AI behaviour for three different unique enemies with different styles wave based game loop death screen purchase store in space station for 2 other guns and health repair kits/boosters or shield boosters/repairs currently the shooting and can feel hard or buggy, i would be adding in an auto aim assist for long range targets on the machine gun so that early game can be more enjoyable and easier to play before the target seeking weapons are available i started this game a few months ago but had some struggles with motivation and so am now updating it again to reignite my passion for it and eventually release a full version.
Finally added in some bosses now the players are encouraged to always be moving and avoiding shots fired by the boss. The boss is more passive in the sense that it does not actively seek the player out but puts on pressure in the background. The player now has to dodge the bosses attacks, destroy immediate threats like the red and purple enemies and then focus on reducing the bosses health. The boss gives a huge amount of money so that the players are truly incentivised to destroy it. playing further, i realise i can improve further by adding: durability to the weapons so that the player has to be in a cycle of buying more weapons with increasing prices there can be more movement options and movement mechanics that can affect the gameplay like how Ultrakill feels There can be more points of interest to encourage travelling longer distances. Maybe some loot boxes, destroyed freighters or like lore exposition like in No Man’s Sky...
|
1792835272.439345
|
1792921672.439345
|
|
30366
|
Aglang by @0xf1 | Stardance
|
0xf1
|
2
|
55.0
|
974
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-01T14:45:41Z", "hours": 26.0, "multiplier": 18.44, "payout": 473, "blessing": "neutral", "text": "hello! this is aglang, my own esoteric language made to be similar to assembly. it offers 13 operators, and with those (almost) anything is possible! you can try aglang by either downloading the cli (in the repo the “Source code” button links to) or by using the online interpreter (“Try project” button). if you’re confused and want to learn aglang, try the new interactive course, available on the website in the “learn” section: it will guide you through everything the language can do in only 10 short lessons and exercises. the cli includes an interpreter, a C transpiler and a compiler (note: the compiler needs GCC to be installed)! if you want to develop aglang programs more easily, we even have a vscode extension, with syntax highlighting and statement templates that said, go on and try aglang! its easier than you would expect", "repo": "https://github.com/0xF1dev/aglang", "demo": "https://aglang.0xf1.dev"}, {"ship_num": 2, "ts": "2026-07-15T16:48:54Z", "hours": 29.0, "multiplier": 17.01, "payout": 501, "blessing": "neutral", "text": "hello! this is Aglang , my own esoteric language. an esoteric language (or esolang) is a language made as a joke or to be hard to use , like brainf*ck. my language is made to be really basic: you only have two 8bit registers , and a stack ; there are only 18 valid characters in Aglang, easy to remember, right? in the cli, i implemented both an interpreter (works everywhere) and a compiler (only x86-64 linux); a guide on installation and usage is in its readme, but if you dont want to install it, you can try Aglang in the web interpreter. this project is split into two repositories: the cli at https://github.com/0xF1dev/aglang (main repo) the web interpreter at https://github.com/0xF1dev/aglang-website the website includes some examples and a link to both repos and the documentation. the “Try project” button is linked to the web interpreter (if the domain doesnt work, use https://aglang-website.vercel.app/ ), while the “See source code” takes to the cli’s repository. and now, go crazy and write some code!", "repo": "https://github.com/0xF1dev/aglang", "demo": "https://aglang.0xf1.dev"}]...
|
[{"post_id": 38917, "ts": "202 [{"post_id": 38917, "ts": "2026-08-01T14:43:23Z", "hours": 2.2408, "text": "NOTE FOR THE SHIP: you dont have to try everything! even just the online interpreter is fine, it includes examples! Aglang devlog #12 im ready for the ship! i completed the vscode extension, and (for the third time) I. HATE. MICROSOFT. this might sound excessive, but anyone that ever tried reading their docs can surely understand, right? right…? but finally, after like 2 hours, i made the most basic of extensions! it has syntax highlighting (the thing that i wanted most) and a simple statement templating snippet. and now, i can pretty confidently say that aglang is completed! surely i wont abandon the project, that would just be a waste of the 50 hours i spent on this, but i consider the project to be mostly finished. see ya soon!"}, {"post_id": 38820, "ts": "2026-08-01T11:53:08Z", "hours": 6.4056, "text": "Aglang devlog #11 why did i decide to do this lmao. lets go in order: first of all, i added transpiling! currently, only C is supported as target, but i plan on adding python soon. it actually wasnt that hard, especially considering i basically never wrote C in my life. but this was the least interesting part of this devlog, cause i managed to optimize the compiler a bit! now this… this was hard. but now, when printing many characters in a row (like in the hello world example), instead of printing each character one by one, the full string gets stored in the .text (or .data on windows) section of the assembly and gets printed once! this reduced the size of the hello world program from ~1kb down to 633b, almost half! needless to say that this needed a few attempts… now the project’s folder looks kinda full… but oh well! and i can AGAIN say that GOD I HATE WINDOWS: it took a while to get shadow allocations right, especially since pushing to the stack in aglang means pushing to the stack in assembly too, so i had to keep track of where the old and original pointers were before allocating it. i fully expect this optimization to have some bugs, since i dont really trust the logic i wrote. i didnt add it in the transpile feature, since i imagine that modern c compilers optimize it on their own. now i promise that ill get to writing the vscode extension!"}, {"post_id": 38186, "ts": "2026-07-31T13:34:25Z", "hours": 7.1647, "text": "Aglang devlog #10 well this took a while. so, i came to the conclusion that an lsp server is kinda overkill, so, to make up for it, i decided to make an interactive lesson system on the website, like svelte! and well i didnt expect it to take 7 hours… i have to admit, it came out pretty good! they have code challenges, too :D anyways, for the autocomplete feature, ill still make it into the vscode extension (if i dont give up on that too) oh and i added shareable code in the web interpreter!"}, {"post_id": 37137, "ts": "2026-07-29T16:56:44Z", "hours": 4.7731, "text": "Aglang devlog #9 the windows compiler is here! and i can finally say GOD I HATE WINDOWS why was it so simple in linux with just a syscall and in windows to not pull my hair out i have to link c with the executable lmao but, a wise man once said: the past is gone, think about the future… or something like that idk while i worked on that, i ended up even fixing some problems too, so thats good. and i made the cli a bit prettier too, with spinners! in the meanwhile i was looking at lsp servers too, and they look… overly complicated… yep i guess i already did enough today not gonna get into allthat! see ya tomorrow!"}, {"post_id": 36932, "ts": "2026-07-29T10:32:25Z", "hours": 2.2236, "text": "Aglang devlog #9 there now is a compare statement in aglang! i had this idea for a while, but i thought it would make the language too easy… but i ended up making it anyway! together with it, i made labels too! so if, for example, you wanted to skip a section of code if the number 2 is bigger than 1, you would write it like so: 10?1; $ compare 2 (10 in binary) and 1 (still 1 in binary) $ ^.; $ if 2 is bigger, jump to label . (labels are can only be named with dots, it would have been to easy otherwise :) ) $ (other code...) ~.; $ define label . $ (do more stuff...) and this makes the fibonacci example easier, since now, instead of using counters in the stack, you can simply check if the current number isnt 233 and go back to a previous label. i still have to implement it in the web interpreter, but i guess it shouldnt take long! next step: windows compiler! (note: will probably require mingw to be installed)"}, {"post_id": 36386, "ts": "2026-07-28T13:43:11Z", "hours": 2.83, "text": "Aglang devlog #8 the first ship is done! but before getting to the actual devlog, i want to respond to some of the best feedback i got: why spend 29 (now 32) hours on a joke?: well, you see… uhh… next question please you should see a psychiatrist: i know thanks lmao and now, back to aglang developments! the first version of aglang is finally completed! i want to thank everybody for the feedback i received, it even gave me some ideas, thanks! in these 3 hours, i improved the website, so now instead of just the compiler it even has a full homepage with downloads: this was on my checklist for a while, but first i wanted to ship a first version to get some initial thoughts. next up for this project, i have a two ideas: conditionals and labels: i want to add a way of comparing registers/stack values/literals, and jump to a label or part of the program if that condition is met; with that, aglang would basically be a basic assembly language with a few restrictions windows compiler: the thing thats missing the most in the cli is a windows compiler, and since probably there are quite a few people that use windows more than linux :| and a few other things if i have the time: a vscode extension: this could have themes and docs on the side, minor stuff (i dont think anyone will use aglang in vscode) but idk i wanted to do it an lsp server: for autocompletions, error checking, etc… it could be integrated in more ides too"}, {"post_id": 28961, "ts": "2026-07-15T16:05:27Z", "hours": 3.3708, "text": "Aglang devlog #7 whooo! the documentation is done! im officially ready to ship! i finished writing the documentation and the repo readmes, and im ready to release this into the wild! the docs are availabe in the cli’s repo, but they’re linked in the website too. this took a few days, since i was working on another personal project, but im finally back !"}, {"post_id": 26651, "ts": "2026-07-11T16:17:08Z", "hours": 7.9264, "text": "Aglang devlog #6 the web interpreter is done! after almost 1000 lines of svelte and 8 hours of boredom, im happy to announce that the js implementation of the aglang interpreter is completed! it is now available at https://aglang.0xf1.dev (the dns changes might take some time to fully propagate, so if it isnt loading, it probably will in a few hours…) it is basically a 1:1 copy of the rust code, but prettier! ahem… because of the ui, not the code… and i even designed a logo for it! in it are all the valid characters in aglang. in the meanwhile, i fixed and refactored the loop system in both the js and rust versions. the next steps are writing the docs , preparing a good readme and then i can finally ship the project! see ya then! and p.s. i havent optimized the website for mobile, but i imagine nobody uses stardance on a smartphone, right?"}, {"post_id": 23735, "ts": "2026-07-06T21:08:00Z", "hours": 6.8822, "text": "Aglang devlog #5 no yeah im officially going crazy so, after a bit, the compiler is DONE! now it spits valid x86-64 asm and even automatically compiles it to an executable with gcc! and i even managed to make a fibonacci sequence example program! (it only computes numbers up to 144 since its the highest fibonacci number in the unsigned 8bit integer limit) but to make that, i had to spend HOURS thinking about how to do it. the problem was that in Aglang, you have 2 registers and a stack, and for that fibonacci program i couldnt make it print random ascii characters, but instead the actual numbers in the decimal system: for that i tried making loops that converted a number into the digits that composed it, buuuuut you still need the 2 registers to keep the fibonacci numbers you have! i even surrendered and tried asking gemini, but it would go absolutely CRAZY: it would give really long responses and contradict itself in the code… a bit of like when you ask an ai to give you the seahorse emoji. so, the ultimate solution was to implement a “numeric value” parameter to the stdout argument. therefore, now, if you write something like 01000001>\\#; you would get the actual 65 number instead of the character ‘A’ and all the problems would go to the compiler and assembly! but i dont care now, cus its DONE!!! the next steps, i think, should be making a js interpreter, so that the language can be tried online without downloading anything, so ill work on that tomorrow…"}, {"post_id": 22847, "ts": "2026-07-05T13:48:12Z", "hours": 2.2458, "text": "Aglang devlog #4 it was the comments IT HAD ALWAYS BEEN THE COMMENTS i think im about to go crazy, cuz im trying to manually write assembly to know that the compiler should write, and trying the basic alphabet loop i couldnt get it to work, no matter what it was always printing ▒ . i tried everything, i even managed to get SATAN ITSELF to write my output (check attached image)… but finally… i tried deleting the comments i put with the original aglang line… and it worked. i found out that the stdout token in aglang (“ \\ ”, i even have to write it twice here in the post because stardance has the same problem lmao) was making nasm think that i was trying to escape the newline after the comment, thus making the next assembly line part of the comment. as you can see from the logged time it literally took over 2 hours of my life because of a single backslash."}, {"post_id": 22303, "ts": "2026-07-04T18:16:35Z", "hours": 1.4739, "text": "Aglang devlog #3 so i uhh… kinda refactored everything? i realized that to make the compiler i had 2 options: make a separate project (and repo) integrate it in the existing interpreter the latter option made more sense, because since the project is small i can just split into two commands. so, after 1.30hrs, i managed to split and reorganize the code! now to run the aglang interpreter you can run: aglang run ./main.ag the next step is building the compiler itself, but ill leave that to tomorrow. (and i think itll just support linux elf64 x86-64 architectures, sorry arm friends!) oh wait! i forgot to tell y’all why the name “Aglang”! nothing special actually, “Ag” just stands for “Ugly” lmao"}, {"post_id": 22121, "ts": "2026-07-04T12:36:09Z", "hours": 4.2497, "text": "Aglang devlog #2 the interpreter is done faster than i expected and after some issues i settled on the syntax. ive added comments (kinda hated working on them), changed the input structure a little bit (now the input gets directly stored on the stack). the next step is building a compiler to x86-64 assembly, i dont think i’ll make it for other architectures. i guess it shouldnt be that hard since the language’s features are pretty similar to how assembly works ( obvious foreshadowing ) this example outputs every uppercase letter in the alphabet: 01000001>''; $ move 65 (A char in ascii) to reg2 $ 11010>:; $ push alphabet counter (from A to Z) into stack $ [ $ loop (ends when first value in stack is 0) $ ''>\\; $ output the letter $ 1010>\\; $ newline $ ''+1; $ add 1 to the ascii value to go to the next letter $ :>'; $ move counter to reg1 $ :!; $ pop old counter $ '-1; $ remove 1 from the counter $ '>:; $ push the updated counter to the stack $ ] (the text between the $ are comments)"}, {"post_id": 21635, "ts": "2026-07-03T17:57:37Z", "hours": 3.3219, "text": "Aglang devlog #1 i’m finally building a language! Aglang is an esoteric language (like brainf*ck) with 15 possible characters (not including the 0’s and 1’s of binary literals) where you are given two 8-bit registers and a stack: their values can be moved and deleted and arithmetic operations can be done with their respective characters. i’m currently building an interpreter in Rust, but i hope once im done with that to start creating a compiler to x86-64 assembly. i’ve attached a scheme made in KDE Drawy (i changed it like 8 times already) describing the language (sorry it’s in italian and my writing sucks), an aglang snippet and the parsed output in the interpreter."}]...
|
Title: Aglang by @0xf1 | Stardance
Devlogs:
Aglan Title: Aglang by @0xf1 | Stardance
Devlogs:
Aglang devlog #1 i’m finally building a language! Aglang is an esoteric language (like brainf*ck) with 15 possible characters (not including the 0’s and 1’s of binary literals) where you are given two 8-bit registers and a stack: their values can be moved and deleted and arithmetic operations can be done with their respective characters. i’m currently building an interpreter in Rust, but i hope once im done with that to start creating a compiler to x86-64 assembly. i’ve attached a scheme made in KDE Drawy (i changed it like 8 times already) describing the language (sorry it’s in italian and my writing sucks), an aglang snippet and the parsed output in the interpreter.
Aglang devlog #2 the interpreter is done faster than i expected and after some issues i settled on the syntax. ive added comments (kinda hated working on them), changed the input structure a little bit (now the input gets directly stored on the stack). the next step is building a compiler to x86-64 assembly, i dont think i’ll make it for other architectures. i guess it shouldnt be that hard since the language’s features are pretty similar to how assembly works ( obvious foreshadowing ) this example outputs every uppercase letter in the alphabet: 01000001>''; $ move 65 (A char in ascii) to reg2 $ 11010>:; $ push alphabet counter (from A to Z) into stack $ [ $ loop (ends when first value in stack is 0) $ ''>\; $ output the letter $ 1010>\; $ newline $ ''+1; $ add 1 to the ascii value to go to the next letter $ :>'; $ move counter to reg1 $ :!; $ pop old counter $ '-1; $ remove 1 from the counter $ '>:; $ push the updated counter to the stack $ ] (the text between the $ are comments)
Aglang devlog #3 so i uhh… kinda refactored everything? i realized that to make the compiler i had 2 options: make a separate project (and repo) integrate it in the existing interpreter the latter option made more sense, because since the project is small i can just split into two commands. so, after 1.30hrs, i managed to split and reorganize the code! now to run the aglang interpreter you can run: aglang run ./main.ag the next step is building the compiler itself, but ill leave that to tomorrow. (and i think itll just support linux elf64 x86-64 architectures, sorry arm friends!) oh wait! i forgot to tell y’all why the name “Aglang”! nothing special actually, “Ag” just stands for “Ugly” lmao
Aglang devlog #4 it was the comments IT HAD ALWAYS BEEN THE COMMENTS i think im about to go crazy, cuz im trying to manually write assembly to know that the compiler should write, and trying the basic alphabet loop i couldnt get it to work, no matter what it was always printing ▒ . i tried everything, i even managed to get SATAN ITSELF to write my output (check attached image)… but finally… i tried deleting the comments i put with the original aglang line… and it worked. i found out that the stdout token in aglang (“ \ ”, i even have to write it twice here in the post because stardance has the same problem lmao) was making nasm think that i was trying to escape the newline after the comment, thus making the next assembly line part of the comment. as you can see from the logged time it literally took over 2 hours of my life because of a single backslash.
Aglang devlog #5 no yeah im officially going crazy so, after a bit, the compiler is DONE! now it spits valid x86-64 asm and even automatically compiles it to an executable with gcc! and i even managed to make a fibonacci sequence example program! (it only computes numbers up to 144 since its the highest fibonacci number in the unsigned 8bit integer limit) but to make that, i had to spend HOURS thinking about how to do it. the problem was that in Aglang, you have 2 registers and a stack, and for that fibonacci program i couldnt make it print random ascii characters, but instead the actual numbers in the decimal system: for that i tried making loops that converted a number into the digits that composed it, buuuuut you still need the 2 registers to keep the fibonacci numbers you have! i even surrendered and tried asking gemini, but it would go absolutely CRAZY: it would give really long responses and contradict itself in the code… a bit of like when you ask an ai to give you the seahorse emoji. so, the ultimate solution was to implement a “numeric value” parameter to the stdout argument. therefore, now, if you write something like 01000001>\#; you would get the actual 65 number instead of the character ‘A’ and all the problems would go to the compiler and assembly! but i dont care now, cus its DONE!!! the next steps, i think, should be making a js interpreter, so that the language can be tried online without downloading anything, so ill work on that tomorrow…
Aglang devlog #6 the web interpreter is done! after almost 1000 lines of svelte and 8 hours of boredom, im happy to announce that the js implementation of the aglang interpreter is completed! it is now available at https://aglang.0xf1.dev (the dns changes might take some time to fully propagate, so if it isnt loading, it probably will in a few hours…) it is basically a 1:1 copy of the rust code, but prettier! ahem… because of the ui, not the code… and i even designed a logo for it! in it are all the valid characters in aglang. in the meanwhile, i fixed and refactored the loop system in both the js and rust versions. the next steps are writing the docs , preparing a good readme and then i can finally ship the project! see ya then! and p.s. i havent optimized the website for mobile, but i imagine nobody uses stardance on a smartphone, right?
Aglang devlog #7 whooo! the documentation is done! im officially ready to ship! i finished writing the documentation and the repo readmes, and im ready to release this into the wild! the docs are availabe in the cli’s repo, but they’re linked in the website too. this took a few days, since i was working on another personal project, but im finally back !
Aglang devlog #8 the first ship is done! but before getting to the actual devlog, i want to respond to some of the best feedback i got: why spend 29 (now 32) hours on a joke?: well, you see… uhh… next question please you should see a psychiatrist: i know thanks lmao and now, back to aglang developments! the first version of aglang is finally completed! i want to thank everybody for the feedback i received, it even gave me some ideas, thanks! in these 3 hours, i improved the website, so now instead of just the compiler it even has a full homepage with downloads: this was on my checklist for a while, but first i wanted to ship a first version to get some initial thoughts. next up for this project, i have a two ideas: conditionals and labels: i want to add a way of comparing registers/stack values/literals, and jump to a label or part of the program if that condition is met; with that, aglang would basically be a basic assembly language with a few restrictions windows compiler: the thing thats missing the most in the cli is a windows compiler, and since probably there are quite a few people that use windows more than linux :| and a few other things if i have the time: a vscode extension: this could have themes and docs on the side, minor stuff (i dont think anyone will use aglang in vscode) but idk i wanted to do it an lsp server: for autocompletions, error checking, etc… it could be integrated in more ides too
Aglang devlog #9 there now is a compare statement in aglang! i had this idea for a while, but i thought it would make the language too easy… but i ended up making it anyway! together with it, i made labels too! so if, for example, you wanted to skip a section of code if the number 2 is bigger than 1, you would write it like so: 10?1; $ compare 2 (10 in binary) and 1 (still 1 in binary) $ ^.; $ if 2 is bigger, jump to label . (labels are can only be named with dots, it would have been to easy otherwise :) ) $ (other code...) ~.; $ define label . $ (do more stuff...) and this makes the fibonacci example easier, since now, instead of using counters in the stack, you can simply check if the current number isnt 233 and go back to a previous label. i still have to implement it in the web interpreter, but i guess it shouldnt take long! next step: windows compiler! (note: will probably require mingw to be installed)
Aglang devlog #9 the windows compiler is here! and i can finally say GOD I HATE WINDOWS why was it so simple in linux with just a syscall and in windows to not pull my hair out i have to link c with the executable lmao but, a wise man once said: the past is gone, think about the future… or something like that idk while i worked on that, i ended up even fixing some problems too, so thats good. and i made the cli a bit prettier too, with spinners! in the meanwhile i was looking at lsp servers too, and they look… overly complicated… yep i guess i already did enough today not gonna get into allthat! see ya tomorrow!
Aglang devlog #10 well this took a while. so, i came to the conclusion that an lsp server is kinda overkill, so, to make up for it, i decided to make an interactive lesson system on the website, like svelte! and well i didnt expect it to take 7 hours… i have to admit, it came out pretty good! they have code challenges, too :D anyways, for the autocomplete feature, ill still make it into the vscode extension (if i dont give up on that too) oh and i added shareable code in the web interpreter!
Aglang devlog #11 why did i decide to do this lmao. lets go in order: first of all, i added transpiling! currently, only C is supported as target, but i plan on adding python soon. it actually wasnt that hard, especially considering i basically never wrote C in my life. but this was the least interesting part of this devlog, cause i managed to optimize the compiler a bit! now this… this was hard. but now, when printing many characters in a row (like in the hello world example), instead of printing each character one by one, the full string gets stored in the .text (or .data on windows) section of the assembly and gets printed once! this reduced the size of the hello world program from ~1kb down to 633b, almost half! needless to say that this needed a few attempts… now the project’s folder looks kinda full… but oh well! and i can AGAIN say that GOD I HATE WINDOWS: it took a while to get shadow allocations right, especially since pushing to the stack in aglang means pushing to the stack in assembly too, so i had to keep track of where the old and original pointers were before allocating it. i fully expect this optimization to have some bugs, since i dont really trust the logic i wrote. i didnt add it in the transpile feature, since i imagine that modern c compilers optimize it on their own. now i promise that ill get to writing the vscode extension!
NOTE FOR THE SHIP: you dont have to try everything! even just the online interpreter is fine, it includes examples! Aglang devlog #12 im ready for the ship! i completed the vscode extension, and (for the third time) I. HATE. MICROSOFT. this might sound excessive, but anyone that ever tried reading their docs can surely understand, right? right…? but finally, after like 2 hours, i made the most basic of extensions! it has syntax highlighting (the thing that i wanted most) and a simple statement templating snippet. and now, i can pretty confidently say that aglang is completed! surely i wont abandon the project, that would just be a waste of the 50 hours i spent on this, but i consider the project to be mostly finished. see ya soon!
Ships:
hello! this is Aglang , my own esoteric language. an esoteric language (or esolang) is a language made as a joke or to be hard to use , like brainf*ck. my language is made to be really basic: you only have two 8bit registers , and a stack ; there are only 18 valid characters in Aglang, easy to remember, right? in the cli, i implemented both an interpreter (works everywhere) and a compiler (only x86-64 linux); a guide on installation and usage is in its readme, but if you dont want to install it, you can try Aglang in the web interpreter. this project is split into two repositories: the cli at https://github.com/0xF1dev/aglang (main repo) the web interpreter at https://github.com/0xF1dev/aglang-website the website includes some examples and a link to both repos and the documentation. the “Try project” button is linked to the web interpreter (if the domain doesnt work, use https://aglang-website.vercel.app/ ), while the “See source code” takes to the cli’s repository. and now, go crazy and write some code!
hello! this is aglang, my own esoteric language made to be similar to assembly. it offers 13 operators, and with those (almost) anything is possible! you can try aglang by either downloading the cli (in the repo the “Source code” button links to) or by using the online interpreter (“Try project” button). if you’re confused and want to learn aglang, try the new interactive course, available on the website in the “learn” section: it will guide you through everything the language can do in only 10 short lessons and exercises. the cli includes an interpreter, a C transpiler and a compiler (note: the compiler needs GCC to be installed)! if you want to develop aglang programs more easily, we even have a vscode extension, with syntax highlighting and statement templates that said, go on and try aglang! its easier than you would expect...
|
1792842631.7676342
|
1792929031.7676342
|
|
30369
|
My own site! by @laumax | Stardance
|
laumax
|
2
|
0.66
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-03T20:31:16Z", "hours": 0.0, "multiplier": 1.24, "payout": 0, "blessing": "neutral", "text": "I changed the theme completely, i used comic sans as the font to make it more goofy, some UI elements from uiverse and custom cursor from one of those cursor sites. and changed the colors aswell to make it as silly looking as possible.", "repo": "https://github.com/LaurentMaxhuni/stardance-portfolio-website", "demo": "https://laurentmaxhuni.github.io/stardance-portfolio-website/"}, {"ship_num": 2, "ts": "2026-07-03T17:37:17Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I completed the “Personal site” mission on Stardance!", "repo": "https://github.com/LaurentMaxhuni/stardance-portfolio-website", "demo": "https://laurentmaxhuni.github.io/stardance-portfolio-website/"}]...
|
[{"post_id": 22339, "ts": "202 [{"post_id": 22339, "ts": "2026-07-04T19:18:37Z", "hours": 0.6608, "text": "Made a set of visual updates to the portfolio to give it a more playful and distinctive look. I shifted the styling toward a boxy, cartoon-inspired design with bold outlines, stronger shadows, and more colorful section blocks. The layout was refined so the hero, about, and projects sections feel more expressive while still remaining simple to navigate. I also updated the project documentation to reflect the new direction of the site, making sure the README matches the current design and structure."}, {"post_id": 21733, "ts": "2026-07-03T20:30:42Z", "hours": 0.3553, "text": "I changed the theme completely, i used comic sans as the font to make it more goofy, some UI elements from uiverse and custom cursor from one of those cursor sites."}, {"post_id": 21615, "ts": "2026-07-03T17:33:57Z", "hours": 0.2839, "text": "I completed the “My own website” mission project successfully."}]...
|
Title: My own site! by @laumax | Stardance
Devlog Title: My own site! by @laumax | Stardance
Devlogs:
I completed the “My own website” mission project successfully.
I changed the theme completely, i used comic sans as the font to make it more goofy, some UI elements from uiverse and custom cursor from one of those cursor sites.
Made a set of visual updates to the portfolio to give it a more playful and distinctive look. I shifted the styling toward a boxy, cartoon-inspired design with bold outlines, stronger shadows, and more colorful section blocks. The layout was refined so the hero, about, and projects sections feel more expressive while still remaining simple to navigate. I also updated the project documentation to reflect the new direction of the site, making sure the README matches the current design and structure.
Ships:
I completed the “Personal site” mission on Stardance!
I changed the theme completely, i used comic sans as the font to make it more goofy, some UI elements from uiverse and custom cursor from one of those cursor sites. and changed the colors aswell to make it as silly looking as possible....
|
1792846522.2074332
|
1792932922.2074332
|
|
30413
|
My very own WebOS by @Aryav | Stardance
|
Aryav
|
2
|
0.59
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-04T19:27:21Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a WebOS called NexusOS startup screen. I fixed the readme and fixed the hosting.", "repo": "https://github.com/AGcoder1905/NexusOS", "demo": "https://nexus-os-gilt-two.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-04T12:53:02Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a startup page for my webOS called NexusOS. The most challenging thing was the CSS and i overcame that by searching up examples of it but the easy thing was writing the text in the window.", "repo": "https://github.com/AGcoder1905/NexusOS", "demo": "https://nexus-os-gilt-two.vercel.app/"}]...
|
[{"post_id": 27116, "ts": "202 [{"post_id": 27116, "ts": "2026-07-12T11:57:58Z", "hours": 0.5858, "text": "i made the window in my WebOS movable"}, {"post_id": 22340, "ts": "2026-07-04T19:19:22Z", "hours": 0.3333, "text": "I wrote my Readme without using ai"}, {"post_id": 22125, "ts": "2026-07-04T12:45:38Z", "hours": 0.2944, "text": "I am making my very own WebOS called NexusOS"}]...
|
Title: My very own WebOS by @Aryav | Stardance
De Title: My very own WebOS by @Aryav | Stardance
Devlogs:
I am making my very own WebOS called NexusOS
I wrote my Readme without using ai
i made the window in my WebOS movable
Ships:
I made a startup page for my webOS called NexusOS. The most challenging thing was the CSS and i overcame that by searching up examples of it but the easy thing was writing the text in the window.
I made a WebOS called NexusOS startup screen. I fixed the readme and fixed the hosting....
|
1792810454.1552463
|
1792896854.1552463
|
|
30432
|
My own site! by @blackbird | Stardance
|
|
2
|
29.0
|
127
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-11T18:22:43Z", "hours": 14.0, "multiplier": 9.04, "payout": 127, "blessing": "neutral", "text": "The second version of the site is up. This one has added a new UI (as I had a lot of fun with the last one) that moves as the user scrolls. This UI is based on engineering blueprints, as that is the career I’m hoping to go into in the future. There were a few interesting bugs with page links that I’ve never encountered before, but that was sorted out pretty quickly.", "repo": "https://github.com/flyingchickensaucer/personal-website", "demo": "https://personal-website-kohl-theta.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-05T07:13:46Z", "hours": 15.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finished putting the site up. The whole thing’s made to look like an old star chart, mostly because I think they look cool. The constellation on the front is Corvus. There’s also a little clock that runs solar, sidereal, and dynamical time at once, which nobody actually needs except astrophysicists, but it’s cool.", "repo": "https://github.com/flyingchickensaucer/personal-website", "demo": "https://personal-website-kohl-theta.vercel.app/"}]...
|
[{"post_id": 26710, "ts": "202 [{"post_id": 26710, "ts": "2026-07-11T17:40:20Z", "hours": 4.5483, "text": "The last of the edits are up! Most of the changes are just optimization and making sure that everything on the blueprint version of the site matches the star chart version without being the same. A few bugs popped up due to url linking issues, but those were fixed by swapping out the dev server, which was stripping trailing slashes so the blueprint pages kept using the star chart’s stylesheet. A secret 404 error page was also added, which will probably never pop up due to the site being so simple and unclicked-on."}, {"post_id": 25999, "ts": "2026-07-10T15:35:41Z", "hours": 6.4333, "text": "In this iteration, I added a lot of moving parts to the background, and all are up and spinning. There are still issues with the website not looking good on mobile and objects spinning the wrong way. There isn’t much to say, as it’s mostly just UI changes to make the background more intricate and add an image of a plane. To Do: make sure all the background elements spin the right way change the formatting for the rest of the pages switch out the plane image (it’s kind of ugly, I take suggestions)"}, {"post_id": 25779, "ts": "2026-07-10T07:26:45Z", "hours": 3.0639, "text": "I am starting a new UI in addition to my previous one, as I had a lot of fun with it. Here is currently a preview of it. The rest will take a very long time, but it likely won’t seem like much as it’s mostly just adding movement to the background. Some of the issues I have had include drawing out all the gears in the background and just figuring out a unique UI that both matches with the star chart one and reflects my interest in engineering. To Do: make the background gears turn as I scroll the page add more ui elements to the background give the ui a bit more warmth (the blue seems too cold)"}, {"post_id": 22637, "ts": "2026-07-05T05:57:48Z", "hours": 7.2603, "text": "There are minimal changes to the site, but also rather time-consuming ones. The main difference is the background, which required much trial and error. The clock section was also changed and the constellation fixed."}, {"post_id": 22215, "ts": "2026-07-04T16:05:24Z", "hours": 2.3575, "text": "The changes made in this iteration were mostly unnoticable small bugs. For one, the bar at the top was not leaving the page when I scrolled. This was of my own fault for adding a setting that I didn’t want. I changed the constellation to better fit, but it still needs tweaking. The three clocks for important astrophysics times were added. To Do: change clock position to a better place (I take suggestions!) add more to the background improve the star positioning for the constellation"}, {"post_id": 22019, "ts": "2026-07-04T08:10:07Z", "hours": 5.0661, "text": "This is a long overdue devlog. I spent about five hours with this project without even noticing time going by because I was so excited to make this cool new UI. Built out my personal site around a star-atlas-chart theme, with four pages: home, about, resume, and a “random stuff” page for small games and experiments. Got it deployed to GitHub and Vercel (Vercel was previously done already as this is a long term project). Still to do: Fix the constellation (Corvus is wrong and I need to recalculate the star positions) Figure out how to add sidereal time + UTC to the page Fix the top nav bar cause the links are hard to click right now Add more lines to the background so it seems written on"}]...
|
Title: My own site! by @blackbird | Stardance
Dev Title: My own site! by @blackbird | Stardance
Devlogs:
This is a long overdue devlog. I spent about five hours with this project without even noticing time going by because I was so excited to make this cool new UI. Built out my personal site around a star-atlas-chart theme, with four pages: home, about, resume, and a “random stuff” page for small games and experiments. Got it deployed to GitHub and Vercel (Vercel was previously done already as this is a long term project). Still to do: Fix the constellation (Corvus is wrong and I need to recalculate the star positions) Figure out how to add sidereal time + UTC to the page Fix the top nav bar cause the links are hard to click right now Add more lines to the background so it seems written on
The changes made in this iteration were mostly unnoticable small bugs. For one, the bar at the top was not leaving the page when I scrolled. This was of my own fault for adding a setting that I didn’t want. I changed the constellation to better fit, but it still needs tweaking. The three clocks for important astrophysics times were added. To Do: change clock position to a better place (I take suggestions!) add more to the background improve the star positioning for the constellation
There are minimal changes to the site, but also rather time-consuming ones. The main difference is the background, which required much trial and error. The clock section was also changed and the constellation fixed.
I am starting a new UI in addition to my previous one, as I had a lot of fun with it. Here is currently a preview of it. The rest will take a very long time, but it likely won’t seem like much as it’s mostly just adding movement to the background. Some of the issues I have had include drawing out all the gears in the background and just figuring out a unique UI that both matches with the star chart one and reflects my interest in engineering. To Do: make the background gears turn as I scroll the page add more ui elements to the background give the ui a bit more warmth (the blue seems too cold)
In this iteration, I added a lot of moving parts to the background, and all are up and spinning. There are still issues with the website not looking good on mobile and objects spinning the wrong way. There isn’t much to say, as it’s mostly just UI changes to make the background more intricate and add an image of a plane. To Do: make sure all the background elements spin the right way change the formatting for the rest of the pages switch out the plane image (it’s kind of ugly, I take suggestions)
The last of the edits are up! Most of the changes are just optimization and making sure that everything on the blueprint version of the site matches the star chart version without being the same. A few bugs popped up due to url linking issues, but those were fixed by swapping out the dev server, which was stripping trailing slashes so the blueprint pages kept using the star chart’s stylesheet. A secret 404 error page was also added, which will probably never pop up due to the site being so simple and unclicked-on.
Ships:
Finished putting the site up. The whole thing’s made to look like an old star chart, mostly because I think they look cool. The constellation on the front is Corvus. There’s also a little clock that runs solar, sidereal, and dynamical time at once, which nobody actually needs except astrophysicists, but it’s cool.
The second version of the site is up. This one has added a new UI (as I had a lot of fun with the last one) that moves as the user scrolls. This UI is based on engineering blueprints, as that is the career I’m hoping to go into in the future. There were a few interesting bugs with page links that I’ve never encountered before, but that was sorted out pretty quickly....
|
1792828233.1402848
|
1792914633.1402848
|
|
30527
|
Bulldog by @CheezzyBoii | Stardance
|
CheezzyBoii
|
2
|
3.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-16T20:12:10Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "My simple slackbot named bulldog acctualy working this time please take a look", "repo": "https://github.com/CheezzyBoii/Bulldog", "demo": "https://hackclub.enterprise.slack.com/archives/C0BFQ5WMUGN"}, {"ship_num": 2, "ts": "2026-07-07T02:52:57Z", "hours": 1.0, "multiplier": 1.46, "payout": 1, "blessing": "neutral", "text": "Nice slack bot with the nice name Bulldog damn he is tuff.", "repo": "https://github.com/CheezzyBoii/Bulldog", "demo": "https://hackclub.enterprise.slack.com/archives/C0BFQ5WMUGN"}]...
|
[{"post_id": 29692, "ts": "202 [{"post_id": 29692, "ts": "2026-07-16T19:25:25Z", "hours": 0.6619, "text": "Addes /bulldog-yes-no it uses the api https://yesno.wtf to get a yes or no gif for the user"}, {"post_id": 24319, "ts": "2026-07-07T20:31:34Z", "hours": 1.5517, "text": "I worked on bulldog for 1 hour and 31 minutes adding a new slash command /bulldog-image which returns a random dog image. I thought that the read me needed to be updated to be actually useful and some other stuff."}, {"post_id": 23882, "ts": "2026-07-07T02:32:47Z", "hours": 1.0364, "text": "Just make the initial commit for my slack bot project"}]...
|
Title: Bulldog by @CheezzyBoii | Stardance
Devlog Title: Bulldog by @CheezzyBoii | Stardance
Devlogs:
Just make the initial commit for my slack bot project
I worked on bulldog for 1 hour and 31 minutes adding a new slash command /bulldog-image which returns a random dog image. I thought that the read me needed to be updated to be actually useful and some other stuff.
Addes /bulldog-yes-no it uses the api https://yesno.wtf to get a yes or no gif for the user
Ships:
Nice slack bot with the nice name Bulldog damn he is tuff.
My simple slackbot named bulldog acctualy working this time please take a look...
|
1792832115.5698814
|
1792918515.5698814
|
|
30534
|
My first slack bot! by @akshajdewan102 | Stardance
|
akshajdewan102
|
2
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-06T01:00:39Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "shipped always-on bot, a slack bot that never clocks out. you slash it a command and it fires back a joke, a dice roll, a live cat fact, or an 8-ball verdict. i wrote it in javascript on @slack /bolt in socket mode, so it connects over an outbound websocket and skips the public-url handshake. the reply logic sits in one file as plain text-in, text-out functions with no slack code, which lets me unit-test the whole brain without a workspace (15 tests pass). it runs on hack club nest as a systemd service that restarts on crash and boots on startup, and it’s held a live connection for over a day. i gave it a status page and a health endpoint too, so there’s a url that proves it’s awake.", "repo": "https://github.com/Downbeatfoil/alwayson-slackbot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0BEUNSN51D?_gl=1*k537nj*_gcl_au*MjA3MzM4MjMzNy4xNzgzMjA1MTQz"}, {"ship_num": 2, "ts": "2026-07-04T21:29:10Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Always-On Slack Bot — shipped and running 24/7 Wanted to build a Slack bot that never goes offline and just answers whatever you throw at it. Got it done this week. I used JavaScript with Slack’s Bolt framework in Socket Mode, so the bot talks to Slack over a WebSocket instead of needing a public URL. It has 10 slash commands so far: /ao-help, /ao-joke, /ao-quote, a magic 8-ball, a coin flip, a dice roller, /ao-time, and /ao-catfact which pulls a random fact from a live API. I kept all the reply logic in its own file with zero Slack code in it, which let me write real unit tests for it (15 of them, all passing). The part I’m happiest with is the hosting. Rather than a free web host that falls asleep after a few minutes, I put it on Hack Club Nest as a systemd service. It auto-restarts if it crashes and comes back up on reboot, so it’s genuinely online around the clock. I also gave it a small status page so there’s a link you can actually open: https://bot.akshajdewan102.hackclub.app Things I learned the hard way: Nest containers are just plain Debian, so I had to apt install node and git myself before anything would run, and Socket Mode needs two separate tokens (a bot token and an app-level token) which took me a minute to figure out. Next up: a few more commands, and maybe a small database if I want it to remember anything between messages.", "repo": "https://github.com/Downbeatfoil/alwayson-slackbot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0BEUNSN51D?_gl=1*k537nj*_gcl_au*MjA3MzM4MjMzNy4xNzgzMjA1MTQz"}]...
|
[{"post_id": 23208, "ts": "202 [{"post_id": 23208, "ts": "2026-07-06T00:59:55Z", "hours": 0.3144, "text": "shipped always-on bot, a slack bot that never clocks out. you slash it a command and it fires back a joke, a dice roll, a live cat fact, or an 8-ball verdict. i wrote it in javascript on @slack /bolt in socket mode, so it connects over an outbound websocket and skips the public-url handshake. the reply logic sits in one file as plain text-in, text-out functions with no slack code, which lets me unit-test the whole brain without a workspace (15 tests pass). it runs on hack club nest as a systemd service that restarts on crash and boots on startup, and it’s held a live connection for over a day. i gave it a status page and a health endpoint too, so there’s a url that proves it’s awake."}, {"post_id": 22402, "ts": "2026-07-04T21:23:14Z", "hours": 0.3975, "text": "Always-On Slack Bot — shipped and running 24/7Wanted to build a Slack bot that never goes offline and just answers whatever you throw at it. Got it done this week.I used JavaScript with Slack’s Bolt framework in Socket Mode, so the bot talks to Slack over a WebSocket instead of needing a public URL. It has 10 slash commands so far: /ao-help, /ao-joke, /ao-quote, a magic 8-ball, a coin flip, a dice roller, /ao-time, and /ao-catfact which pulls a random fact from a live API. I kept all the reply logic in its own file with zero Slack code in it, which let me write real unit tests for it (15 of them, all passing).The part I’m happiest with is the hosting. Rather than a free web host that falls asleep after a few minutes, I put it on Hack Club Nest as a systemd service. It auto-restarts if it crashes and comes back up on reboot, so it’s genuinely online around the clock. I also gave it a small status page so there’s a link you can actually open: https://bot.akshajdewan102.hackclub.appThings I learned the hard way: Nest containers are just plain Debian, so I had to apt install node and git myself before anything would run, and Socket Mode needs two separate tokens (a bot token and an app-level token) which took me a minute to figure out.Next up: a few more commands, and maybe a small database if I want it to remember anything between messages."}]...
|
Title: My first slack bot! by @akshajdewan102 | St Title: My first slack bot! by @akshajdewan102 | Stardance
Devlogs:
Always-On Slack Bot — shipped and running 24/7Wanted to build a Slack bot that never goes offline and just answers whatever you throw at it. Got it done this week.I used JavaScript with Slack’s Bolt framework in Socket Mode, so the bot talks to Slack over a WebSocket instead of needing a public URL. It has 10 slash commands so far: /ao-help, /ao-joke, /ao-quote, a magic 8-ball, a coin flip, a dice roller, /ao-time, and /ao-catfact which pulls a random fact from a live API. I kept all the reply logic in its own file with zero Slack code in it, which let me write real unit tests for it (15 of them, all passing).The part I’m happiest with is the hosting. Rather than a free web host that falls asleep after a few minutes, I put it on Hack Club Nest as a systemd service. It auto-restarts if it crashes and comes back up on reboot, so it’s genuinely online around the clock. I also gave it a small status page so there’s a link you can actually open: https://bot.akshajdewan102.hackclub.appThings I learned the hard way: Nest containers are just plain Debian, so I had to apt install node and git myself before anything would run, and Socket Mode needs two separate tokens (a bot token and an app-level token) which took me a minute to figure out.Next up: a few more commands, and maybe a small database if I want it to remember anything between messages.
shipped always-on bot, a slack bot that never clocks out. you slash it a command and it fires back a joke, a dice roll, a live cat fact, or an 8-ball verdict. i wrote it in javascript on @slack /bolt in socket mode, so it connects over an outbound websocket and skips the public-url handshake. the reply logic sits in one file as plain text-in, text-out functions with no slack code, which lets me unit-test the whole brain without a workspace (15 tests pass). it runs on hack club nest as a systemd service that restarts on crash and boots on startup, and it’s held a live connection for over a day. i gave it a status page and a health endpoint too, so there’s a url that proves it’s awake.
Ships:
Always-On Slack Bot — shipped and running 24/7 Wanted to build a Slack bot that never goes offline and just answers whatever you throw at it. Got it done this week. I used JavaScript with Slack’s Bolt framework in Socket Mode, so the bot talks to Slack over a WebSocket instead of needing a public URL. It has 10 slash commands so far: /ao-help, /ao-joke, /ao-quote, a magic 8-ball, a coin flip, a dice roller, /ao-time, and /ao-catfact which pulls a random fact from a live API. I kept all the reply logic in its own file with zero Slack code in it, which let me write real unit tests for it (15 of them, all passing). The part I’m happiest with is the hosting. Rather than a free web host that falls asleep after a few minutes, I put it on Hack Club Nest as a systemd service. It auto-restarts if it crashes and comes back up on reboot, so it’s genuinely online around the clock. I also gave it a small status page so there’s a link you can actually open: https://bot.akshajdewan102.hackclub.app Things I learned the hard way: Nest containers are just plain Debian, so I had to apt install node and git myself before anything would run, and Socket Mode needs two separate tokens (a bot token and an app-level token) which took me a minute to figure out. Next up: a few more commands, and maybe a small database if I want it to remember anything between messages.
shipped always-on bot, a slack bot that never clocks out. you slash it a command and it fires back a joke, a dice roll, a live cat fact, or an 8-ball verdict. i wrote it in javascript on @slack /bolt in socket mode, so it connects over an outbound websocket and skips the public-url handshake. the reply logic sits in one file as plain text-in, text-out functions with no slack code, which lets me unit-test the whole brain without a workspace (15 tests pass). it runs on hack club nest as a systemd service that restarts on crash and boots on startup, and it’s held a live connection for over a day. i gave it a status page and a health endpoint too, so there’s a url that proves it’s awake....
|
1792828501.7479095
|
1792914901.7479095
|