|
14011
|
My very own WebOS by @Mats | Stardance
|
Mats
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-09T15:11:01Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Well, this is a WebOS. It contains an about me section, w/o photo bc I dont know yall. It also contains a MatsAI basic window, which just tells you to buy MatsAI premium, which is a whink to me, when I dont know an answer.", "repo": "https://github.com/MatsDevOfficial/MatsDevOfficial.github.io", "demo": "https://matsdevofficial.github.io"}]...
|
[{"post_id": 5649, "ts": "2026 [{"post_id": 5649, "ts": "2026-06-09T15:00:30Z", "hours": 0.6572, "text": "Made an easy app, normal MatsAI. It will just respond to buy MatsAI premium, adding working AI in WebOS 2"}, {"post_id": 5511, "ts": "2026-06-09T09:58:30Z", "hours": 0.3858, "text": "Made the about me go WEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE, added opening and closing"}, {"post_id": 5492, "ts": "2026-06-09T09:25:03Z", "hours": 0.3581, "text": "Added info on myself, added a bg, top bar."}, {"post_id": 5472, "ts": "2026-06-09T08:24:23Z", "hours": 0.4914, "text": "Fixed color, text and basic outline"}]...
|
Title: My very own WebOS by @Mats | Stardance
Dev Title: My very own WebOS by @Mats | Stardance
Devlogs:
Fixed color, text and basic outline
Added info on myself, added a bg, top bar.
Made the about me go WEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE, added opening and closing
Made an easy app, normal MatsAI. It will just respond to buy MatsAI premium, adding working AI in WebOS 2
Ships:
Well, this is a WebOS. It contains an about me section, w/o photo bc I dont know yall. It also contains a MatsAI basic window, which just tells you to buy MatsAI premium, which is a whink to me, when I dont know an answer....
|
1793108838.240247
|
1793195238.240247
|
|
14020
|
Astrolens by @rishe | Stardance
|
rishe
|
1
|
12.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-12T02:27:47Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Built AstroLens - a real-time space dashboard where you can explore what’s literally happening in space right now. It pulls live data from 5 NASA APIs and uses an AI to explain everything in plain English. What I made: 6 pages - today’s NASA astronomy image with AI explanation, a JWST gallery where you click any space image and AI tells you what you’re looking at, live asteroid tracker showing every rock passing Earth today with hazard assessment, solar flare monitor, Deep Space Network live feed showing which spacecraft NASA is talking to right now, and a persistent AI chat you can open from any page. What was challenging: Getting the AI working on Vercel was brutal. It worked perfectly on localhost but completely died in production because the Vite dev proxy doesn’t exist after deployment. Had to build a custom serverless function at /api/ai to proxy requests to Hack Club AI. Also accidentally committed my API keys to git history — GitHub blocked every push for hours until I wiped the entire git history and started clean. What I’m proud of: The DSN live feed updates every 5 seconds with real NASA data — you can literally watch NASA communicate with Voyager or Perseverance in real time. And the AI context injection — when you ask about an asteroid, the AI actually knows today’s real distance and speed data, not just generic space facts. To test it: Open the live URL, check today’s APOD image and hit “Explain with AI”, then go to Asteroids and click “Ask AI” on any rock. Open the 🤖 chat button bottom right and ask “what is NASA tracking right now?”", "repo": "https://github.com/RisheS26/astrolens", "demo": "https://astrolens-star.vercel.app/"}]...
|
[{"post_id": 7236, "ts": "2026 [{"post_id": 7236, "ts": "2026-06-12T02:23:43Z", "hours": 2.2656, "text": "Finally the v1 of the Astrolens is working great for my aspect, hosted in vercel( https://astrolens-star.vercel.app/ ) check it out bros!"}, {"post_id": 6749, "ts": "2026-06-11T09:30:44Z", "hours": 1.8478, "text": "🚀 Devlog Update: Conquering the Vercel Production Proxy The Goal: Get the AstroLens AI explainer working in production. Everything ran perfectly on localhost, but the live Vercel deployment was throwing immediate API connection errors. The Struggle: Two massive deployment gotchas hit at the same time: Missing Keys: Vercel doesn’t have access to the local .env file because it is strictly ignored by Git. The live server was trying to authenticate with undefined. The Proxy Mirage: The Vite proxy configuration (/ai-api/…) is a local development feature. Once compiled and deployed, that proxy evaporates. Vercel had no idea where to route the AI requests, causing the chat feature to completely flatline. The Fix: I had to bridge the gap between local development and production infrastructure by injecting the environment variables manually and building a dedicated Vercel Serverless Function to handle the CORS and routing securely. Injecting the Environment Variables Navigated to the Vercel Dashboard → Project Settings → Environment Variables. I manually added both VITE_NASA_API_KEY and VITE_HACKCLUB_AI_KEY, ensuring they were applied across Production, Preview, and Development environments. Building the Serverless Proxy I created an api/ai.js file at the root level. Vercel automatically treats anything in the /api directory as a serverless backend function. This handles the actual request to the Hack Club AI proxy so the frontend doesn’t have to deal with CORS. Dynamic Frontend Routing I updated the frontend API call to dynamically switch its endpoint depending on where the code is running. If import.meta.env.DEV is true, it uses the local Vite proxy. If false (production), it hits the new Vercel serverless function. The Result: Pushed the code (git commit -m “fix: vercel serverless AI proxy + env vars”) and triggered a Vercel redeploy. The architecture is now bulletproof. The NASA data loads instantly, and the AI explainer successfully reaches out to the Qwen model via the serverless function, returning plain-English translations of the space data right on the live URL."}, {"post_id": 6307, "ts": "2026-06-10T16:42:52Z", "hours": 3.2981, "text": "This is an excellent update to AstroLens. Adding the AI explanation feature elevates the project from a simple data viewer to an interactive learning tool, which hits the “Technicality” and “Storytelling” marks the Stardance Shipwrights are looking for. Here is a Devlog entry detailing the AI integration, structured to clearly show progress, technical implementation, and the user experience. 🚀 Devlog Update: The AI Knows Space! (Integrating the Hack Club AI Proxy) The Goal: The raw NASA APIs (like APOD and DONKI) are amazing, but the data is often incredibly dense and full of scientific jargon. I wanted AstroLens to not just show space data, but explain it. The goal was to build a persistent AI Chat layer that uses real-time NASA data as context to answer user questions simply. The Implementation: I integrated Hack Club’s free AI API (ai.hackclub.com/proxy/v1/chat/completions) directly into the React frontend. The API Route: I created a dedicated ai.js service file to handle the fetch request to the proxy, passing my VITE_HACKCLUB_AI_KEY securely via the Authorization header. Context Injection: The real magic is in the context. When a user clicks “Explain with AI” on the Asteroid page, the code doesn’t just ask the AI a generic question. It programmatically injects the live data array (e.g., “There are 12 asteroids passing Earth today, 2 are hazardous…”) into the hidden system prompt before asking the user’s question. Model Selection: After some testing with gemini-2.5-flash, I found that the qwen/qwen3-32b model returned slightly faster and more concise plain-English explanations for the astronomy queries, so I locked that in as the primary model. The Struggle (and the Fix): Getting this working locally was smooth, but deploying it to Vercel completely broke the AI feature—it just threw a generic “AI unavailable” error. It took some debugging, but I realized the issue was my .env file. I correctly had .env listed in .gitignore (security first!), which meant the API key never pushed to GitHub. Since Vercel pulls from GitHub, it had no key. I fixed it by manually adding VITE_HACKCLUB_AI_KEY to the Vercel project’s Environment Variables dashboard and running a fresh redeploy. The Result: AstroLens now features a working “🤖 Explain with AI” button on the data pages. If you look at an APOD image of a Wolf-Rayet star and don’t know what that means, the AI will now break it down into simple terms, right there in the dashboard."}, {"post_id": 5532, "ts": "2026-06-09T10:45:05Z", "hours": 4.1056, "text": "Day 1 - First live NASA data in AstroLens Set up the full project from scratch - Vite, React, Tailwind, NASA API. First attempt had a broken folder structure, debugged it, restarted clean. Within a few hours, got live NASA APOD data rendering in the browser. The image today is Thor’s Helmet Nebula - NGC 2359, 15,000 light years away. Tomorrow: building the full multi-page dashboard with asteroids, space weather, and JWST gallery."}]...
|
Title: Astrolens by @rishe | Stardance
Devlogs:
D Title: Astrolens by @rishe | Stardance
Devlogs:
Day 1 - First live NASA data in AstroLens Set up the full project from scratch - Vite, React, Tailwind, NASA API. First attempt had a broken folder structure, debugged it, restarted clean. Within a few hours, got live NASA APOD data rendering in the browser. The image today is Thor’s Helmet Nebula - NGC 2359, 15,000 light years away. Tomorrow: building the full multi-page dashboard with asteroids, space weather, and JWST gallery.
This is an excellent update to AstroLens. Adding the AI explanation feature elevates the project from a simple data viewer to an interactive learning tool, which hits the “Technicality” and “Storytelling” marks the Stardance Shipwrights are looking for. Here is a Devlog entry detailing the AI integration, structured to clearly show progress, technical implementation, and the user experience. 🚀 Devlog Update: The AI Knows Space! (Integrating the Hack Club AI Proxy) The Goal: The raw NASA APIs (like APOD and DONKI) are amazing, but the data is often incredibly dense and full of scientific jargon. I wanted AstroLens to not just show space data, but explain it. The goal was to build a persistent AI Chat layer that uses real-time NASA data as context to answer user questions simply. The Implementation: I integrated Hack Club’s free AI API (ai.hackclub.com/proxy/v1/chat/completions) directly into the React frontend. The API Route: I created a dedicated ai.js service file to handle the fetch request to the proxy, passing my VITE_HACKCLUB_AI_KEY securely via the Authorization header. Context Injection: The real magic is in the context. When a user clicks “Explain with AI” on the Asteroid page, the code doesn’t just ask the AI a generic question. It programmatically injects the live data array (e.g., “There are 12 asteroids passing Earth today, 2 are hazardous…”) into the hidden system prompt before asking the user’s question. Model Selection: After some testing with gemini-2.5-flash, I found that the qwen/qwen3-32b model returned slightly faster and more concise plain-English explanations for the astronomy queries, so I locked that in as the primary model. The Struggle (and the Fix): Getting this working locally was smooth, but deploying it to Vercel completely broke the AI feature—it just threw a generic “AI unavailable” error. It took some debugging, but I realized the issue was my .env file. I correctly had .env listed in .gitignore (security first!), which meant the API key never pushed to GitHub. Since Vercel pulls from GitHub, it had no key. I fixed it by manually adding VITE_HACKCLUB_AI_KEY to the Vercel project’s Environment Variables dashboard and running a fresh redeploy. The Result: AstroLens now features a working “🤖 Explain with AI” button on the data pages. If you look at an APOD image of a Wolf-Rayet star and don’t know what that means, the AI will now break it down into simple terms, right there in the dashboard.
🚀 Devlog Update: Conquering the Vercel Production Proxy The Goal: Get the AstroLens AI explainer working in production. Everything ran perfectly on localhost, but the live Vercel deployment was throwing immediate API connection errors. The Struggle: Two massive deployment gotchas hit at the same time: Missing Keys: Vercel doesn’t have access to the local .env file because it is strictly ignored by Git. The live server was trying to authenticate with undefined. The Proxy Mirage: The Vite proxy configuration (/ai-api/…) is a local development feature. Once compiled and deployed, that proxy evaporates. Vercel had no idea where to route the AI requests, causing the chat feature to completely flatline. The Fix: I had to bridge the gap between local development and production infrastructure by injecting the environment variables manually and building a dedicated Vercel Serverless Function to handle the CORS and routing securely. Injecting the Environment Variables Navigated to the Vercel Dashboard → Project Settings → Environment Variables. I manually added both VITE_NASA_API_KEY and VITE_HACKCLUB_AI_KEY, ensuring they were applied across Production, Preview, and Development environments. Building the Serverless Proxy I created an api/ai.js file at the root level. Vercel automatically treats anything in the /api directory as a serverless backend function. This handles the actual request to the Hack Club AI proxy so the frontend doesn’t have to deal with CORS. Dynamic Frontend Routing I updated the frontend API call to dynamically switch its endpoint depending on where the code is running. If import.meta.env.DEV is true, it uses the local Vite proxy. If false (production), it hits the new Vercel serverless function. The Result: Pushed the code (git commit -m “fix: vercel serverless AI proxy + env vars”) and triggered a Vercel redeploy. The architecture is now bulletproof. The NASA data loads instantly, and the AI explainer successfully reaches out to the Qwen model via the serverless function, returning plain-English translations of the space data right on the live URL.
Finally the v1 of the Astrolens is working great for my aspect, hosted in vercel( https://astrolens-star.vercel.app/ ) check it out bros!
Ships:
Built AstroLens - a real-time space dashboard where you can explore what’s literally happening in space right now. It pulls live data from 5 NASA APIs and uses an AI to explain everything in plain English. What I made: 6 pages - today’s NASA astronomy image with AI explanation, a JWST gallery where you click any space image and AI tells you what you’re looking at, live asteroid tracker showing every rock passing Earth today with hazard assessment, solar flare monitor, Deep Space Network live feed showing which spacecraft NASA is talking to right now, and a persistent AI chat you can open from any page. What was challenging: Getting the AI working on Vercel was brutal. It worked perfectly on localhost but completely died in production because the Vite dev proxy doesn’t exist after deployment. Had to build a custom serverless function at /api/ai to proxy requests to Hack Club AI. Also accidentally committed my API keys to git history — GitHub blocked every push for hours until I wiped the entire git history and started clean. What I’m proud of: The DSN live feed updates every 5 seconds with real NASA data — you can literally watch NASA communicate with Voyager or Perseverance in real time. And the AI context injection — when you ask about an asteroid, the AI actually knows today’s real distance and speed data, not just generic space facts. To test it: Open the live URL, check today’s APOD image and hit “Explain with AI”, then go to Asteroids and click “Ask AI” on any rock. Open the 🤖 chat button bottom right and ask “what is NASA tracking right now?”...
|
1793245925.399043
|
1793332325.399043
|
|
14039
|
My very own WebOS by @RTicked | Stardance
|
RTicked
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-24T09:22:13Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I finally finsished my WebOS after like 8 hrs of work!", "repo": "https://github.com/rticked/stardance-webos", "demo": "https://stardance-webos.vercel.app/"}]...
|
[{"post_id": 14880, "ts": "202 [{"post_id": 14880, "ts": "2026-06-24T04:50:43Z", "hours": 4.765, "text": "Added notes and Calculator to my project. Im so close to finishing this :)"}, {"post_id": 6103, "ts": "2026-06-10T08:22:37Z", "hours": 1.5703, "text": "Added more stuff into my WebOS like time and stuff. This was fun and hard at the same time since, HTML is painfull lol."}, {"post_id": 5520, "ts": "2026-06-09T10:20:12Z", "hours": 0.8919, "text": "I made a website guys, This is my first time playing around with HTML. This is so fun. Right now its very basic, Tommorow i will try to do the WebOS part 2!"}]...
|
Title: My very own WebOS by @RTicked | Stardance
Title: My very own WebOS by @RTicked | Stardance
Devlogs:
I made a website guys, This is my first time playing around with HTML. This is so fun. Right now its very basic, Tommorow i will try to do the WebOS part 2!
Added more stuff into my WebOS like time and stuff. This was fun and hard at the same time since, HTML is painfull lol.
Added notes and Calculator to my project. Im so close to finishing this :)
Ships:
I finally finsished my WebOS after like 8 hrs of work!...
|
1793116220.7421348
|
1793202620.7421348
|
|
14075
|
Particle World by @Fawy2010 | Stardance
|
Fawy2010
|
1
|
46.0
|
797
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-20T15:27:00Z", "hours": 46.0, "multiplier": 17.19, "payout": 797, "blessing": "neutral", "text": "I made a particle simulator, where every particle has a color and interact with other particles based on color. I found it to be challenging, to find out how exactly compute shaders and shaders as a whole work, because I had to figure out stuff like the communication between CPU and GPU and what the syntax of HLSL, the language shaders are written in, is. But now I’m proud of the result, even I with an laptop using an integrated graphics card, can simulate up to 60’000 particles at once, at a decent speed. But for the people that want to test out my project, I think the best way to experience it, is to just try out different stuff and see if you manage to get something that you like.", "repo": "https://github.com/Fawy20210/Particle-World", "demo": "https://fawy2020.itch.io/particle-world"}]...
|
[{"post_id": 31439, "ts": "202 [{"post_id": 31439, "ts": "2026-07-19T20:12:22Z", "hours": 1.2411, "text": "Devlog 11: Fixed a Bug & Finished README The bug I mentioned in my last devlog, the one where I couldn’t understand why it only happens when a number is odd, I still don’t understand it, but I managed to fix it. In the shader I use for rendering, I used fmod(InstanceID, colorCount) for finding out what color a particle is, but in my compute shader i do it like this InstanceID % colorCount , and apparently those do something different with the same int input? I don’t know. But now it’s fixed, and I added a Demo video to my README. So now I can finally ship this."}, {"post_id": 31345, "ts": "2026-07-19T17:37:48Z", "hours": 7.5317, "text": "Devlog 10: Writing a README & finding bugs So, I now pretty much have finished writing my README, only thing missing is a demo video, but before I can add that, I’ll have to fix a bug. Because apparently when you input a odd number as the amount of colors, the values in the matrixes are not the one of the color shown, but of the color 1 to the left/up? But only for odd numbers, even numbers work fine? But anyway, I also added a FPS counter to the simulation. So now I’ll go to either try find out why that bug happens, or just add something that makes the bug invisible."}, {"post_id": 28362, "ts": "2026-07-14T15:59:28Z", "hours": 3.1242, "text": "Devlog 9: Input Validation & Bug Fixing Knowing that I know my code to well, I gave a working version of it to my sister, to watch her try it, and see if there’s anything somebody could do, that isn’t really intended. And it turns out there is! It seems quite obvious now, but one thing you could do, but weren’t supposed to , was inputting any values you want, which is fine if you know what you’re doing, but most probably you won’t, so I had to add Input validation. In some places it was more important than in others, because your GPU really doesn’t like it if you define a buffer with a negative size, which happend if you inputted a negative amount of particles. I also cleaned up the files a bit, by taking all unused files, and putting them in a folder called… “Unused”, really clever name choice, isn’t it? So now, I get to prepare for Shipping my project, although I’m not really looking forward to writing the README yet."}, {"post_id": 27344, "ts": "2026-07-12T20:42:35Z", "hours": 8.0836, "text": "Devlog 8: Matrix editing & Camera Movement So I know I said in Devlog 7 , I would only polish some stuff and get ready to ship, but I just couldn’t not add the ability to edit the Matrixes and move the Camera, the first of the two, I was able to do with the help the GridLayout Component, which automatically arranges all it’s children in a grid. I did that by dynamically adding an UI input Element for each Value in the Matrix, and putting in the corresponding Value. And now, you can change the values of each Cell, and when you’re finished, you can hit apply, and now you’ve changed the behaviour of the particles, yay! Getting the Camera to zoom and move in a way I like, was really hard, probably because I was kind of tired, or maybe because I’m just stupid, who knows. But anyway, I’m using Unitys Input System to geth mouse movements and scrolling, so that I can then read out the value of those in my Script. The zooming is works like this: Zoom += Zoom * ( ScrollValue / 10 ); CameraSize = OriginalCameraSize * Zoom And the camera movement works by turning the mouse position an the screen into a position in the World Space, and multiplying it wiht the suqre of zoom, so that the movement gets slower and slower when you zoom in. There is even more to it than this, but it would be a pretty long Devlog if I explained everything, so I guess next time I shouldn’t wait 8h to write a Devlog. (:"}, {"post_id": 24326, "ts": "2026-07-07T20:41:50Z", "hours": 6.0033, "text": "Devlog 7: Adding a UI I finally did it, I added an UI to it, it doesn’t include everything I wanted, but it doesn’t have to be perfect, especially seeing as Unity thought it had to nuke half my work an the UI, just as I wanted to save it, that was quite annoying . But now you can control pretty much everything except the stuff that you can’t through the UI, like the amount of particles to simulate, some range values, physics variables, and of course the color of the particles. So now I probably just need to polish some stuff and get everything ready to be shipped, and then I’ll probably ship it, we’ll see."}, {"post_id": 23653, "ts": "2026-07-06T19:13:59Z", "hours": 9.1275, "text": "Devlog 6: Compute Shaders! So I know the next thing, and only thing left, on my To-Do list, as seen in my last Devlog , was to add an GUI/interface , but I wanted to improve on how many particles you can simulate at once, so I researched how shaders and compute shader work, and made one that could do everything my C# script could do too, but faster, as compute shaders run on the GPU, which is really good at doing things in parallel. But it wasn’t easy, as I had no idea how both shaders and compute shaders work, and I still don’t really know how shaders work, but atleast I know how compute shaders work now. But getting to this point, where it finally works, took me the entire day, with having to do research and having to keep trying new stuff to find something that works, but I think it was worth it. But I was kind of too lazzy to implement a BitonicMergeSort to sort using the GPU, so I took that code from https://github.com/SebLague/Fluid-Sim , and slightly altered it, so it would work for me. So now, I’ll just have to add an GUI or something like that, adjust some stuff, (like changing it so the particles don’t spawn in a symmetric grid, or particles don’t spawning inside other particles anymore), and clean everything up, and then I’d probably be ready ship it for the first time, depending on whether I wanna add more stuff first or not."}, {"post_id": 22862, "ts": "2026-07-05T14:15:16Z", "hours": 3.2097, "text": "Devlog 5: Speed up thanks to Spatial Partitioning So now I’ve done it, the next thing on my To-Do list is completed, as seen in my last Devlog , it was to Optimize and Improve calculations , and I did that, mostly by implementing Spatial Partitioning. How it works is that, if there is only a certain range around an particle, in this case the MaxRange, you can pretty much ignore everything outside of this range when calculating attraction, instead of having to check the distance to each particle, and getting the same result. To do that you split the area where the particles can be into squares(Cells) with length of MaxRange, and then assinging each particle a key, which you get like this: key = someHashFunction(CellPos.x, CellPos.y) % ParticleAmount And then with some sorting and such, you can calculate the attractions, only the Cell the particles in, and the 8 cells around it. This was somewhat simplified, but I hope one could understand it. And in the video below, you can see me simulating 4000 particles, at roughly 10 fps, which might not sound like a lot, but compared to before, where simulating 2000 particles resulted in about 5 fps, it certainly is. To-Do: Add interaction based on color and distance. Optimize and Improve calculations. Add an GUI / Interface"}, {"post_id": 22342, "ts": "2026-07-04T19:24:13Z", "hours": 3.5164, "text": "Devlog 4: Getting to a working version Like mentioned in my last Devlog , one thing I had to do was adding interaction based on color and distance, and hurray! I did both! So I did it by having an array of floats, which contains the attraction matrix, but flattend, and did the same for the distance values, basically like this: array[i + j * width] = matrix[i][j] I also made a function that based on a minRange and maxRange around a particle calculates it’s attraction to other particles, if it’s closer than minRange, it gets pushed away, otherwise if it’s closer than maxRange, it gets attracted or repelled based on the attraction matrix. I made it so instead of using Time.deltaTime it now uses a fixed value that you can change, and added friction, so the particles, making the particles alot more stable than they’d be otherwise. So now, I’d have a usable version of Particle Life, but as you can see my To-Do list isn’t quite finished yet. To-Do: Add interaction based on color and distance. Optimize and Improve calculations. Add an GUI / Interface"}, {"post_id": 22150, "ts": "2026-07-04T13:49:27Z", "hours": 1.7964, "text": "Devlog 3: Implemented some stuff In Devlog 2 I wrote down what I planned to do next, and now I’ve done it. I added an adjustable border that when crossed moves the particles back inside, and makes them bounce of by inverting their velocity, but dampening it a bit. Then I made it so whenever you start, it arranges the amount of particles you choose in a grid, in the middle of the border, with adjustable spacing between the particles. Then I made it so you can chose however many colors you want, and the colors will be equaly distributed to all the particles. I did this by basically doing this: particleColor[i] = colorList[i % colorList.length] Where the colorList[] is made up from the colors you input in the inspector. To-Do: Add interaction based on color and distance. Optimize and Improve calculations. Add an GUI / Interface"}, {"post_id": 22079, "ts": "2026-07-04T10:25:13Z", "hours": 1.2128, "text": "Devlog 2: Changing my approach I have now decided to not have each particle be a GameObject, but instead handle all of them from 1 Script that stores each particles position and velocity, to then calculate interactions and draw them. Right now I’m doing the drawing using Graphics.RenderMesh() for each individual particle, and I can already have them be attracted or repelled by each other. What I plan on doing next: Add a border, so the particles don’t escape. Make it so the particles starting positions are spread out. Add the possibility for particles to have different colors."}, {"post_id": 21677, "ts": "2026-07-03T19:17:27Z", "hours": 1.5361, "text": "Devlog 1: Starting my Project So first I had to set up my Unity project, link it to a GitHub repo, and then installed HackaTime to track the time I work in Unity. So I wanna create something based on Particle Life , but with a few changes and twists. So up until now, I have already made a Script that gets all colliders in a certain range around the GameObject it’s attached to, by using Physics2D.OverlapCircleAll() , and then calculates and applies a certain force into the direction of that other Collider, by using RigidBody2D.AddForce() . But right now, they still act the same towards all other particles, not just those of the same color. And now, I have also come to the conclusion that I will have to think about whether I wanna do this Project using the GPU for the calculations, or not, because I’ve realized that only using the CPU might not have the greatest performance, but the way I’m currently doing stuff, probably won’t work for a compute shader."}]...
|
Title: Particle World by @Fawy2010 | Stardance
De Title: Particle World by @Fawy2010 | Stardance
Devlogs:
Devlog 1: Starting my Project So first I had to set up my Unity project, link it to a GitHub repo, and then installed HackaTime to track the time I work in Unity. So I wanna create something based on Particle Life , but with a few changes and twists. So up until now, I have already made a Script that gets all colliders in a certain range around the GameObject it’s attached to, by using Physics2D.OverlapCircleAll() , and then calculates and applies a certain force into the direction of that other Collider, by using RigidBody2D.AddForce() . But right now, they still act the same towards all other particles, not just those of the same color. And now, I have also come to the conclusion that I will have to think about whether I wanna do this Project using the GPU for the calculations, or not, because I’ve realized that only using the CPU might not have the greatest performance, but the way I’m currently doing stuff, probably won’t work for a compute shader.
Devlog 2: Changing my approach I have now decided to not have each particle be a GameObject, but instead handle all of them from 1 Script that stores each particles position and velocity, to then calculate interactions and draw them. Right now I’m doing the drawing using Graphics.RenderMesh() for each individual particle, and I can already have them be attracted or repelled by each other. What I plan on doing next: Add a border, so the particles don’t escape. Make it so the particles starting positions are spread out. Add the possibility for particles to have different colors.
Devlog 3: Implemented some stuff In Devlog 2 I wrote down what I planned to do next, and now I’ve done it. I added an adjustable border that when crossed moves the particles back inside, and makes them bounce of by inverting their velocity, but dampening it a bit. Then I made it so whenever you start, it arranges the amount of particles you choose in a grid, in the middle of the border, with adjustable spacing between the particles. Then I made it so you can chose however many colors you want, and the colors will be equaly distributed to all the particles. I did this by basically doing this: particleColor[i] = colorList[i % colorList.length] Where the colorList[] is made up from the colors you input in the inspector. To-Do: Add interaction based on color and distance. Optimize and Improve calculations. Add an GUI / Interface
Devlog 4: Getting to a working version Like mentioned in my last Devlog , one thing I had to do was adding interaction based on color and distance, and hurray! I did both! So I did it by having an array of floats, which contains the attraction matrix, but flattend, and did the same for the distance values, basically like this: array[i + j * width] = matrix[i][j] I also made a function that based on a minRange and maxRange around a particle calculates it’s attraction to other particles, if it’s closer than minRange, it gets pushed away, otherwise if it’s closer than maxRange, it gets attracted or repelled based on the attraction matrix. I made it so instead of using Time.deltaTime it now uses a fixed value that you can change, and added friction, so the particles, making the particles alot more stable than they’d be otherwise. So now, I’d have a usable version of Particle Life, but as you can see my To-Do list isn’t quite finished yet. To-Do: Add interaction based on color and distance. Optimize and Improve calculations. Add an GUI / Interface
Devlog 5: Speed up thanks to Spatial Partitioning So now I’ve done it, the next thing on my To-Do list is completed, as seen in my last Devlog , it was to Optimize and Improve calculations , and I did that, mostly by implementing Spatial Partitioning. How it works is that, if there is only a certain range around an particle, in this case the MaxRange, you can pretty much ignore everything outside of this range when calculating attraction, instead of having to check the distance to each particle, and getting the same result. To do that you split the area where the particles can be into squares(Cells) with length of MaxRange, and then assinging each particle a key, which you get like this: key = someHashFunction(CellPos.x, CellPos.y) % ParticleAmount And then with some sorting and such, you can calculate the attractions, only the Cell the particles in, and the 8 cells around it. This was somewhat simplified, but I hope one could understand it. And in the video below, you can see me simulating 4000 particles, at roughly 10 fps, which might not sound like a lot, but compared to before, where simulating 2000 particles resulted in about 5 fps, it certainly is. To-Do: Add interaction based on color and distance. Optimize and Improve calculations. Add an GUI / Interface
Devlog 6: Compute Shaders! So I know the next thing, and only thing left, on my To-Do list, as seen in my last Devlog , was to add an GUI/interface , but I wanted to improve on how many particles you can simulate at once, so I researched how shaders and compute shader work, and made one that could do everything my C# script could do too, but faster, as compute shaders run on the GPU, which is really good at doing things in parallel. But it wasn’t easy, as I had no idea how both shaders and compute shaders work, and I still don’t really know how shaders work, but atleast I know how compute shaders work now. But getting to this point, where it finally works, took me the entire day, with having to do research and having to keep trying new stuff to find something that works, but I think it was worth it. But I was kind of too lazzy to implement a BitonicMergeSort to sort using the GPU, so I took that code from https://github.com/SebLague/Fluid-Sim , and slightly altered it, so it would work for me. So now, I’ll just have to add an GUI or something like that, adjust some stuff, (like changing it so the particles don’t spawn in a symmetric grid, or particles don’t spawning inside other particles anymore), and clean everything up, and then I’d probably be ready ship it for the first time, depending on whether I wanna add more stuff first or not.
Devlog 7: Adding a UI I finally did it, I added an UI to it, it doesn’t include everything I wanted, but it doesn’t have to be perfect, especially seeing as Unity thought it had to nuke half my work an the UI, just as I wanted to save it, that was quite annoying . But now you can control pretty much everything except the stuff that you can’t through the UI, like the amount of particles to simulate, some range values, physics variables, and of course the color of the particles. So now I probably just need to polish some stuff and get everything ready to be shipped, and then I’ll probably ship it, we’ll see.
Devlog 8: Matrix editing & Camera Movement So I know I said in Devlog 7 , I would only polish some stuff and get ready to ship, but I just couldn’t not add the ability to edit the Matrixes and move the Camera, the first of the two, I was able to do with the help the GridLayout Component, which automatically arranges all it’s children in a grid. I did that by dynamically adding an UI input Element for each Value in the Matrix, and putting in the corresponding Value. And now, you can change the values of each Cell, and when you’re finished, you can hit apply, and now you’ve changed the behaviour of the particles, yay! Getting the Camera to zoom and move in a way I like, was really hard, probably because I was kind of tired, or maybe because I’m just stupid, who knows. But anyway, I’m using Unitys Input System to geth mouse movements and scrolling, so that I can then read out the value of those in my Script. The zooming is works like this: Zoom += Zoom * ( ScrollValue / 10 ); CameraSize = OriginalCameraSize * Zoom And the camera movement works by turning the mouse position an the screen into a position in the World Space, and multiplying it wiht the suqre of zoom, so that the movement gets slower and slower when you zoom in. There is even more to it than this, but it would be a pretty long Devlog if I explained everything, so I guess next time I shouldn’t wait 8h to write a Devlog. (:
Devlog 9: Input Validation & Bug Fixing Knowing that I know my code to well, I gave a working version of it to my sister, to watch her try it, and see if there’s anything somebody could do, that isn’t really intended. And it turns out there is! It seems quite obvious now, but one thing you could do, but weren’t supposed to , was inputting any values you want, which is fine if you know what you’re doing, but most probably you won’t, so I had to add Input validation. In some places it was more important than in others, because your GPU really doesn’t like it if you define a buffer with a negative size, which happend if you inputted a negative amount of particles. I also cleaned up the files a bit, by taking all unused files, and putting them in a folder called… “Unused”, really clever name choice, isn’t it? So now, I get to prepare for Shipping my project, although I’m not really looking forward to writing the README yet.
Devlog 10: Writing a README & finding bugs So, I now pretty much have finished writing my README, only thing missing is a demo video, but before I can add that, I’ll have to fix a bug. Because apparently when you input a odd number as the amount of colors, the values in the matrixes are not the one of the color shown, but of the color 1 to the left/up? But only for odd numbers, even numbers work fine? But anyway, I also added a FPS counter to the simulation. So now I’ll go to either try find out why that bug happens, or just add something that makes the bug invisible.
Devlog 11: Fixed a Bug & Finished README The bug I mentioned in my last devlog, the one where I couldn’t understand why it only happens when a number is odd, I still don’t understand it, but I managed to fix it. In the shader I use for rendering, I used fmod(InstanceID, colorCount) for finding out what color a particle is, but in my compute shader i do it like this InstanceID % colorCount , and apparently those do something different with the same int input? I don’t know. But now it’s fixed, and I added a Demo video to my README. So now I can finally ship this.
Ships:
I made a particle simulator, where every particle has a color and interact with other particles based on color. I found it to be challenging, to find out how exactly compute shaders and shaders as a whole work, because I had to figure out stuff like the communication between CPU and GPU and what the syntax of HLSL, the language shaders are written in, is. But now I’m proud of the result, even I with an laptop using an integrated graphics card, can simulate up to 60’000 particles at once, at a decent speed. But for the people that want to test out my project, I think the best way to experience it, is to just try out different stuff and see if you manage to get something that you like....
|
1793220503.6556942
|
1793306903.6556942
|
|
14093
|
To-Do-List by @PAPER_01 | Stardance
|
PAPER_01
|
1
|
19.0
|
55
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-17T02:26:23Z", "hours": 19.0, "multiplier": 3.99, "payout": 55, "blessing": "neutral", "text": "I built an interactive, high-contrast To-Do List manager completely from scratch using basic HTML, CSS, and JavaScript. The look was heavily inspired by a cool design I found on Pinterest, and I spent over 18 hours getting every single detail right! The hardest part was making sure the dynamic task rows lined up perfectly with the headers on different screens, which I fixed by using a clean CSS Grid layout. I also customized the boring standard radio buttons by replacing them with my own animated dots. To make the app feel alive, I added a fun effect where the delete button physically moves down when you click it. Everything saves automatically so your tasks won't disappear when you refresh the page. I’m super proud of figuring out how to handle the data tracking and click events on my own and the main part was the localStorage , didnt even knew it existed beofre, and it was such a fun to build. To test it out, try adding a task, choosing a priority, and hitting Enter—then click the radio buttons to cross a task off your list!", "repo": "https://github.com/sudipstha-01/To_Do_List", "demo": "https://sudip-project-04.netlify.app/"}]...
|
[{"post_id": 10382, "ts": "202 [{"post_id": 10382, "ts": "2026-06-17T02:01:42Z", "hours": 3.0, "text": "Interactive To-Do List with Priority Tracking Time Logged: 18+ Hours (Hackatime) Tech Stack: HTML5, CSS3, Vanilla JavaScript Live Demo: sudip-project-04.netlify.app Code: github.com/sudipstha-01/To_Do_List I built this To-Do List application completely from scratch to improve my JavaScript skills and create something I could actually use. The app lets users add tasks, assign priorities, mark tasks as ongoing or completed, delete tasks, and save everything using Local Storage so tasks remain even after refreshing the page. This project ended up teaching me far more than I expected. Before starting, I only had a basic understanding of DOM manipulation. While building the app, I learned how to work with Local Storage, JSON parsing/stringifying, event listeners, event delegation, template literals, CSS Grid, and dynamic rendering. One of the biggest challenges was managing task status with radio buttons. Each task needed its own independent status controls, and figuring out the logic took several attempts before I found a clean solution. I also spent a lot of time debugging issues related to updating and re-rendering tasks, which helped me understand how data and UI stay in sync. The most rewarding part wasn’t finishing the project—it was seeing how much I improved throughout the process. Every feature introduced a new concept, every bug taught me something, and by the end I felt significantly more confident working with JavaScript. This was one of the most fun and educational projects I’ve built so far."}, {"post_id": 9189, "ts": "2026-06-15T12:56:54Z", "hours": 14.0, "text": "I am working on a to do list. After changing the design again and again , i finally decided to work on a black and white theme. I took the project inspiration from Pintrest . I know that its a simple project but i couldnt just figure out how the formating and stuff (I m a beginner), asked gemini for help again and again with css formating and js . Tried to make the code bugfree and maybe look somewhat professional looking by adding some professional looking variable names, stole the names from gemini though(lol) . Also one of the main factor that took time was leanring grid and shifting the layout of my site from flexbox to grid. [Still improving]"}]...
|
Title: To-Do-List by @PAPER_01 | Stardance
Devlog Title: To-Do-List by @PAPER_01 | Stardance
Devlogs:
I am working on a to do list. After changing the design again and again , i finally decided to work on a black and white theme. I took the project inspiration from Pintrest . I know that its a simple project but i couldnt just figure out how the formating and stuff (I m a beginner), asked gemini for help again and again with css formating and js . Tried to make the code bugfree and maybe look somewhat professional looking by adding some professional looking variable names, stole the names from gemini though(lol) . Also one of the main factor that took time was leanring grid and shifting the layout of my site from flexbox to grid. [Still improving]
Interactive To-Do List with Priority Tracking Time Logged: 18+ Hours (Hackatime) Tech Stack: HTML5, CSS3, Vanilla JavaScript Live Demo: sudip-project-04.netlify.app Code: github.com/sudipstha-01/To_Do_List I built this To-Do List application completely from scratch to improve my JavaScript skills and create something I could actually use. The app lets users add tasks, assign priorities, mark tasks as ongoing or completed, delete tasks, and save everything using Local Storage so tasks remain even after refreshing the page. This project ended up teaching me far more than I expected. Before starting, I only had a basic understanding of DOM manipulation. While building the app, I learned how to work with Local Storage, JSON parsing/stringifying, event listeners, event delegation, template literals, CSS Grid, and dynamic rendering. One of the biggest challenges was managing task status with radio buttons. Each task needed its own independent status controls, and figuring out the logic took several attempts before I found a clean solution. I also spent a lot of time debugging issues related to updating and re-rendering tasks, which helped me understand how data and UI stay in sync. The most rewarding part wasn’t finishing the project—it was seeing how much I improved throughout the process. Every feature introduced a new concept, every bug taught me something, and by the end I felt significantly more confident working with JavaScript. This was one of the most fun and educational projects I’ve built so far.
Ships:
I built an interactive, high-contrast To-Do List manager completely from scratch using basic HTML, CSS, and JavaScript. The look was heavily inspired by a cool design I found on Pinterest, and I spent over 18 hours getting every single detail right! The hardest part was making sure the dynamic task rows lined up perfectly with the headers on different screens, which I fixed by using a clean CSS Grid layout. I also customized the boring standard radio buttons by replacing them with my own animated dots. To make the app feel alive, I added a fun effect where the delete button physically moves down when you click it. Everything saves automatically so your tasks won't disappear when you refresh the page. I’m super proud of figuring out how to handle the data tracking and click events on my own and the main part was the localStorage , didnt even knew it existed beofre, and it was such a fun to build. To test it out, try adding a task, choosing a priority, and hitting Enter—then click the radio buttons to cross a task off your list!...
|
1792878854.3528783
|
1793742854.3528783
|
|
14113
|
UltraOS by @Greg_ios | Stardance
|
Greg_ios
|
1
|
4.41
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T20:39:54Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "UltraOS is a browser-based operating system simulation built as an interactive desktop environment running entirely in the web. It recreates a lightweight OS experience directly in the browser, featuring draggable windows, apps, and a modular interface inspired by real desktop systems. The project includes multiple built-in applications such as a calculator, notes app with draggable UI, contact app, and a projects viewer that showcases my Stardance builds. It also features a dynamic welcome screen with real-time clock updates and fully interactive window management. UltraOS is designed as a growing platform where new apps and features can be added easily, focusing on UI interactivity, modular design, and a realistic desktop-like experience inside the browser.", "repo": "https://github.com/travletothefurureprogramming/UltraOS", "demo": "https://harmonious-pie-e88968.netlify.app/"}]...
|
[{"post_id": 15929, "ts": "202 [{"post_id": 15929, "ts": "2026-06-25T21:31:56Z", "hours": 0.4131, "text": "Add settings app for theme toggle and clear/reset functionality"}, {"post_id": 6925, "ts": "2026-06-11T16:33:53Z", "hours": 0.3517, "text": "Make a clean README.md and repository"}, {"post_id": 6906, "ts": "2026-06-11T16:06:29Z", "hours": 0.3222, "text": "Make a calculator app"}, {"post_id": 6891, "ts": "2026-06-11T15:34:42Z", "hours": 0.5183, "text": "Make a projects app so anyone can see my stardance projects"}, {"post_id": 6868, "ts": "2026-06-11T14:56:18Z", "hours": 0.3983, "text": "Make a basic contact app"}, {"post_id": 6842, "ts": "2026-06-11T14:18:29Z", "hours": 0.4278, "text": "Add functionality for Ultra Notes with draggable interface and styling"}, {"post_id": 6835, "ts": "2026-06-11T13:52:30Z", "hours": 0.3231, "text": "Add the icon and structure for the Ultra Notes app"}, {"post_id": 6825, "ts": "2026-06-11T13:31:32Z", "hours": 0.9342, "text": "Add interactive welcome screen with draggable functionality and real-time clock Implemented a draggable welcome screen that can be opened and closed. Added a real-time clock that updates every second. Styled the welcome screen and its header for better user experience. Included CSS for background, typography, and button styles."}, {"post_id": 6804, "ts": "2026-06-11T12:35:13Z", "hours": 0.5039, "text": "Add initial HTML structure for Ultra OS landing page Created index.html with a welcoming message and introduction. Included basic styling for body, headings, and images. Added a link to Stardance and listed hobbies."}]...
|
Title: UltraOS by @Greg_ios | Stardance
Devlogs:
Title: UltraOS by @Greg_ios | Stardance
Devlogs:
Add initial HTML structure for Ultra OS landing page Created index.html with a welcoming message and introduction. Included basic styling for body, headings, and images. Added a link to Stardance and listed hobbies.
Add interactive welcome screen with draggable functionality and real-time clock Implemented a draggable welcome screen that can be opened and closed. Added a real-time clock that updates every second. Styled the welcome screen and its header for better user experience. Included CSS for background, typography, and button styles.
Add the icon and structure for the Ultra Notes app
Add functionality for Ultra Notes with draggable interface and styling
Make a basic contact app
Make a projects app so anyone can see my stardance projects
Make a calculator app
Make a clean README.md and repository
Add settings app for theme toggle and clear/reset functionality
Ships:
UltraOS is a browser-based operating system simulation built as an interactive desktop environment running entirely in the web. It recreates a lightweight OS experience directly in the browser, featuring draggable windows, apps, and a modular interface inspired by real desktop systems. The project includes multiple built-in applications such as a calculator, notes app with draggable UI, contact app, and a projects viewer that showcases my Stardance builds. It also features a dynamic welcome screen with real-time clock updates and fully interactive window management. UltraOS is designed as a growing platform where new apps and features can be added easily, focusing on UI interactivity, modular design, and a realistic desktop-like experience inside the browser....
|
1793138254.4528003
|
1793224654.4528003
|
|
14115
|
Clouds website by @shivamgupta_official13 | Starda Clouds website by @shivamgupta_official13 | Stardance...
|
shivamgupta_official13
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T12:27:28Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have made an clouds landing page and this is jsut an landing page featuring clouds which are renderd by the three js liblray in my node.js setup.I ahd thoguth of using clouds as it would look better and cool.This was very challenging to make espcially like in the part of in the end where soemtimes it didnt look that good and simple bugs too in before parts and at the end the redner scene was jsut dissapering but it was becuase of the dev mode i was using for preview but when i pushed to my github and conntect it to my vercel it was looking good.", "repo": "https://github.com/Shivam430-stack/Clouds-website", "demo": "https://clouds-website-two.vercel.app/"}]...
|
[{"post_id": 8511, "ts": "2026 [{"post_id": 8511, "ts": "2026-06-14T04:37:36Z", "hours": 0.2683, "text": "I had made the final changes on my website by making the buttons of the left functional and when you click them it will lead you somewhere so go try them and also a ligth weigth definition of clouds is included too and i added a link to my repo by clicking the github logo button.as you can see below in the screenshot the changes made and also see the buttons named as Top nav items now read: Clouds Pricing Menu Sign in .you can test the website in https://clouds-website-two.vercel.app/"}, {"post_id": 6812, "ts": "2026-06-11T13:06:10Z", "hours": 2.2311, "text": "Hi I had completed my project clouds website and it is just a landing page but it has a background of 3d clouds and I used the three.js library too for it. And it is based on next.js which i set up on my vs code folder and i have the github for the full code even though i have just added the file cloudbackground.tsx but it has the all the main things like the clouds rendering and also i put a simple Ui too and when you hover on it the buttons will grow a little and when you hover off it will reduce to its orignal size and you can also see my project in detail and see the demo link too."}]...
|
Title: Clouds website by @shivamgupta_official13 | Title: Clouds website by @shivamgupta_official13 | Stardance
Devlogs:
Hi I had completed my project clouds website and it is just a landing page but it has a background of 3d clouds and I used the three.js library too for it. And it is based on next.js which i set up on my vs code folder and i have the github for the full code even though i have just added the file cloudbackground.tsx but it has the all the main things like the clouds rendering and also i put a simple Ui too and when you hover on it the buttons will grow a little and when you hover off it will reduce to its orignal size and you can also see my project in detail and see the demo link too.
I had made the final changes on my website by making the buttons of the left functional and when you click them it will lead you somewhere so go try them and also a ligth weigth definition of clouds is included too and i added a link to my repo by clicking the github logo button.as you can see below in the screenshot the changes made and also see the buttons named as Top nav items now read: Clouds Pricing Menu Sign in .you can test the website in https://clouds-website-two.vercel.app/
Ships:
I have made an clouds landing page and this is jsut an landing page featuring clouds which are renderd by the three js liblray in my node.js setup.I ahd thoguth of using clouds as it would look better and cool.This was very challenging to make espcially like in the part of in the end where soemtimes it didnt look that good and simple bugs too in before parts and at the end the redner scene was jsut dissapering but it was becuase of the dev mode i was using for preview but when i pushed to my github and conntect it to my vercel it was looking good....
|
1793127243.9677677
|
1793213643.9677677
|
|
14123
|
Orbit by @EngThi | Stardance
|
EngThi
|
1
|
19.9
|
132
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-06T00:22:26Z", "hours": 17.0, "multiplier": 7.88, "payout": 132, "blessing": "neutral", "text": "I built this mini-terminal in C. The trickiest part was dealing with pointers—specifically dereferencing. I got a bit lost in a few places and while organizing function parameters, but nothing major went wrong. I wanted to learn how operating systems and low-level systems work; since C is essentially the foundation for that—and I was already studying it in my course I decided to use it. To test it out, you can simply create a Codespaces instance or clone the repository. If you choose to clone it, you’ll need a C compiler installed. Install it using this command: sudo apt update && sudo apt install build-essential -y", "repo": "https://github.com/EngThi/Orbit", "demo": "https://github.com/EngThi/Orbit/releases/latest"}]...
|
[{"post_id": 31756, "ts": "202 [{"post_id": 31756, "ts": "2026-07-20T12:11:09Z", "hours": 2.9022, "text": "Yeah, long time… I was here thinking about whether to continue developing something more complete/add more features here. It just so happens I was working on other projects and liked them, so I kind of set Orbit aside. Actually, every now and then I would come here (I mean to its directory) and test things, skim through the code to think of more stuff, you know. I’d run the program and that was pretty much it. Then I was testing some parts and features of the language related to the course. And since before fully developing the project I studied, checked out, and learned certain things here, I came back and did the same. I even turned off Wakatime since it wasn’t really for the project, but after messing with the others I’d turn it back on and that was that. So yeah, here I am and I tinkered with the project a bit more in the parts I got feedback on. I forgot to translate the version I’d be showing for the demo into English , now I did, I was thinking of leaving the binary and executable program multiplatform and I also went after that. Anyway, there’s already a release with it for Linux, macOS, and Windows. In that and in the translation, I used Antigravity. Now the project is more organized. Now the aliases you create stay saved and don’t get lost when you close that session. I also tweaked things with the voters’ feedback to make it look more professional and like how bash really is . Creating a process and running things with execvp() (the other one is fork() ) or it already kind of gave the clue on how to do it."}, {"post_id": 23177, "ts": "2026-07-06T00:10:51Z", "hours": 0.7314, "text": "I’m done for now. I spent time writing the README and fixing a few things in the code, as well as resolving an issue syncing the Git repository—specifically, a discrepancy between the remote and local versions. I also deleted the binary that had been uploaded there by mistake :| On top of that, I created this architecture diagram right in Canva. That’s basically it; now I’m going to ship the Alpha version."}, {"post_id": 22870, "ts": "2026-07-05T14:28:58Z", "hours": 6.3458, "text": "Massive session in the last days. Honestly, the past few days have been a heavy grind balancing school work and academic study. Between reviewing some Python automation scripts and touching up minor EDA/hardware schematic concepts, I had to take a step back and deeply review C fundamentals. I spent a good chunk of time writing tests to push the limits of basic features, function definitions, and pointer scopes that the language offers. All this testing made it obvious that the old monolithic, single-file structure was hitting a wall. To scale Orbit properly into the Alpha phase (vα), I executed a complete architectural overhaul, breaking the codebase down from 1 single file into 5 highly modular files, all cleanly decoupled and tied together using structured header files (.h) and a dedicated Makefile. Key implementations finalized in this block: Modular File Splitting: Migrated core logic away from the legacy root files. The project is now properly organized under a /src directory, separating the shell’s main loop, the token parser, and individual command definitions into their own independent compilation units. Dynamic Prompt Integration: Hooked up the native getcwd() system call inside the interactive execution loop. Because the shell now correctly tracks process directory state, the prompt dynamically updates and visually prints the absolute path in real-time right after a ‘cd’ executes. Lookup Table for Aliases: Laid down the pre-processing layer for custom shortcut mappings. Designed a static structure array to act as an Alias Table, intercepting raw stdin strings to scan for matches (like replacing ‘ll’ with ‘run ls -la’) before the input ever hits strtok for argument tokenization."}, {"post_id": 8950, "ts": "2026-06-14T21:34:18Z", "hours": 1.9922, "text": "Refactoring the main execution loop with M365 Copilot. Moving away from the messy string comparisons and building a cleaner internal structure for command handling. Spent time debugging memory allocations and ensuring tokens from strtok don’t leak between cycles."}, {"post_id": 8842, "ts": "2026-06-14T18:21:02Z", "hours": 0.9522, "text": "Implemented a dynamic dispatch system using an array of structures and function pointers. Replaced the entire nested if/else chain inside main with a clean lookup table. Commands like echo, sum, and run are now isolated functions mapped to their respective triggers. Much easier to extend now."}, {"post_id": 8760, "ts": "2026-06-14T15:52:13Z", "hours": 0.7778, "text": "It was supposed to be working here. Now the CLI has the repeat command that takes the number 'n' , which is the parameter the user puts in, and looks in history.txt for which 'n' command should be executed and repeats it. I realized that adding history using the ↑↓ (keyboard arrows) would be more complicated and could, not break/bug, but slow me down in what I was doing and testing."}, {"post_id": 8160, "ts": "2026-06-13T16:36:39Z", "hours": 0.6158, "text": "The available commands: help echo sum history clear_history run cd I’ve already finished the list for the available commands here. I left an array, and with that, we can keep *adding more stuff * later and make the help command actually helpful :)"}, {"post_id": 8084, "ts": "2026-06-13T14:32:57Z", "hours": 0.6228, "text": "Today I finished implementing the cd command. Now I can change directories within the project terminal. The process is to run run ls and then use cd . In this case, I left it without the run command, just using cd directly ."}, {"post_id": 7817, "ts": "2026-06-13T01:28:16Z", "hours": 0.8528, "text": "I started making the directory changes . Actually, I spent more time testing and thinking about what to do and running tests . I didn’t even get the idea to be able to see/repeat the last commands like ↑↓ that are in normal terminals. I haven’t done that many upgrades , but I’ve studied and am still developing the idea"}, {"post_id": 7774, "ts": "2026-06-13T00:02:59Z", "hours": 0.5903, "text": "Continuing here, I was working and studying (Chemical Kinetics :\\ ) with the M365 Copilot and it said something like: why not put an enumerator of the commands in the history? I thought it was a good idea and that’s what I went looking for . I had to change, replace, you know, the part where I saw the commands to keep doing a ++ for the counter . But when it worked (compiled and had changed to this new logic) it ended up, for some reason, printing 35949 commands in memory! . Basically some kind of memory flow or something like that related to the command that calls the system (run) . I have to see why this happened…"}, {"post_id": 7607, "ts": "2026-06-12T18:32:21Z", "hours": 0.8681, "text": "So, here I put something REALLY COOL : executing system commands in the terminal inside the terminal -\\°°/-. It’s kind of funny, but like, I can run ls, cat, date, pwd , etc. I thought it would take longer, but it didn’t. I just needed to pass the tokens, concatenate the command setting the `run’ as the one that connects the app to the system terminal . It turned out I was doing some C things for the course and I was already testing this… And I used M365 Copilot to help me. Well, I already use it to reinforce the content of the classes, lessons, learn some things and also to debug my code , exercises/lists that the teachers gave. So I kind of just continued where I was."}, {"post_id": 7563, "ts": "2026-06-12T17:21:28Z", "hours": 0.4425, "text": "That’s a cool thing… I added a command to clear the history , which in this case is clear_history . It’s a simple thing, but it improves the app’s usability. That’s pretty much it."}, {"post_id": 7117, "ts": "2026-06-11T21:48:17Z", "hours": 1.0214, "text": "Basically, I added a very simple history file to the app, like a .bash_history . But in this case, I’m using a history.txt file. It opens and writes exactly everything typed in the terminal, skipping a line . Man, messing with/manipulating files here is quite difficult… using * for pointers and dereferencing confused me a bit. Sometimes I forgot it and it gave me errors. The good part is that my own editor recommended clangd . Actually, I don’t know exactly what it is, but it seems like a lintter and automatic pre-compiler. It’s helping me… One thing I miss is being able to attach more than one media file. At least I had the copy and paste image option, and it didn’t work."}, {"post_id": 5765, "ts": "2026-06-09T17:46:12Z", "hours": 1.165, "text": "Hello. I started this project. Actually, I had thought of something different, and that’s why it has this name “Orbit”. But now that I’ve decided to do this, I’ll change the name later. Basically, I’m starting out in C (really learning it right now), and since I’m a beginner and I got my first laptop, which is Linux (because I didn’t want to pay for a Windows license/I don’t have anything tying me to it, considering this is my first machine), and since I’m in this Dev and Builder life and C is the basis of many things and OSs… So I decided to do something along the lines of Unix/Linux . I thought, “nothing better than playing with the Terminal for this,” so I started with this simple version here. Which: is in an infinite loop (1) has the echo command (to print) and sum (to sum) Uses strtok (which I’m learning) to manipulate strings and the tokens for what they call them. I think that’s it :p"}]...
|
Title: Orbit by @EngThi | Stardance
Devlogs:
Hell Title: Orbit by @EngThi | Stardance
Devlogs:
Hello. I started this project. Actually, I had thought of something different, and that’s why it has this name “Orbit”. But now that I’ve decided to do this, I’ll change the name later. Basically, I’m starting out in C (really learning it right now), and since I’m a beginner and I got my first laptop, which is Linux (because I didn’t want to pay for a Windows license/I don’t have anything tying me to it, considering this is my first machine), and since I’m in this Dev and Builder life and C is the basis of many things and OSs… So I decided to do something along the lines of Unix/Linux . I thought, “nothing better than playing with the Terminal for this,” so I started with this simple version here. Which: is in an infinite loop (1) has the echo command (to print) and sum (to sum) Uses strtok (which I’m learning) to manipulate strings and the tokens for what they call them. I think that’s it :p
Basically, I added a very simple history file to the app, like a .bash_history . But in this case, I’m using a history.txt file. It opens and writes exactly everything typed in the terminal, skipping a line . Man, messing with/manipulating files here is quite difficult… using * for pointers and dereferencing confused me a bit. Sometimes I forgot it and it gave me errors. The good part is that my own editor recommended clangd . Actually, I don’t know exactly what it is, but it seems like a lintter and automatic pre-compiler. It’s helping me… One thing I miss is being able to attach more than one media file. At least I had the copy and paste image option, and it didn’t work.
That’s a cool thing… I added a command to clear the history , which in this case is clear_history . It’s a simple thing, but it improves the app’s usability. That’s pretty much it.
So, here I put something REALLY COOL : executing system commands in the terminal inside the terminal -\°°/-. It’s kind of funny, but like, I can run ls, cat, date, pwd , etc. I thought it would take longer, but it didn’t. I just needed to pass the tokens, concatenate the command setting the `run’ as the one that connects the app to the system terminal . It turned out I was doing some C things for the course and I was already testing this… And I used M365 Copilot to help me. Well, I already use it to reinforce the content of the classes, lessons, learn some things and also to debug my code , exercises/lists that the teachers gave. So I kind of just continued where I was.
Continuing here, I was working and studying (Chemical Kinetics :\ ) with the M365 Copilot and it said something like: why not put an enumerator of the commands in the history? I thought it was a good idea and that’s what I went looking for . I had to change, replace, you know, the part where I saw the commands to keep doing a ++ for the counter . But when it worked (compiled and had changed to this new logic) it ended up, for some reason, printing 35949 commands in memory! . Basically some kind of memory flow or something like that related to the command that calls the system (run) . I have to see why this happened…
I started making the directory changes . Actually, I spent more time testing and thinking about what to do and running tests . I didn’t even get the idea to be able to see/repeat the last commands like ↑↓ that are in normal terminals. I haven’t done that many upgrades , but I’ve studied and am still developing the idea
Today I finished implementing the cd command. Now I can change directories within the project terminal. The process is to run run ls and then use cd . In this case, I left it without the run command, just using cd directly .
The available commands: help echo sum history clear_history run cd I’ve already finished the list for the available commands here. I left an array, and with that, we can keep *adding more stuff * later and make the help command actually helpful :)
It was supposed to be working here. Now the CLI has the repeat command that takes the number 'n' , which is the parameter the user puts in, and looks in history.txt for which 'n' command should be executed and repeats it. I realized that adding history using the ↑↓ (keyboard arrows) would be more complicated and could, not break/bug, but slow me down in what I was doing and testing.
Implemented a dynamic dispatch system using an array of structures and function pointers. Replaced the entire nested if/else chain inside main with a clean lookup table. Commands like echo, sum, and run are now isolated functions mapped to their respective triggers. Much easier to extend now.
Refactoring the main execution loop with M365 Copilot. Moving away from the messy string comparisons and building a cleaner internal structure for command handling. Spent time debugging memory allocations and ensuring tokens from strtok don’t leak between cycles.
Massive session in the last days. Honestly, the past few days have been a heavy grind balancing school work and academic study. Between reviewing some Python automation scripts and touching up minor EDA/hardware schematic concepts, I had to take a step back and deeply review C fundamentals. I spent a good chunk of time writing tests to push the limits of basic features, function definitions, and pointer scopes that the language offers. All this testing made it obvious that the old monolithic, single-file structure was hitting a wall. To scale Orbit properly into the Alpha phase (vα), I executed a complete architectural overhaul, breaking the codebase down from 1 single file into 5 highly modular files, all cleanly decoupled and tied together using structured header files (.h) and a dedicated Makefile. Key implementations finalized in this block: Modular File Splitting: Migrated core logic away from the legacy root files. The project is now properly organized under a /src directory, separating the shell’s main loop, the token parser, and individual command definitions into their own independent compilation units. Dynamic Prompt Integration: Hooked up the native getcwd() system call inside the interactive execution loop. Because the shell now correctly tracks process directory state, the prompt dynamically updates and visually prints the absolute path in real-time right after a ‘cd’ executes. Lookup Table for Aliases: Laid down the pre-processing layer for custom shortcut mappings. Designed a static structure array to act as an Alias Table, intercepting raw stdin strings to scan for matches (like replacing ‘ll’ with ‘run ls -la’) before the input ever hits strtok for argument tokenization.
I’m done for now. I spent time writing the README and fixing a few things in the code, as well as resolving an issue syncing the Git repository—specifically, a discrepancy between the remote and local versions. I also deleted the binary that had been uploaded there by mistake :| On top of that, I created this architecture diagram right in Canva. That’s basically it; now I’m going to ship the Alpha version.
Yeah, long time… I was here thinking about whether to continue developing something more complete/add more features here. It just so happens I was working on other projects and liked them, so I kind of set Orbit aside. Actually, every now and then I would come here (I mean to its directory) and test things, skim through the code to think of more stuff, you know. I’d run the program and that was pretty much it. Then I was testing some parts and features of the language related to the course. And since before fully developing the project I studied, checked out, and learned certain things here, I came back and did the same. I even turned off Wakatime since it wasn’t really for the project, but after messing with the others I’d turn it back on and that was that. So yeah, here I am and I tinkered with the project a bit more in the parts I got feedback on. I forgot to translate the version I’d be showing for the demo into English , now I did, I was thinking of leaving the binary and executable program multiplatform and I also went after that. Anyway, there’s already a release with it for Linux, macOS, and Windows. In that and in the translation, I used Antigravity. Now the project is more organized. Now the aliases you create stay saved and don’t get lost when you close that session. I also tweaked things with the voters’ feedback to make it look more professional and like how bash really is . Creating a process and running things with execvp() (the other one is fork() ) or it already kind of gave the clue on how to do it.
Ships:
I built this mini-terminal in C. The trickiest part was dealing with pointers—specifically dereferencing. I got a bit lost in a few places and while organizing function parameters, but nothing major went wrong. I wanted to learn how operating systems and low-level systems work; since C is essentially the foundation for that—and I was already studying it in my course I decided to use it. To test it out, you can simply create a Codespaces instance or clone the repository. If you choose to clone it, you’ll need a C compiler installed. Install it using this command: sudo apt update && sudo apt install build-essential -y...
|
1793112520.237409
|
1793198920.237409
|
|
14127
|
Puwump by @heiligetomate | Stardance
|
heiligetomate
|
1
|
36.0
|
328
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-21T00:30:35Z", "hours": 36.0, "multiplier": 9.67, "payout": 328, "blessing": "neutral", "text": "local workout App written in rust using egui. was fun to make challenging: egui is an annoying library, ill never use it again i might make this app android compatible in the future", "repo": "https://github.com/Heiligetomate/puwump", "demo": "https://github.com/Heiligetomate/puwump/releases/tag/v0.1.0"}]...
|
[{"post_id": 12829, "ts": "202 [{"post_id": 12829, "ts": "2026-06-21T00:22:21Z", "hours": 0.3842, "text": "Fixed the white dropdown on windows"}, {"post_id": 12807, "ts": "2026-06-20T23:23:09Z", "hours": 0.5158, "text": "Changes: Windows compatible Readme Test yourself instructions"}, {"post_id": 12693, "ts": "2026-06-20T18:47:34Z", "hours": 11.6531, "text": "Changes: Changed the db structure (fixed bugs) More default data Cleaner module structure Removal of old code More generic views Workout view Meal eat view Better home view Implement all missing views The project is basically done as a desktop app."}, {"post_id": 8810, "ts": "2026-06-14T17:14:30Z", "hours": 8.4217, "text": "Changed the Plan view you can now select a plan add exercises remove exercises move exercises change the reps"}, {"post_id": 6991, "ts": "2026-06-11T18:49:19Z", "hours": 7.4478, "text": "Finished the db structure i think Improved the UI Added ingredients to the UI (and made it so the view used for exercises and ingredients is reusable) Restructured a lot"}, {"post_id": 6150, "ts": "2026-06-10T10:38:11Z", "hours": 0.3583, "text": "New logo :3"}, {"post_id": 5904, "ts": "2026-06-09T21:35:12Z", "hours": 6.9081, "text": "The basic database structure is done and a basic ui is implemented"}]...
|
Title: Puwump by @heiligetomate | Stardance
Devlo Title: Puwump by @heiligetomate | Stardance
Devlogs:
The basic database structure is done and a basic ui is implemented
New logo :3
Finished the db structure i think Improved the UI Added ingredients to the UI (and made it so the view used for exercises and ingredients is reusable) Restructured a lot
Changed the Plan view you can now select a plan add exercises remove exercises move exercises change the reps
Changes: Changed the db structure (fixed bugs) More default data Cleaner module structure Removal of old code More generic views Workout view Meal eat view Better home view Implement all missing views The project is basically done as a desktop app.
Changes: Windows compatible Readme Test yourself instructions
Fixed the white dropdown on windows
Ships:
local workout App written in rust using egui. was fun to make challenging: egui is an annoying library, ill never use it again i might make this app android compatible in the future...
|
1793130674.5032647
|
1793217074.5032647
|
|
14131
|
My very own WebOS by @pati08 | Stardance
|
pati08
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-10T01:40:31Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my first WebOS! It was really fun to make, and I loved expressing myself through it. The process was fun and somewhat challenging at times, with frustrating CSS nonsense. I’m really proud of how clean the interface is and how nicely the calculator and UI/UX (little though there may be) is.", "repo": "https://github.com/pati08/WebOS", "demo": "https://pati08.github.io/WebOS/"}]...
|
[{"post_id": 5989, "ts": "2026 [{"post_id": 5989, "ts": "2026-06-10T01:26:42Z", "hours": 0.8417, "text": "All wrapped up. Made a calculator! It’s a simple accounting style one where you do one operation at a time. I modeled a little state machine on paper to work out all the states and transitions. Quite fun! AI did the CSS fyi."}, {"post_id": 5793, "ts": "2026-06-09T18:27:14Z", "hours": 1.4161, "text": "Added closing and opening windows and desktop icons! Got my own little way of reopening windows - they’re kept on the left side of the top bar. Had some fun making a demo app of “System Stats” that are just random, changing binary. All that’s left is to make my final, most complicated app: a calculator."}, {"post_id": 5640, "ts": "2026-06-09T14:48:13Z", "hours": 0.3567, "text": "I’ve actually been working like 2 hours, hackatime just was misconfigured. Anyways, I’ve built the core of the OS! Had lots of fun with trying to make the guide’s structure cleaner and more modular and extensible, which is cool. Screenshot attached. Just finished window dragging!"}]...
|
Title: My very own WebOS by @pati08 | Stardance
D Title: My very own WebOS by @pati08 | Stardance
Devlogs:
I’ve actually been working like 2 hours, hackatime just was misconfigured. Anyways, I’ve built the core of the OS! Had lots of fun with trying to make the guide’s structure cleaner and more modular and extensible, which is cool. Screenshot attached. Just finished window dragging!
Added closing and opening windows and desktop icons! Got my own little way of reopening windows - they’re kept on the left side of the top bar. Had some fun making a demo app of “System Stats” that are just random, changing binary. All that’s left is to make my final, most complicated app: a calculator.
All wrapped up. Made a calculator! It’s a simple accounting style one where you do one operation at a time. I modeled a little state machine on paper to work out all the states and transitions. Quite fun! AI did the CSS fyi.
Ships:
I made my first WebOS! It was really fun to make, and I loved expressing myself through it. The process was fun and somewhat challenging at times, with frustrating CSS nonsense. I’m really proud of how clean the interface is and how nicely the calculator and UI/UX (little though there may be) is....
|
1793253037.7197728
|
1793339437.7197728
|
|
14142
|
Termux :Desktop by @Tan-May | Stardance
|
Tan-May
|
1
|
26.66
|
373
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T18:34:57Z", "hours": 21.0, "multiplier": 18.31, "payout": 373, "blessing": "neutral", "text": "I made a Linux environment inside the android phone which is actually plug and play via xrdp , novnc and the termux X11 , the project was inspiring for me because i got the laptop very late at the age , i really wanted to have a pc or a laptop but in todays gen the phone is becoming capable enough to run full desktop like env in you phone itself just plug your phone to a big monitor and you’re good to go , the challenges i faced were , 1 hardware acc so to use the phones full potential we need to enable the phones hardware acc so that the android will not kill termux that was very hard to tackle", "repo": "https://github.com/Tanmay-1122/Termux-desktop", "demo": "https://termux-dex-demo.vercel.app/"}]...
|
[{"post_id": 26525, "ts": "202 [{"post_id": 26525, "ts": "2026-07-11T11:52:35Z", "hours": 5.6581, "text": "final devlog i guess , okay so after the last rejection of my project , invested lots of time in reducing the installing scripts cause i saw the reviewers recording of using my project , he had to do lots of things manually like installing apps , starting desktop etc so now i made some automated scripts which will install the apps automatically , which are been divided into many other types like browsers , ai apps , ide ,etc so once the script is run , we can install multiple apps simultaneously also cherry on top i also added some themes so that the desktop will also look good im giving this project time because i will be using this project in my next project which is a cyberdeck"}, {"post_id": 9372, "ts": "2026-06-15T18:28:11Z", "hours": 1.6561, "text": "#The Final Devlog Riced my phone though is not a stand alone os but many linux package works in termux too cause basically the android is based on linux :D so most of the package were working and the one which were not working i ditched them , also setup ed a some developer apps like lazyvim via nvim , rofi , vscode , some hardware acc tools too !! also adding the video as the demo"}, {"post_id": 8024, "ts": "2026-06-13T11:58:57Z", "hours": 7.3517, "text": "Devlog #4 — Termux Desktop No new features today — just fixing stuff that was manual hardwork Problem: The setup used one big pkg install to install everything at once. Turns out if even one package fails (like websockify hitting a bad mirror errors again and again ), the whole command dies and nothing else . What I Fixed I Split everything into two scripts: setup.sh — runs once, installs all packages one by one so a single failure doesn’t kill the rest, downloads noVNC, and sets up the home-screen widget start-desktop.sh — unchanged, just launches the desktop like before The widget thing is probably my favourite part of today. setup.sh now automatically creates the Termux:Widget shortcut, so after first-time setup you just tap a button on your home screen to start the desktop. No opening Termux, no typing. Actually plug and play now. Also rewrote the README to match all of this. What Didn’t Work Out Had an idea to build a proper Android app that wraps everything — no terminal at all. But Android sandboxes apps from each other so an APK can’t actually run pkg install inside Termux. It would’ve been a lot of work for not much gain over the widget shortcut. Dropped it. Next Testing everything on a real device tomorrow. Fingers crossed setup.sh doesn’t explode."}, {"post_id": 7379, "ts": "2026-06-12T09:38:08Z", "hours": 0.8658, "text": "Termux :Desktop devlog#3 — the big script cleanup tl;dr had two separate startup scripts doing almost the same thing and it was bothering me merged everything into one unified launcher with a proper menu (A / B / C) termux:x11 is now option A and actually works cleanly alongside the vnc stuff script auto-detects usb tethering vs wifi so you don’t have to think about it xrdp falls back to novnc automatically if usb isn’t connected (so it doesn’t just die) updated the readme to actually reflect what the project does now github: Tanmay-1122/Termux-desktop what i changed the big merge (two scripts → one) before this i had termux11start.sh for termux:x11 and start-desktop.sh for the vnc/xrdp stuff. they were basically doing the same cleanup and xfce setup steps just slightly differently. every time i wanted to fix something i had to do it twice which was annoying so i just merged them. now there’s one script that shows a menu when you run it: A) Termux:X11 — hardware-accelerated ⚡ B) noVNC — browser access (wifi) 🌐 C) xRDP — windows rdp via usb 🪟 pick your mode, it handles the rest. network detection up front script now checks for usb tethering (rndis0 / usb0) and wifi (wlan0) before showing the menu both ips are shown at the top so you know what’s available before you even pick a mode option C shows a warning in the menu itself if usb isn’t detected instead of letting you pick it and then failing shared helper function pulled the .xsession and .Xclients setup into one setup_xsession() function termux:x11 mode doesn’t need this at all (it runs on :0 not :1) so it skips it entirely vnc and xrdp both call it — no more copy-pasted code termux:x11 mode (option A) pulled the logic from termux11start.sh and cleaned it up a bit: starts pulseaudio with tcp auth so audio actually works launches termux-x11 :0 in background, waits 3 seconds calls am start to bring the x11 app to the foreground automatically sets PULSE_SERVER=127.0.0.1 and DISPLAY=:0 then launches xfce4 xrdp fallback if you pick option C but usb isn’t connected, instead of crashing or doing nothing it prints a message and automatically falls back to novnc mode after 3 seconds. small thing but made it way less frustrating to use. readme rewrite the old readme only talked about termux:x11. rewrote it to cover all three modes with: a comparison table so people can pick the right mode for their situation separate install instructions for novnc and xrdp (tigervnc, websockify, xrdp packages) a preview of what the launcher menu actually looks like connection instructions for each mode (what url to open, what app to use, etc.)"}, {"post_id": 6819, "ts": "2026-06-11T13:19:47Z", "hours": 7.3214, "text": "Devlog 2 – Added Rofi Application Launcher Today I worked on improving the usability of my Termux Desktop project by integrating Rofi as the main application launcher. Before this change, launching applications was less convenient and required navigating through menus or using terminal commands. To solve this, I added a custom Rofi setup that allows applications to be launched quickly from a clean search interface. I also created a keyboard shortcut so that pressing Super + Space instantly opens Rofi, making the desktop experience feel much more natural and efficient. While implementing Rofi, I spent time customizing its appearance and layout so that it better matches the overall desktop environment. The launcher now looks cleaner and is easier to use compared to the default configuration. One challenge during this session was finding the right balance between functionality and appearance. I experimented with different configurations before settling on a design that feels responsive and visually appealing. I am currently working on the next phase of the project. My goal is to implement noVNC and XRDP support. With noVNC, users will be able to access the Termux desktop through a web browser on any device connected to the same network. This means the desktop will not be limited to Termux:X11 and can be accessed from PCs, tablets, or other screens using only a browser. I also plan to add XRDP support, which will allow Windows users to connect directly to the Termux desktop using Remote Desktop. This should provide a smoother and more native experience while making the setup significantly more portable. In the future, I will also publish my desktop configuration files (dotfiles) on GitHub so that others can easily recreate the same setup. Overall, today’s work focused on improving accessibility and user experience, bringing the project one step closer to feeling like a complete desktop operating system rather than a Linux environment running on a phone. Rofi screenshots are attached below."}, {"post_id": 6126, "ts": "2026-06-10T09:35:58Z", "hours": 3.3372, "text": "Devlog:1 Termux Desktop Hello everyone , this is my new project (Termux Desktop) which can turn any normal android device into a full fledged linux desktop environment within few clicks , i already worked for something similar to this as my personal protect but it required lots of manual work and debugging but now in this protect i will try to automate everything and within the few clicks you will be able to turn your phone to a pc , i have lots of idea in my mind will go step by step So what i did today !!: so today i worked on setting up a very basic linux gui environment using the Termux and the Termux x11 where i was able to get the display output of the phones native Termux on the Termux x11 as shown in the image i also made a automated script to start the display x11 server automatically when run the command in the Termux’s terminal , it will automatically open the Termux x11 with the linux !"}]...
|
Title: Termux :Desktop by @Tan-May | Stardance
De Title: Termux :Desktop by @Tan-May | Stardance
Devlogs:
Devlog:1 Termux Desktop Hello everyone , this is my new project (Termux Desktop) which can turn any normal android device into a full fledged linux desktop environment within few clicks , i already worked for something similar to this as my personal protect but it required lots of manual work and debugging but now in this protect i will try to automate everything and within the few clicks you will be able to turn your phone to a pc , i have lots of idea in my mind will go step by step So what i did today !!: so today i worked on setting up a very basic linux gui environment using the Termux and the Termux x11 where i was able to get the display output of the phones native Termux on the Termux x11 as shown in the image i also made a automated script to start the display x11 server automatically when run the command in the Termux’s terminal , it will automatically open the Termux x11 with the linux !
Devlog 2 – Added Rofi Application Launcher Today I worked on improving the usability of my Termux Desktop project by integrating Rofi as the main application launcher. Before this change, launching applications was less convenient and required navigating through menus or using terminal commands. To solve this, I added a custom Rofi setup that allows applications to be launched quickly from a clean search interface. I also created a keyboard shortcut so that pressing Super + Space instantly opens Rofi, making the desktop experience feel much more natural and efficient. While implementing Rofi, I spent time customizing its appearance and layout so that it better matches the overall desktop environment. The launcher now looks cleaner and is easier to use compared to the default configuration. One challenge during this session was finding the right balance between functionality and appearance. I experimented with different configurations before settling on a design that feels responsive and visually appealing. I am currently working on the next phase of the project. My goal is to implement noVNC and XRDP support. With noVNC, users will be able to access the Termux desktop through a web browser on any device connected to the same network. This means the desktop will not be limited to Termux:X11 and can be accessed from PCs, tablets, or other screens using only a browser. I also plan to add XRDP support, which will allow Windows users to connect directly to the Termux desktop using Remote Desktop. This should provide a smoother and more native experience while making the setup significantly more portable. In the future, I will also publish my desktop configuration files (dotfiles) on GitHub so that others can easily recreate the same setup. Overall, today’s work focused on improving accessibility and user experience, bringing the project one step closer to feeling like a complete desktop operating system rather than a Linux environment running on a phone. Rofi screenshots are attached below.
Termux :Desktop devlog#3 — the big script cleanup tl;dr had two separate startup scripts doing almost the same thing and it was bothering me merged everything into one unified launcher with a proper menu (A / B / C) termux:x11 is now option A and actually works cleanly alongside the vnc stuff script auto-detects usb tethering vs wifi so you don’t have to think about it xrdp falls back to novnc automatically if usb isn’t connected (so it doesn’t just die) updated the readme to actually reflect what the project does now github: Tanmay-1122/Termux-desktop what i changed the big merge (two scripts → one) before this i had termux11start.sh for termux:x11 and start-desktop.sh for the vnc/xrdp stuff. they were basically doing the same cleanup and xfce setup steps just slightly differently. every time i wanted to fix something i had to do it twice which was annoying so i just merged them. now there’s one script that shows a menu when you run it: A) Termux:X11 — hardware-accelerated ⚡ B) noVNC — browser access (wifi) 🌐 C) xRDP — windows rdp via usb 🪟 pick your mode, it handles the rest. network detection up front script now checks for usb tethering (rndis0 / usb0) and wifi (wlan0) before showing the menu both ips are shown at the top so you know what’s available before you even pick a mode option C shows a warning in the menu itself if usb isn’t detected instead of letting you pick it and then failing shared helper function pulled the .xsession and .Xclients setup into one setup_xsession() function termux:x11 mode doesn’t need this at all (it runs on :0 not :1) so it skips it entirely vnc and xrdp both call it — no more copy-pasted code termux:x11 mode (option A) pulled the logic from termux11start.sh and cleaned it up a bit: starts pulseaudio with tcp auth so audio actually works launches termux-x11 :0 in background, waits 3 seconds calls am start to bring the x11 app to the foreground automatically sets PULSE_SERVER=127.0.0.1 and DISPLAY=:0 then launches xfce4 xrdp fallback if you pick option C but usb isn’t connected, instead of crashing or doing nothing it prints a message and automatically falls back to novnc mode after 3 seconds. small thing but made it way less frustrating to use. readme rewrite the old readme only talked about termux:x11. rewrote it to cover all three modes with: a comparison table so people can pick the right mode for their situation separate install instructions for novnc and xrdp (tigervnc, websockify, xrdp packages) a preview of what the launcher menu actually looks like connection instructions for each mode (what url to open, what app to use, etc.)
Devlog #4 — Termux Desktop No new features today — just fixing stuff that was manual hardwork Problem: The setup used one big pkg install to install everything at once. Turns out if even one package fails (like websockify hitting a bad mirror errors again and again ), the whole command dies and nothing else . What I Fixed I Split everything into two scripts: setup.sh — runs once, installs all packages one by one so a single failure doesn’t kill the rest, downloads noVNC, and sets up the home-screen widget start-desktop.sh — unchanged, just launches the desktop like before The widget thing is probably my favourite part of today. setup.sh now automatically creates the Termux:Widget shortcut, so after first-time setup you just tap a button on your home screen to start the desktop. No opening Termux, no typing. Actually plug and play now. Also rewrote the README to match all of this. What Didn’t Work Out Had an idea to build a proper Android app that wraps everything — no terminal at all. But Android sandboxes apps from each other so an APK can’t actually run pkg install inside Termux. It would’ve been a lot of work for not much gain over the widget shortcut. Dropped it. Next Testing everything on a real device tomorrow. Fingers crossed setup.sh doesn’t explode.
#The Final Devlog Riced my phone though is not a stand alone os but many linux package works in termux too cause basically the android is based on linux :D so most of the package were working and the one which were not working i ditched them , also setup ed a some developer apps like lazyvim via nvim , rofi , vscode , some hardware acc tools too !! also adding the video as the demo
final devlog i guess , okay so after the last rejection of my project , invested lots of time in reducing the installing scripts cause i saw the reviewers recording of using my project , he had to do lots of things manually like installing apps , starting desktop etc so now i made some automated scripts which will install the apps automatically , which are been divided into many other types like browsers , ai apps , ide ,etc so once the script is run , we can install multiple apps simultaneously also cherry on top i also added some themes so that the desktop will also look good im giving this project time because i will be using this project in my next project which is a cyberdeck
Ships:
I made a Linux environment inside the android phone which is actually plug and play via xrdp , novnc and the termux X11 , the project was inspiring for me because i got the laptop very late at the age , i really wanted to have a pc or a laptop but in todays gen the phone is becoming capable enough to run full desktop like env in you phone itself just plug your phone to a big monitor and you’re good to go , the challenges i faced were , 1 hardware acc so to use the phones full potential we need to enable the phones hardware acc so that the android will not kill termux that was very hard to tackle...
|
1792878735.8006952
|
1793742735.8006952
|
|
14150
|
AI skin care webapp by @dhull_daksh | Stardance
|
dhull_daksh
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-09T13:39:12Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "machine learning models to assess user conditions, track progress over time, and provide personalized skincare and haircare routines. The system also delivers real-time environmental skincare recommendations through a rule-based engine, eliminating the need for external AI APIs. One of the major challenges was integrating the Go backend with Firebase Cloud Messaging (FCM) to manage notification reminders using user tokens. Additionally, building and coordinating the frontend experience, including user interactions and seamless data flow, was a significant part of the development effort.", "repo": "https://github.com/cocabola04/SkinMax", "demo": "https://skinmaxai.netlify.app"}]...
|
[{"post_id": 5598, "ts": "2026 [{"post_id": 5598, "ts": "2026-06-09T13:31:28Z", "hours": 6.7775, "text": "Just completed my project"}]...
|
Title: AI skin care webapp by @dhull_daksh | Stard Title: AI skin care webapp by @dhull_daksh | Stardance
Devlogs:
Just completed my project
Ships:
machine learning models to assess user conditions, track progress over time, and provide personalized skincare and haircare routines. The system also delivers real-time environmental skincare recommendations through a rule-based engine, eliminating the need for external AI APIs. One of the major challenges was integrating the Go backend with Firebase Cloud Messaging (FCM) to manage notification reminders using user tokens. Additionally, building and coordinating the frontend experience, including user interactions and seamless data flow, was a significant part of the development effort....
|
1793119944.2866879
|
1793206344.2866879
|
|
14166
|
CosmoOS by @noel_ | Stardance
|
noel_
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T14:20:29Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "CosmoOS is a cosmos styled desktop in your browser with draggable windows, two games, notifications, media player, and a black hole shutdown. The challenging part was managing game loops to prevent double-rendering and fixing the starfield when CSS and JavaScript conflicted. I am proud that I finished it, the rotating asteroids, black hole animation, window snapping, and fallback drawings if images are missing. Usage: Double-click icons to open windows, arrow keys and Space to play games, click Start then Shut Down for the black hole, then a Restart button appears after 2 seconds.", "repo": "https://github.com/9noel/cosmo-os", "demo": "https://cosmo-os.vercel.app"}]...
|
[{"post_id": 9952, "ts": "2026 [{"post_id": 9952, "ts": "2026-06-16T14:09:56Z", "hours": 0.4228, "text": "Devlog #3 What’s new: Windows now snap to screen edges and to each other when dragged within 20px. I also added keyboard shortcuts: Alt+W closes the active window, Alt+N opens Notes, Alt+I opens System Info, and Escape also closes windows. The starfield broke after I added the JavaScript movement, the CSS animation and the JS were fighting each other, making stars drift off-screen forever. Fixed it by removing the CSS animation entirely and letting the JS handle everything. Stars now recycle forever. The window snapping: The snap detection checks both horizontal and vertical alignment. Windows snap left/right and top/bottom to each other and to the screen edges. It’s subtle but makes the desktop feel much more polished. What’s next: That’s it. Three devlogs, all features done, bugs fixed. Time to ship finally."}, {"post_id": 9902, "ts": "2026-06-16T12:29:45Z", "hours": 1.3467, "text": "Devlog #2 What changed since last time: The asteroid game no longer double‑draws, media player notifications actually work, windows can’t be dragged off‑screen anymore, and there’s a restart button after shutdown. Oh, and it now lives on GitHub with a live demo on Vercel. The last 10% took longer than expected. The GitHub push failed. Also, the asteroid canvas resize bug kept breaking the game on window resize, then I fixed it with a debounced restart. The shutdown screen had no recovery, so I added a RESTART button after the black hole animation. Now you can actually get back in. What’s next: Shipping the project. Live demo at cosmo-os.vercel.app. Code on GitHub. The README is clean, the assets are credited, and the fallback drawings mean it works even if some images are missing. Would I build it the same way again? Yes and no. The rewrite from the over‑ambitious first version was the best call. Next time, I’d start smaller and add features iteratively. But for now, CosmoOS is out there in the void."}, {"post_id": 6312, "ts": "2026-06-10T16:54:27Z", "hours": 3.7467, "text": "Devlog #1 So what’s here: A space themed desktop environment with draggable windows, a notification center, two arcade games (SpaceSnake + Asteroid Destroyer), a music player, and a secret shutdown animation. My first version tried to do too much, custom file system, terminal emulator, easter eggs. After almost one and a half hour of nothing working, I deleted almost everything and started over with just the window manager and games. Best decision I made. The rewrite took another one and a half hour and it actually runs. Next up: Fix the double-draw asteroid bug (I have two loops running), preload images so they don’t reload every frame(optimalisation), and write a README. Then I’ll make a demo site and then ship the project. PS: Yes, the asteroids rotate. Yes, I spent way too long on that."}]...
|
Title: CosmoOS by @noel_ | Stardance
Devlogs:
Dev Title: CosmoOS by @noel_ | Stardance
Devlogs:
Devlog #1 So what’s here: A space themed desktop environment with draggable windows, a notification center, two arcade games (SpaceSnake + Asteroid Destroyer), a music player, and a secret shutdown animation. My first version tried to do too much, custom file system, terminal emulator, easter eggs. After almost one and a half hour of nothing working, I deleted almost everything and started over with just the window manager and games. Best decision I made. The rewrite took another one and a half hour and it actually runs. Next up: Fix the double-draw asteroid bug (I have two loops running), preload images so they don’t reload every frame(optimalisation), and write a README. Then I’ll make a demo site and then ship the project. PS: Yes, the asteroids rotate. Yes, I spent way too long on that.
Devlog #2 What changed since last time: The asteroid game no longer double‑draws, media player notifications actually work, windows can’t be dragged off‑screen anymore, and there’s a restart button after shutdown. Oh, and it now lives on GitHub with a live demo on Vercel. The last 10% took longer than expected. The GitHub push failed. Also, the asteroid canvas resize bug kept breaking the game on window resize, then I fixed it with a debounced restart. The shutdown screen had no recovery, so I added a RESTART button after the black hole animation. Now you can actually get back in. What’s next: Shipping the project. Live demo at cosmo-os.vercel.app. Code on GitHub. The README is clean, the assets are credited, and the fallback drawings mean it works even if some images are missing. Would I build it the same way again? Yes and no. The rewrite from the over‑ambitious first version was the best call. Next time, I’d start smaller and add features iteratively. But for now, CosmoOS is out there in the void.
Devlog #3 What’s new: Windows now snap to screen edges and to each other when dragged within 20px. I also added keyboard shortcuts: Alt+W closes the active window, Alt+N opens Notes, Alt+I opens System Info, and Escape also closes windows. The starfield broke after I added the JavaScript movement, the CSS animation and the JS were fighting each other, making stars drift off-screen forever. Fixed it by removing the CSS animation entirely and letting the JS handle everything. Stars now recycle forever. The window snapping: The snap detection checks both horizontal and vertical alignment. Windows snap left/right and top/bottom to each other and to the screen edges. It’s subtle but makes the desktop feel much more polished. What’s next: That’s it. Three devlogs, all features done, bugs fixed. Time to ship finally.
Ships:
CosmoOS is a cosmos styled desktop in your browser with draggable windows, two games, notifications, media player, and a black hole shutdown. The challenging part was managing game loops to prevent double-rendering and fixing the starfield when CSS and JavaScript conflicted. I am proud that I finished it, the rotating asteroids, black hole animation, window snapping, and fallback drawings if images are missing. Usage: Double-click icons to open windows, arrow keys and Space to play games, click Start then Shut Down for the black hole, then a Restart button appears after 2 seconds....
|
1793137926.1962605
|
1793224326.1962605
|
|
14177
|
yahtzee web game by @Camc | Stardance
|
Camc
|
1
|
3.0
|
4
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-25T15:54:52Z", "hours": 3.0, "multiplier": 1.27, "payout": 4, "blessing": "neutral", "text": "I was trying to make a yahtzee game as i have been playing yahtzee. I was really struggling with the scoring system.", "repo": "https://github.com/clownoftheweekcode/yahtzee-game", "demo": "https://clownoftheweekcode.github.io/yahtzee-game/"}]...
|
[{"post_id": 15712, "ts": "202 [{"post_id": 15712, "ts": "2026-06-25T15:50:24Z", "hours": 1.5161, "text": "tried to finish this… Hopefully i can work on it without ai in the future."}, {"post_id": 12698, "ts": "2026-06-20T18:53:44Z", "hours": 0.6386, "text": "added the ability to hold rolled dice and gave a limit to how many rolls you can roll"}, {"post_id": 9449, "ts": "2026-06-15T20:18:21Z", "hours": 0.6294, "text": "created the elements and styled them a bit"}]...
|
Title: yahtzee web game by @Camc | Stardance
Devl Title: yahtzee web game by @Camc | Stardance
Devlogs:
created the elements and styled them a bit
added the ability to hold rolled dice and gave a limit to how many rolls you can roll
tried to finish this… Hopefully i can work on it without ai in the future.
Ships:
I was trying to make a yahtzee game as i have been playing yahtzee. I was really struggling with the scoring system....
|
1793141277.9602656
|
1793227677.9602656
|
|
14191
|
My first slack bot! by @ghx312 | Stardance
|
ghx312
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-06T00:35:54Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my first slack bot, it has 4 features which are all inside the README.md (I’ll paste it here), it also runs 24/7 Very Chill Cat (Slack-Bot) Features: ‘/very-chill-cat-ping’ - Pings the cat ‘/very-chill-cat-catfact’ - Gives you a fact ‘/very-chill-cat-joke’ - Tells you a joke ‘/very-chill-cat-help’ - Helps you with commands Runs 24/7", "repo": "https://github.com/ghx312/slack_bot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354?skip_today=1"}]...
|
[{"post_id": 62562, "ts": "202 [{"post_id": 62562, "ts": "2026-09-06T00:34:09Z", "hours": 0.2825, "text": "Very Chill Cat (My first Slack_Bot)"}]...
|
Title: My first slack bot! by @ghx312 | Stardance
Title: My first slack bot! by @ghx312 | Stardance
Devlogs:
Very Chill Cat (My first Slack_Bot)
Ships:
I made my first slack bot, it has 4 features which are all inside the README.md (I’ll paste it here), it also runs 24/7 Very Chill Cat (Slack-Bot) Features: ‘/very-chill-cat-ping’ - Pings the cat ‘/very-chill-cat-catfact’ - Gives you a fact ‘/very-chill-cat-joke’ - Tells you a joke ‘/very-chill-cat-help’ - Helps you with commands Runs 24/7...
|
1793127077.9182773
|
1793213477.9182773
|
|
14213
|
My very own WebOS by @Grace3 | Stardance
|
Grace3
|
1
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T21:00:18Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Storing content in JavaScript was hard and confusing, and it was the longest and most technical project I have ever done. I have only ever done simple projects like a website built on only html but this project involved CSS, JavaScript, and html which proved to be difficult but I am happy that I was able to do it, and I hope to do more", "repo": "https://github.com/Temi-ay/OS", "demo": "https://temi-ay.github.io/OS/"}]...
|
[{"post_id": 11543, "ts": "202 [{"post_id": 11543, "ts": "2026-06-18T20:48:30Z", "hours": 3.6989, "text": "Finally done, My very own website"}, {"post_id": 7064, "ts": "2026-06-11T20:40:51Z", "hours": 4.4775, "text": "Web OS1 part2&3"}, {"post_id": 6156, "ts": "2026-06-10T10:58:26Z", "hours": 1.8089, "text": "WebOS1 part 1"}]...
|
Title: My very own WebOS by @Grace3 | Stardance
D Title: My very own WebOS by @Grace3 | Stardance
Devlogs:
WebOS1 part 1
Web OS1 part2&3
Finally done, My very own website
Ships:
Storing content in JavaScript was hard and confusing, and it was the longest and most technical project I have ever done. I have only ever done simple projects like a website built on only html but this project involved CSS, JavaScript, and html which proved to be difficult but I am happy that I was able to do it, and I hope to do more...
|
1793263713.4531004
|
1793350113.4531004
|
|
14214
|
StreetWatch by @Terance | Stardance
|
Terance
|
1
|
6.0
|
59
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-01T07:49:33Z", "hours": 6.0, "multiplier": 10.35, "payout": 59, "blessing": "neutral", "text": "I made a website with django where you can sign up or login and theres an embed api that allows u to see the danger level of a location, please know it doesnt auto find your location you have to import your location in settings", "repo": "https://github.com/Nizigiymana-Tech/StreetWatch", "demo": "https://streetwatch-me2pcjiwp-nizigiymana-techs-projects.vercel.app/"}]...
|
[{"post_id": 11327, "ts": "202 [{"post_id": 11327, "ts": "2026-06-18T15:09:26Z", "hours": 4.1444, "text": "I finished the homepage, added settings that allow you to control where the pointer is at, i also added profile and made css better"}, {"post_id": 5701, "ts": "2026-06-09T16:20:58Z", "hours": 1.5542, "text": "I currently created the sign in / login pages for the website"}]...
|
Title: StreetWatch by @Terance | Stardance
Devlog Title: StreetWatch by @Terance | Stardance
Devlogs:
I currently created the sign in / login pages for the website
I finished the homepage, added settings that allow you to control where the pointer is at, i also added profile and made css better
Ships:
I made a website with django where you can sign up or login and theres an embed api that allows u to see the danger level of a location, please know it doesnt auto find your location you have to import your location in settings...
|
1793246065.0115232
|
1793332465.0115232
|
|
14217
|
Slack Bot by @Roombla | Stardance
|
Roombla
|
1
|
1.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-12T17:53:51Z", "hours": 1.0, "multiplier": 2.15, "payout": 2, "blessing": "neutral", "text": "I created a very basic Slack Bot as my first project on Stardance. I faced several errors during coding, as this is my first project thats about to be shipped, but everything worked out. I’m proud that I understood almost everything while following the guide, and I only realized later that I underestimated myself. The bot is a Slack slash bot that runs 24/7 on Hack Club Nest. To test it, click the linked Demo URL to add the bot to your own Slack workspace, then try all 4 commands. The source code is available on GitHub, which is also linked along with Demo URL, GitHub URL and README URL.", "repo": "https://github.com/RoomblaDev/Miki-Slack-Bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0B9WFW9DN3"}]...
|
[{"post_id": 7540, "ts": "2026 [{"post_id": 7540, "ts": "2026-06-12T16:18:26Z", "hours": 0.8372, "text": "Slack bot devlog #1 I started coding in Stardance and picked a Slack bot as my first project. It runs on JavaScript and is hosted on a Nest server so it stays online 24/7. I managed to build the 4 standard commands: /miki-ping, /miki-help, /miki-joke, and /miki-catfact. Fetching the jokes and cat facts from APIs was pretty confusing at first, and I spent way too much time debugging why the server kept crashing because of silly typos. Another huge mistake I made during my first time coding a Stardance project, is that I forgot to install the time tracker extension in VSC, so I had to rewrite the code completely to get a similar amount of ‘minutes coded’ to my original attempt, but in the end, it finally works!"}]...
|
Title: Slack Bot by @Roombla | Stardance
Devlogs: Title: Slack Bot by @Roombla | Stardance
Devlogs:
Slack bot devlog #1 I started coding in Stardance and picked a Slack bot as my first project. It runs on JavaScript and is hosted on a Nest server so it stays online 24/7. I managed to build the 4 standard commands: /miki-ping, /miki-help, /miki-joke, and /miki-catfact. Fetching the jokes and cat facts from APIs was pretty confusing at first, and I spent way too much time debugging why the server kept crashing because of silly typos. Another huge mistake I made during my first time coding a Stardance project, is that I forgot to install the time tracker extension in VSC, so I had to rewrite the code completely to get a similar amount of ‘minutes coded’ to my original attempt, but in the end, it finally works!
Ships:
I created a very basic Slack Bot as my first project on Stardance. I faced several errors during coding, as this is my first project thats about to be shipped, but everything worked out. I’m proud that I understood almost everything while following the guide, and I only realized later that I underestimated myself. The bot is a Slack slash bot that runs 24/7 on Hack Club Nest. To test it, click the linked Demo URL to add the bot to your own Slack workspace, then try all 4 commands. The source code is available on GitHub, which is also linked along with Demo URL, GitHub URL and README URL....
|
1793245918.7435317
|
1793332318.7435317
|
|
14228
|
Neuroband by @SumukhAgastipurkar | Stardance
|
SumukhAgastipurkar
|
1
|
73.05
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T03:35:13Z", "hours": 64.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What I made: Neuroband—a custom health tracker designed to be worn on the neck. It combines a custom hardware PCB with a companion Flutter mobile application. What was challenging: Routing the compact PCB layout for a neck-worn device and establishing smooth Bluetooth communication with the app. What I’m proud of: Designing the complete hardware schematics and connecting real-time hardware data to the mobile app UI. How to test: Check out the project documentation and demo video to see the hardware routing and app in action.", "repo": "https://github.com/inventthefuture-bot/neurosense-private", "demo": ""}]...
|
[{"post_id": 83745, "ts": "202 [{"post_id": 83745, "ts": "2026-10-28T14:48:55Z", "hours": 9.0519, "text": "APP Bug Fixes"}, {"post_id": 56359, "ts": "2026-08-28T03:29:54Z", "hours": 6.2178, "text": "ROUTING"}, {"post_id": 54636, "ts": "2026-08-25T17:41:32Z", "hours": 9.4175, "text": "routing of the capacitors"}, {"post_id": 53101, "ts": "2026-08-23T15:16:26Z", "hours": 9.6672, "text": "routing this messy area"}, {"post_id": 52487, "ts": "2026-08-22T17:00:43Z", "hours": 6.0019, "text": "routing the pcb"}, {"post_id": 51683, "ts": "2026-08-21T14:22:59Z", "hours": 9.2567, "text": "finally assembling the capacitors"}, {"post_id": 48093, "ts": "2026-08-16T11:51:44Z", "hours": 5.2339, "text": "finished doing 1 file"}, {"post_id": 47619, "ts": "2026-08-15T16:57:51Z", "hours": 8.8186, "text": "finally did the last ic"}, {"post_id": 46438, "ts": "2026-08-13T17:26:42Z", "hours": 2.9669, "text": "working on other ic"}, {"post_id": 45895, "ts": "2026-08-12T17:15:47Z", "hours": 2.5122, "text": "Finished Wiring of this IC"}, {"post_id": 44081, "ts": "2026-08-09T16:34:23Z", "hours": 4.7594, "text": "Wiring the ECG chip and the ESP 32"}, {"post_id": 43378, "ts": "2026-08-08T16:05:36Z", "hours": 2.1675, "text": "PCB schematic"}, {"post_id": 43238, "ts": "2026-08-08T11:53:08Z", "hours": 1.6172, "text": "Began with PCB designing for my life supporting project"}]...
|
Title: Neuroband by @SumukhAgastipurkar | Stardanc Title: Neuroband by @SumukhAgastipurkar | Stardance
Devlogs:
Began with PCB designing for my life supporting project
PCB schematic
Wiring the ECG chip and the ESP 32
Finished Wiring of this IC
working on other ic
finally did the last ic
finished doing 1 file
finally assembling the capacitors
routing the pcb
routing this messy area
routing of the capacitors
ROUTING
APP Bug Fixes
Ships:
What I made: Neuroband—a custom health tracker designed to be worn on the neck. It combines a custom hardware PCB with a companion Flutter mobile application. What was challenging: Routing the compact PCB layout for a neck-worn device and establishing smooth Bluetooth communication with the app. What I’m proud of: Designing the complete hardware schematics and connecting real-time hardware data to the mobile app UI. How to test: Check out the project documentation and demo video to see the hardware routing and app in action....
|
1793256927.102717
|
1793343327.102717
|
|
14232
|
FennecOS by @kingsuper195 | Stardance
|
kingsuper195
|
1
|
4.1
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-11T11:55:41Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "FennecOS webEdition is a mock-up gui version of the true FennecOS that is yet to be created.", "repo": "https://github.com/kingsuper195/fennecOSweb", "demo": "https://kingsuper195.github.io/fennecOSweb"}]...
|
[{"post_id": 7330, "ts": "2026 [{"post_id": 7330, "ts": "2026-06-12T07:02:48Z", "hours": 1.0992, "text": "Added notes app with localStorage"}, {"post_id": 6787, "ts": "2026-06-11T11:30:43Z", "hours": 1.8639, "text": "Jam number 4, my custom app was a pocketwatch"}, {"post_id": 6094, "ts": "2026-06-10T07:41:41Z", "hours": 0.6475, "text": "Completed “jam” number 3, and added a header bar to the window."}, {"post_id": 6080, "ts": "2026-06-10T06:57:52Z", "hours": 0.5878, "text": "First two “jams” completed. A welcome window and top bar are complete."}]...
|
Title: FennecOS by @kingsuper195 | Stardance
Devl Title: FennecOS by @kingsuper195 | Stardance
Devlogs:
First two “jams” completed. A welcome window and top bar are complete.
Completed “jam” number 3, and added a header bar to the window.
Jam number 4, my custom app was a pocketwatch
Added notes app with localStorage
Ships:
FennecOS webEdition is a mock-up gui version of the true FennecOS that is yet to be created....
|
1793112646.7380908
|
1793199046.7380908
|
|
14240
|
SynthwaveOS by @Kvin | Stardance
|
Kvin
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-10T15:57:46Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "SynthwaveOS - an 80s neon OS SynthwaveOS is my own little webOS with an 80s outrun theme. You boot it up and you’ve got a proper desktop: an animated grid scrolling off toward a sunset, scanlines, neon glow on everything, draggable windows, desktop icons, and a live clock ticking away in the top bar. The centrepiece is a Winamp-style music player with a live visualiser. The bars react to whatever’s playing through the Web Audio API - and the three built-in tracks (Neon Drive, Midnight Run, Afterglow) are generated live with oscillators, so there’s nothing to download and no copyright mess. Each one is its own pattern with different basslines, drums, tempos, so the bars take on a clearly different shape for each. You can also load your own MP3 off disk and watch it react to that instead. What was challenging: the visualiser. Getting bars to genuinely react to the audio meant wiring up the real web audio pipeline (AnalyserNode → frequency data), and the first version was janky and flickered every time you paused and replayed. Most of the final stretch was spent fixing that and smoothing the draw loop rather than adding new stuff, but it’s what made it feel finished. What I’m proud of: that it actually looks and feels like an OS and not a website. The grid, the glow, the visualiser reacting in real time - it comes together into something I genuinely enjoy just clicking around in. To test it: open it in the browser, click the Player icon, and hit Play - the bars should start moving immediately. Switch between Neon Drive / Midnight Run / Afterglow to see each one move differently, or hit Load MP3 and pick your own song. Drag the windows around, stack them, click between them to raise each to the front, close them with the ×, and reopen from the icons. Turn it up!!", "repo": "https://github.com/Kvin-21/WebOS-Synthwave", "demo": "https://kvin-21.github.io/WebOS-Synthwave/"}]...
|
[{"post_id": 6273, "ts": "2026 [{"post_id": 6273, "ts": "2026-06-10T15:30:13Z", "hours": 1.2286, "text": "SynthwaveOS - Devlog #3 It is finished. Most of the time was spent fixing the some issues rather than adding brand-new features. The biggest change i added was the music player, so that you can now load any MP3 from disk, the player remembers it for the whole session, updates the track label to the filename, and lets you switch away to the synth tracks and back again without losing it. I also expanded the built-in tracks so they feel more like real songs. Neon Drive, Midnight Run and Afterglow now run through longer chord progressions with 32-step patterns, and Afterglow has a slow filter sweep drifting over the top so it evolves over time. I also optimised the drawing code so it runs more smoothly. At this point all is in place and done."}, {"post_id": 6201, "ts": "2026-06-10T12:40:59Z", "hours": 0.9175, "text": "SynthwaveOS - Devlog #2 The whole thing actually looks like an OS now instead of a wireframe. I dropped the full synthwave theme on top of the previous skeleton: an animated perspective grid scrolling toward you, a sunset sun, scanlines, neon magenta/cyan glow on everything, and proper retro fonts (Orbitron + VT323). Now each track is its own little pattern - Neon Drive is a busy sawtooth lead with a square bass and hats on every beat, Midnight Run is punchier with offbeat hats and gaps, and Afterglow is a slow soft triangle with a filter sweep and no drums. I also split the visualiser so the bass drives the left bars, the lead and harmonics the middle, and the hats the right. I also added MP3 support with a Load MP3 button that picks any file off disk, so the visualiser reacts to your own music too."}, {"post_id": 6144, "ts": "2026-06-10T10:22:13Z", "hours": 2.2231, "text": "SynthwaveOS - Devlog #1 I started building SynthwaveOS, my very own web-based operating system with an 80s synthwave theme. The idea is a little neon command centre you can boot up in the browser with a Winamp-style music player with a visualiser that reacts to the audio. I’ve set up the whole skeleton from scratch - three windows (Welcome, Player, Tracks), a top bar with a live ticking clock, and three desktop icons that select and open their windows. For now, the windows drag around, close with the x, and raise to the front when you click them, with the top bar always staying on top. I wanted the whole thing working and testable first, so if something breaks later I know it’s the styling or the visualiser. Next up: the full synthwave with animated perspective grid wallpaper, the sunset gradient, glow everywhere, a proper retro font, and the gradient magenta→cyan visualiser bars."}]...
|
Title: SynthwaveOS by @Kvin | Stardance
Devlogs:
Title: SynthwaveOS by @Kvin | Stardance
Devlogs:
SynthwaveOS - Devlog #1 I started building SynthwaveOS, my very own web-based operating system with an 80s synthwave theme. The idea is a little neon command centre you can boot up in the browser with a Winamp-style music player with a visualiser that reacts to the audio. I’ve set up the whole skeleton from scratch - three windows (Welcome, Player, Tracks), a top bar with a live ticking clock, and three desktop icons that select and open their windows. For now, the windows drag around, close with the x, and raise to the front when you click them, with the top bar always staying on top. I wanted the whole thing working and testable first, so if something breaks later I know it’s the styling or the visualiser. Next up: the full synthwave with animated perspective grid wallpaper, the sunset gradient, glow everywhere, a proper retro font, and the gradient magenta→cyan visualiser bars.
SynthwaveOS - Devlog #2 The whole thing actually looks like an OS now instead of a wireframe. I dropped the full synthwave theme on top of the previous skeleton: an animated perspective grid scrolling toward you, a sunset sun, scanlines, neon magenta/cyan glow on everything, and proper retro fonts (Orbitron + VT323). Now each track is its own little pattern - Neon Drive is a busy sawtooth lead with a square bass and hats on every beat, Midnight Run is punchier with offbeat hats and gaps, and Afterglow is a slow soft triangle with a filter sweep and no drums. I also split the visualiser so the bass drives the left bars, the lead and harmonics the middle, and the hats the right. I also added MP3 support with a Load MP3 button that picks any file off disk, so the visualiser reacts to your own music too.
SynthwaveOS - Devlog #3 It is finished. Most of the time was spent fixing the some issues rather than adding brand-new features. The biggest change i added was the music player, so that you can now load any MP3 from disk, the player remembers it for the whole session, updates the track label to the filename, and lets you switch away to the synth tracks and back again without losing it. I also expanded the built-in tracks so they feel more like real songs. Neon Drive, Midnight Run and Afterglow now run through longer chord progressions with 32-step patterns, and Afterglow has a slow filter sweep drifting over the top so it evolves over time. I also optimised the drawing code so it runs more smoothly. At this point all is in place and done.
Ships:
SynthwaveOS - an 80s neon OS SynthwaveOS is my own little webOS with an 80s outrun theme. You boot it up and you’ve got a proper desktop: an animated grid scrolling off toward a sunset, scanlines, neon glow on everything, draggable windows, desktop icons, and a live clock ticking away in the top bar. The centrepiece is a Winamp-style music player with a live visualiser. The bars react to whatever’s playing through the Web Audio API - and the three built-in tracks (Neon Drive, Midnight Run, Afterglow) are generated live with oscillators, so there’s nothing to download and no copyright mess. Each one is its own pattern with different basslines, drums, tempos, so the bars take on a clearly different shape for each. You can also load your own MP3 off disk and watch it react to that instead. What was challenging: the visualiser. Getting bars to genuinely react to the audio meant wiring up the real web audio pipeline (AnalyserNode → frequency data), and the first version was janky and flickered every time you paused and replayed. Most of the final stretch was spent fixing that and smoothing the draw loop rather than adding new stuff, but it’s what made it feel finished. What I’m proud of: that it actually looks and feels like an OS and not a website. The grid, the glow, the visualiser reacting in real time - it comes together into something I genuinely enjoy just clicking around in. To test it: open it in the browser, click the Player icon, and hit Play - the bars should start moving immediately. Switch between Neon Drive / Midnight Run / Afterglow to see each one move differently, or hit Load MP3 and pick your own song. Drag the windows around, stack them, click between them to raise each to the front, close them with the ×, and reopen from the icons. Turn it up!!...
|
1792875271.1884403
|
1793739271.1884403
|
|
14285
|
My first slack bot! by @D4LM | Stardance
|
D4LM
|
1
|
3.0
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T15:15:35Z", "hours": 3.0, "multiplier": 1.11, "payout": 3, "blessing": "neutral", "text": "I made a Slack Bot. The challenging part of the bot was using Slack Bot Go’s API and also finding a way to mitigate the Slack Timeout issue. If the bot somehow goes offline for some reason, DM me!", "repo": "https://github.com/D4LMwastaken/D4LM-Slack-Bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0B8X2G56NT"}]...
|
[{"post_id": 8897, "ts": "2026 [{"post_id": 8897, "ts": "2026-06-14T20:15:53Z", "hours": 0.7431, "text": "Added many commands: /d4lm-help, /d4lm-catfact and /d4lm-joke"}, {"post_id": 7186, "ts": "2026-06-12T00:05:12Z", "hours": 1.7264, "text": "Finally figured out why Slack will not let me message back, there is a 3-second timeout. Also, it now generates ascii art!"}, {"post_id": 5715, "ts": "2026-06-09T16:43:26Z", "hours": 0.4003, "text": "Finished the tutorial!"}]...
|
Title: My first slack bot! by @D4LM | Stardance
D Title: My first slack bot! by @D4LM | Stardance
Devlogs:
Finished the tutorial!
Finally figured out why Slack will not let me message back, there is a 3-second timeout. Also, it now generates ascii art!
Added many commands: /d4lm-help, /d4lm-catfact and /d4lm-joke
Ships:
I made a Slack Bot. The challenging part of the bot was using Slack Bot Go’s API and also finding a way to mitigate the Slack Timeout issue. If the bot somehow goes offline for some reason, DM me!...
|
1793109239.0793157
|
1793195639.0793157
|
|
14326
|
DogeOS by @shash | Stardance
|
shash
|
1
|
4.96
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-29T13:25:27Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "WebOS is an interactive, browser-based desktop simulator powered by an event-driven kernel.js that handles application registration, settings configurations, and scoped localStorage persistence. The environment features a window-management module providing draggable, resizable, minimizable, and maximizable application windows, snap layouts, alongside a desktop interface equipped with a click-and-drag selection lasso, launchable desktop shortcuts, context-menu capabilities, a taskbar for switching between active applications, a system tray, and notifications. It comes pre-installed with a Welcome app, a persistent Notepad app featuring automatic local saving, a Task Manager, and a Settings app that allows users to customize accent colors, toggle dark mode, and change background wallpapers.", "repo": "https://github.com/ThisisShashwat/own-os", "demo": "https://own-os-psi.vercel.app/"}]...
|
[{"post_id": 18623, "ts": "202 [{"post_id": 18623, "ts": "2026-06-29T20:25:47Z", "hours": 0.9572, "text": "DOGE OS LETS GOOO it was so boring before it felt like bad ui but reworked it so it felt like win95 but lil meme ig? idk how to explain"}, {"post_id": 18333, "ts": "2026-06-29T13:19:22Z", "hours": 0.6169, "text": "Final changes and bug fixess"}, {"post_id": 5819, "ts": "2026-06-09T19:09:12Z", "hours": 0.325, "text": "Alright I am finally ready to ship it. Everything is done and it looks wonderful I have added the taskbar. I have added every single feature I wanted and I also uploaded to render so it works flawlessly"}, {"post_id": 5804, "ts": "2026-06-09T18:46:14Z", "hours": 1.8544, "text": "It’s been 1 hour since I’ve been building it. A task manager is left; only the icon is there and I haven’t started with the task bar at all. I have to start with the task bar. The notepad is ready. The settings app is also a dummy app. Let us see how I build it"}, {"post_id": 5721, "ts": "2026-06-09T16:52:41Z", "hours": 1.1136, "text": "This is my first devlog for today. All that I am doing till now is that I have read the entire guide and I have read the documentation. I am trying to learn how to really replicate the structure of an operating system in pure JavaScript. I am actually learning how to make a structured OS rather than actually doing what the guide does because I want to make it as modular as possible so I can replicate every single thing that this does in the future. Adding apps should be really like adding apps. The way you install apps should actually be something like that in reality rather than a bad attempt at hardcoding everything. That is my goal for this: making the starting very easy so the later becomes very easy The way I’m actually learning is through Claude and anti-gravity because they actually teach me properly how to really do it. I can keep asking them questions so I’m using AI to learn right now. This is my first hour of actual learning rather than counting"}]...
|
Title: DogeOS by @shash | Stardance
Devlogs:
This Title: DogeOS by @shash | Stardance
Devlogs:
This is my first devlog for today. All that I am doing till now is that I have read the entire guide and I have read the documentation. I am trying to learn how to really replicate the structure of an operating system in pure JavaScript. I am actually learning how to make a structured OS rather than actually doing what the guide does because I want to make it as modular as possible so I can replicate every single thing that this does in the future. Adding apps should be really like adding apps. The way you install apps should actually be something like that in reality rather than a bad attempt at hardcoding everything. That is my goal for this: making the starting very easy so the later becomes very easy The way I’m actually learning is through Claude and anti-gravity because they actually teach me properly how to really do it. I can keep asking them questions so I’m using AI to learn right now. This is my first hour of actual learning rather than counting
It’s been 1 hour since I’ve been building it. A task manager is left; only the icon is there and I haven’t started with the task bar at all. I have to start with the task bar. The notepad is ready. The settings app is also a dummy app. Let us see how I build it
Alright I am finally ready to ship it. Everything is done and it looks wonderful I have added the taskbar. I have added every single feature I wanted and I also uploaded to render so it works flawlessly
Final changes and bug fixess
DOGE OS LETS GOOO it was so boring before it felt like bad ui but reworked it so it felt like win95 but lil meme ig? idk how to explain
Ships:
WebOS is an interactive, browser-based desktop simulator powered by an event-driven kernel.js that handles application registration, settings configurations, and scoped localStorage persistence. The environment features a window-management module providing draggable, resizable, minimizable, and maximizable application windows, snap layouts, alongside a desktop interface equipped with a click-and-drag selection lasso, launchable desktop shortcuts, context-menu capabilities, a taskbar for switching between active applications, a system tray, and notifications. It comes pre-installed with a Welcome app, a persistent Notepad app featuring automatic local saving, a Task Manager, and a Settings app that allows users to customize accent colors, toggle dark mode, and change background wallpapers....
|
1793127230.5217757
|
1793213630.5217757
|
|
14359
|
AuraCare CRM by @AuraZod | Stardance
|
AuraZod
|
1
|
55.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-12T13:45:13Z", "hours": 55.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built AuraCare CRM — a fast, lightweight healthcare and clinic management system. Most hospital software is clunky, slow, and painful to look at, so I wanted to make something modern that actually feels good to use for daily clinic rounds. It’s split into an Express.js REST API hosted on a Linux VPS behind a Cloudflare tunnel, a React 18 + Vite dashboard with Tailwind CSS and Radix UI primitives, and packaged as an Electron desktop app for clinic workstations. It covers the complete clinical flow across 6 roles (Super Admin, Admin, Doctor, Receptionist, Pharmacy, and Diagnostics) — from patient check-in and live queues to digital prescriptions, lab orders, inventory management, and PDF invoices. The most challenging part was session management and granular RBAC. In real clinics, doctors get interrupted constantly; standard 15-minute JWT timeouts were kicking them out mid-consultation. I built a 30-day extended session architecture with rolling token renewals and inactivity tracking, while ensuring cross-department data (like an Rx immediately updating pharmacy stock and billing) flows seamlessly. I’m most proud of the UI responsiveness — it switches views instantly and feels smooth, even with dark mode and live charts. To test it out: Open the live web app: https://auracare-gamma.vercel.app On the login page, click the “Sandbox Demo Login” button — you can pick any role (Doctor, Receptionist, Admin, etc.) to jump straight in without signing up! Windows desktop installer is also available in the GitHub releases: https://github.com/AuraZod/AuraCare-CRM/releases", "repo": "https://github.com/AuraZod/AuraCare-CRM", "demo": "https://auracare-gamma.vercel.app"}]...
|
[{"post_id": 66544, "ts": "202 [{"post_id": 66544, "ts": "2026-09-12T12:00:34Z", "hours": 22.8506, "text": "I had medical issues and couldn’t post more devlogs moving forward, neither I was able to finish the entire project to be supported in multiple platforms, but i’ve still made the web and desktop version of this project…….."}, {"post_id": 8123, "ts": "2026-06-13T15:48:23Z", "hours": 6.5056, "text": "Devlog 9 finally done. literally coding until my fingers are numb. completed the entire crm frontend and the desktop wrapper is fully functional. no more mock gaps or missing files. here is the breakdown of what happened: frontend modules (crmfrontend): finished the pharmacy inventory page (pharmacyinventory.tsx). it handles full batch tracking, manufacturing/expiry dates, cost/selling price margins, gst calculation (5%, 12%, 18%), and hsn codes. also threw in reorder level alerts when stock drops below threshold. built out pharmacybilling.tsx from scratch. doctors write rx, pharmacist pulls it, builds the bill with automatic gst and prints receipt. made pharmacycustomers.tsx to track loyalty points, lifetime spend, and outstanding balances. has a quick reminder trigger. wrote pharmacyprescriptions.tsx to handle the incoming doctor prescription queues. pharmacists can do complete or partial dispensing if we are short on stock. added pharmacypurchase.tsx for restock orders and supplier inventory ingestion. built pharmacyreports.tsx for tracking medicine usage patterns and monthly sales dashboards. all routes are auth-locked in app.tsx using role-based routing policies (doctor, pharmacist, receptionist, admin, super-admin). styling is built using vanilla tailwind classes alongside shadcn UI components like dialogs, tables, and dropdown menus for layout consistency. data fetching is managed using tanstack react-query to cache active lists and handles state mutators for adding/editing items. toast notifications via sonner trigger real-time updates for pharmacy sales completions and out of stock warnings. integrated standard currency formatters to display indian rupee values properly in all tables. desktop wrapper (auracaredesktop): spun up electron setup. main.js manages window dimensions (1400x900 min, resizable) and ipc communication channels. preload.js sets up contextbridge and ipcrenderer exposing window controls safely without opening nodeintegration. connection strategy: in dev, package.json uses concurrently and wait-on to launch the frontend dev server on port 8080 and then point the electron browser window loadurl to localhost:8080. for prod, we run electron-builder which bundles our assets. npm build script builds the react frontend, copies dist to desktop/frontend-dist, and main.js loads it locally via loadfile. configured cross-platform packaging target options for windows (nsis installer, portable executables), mac (dmg, zip), and linux (appimage, deb) in package.json. added native OS window hooks for minimized, maximized, and close events so client-side buttons in the custom titlebar work. added shell handler for opening external web links in native browser instead of electron window. assets folder holds local icons configured for specific OS packing rules (ico, icns, png). how it connects: the desktop shell is just a container running our react client, which talks to the node/express backend via api client calls to VITE_API_URL. ipc communication checks the app version and process platform. window actions (minimize, maximize, close) are wired back to the ipcMain handler. if backend is unreachable, the API services default to local mock fallback data so the app does not freeze. auth tokens are saved in localstorage inside the web view which carries over across app launches. took way too long to align the dist copy paths in the build script. had a dumb bug where frontend-dist was missing and loading a blank screen, but fixed the cp target path. compilation is completely green now. going to collapse."}, {"post_id": 7129, "ts": "2026-06-11T22:13:59Z", "hours": 9.46, "text": "Devlog 8 coded for 10 hours straight. brain is absolutely fried but got most of the core pages done. the lopsided progress is finally balancing out. frontend is starting to talk to the backend client. made some serious headway: user-management.tsx: admin controls, user activity graphs, and session tracking. shows average response times and role badges. billing-finance.tsx: invoice lists, revenue breakdowns (upi, cash, card), stats, and mock trends. pharmacy/pharmacy-customers.tsx: mapped patients to pharmacy profiles. tracked loyalty points and total amount spent, plus warning badges for outstanding dues. app.tsx: wired up all the protected routes and role permissions. admins, doctors, pharmacists all see different stuff now. what’s left: pharmacy-inventory.tsx is half-baked. literally stopped at line 65 state declaration because i needed a break. need to add medicine batch dialogs, GST calculations, and stock levels. missing pharmacy-prescriptions.tsx, pharmacy-purchase.tsx, and pharmacy-reports.tsx files completely. they’re imported in app.tsx but the files don’t exist on disk yet. build will crash if i try to compile right now. actual integrations testing with the express backend. right now it falls back to mock data if the local server isn’t running. need to build the electron wrapper for desktop and expo for mobile later. everything is coming together. the app finally feels like a real crm instead of just a bunch of empty files. going to sleep now. Project Screenshot The attached screenshot is ai generated as the final devlog will contain demo link to try website yourselves."}, {"post_id": 6673, "ts": "2026-06-11T05:40:01Z", "hours": 4.5169, "text": "Devlog 7 Worked a lot more on it and progress so far : Chart Checkbox Collapsible Command Context menu Dialog Drawer Dropdown Menu Form Hover Card Input otp Input Label Menubar Navigation Menu Pagination Popover Progress Radio Group Resizable Scroll Area Select Separator Sheet Sidebar, Skeleton, Slider, Sonnar, Switch, Table Tabs, Text Area, Toast, Toaster, Toggle-Group, toggle, Tooltip Use toast, Roles, auth context, use mobile, use toasts, use debounce Api, utils, Analytics, appointments billing, billing finances, compliance security."}, {"post_id": 6172, "ts": "2026-06-10T11:41:12Z", "hours": 1.4475, "text": "Devlog 6 So far so good, made a whole lot of progress : Overall Dashboard Layout completed Header, Sidebar, Accordion created Alert Dialog, Alerts & Aspect ratio completed. Avatar, Badge, Breadcrumbs Buttons Calendar Cards Carousel. around 20% frontend work finished."}, {"post_id": 6138, "ts": "2026-06-10T10:13:18Z", "hours": 1.2061, "text": "Devlog 5 Progress so far : Finished Doctor Dashboard Pharmacy Dashboard Receptionist Dashboard SuperAdmin Dashboard (In progress)"}, {"post_id": 6115, "ts": "2026-06-10T09:00:37Z", "hours": 1.4219, "text": "Devlog 4 Okay so progress so far : Built the login system flow. Defined the different variations of dashboard based on role. Admin Dashboard menu. Controls for each role seperately divided. Functionalities : added search patients functionality. Appointments list design and function. Modules overview Quick Actions Revenue Charts StatsCard Upcoming reminders Admin Dashboard Diagnostic Dashboard Doctor Dashboard For now everything is just plain frontend that contains mock data and no actual working. will take more work to finish this."}, {"post_id": 6091, "ts": "2026-06-10T07:36:38Z", "hours": 1.64, "text": "Devlog 3 Looking so far so good. worked for about 1 & half hour now and it’s looking promising. worked on login page and menu design and style (will improve more with theme customization). Worked on role management and how each role will be handled differently. Found out bugs here and there, will fix after i’m done with creating the dashboard menu and style. It still needs about 10-15hrs of code based on the speed i’m working with (not sure if it’s less or more). Debugging and implementing new features will also require time."}, {"post_id": 6059, "ts": "2026-06-10T05:44:12Z", "hours": 4.1136, "text": "Devlog 2 Been Working for whole night with backend. I have made quite a lot of progress, so far so good. Almost everything that backend will need to operate is done and what’s left of it is to actually test it out. Now after a few more checks i’ll get ahead to code the actual frontend and the design of site. After the frontend is entirely created, i’ll test out all the backend functions and see if those works or not & if needed I might’ve to work on backend too as I go along this road……….."}, {"post_id": 5758, "ts": "2026-06-09T17:36:17Z", "hours": 1.6689, "text": "Devlog 1 Needed a crm that actually works for hospitals without the usual bloat. decided to split it into clean micro-services: node/express backend, react front, electron for desktop, and expo for mobile. most of the core structure is there but progress is pretty lopsided. spent a bit of time spinning up the backend and database routes, barely touched the actual frontend pages. focus is to get all the backend api endpoints and role validations completely solid before moving on to the ui. cross-device communication is just going to be rest calls to the centralized node server."}]...
|
Title: AuraCare CRM by @AuraZod | Stardance
Devlo Title: AuraCare CRM by @AuraZod | Stardance
Devlogs:
Devlog 1 Needed a crm that actually works for hospitals without the usual bloat. decided to split it into clean micro-services: node/express backend, react front, electron for desktop, and expo for mobile. most of the core structure is there but progress is pretty lopsided. spent a bit of time spinning up the backend and database routes, barely touched the actual frontend pages. focus is to get all the backend api endpoints and role validations completely solid before moving on to the ui. cross-device communication is just going to be rest calls to the centralized node server.
Devlog 2 Been Working for whole night with backend. I have made quite a lot of progress, so far so good. Almost everything that backend will need to operate is done and what’s left of it is to actually test it out. Now after a few more checks i’ll get ahead to code the actual frontend and the design of site. After the frontend is entirely created, i’ll test out all the backend functions and see if those works or not & if needed I might’ve to work on backend too as I go along this road………..
Devlog 3 Looking so far so good. worked for about 1 & half hour now and it’s looking promising. worked on login page and menu design and style (will improve more with theme customization). Worked on role management and how each role will be handled differently. Found out bugs here and there, will fix after i’m done with creating the dashboard menu and style. It still needs about 10-15hrs of code based on the speed i’m working with (not sure if it’s less or more). Debugging and implementing new features will also require time.
Devlog 4 Okay so progress so far : Built the login system flow. Defined the different variations of dashboard based on role. Admin Dashboard menu. Controls for each role seperately divided. Functionalities : added search patients functionality. Appointments list design and function. Modules overview Quick Actions Revenue Charts StatsCard Upcoming reminders Admin Dashboard Diagnostic Dashboard Doctor Dashboard For now everything is just plain frontend that contains mock data and no actual working. will take more work to finish this.
Devlog 5 Progress so far : Finished Doctor Dashboard Pharmacy Dashboard Receptionist Dashboard SuperAdmin Dashboard (In progress)
Devlog 6 So far so good, made a whole lot of progress : Overall Dashboard Layout completed Header, Sidebar, Accordion created Alert Dialog, Alerts & Aspect ratio completed. Avatar, Badge, Breadcrumbs Buttons Calendar Cards Carousel. around 20% frontend work finished.
Devlog 7 Worked a lot more on it and progress so far : Chart Checkbox Collapsible Command Context menu Dialog Drawer Dropdown Menu Form Hover Card Input otp Input Label Menubar Navigation Menu Pagination Popover Progress Radio Group Resizable Scroll Area Select Separator Sheet Sidebar, Skeleton, Slider, Sonnar, Switch, Table Tabs, Text Area, Toast, Toaster, Toggle-Group, toggle, Tooltip Use toast, Roles, auth context, use mobile, use toasts, use debounce Api, utils, Analytics, appointments billing, billing finances, compliance security.
Devlog 8 coded for 10 hours straight. brain is absolutely fried but got most of the core pages done. the lopsided progress is finally balancing out. frontend is starting to talk to the backend client. made some serious headway: user-management.tsx: admin controls, user activity graphs, and session tracking. shows average response times and role badges. billing-finance.tsx: invoice lists, revenue breakdowns (upi, cash, card), stats, and mock trends. pharmacy/pharmacy-customers.tsx: mapped patients to pharmacy profiles. tracked loyalty points and total amount spent, plus warning badges for outstanding dues. app.tsx: wired up all the protected routes and role permissions. admins, doctors, pharmacists all see different stuff now. what’s left: pharmacy-inventory.tsx is half-baked. literally stopped at line 65 state declaration because i needed a break. need to add medicine batch dialogs, GST calculations, and stock levels. missing pharmacy-prescriptions.tsx, pharmacy-purchase.tsx, and pharmacy-reports.tsx files completely. they’re imported in app.tsx but the files don’t exist on disk yet. build will crash if i try to compile right now. actual integrations testing with the express backend. right now it falls back to mock data if the local server isn’t running. need to build the electron wrapper for desktop and expo for mobile later. everything is coming together. the app finally feels like a real crm instead of just a bunch of empty files. going to sleep now. Project Screenshot The attached screenshot is ai generated as the final devlog will contain demo link to try website yourselves.
Devlog 9 finally done. literally coding until my fingers are numb. completed the entire crm frontend and the desktop wrapper is fully functional. no more mock gaps or missing files. here is the breakdown of what happened: frontend modules (crmfrontend): finished the pharmacy inventory page (pharmacyinventory.tsx). it handles full batch tracking, manufacturing/expiry dates, cost/selling price margins, gst calculation (5%, 12%, 18%), and hsn codes. also threw in reorder level alerts when stock drops below threshold. built out pharmacybilling.tsx from scratch. doctors write rx, pharmacist pulls it, builds the bill with automatic gst and prints receipt. made pharmacycustomers.tsx to track loyalty points, lifetime spend, and outstanding balances. has a quick reminder trigger. wrote pharmacyprescriptions.tsx to handle the incoming doctor prescription queues. pharmacists can do complete or partial dispensing if we are short on stock. added pharmacypurchase.tsx for restock orders and supplier inventory ingestion. built pharmacyreports.tsx for tracking medicine usage patterns and monthly sales dashboards. all routes are auth-locked in app.tsx using role-based routing policies (doctor, pharmacist, receptionist, admin, super-admin). styling is built using vanilla tailwind classes alongside shadcn UI components like dialogs, tables, and dropdown menus for layout consistency. data fetching is managed using tanstack react-query to cache active lists and handles state mutators for adding/editing items. toast notifications via sonner trigger real-time updates for pharmacy sales completions and out of stock warnings. integrated standard currency formatters to display indian rupee values properly in all tables. desktop wrapper (auracaredesktop): spun up electron setup. main.js manages window dimensions (1400x900 min, resizable) and ipc communication channels. preload.js sets up contextbridge and ipcrenderer exposing window controls safely without opening nodeintegration. connection strategy: in dev, package.json uses concurrently and wait-on to launch the frontend dev server on port 8080 and then point the electron browser window loadurl to localhost:8080. for prod, we run electron-builder which bundles our assets. npm build script builds the react frontend, copies dist to desktop/frontend-dist, and main.js loads it locally via loadfile. configured cross-platform packaging target options for windows (nsis installer, portable executables), mac (dmg, zip), and linux (appimage, deb) in package.json. added native OS window hooks for minimized, maximized, and close events so client-side buttons in the custom titlebar work. added shell handler for opening external web links in native browser instead of electron window. assets folder holds local icons configured for specific OS packing rules (ico, icns, png). how it connects: the desktop shell is just a container running our react client, which talks to the node/express backend via api client calls to VITE_API_URL. ipc communication checks the app version and process platform. window actions (minimize, maximize, close) are wired back to the ipcMain handler. if backend is unreachable, the API services default to local mock fallback data so the app does not freeze. auth tokens are saved in localstorage inside the web view which carries over across app launches. took way too long to align the dist copy paths in the build script. had a dumb bug where frontend-dist was missing and loading a blank screen, but fixed the cp target path. compilation is completely green now. going to collapse.
I had medical issues and couldn’t post more devlogs moving forward, neither I was able to finish the entire project to be supported in multiple platforms, but i’ve still made the web and desktop version of this project……..
Ships:
I built AuraCare CRM — a fast, lightweight healthcare and clinic management system. Most hospital software is clunky, slow, and painful to look at, so I wanted to make something modern that actually feels good to use for daily clinic rounds. It’s split into an Express.js REST API hosted on a Linux VPS behind a Cloudflare tunnel, a React 18 + Vite dashboard with Tailwind CSS and Radix UI primitives, and packaged as an Electron desktop app for clinic workstations. It covers the complete clinical flow across 6 roles (Super Admin, Admin, Doctor, Receptionist, Pharmacy, and Diagnostics) — from patient check-in and live queues to digital prescriptions, lab orders, inventory management, and PDF invoices. The most challenging part was session management and granular RBAC. In real clinics, doctors get interrupted constantly; standard 15-minute JWT timeouts were kicking them out mid-consultation. I built a 30-day extended session architecture with rolling token renewals and inactivity tracking, while ensuring cross-department data (like an Rx immediately updating pharmacy stock and billing) flows seamlessly. I’m most proud of the UI responsiveness — it switches views instantly and feels smooth, even with dark mode and live charts. To test it out: Open the live web app: https://auracare-gamma.vercel.app On the login page, click the “Sandbox Demo Login” button — you can pick any role (Doctor, Receptionist, Admin, etc.) to jump straight in without signing up! Windows desktop installer is also available in the GitHub releases: https://github.com/AuraZod/AuraCare-CRM/releases...
|
1793152361.437515
|
1793238761.437515
|
|
14371
|
Archimedes Cube by @ncHammer | Stardance
|
ncHammer
|
1
|
12.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T18:40:08Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "The Archimedes Cube is a modular, 3D-printable mechanical puzzle that merges the core mechanics of a traditional Rubik’s cube with an interactive marble maze. The internal mechanism utilizes a custom-designed core and six interlocking center swivels, while the outer layer consists of eight corner and twelve side pieces that slide together in a precise sequence. Rather than using traditional screws for tension, the parts rely on mechanical clasps to lock into place. Once fully assembled, a marble can travel continuously across all six faces of the outer shell via interconnected pathways and custom corner tunnels. Each face of the cube houses a separate maze track panel, and these paths connect at the seams through secondary edge framing pieces, which route the marble around the turning axes without interrupting the rotation of the cube layers.For customization, the center swivels feature interchangeable design slots, allowing builders to color-code faces in green, blue, orange, and red, or slide in personalized tile geometries. The yellow center segment acts as a dedicated marble garage, utilizing concealed internal magnets and a custom maze plug to hold the tracking marble in place when the puzzle is being solved or transported.Developing this project highlighted several mechanical constraints, particularly regarding friction and tolerances. Because fused deposition modeling (FDM) 3D printing layers introduce too much surface friction for a functional rotational mechanism, every single internal contact face requires manual sanding prior to assembly to prevent binding. Additionally, the assembly sequence must be exact; forcing a corner or edge piece into the final assembly slot easily shears the internal alignment channels. Instead, the mechanical loop must be completed by installing a center swivel piece last to properly distribute tension across the tracks. Finally, attaching the maze panels requires precise application of liquid superglue directly to the center swivels, ensuring no adhesive bleeds into the rotational seams, which would permanently lock the moving layers.", "repo": "https://github.com/noahcraig029-code/ArchimedesCube", "demo": "https://www.thingiverse.com/thing:7411782"}]...
|
[{"post_id": 70757, "ts": "202 [{"post_id": 70757, "ts": "2026-09-19T18:23:48Z", "hours": 2.4667, "text": "I’m finally finished! It’s 100% printed, assembled, and fully functional! I mainly used superglue to put it all together, and I’ve been messing around with it for hours. I hope y’all give it a chance and enjoy it! Happy cubing!"}, {"post_id": 46539, "ts": "2026-08-13T20:44:34Z", "hours": 2.6453, "text": "I’ve revamped the edge design for the marble maze, making a smoother tunnel that lines up perfectly with the panels fitting along the main cube pieces. The originals were a straight 90 degree angle, and the marble got stuck. The new model is a 45 degree curve that lets the marble flow from one face to another!"}, {"post_id": 37193, "ts": "2026-07-29T18:43:57Z", "hours": 5.0642, "text": "Bored of a regular Rubik’s Cube? I have a monstrosity for you then! The Archimedes Cube is a 5 cubed inch Rubik’s cube with a marble maze engraved onto the face. It has over 50 individually designed parts created on Onshape. I just finished designing and piecing a final assembly together that can be used to see what the project will look like when it’s fully completed! I’m planning on shipping it soon, so make sure you check it out when it’s done!"}, {"post_id": 29126, "ts": "2026-07-15T19:54:21Z", "hours": 0.8961, "text": "If you like puzzles check this project out! I’ve finally managed to create a cohesive printing guide, as well as a construction README that’s available once the Onshape doc is opened. I’m working on creating a 3D reference model inside the project so you don’t get lost during assembly. I’m also working on my own physical assembly, magnets and all! My next step is to complete building the cube in real life, as well as on Onshape."}, {"post_id": 28946, "ts": "2026-07-15T15:45:27Z", "hours": 1.1611, "text": "I’ve finally finished modeling all pieces for the cube and mazes! The last step I need to complete is to write and include a printing and construction guide. Shown below is the assembly PRINTING COLLECTION, which has everything you need to create your own Archimedes Cube at home, provided you have a 3D printer. Colors are not required, but heavily recommended. The Onshape link is included in the project, I hope you guys enjoy it! Any suggestions for cubit designs or alternate maze creations are welcome!"}]...
|
Title: Archimedes Cube by @ncHammer | Stardance
D Title: Archimedes Cube by @ncHammer | Stardance
Devlogs:
I’ve finally finished modeling all pieces for the cube and mazes! The last step I need to complete is to write and include a printing and construction guide. Shown below is the assembly PRINTING COLLECTION, which has everything you need to create your own Archimedes Cube at home, provided you have a 3D printer. Colors are not required, but heavily recommended. The Onshape link is included in the project, I hope you guys enjoy it! Any suggestions for cubit designs or alternate maze creations are welcome!
If you like puzzles check this project out! I’ve finally managed to create a cohesive printing guide, as well as a construction README that’s available once the Onshape doc is opened. I’m working on creating a 3D reference model inside the project so you don’t get lost during assembly. I’m also working on my own physical assembly, magnets and all! My next step is to complete building the cube in real life, as well as on Onshape.
Bored of a regular Rubik’s Cube? I have a monstrosity for you then! The Archimedes Cube is a 5 cubed inch Rubik’s cube with a marble maze engraved onto the face. It has over 50 individually designed parts created on Onshape. I just finished designing and piecing a final assembly together that can be used to see what the project will look like when it’s fully completed! I’m planning on shipping it soon, so make sure you check it out when it’s done!
I’ve revamped the edge design for the marble maze, making a smoother tunnel that lines up perfectly with the panels fitting along the main cube pieces. The originals were a straight 90 degree angle, and the marble got stuck. The new model is a 45 degree curve that lets the marble flow from one face to another!
I’m finally finished! It’s 100% printed, assembled, and fully functional! I mainly used superglue to put it all together, and I’ve been messing around with it for hours. I hope y’all give it a chance and enjoy it! Happy cubing!
Ships:
The Archimedes Cube is a modular, 3D-printable mechanical puzzle that merges the core mechanics of a traditional Rubik’s cube with an interactive marble maze. The internal mechanism utilizes a custom-designed core and six interlocking center swivels, while the outer layer consists of eight corner and twelve side pieces that slide together in a precise sequence. Rather than using traditional screws for tension, the parts rely on mechanical clasps to lock into place. Once fully assembled, a marble can travel continuously across all six faces of the outer shell via interconnected pathways and custom corner tunnels. Each face of the cube houses a separate maze track panel, and these paths connect at the seams through secondary edge framing pieces, which route the marble around the turning axes without interrupting the rotation of the cube layers.For customization, the center swivels feature interchangeable design slots, allowing builders to color-code faces in green, blue, orange, and red, or slide in personalized tile geometries. The yellow center segment acts as a dedicated marble garage, utilizing concealed internal magnets and a custom maze plug to hold the tracking marble in place when the puzzle is being solved or transported.Developing this project highlighted several mechanical constraints, particularly regarding friction and tolerances. Because fused deposition modeling (FDM) 3D printing layers introduce too much surface friction for a functional rotational mechanism, every single internal contact face requires manual sanding prior to assembly to prevent binding. Additionally, the assembly sequence must be exact; forcing a corner or edge piece into the final assembly slot easily shears the internal alignment channels. Instead, the mechanical loop must be completed by installing a center swivel piece last to properly distribute tension across the tracks. Finally, attaching the maze panels requires precise application of liquid superglue directly to the center swivels, ensuring no adhesive bleeds into the rotational seams, which would permanently lock the moving layers....
|
1793152416.7954996
|
1793238816.7954996
|
|
14390
|
Pygame Platformer by @nishchaybhudia | Stardance
|
nishchaybhudia
|
1
|
94.0
|
850
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-17T14:16:32Z", "hours": 94.0, "multiplier": 9.02, "payout": 850, "blessing": "neutral", "text": "What I made: an “impossible” platformer in Python/pygame — 4 characters each with their own move (dash, wall cling, ground pound, frog leap), 2 player mode, 5 levels, and traps like saws, a sliding rock head and a swinging spiked ball. Packaged it so it also runs in a browser through GitHub Pages, not just as a local script. What was challenging: making the abilities feel actually different from each other but still fair took a lot of back and forth, and the web version being randomly laggy took a while to actually track down instead of just guessing. Turned out it was checking collisions against every object in the whole level every single frame instead of just the stuff near the player, plus redrawing the background from scratch 238 times a frame. What I’m proud of: getting it running properly in a browser instead of just as a local file makes it feel like an actual finished thing rather than a script sitting on my laptop. It’s still a bit laggy on the GitHub Pages version, but running it locally on my own machine there’s no lag at all, so the game itself is solid — it’s specifically the web packaging that still needs work.", "repo": "https://github.com/Hidden-Ghost-123/Impossible-Platformer", "demo": "https://hidden-ghost-123.github.io/Impossible-Platformer/"}]...
|
[{"post_id": 30143, "ts": "202 [{"post_id": 30143, "ts": "2026-07-17T14:12:03Z", "hours": 0.0, "text": "i worked on switching from itch.io to the github web to host my game"}, {"post_id": 30081, "ts": "2026-07-17T11:48:40Z", "hours": 2.0, "text": "i turned my code into a format that can be uploaded onto itch.io so i can begin getting ready for shipping this project … i then lowered the spiked swinging balls so its possible to jump across the gap in level 5 when finsihing the level … have a look !!"}, {"post_id": 29748, "ts": "2026-07-16T20:49:48Z", "hours": 2.0, "text": "i fixed placement of traps and enemies to make the levels dooable and also make the levels harder … im also planning to add and have started to add different level screens , so each level takes you to a different screen each time you complete it … also i made it so that you have to collect 40% of the coins available in each level to move onto the next level so dont be skipping coins … i also made all the characters have double jump because i felt bad for all you guys that will be playing the game …"}, {"post_id": 29437, "ts": "2026-07-16T11:48:28Z", "hours": 6.0, "text": "i have nearly finished the game !!! We’re getting really close to finishing the game now! This session was focused on adding the final gameplay features before polishing everything up.The biggest addition was the 2-player system, which is now fully implemented. It still needs a few tweaks and bug fixes, but the core mechanics are working well and make the game much more enjoyable.I also added a sprite selection screen, allowing players to choose their character before starting. Each sprite now has its own unique special ability, making every character feel different and encouraging players to experiment with different playstyles.Content-wise, I created two brand new levels, giving players more challenges to complete. To make these levels more interesting, I also introduced two new trap types along with another enemy variant, adding more variety and requiring players to think more carefully about how they progress through each stage.At this point, the game is almost complete. The remaining work is mainly polishing, balancing gameplay, fixing bugs, and making sure everything feels smooth before the final release."}, {"post_id": 29080, "ts": "2026-07-15T18:49:01Z", "hours": 1.0, "text": "i have fully gone over each level refining the placement of each and every object … i then played the game multiple times just to make sure it is actually possible …. i set up the code so that i can begin adding the abilities for each new characer … i then made sure there are no bugs so that when the second player is added nothing silly happens because there will be more inputs and more possibility of things going pear shaped … i know this is a boring devlog but it is neccesary … please come back for the next one it will be good .. i promise …"}, {"post_id": 28971, "ts": "2026-07-15T16:19:35Z", "hours": 4.0, "text": "ok … lets get this going … today i done a full code run thru as i could not find out why the player was still being immune to the spikes when double jumping .. but its now fixed .. not suprising for a genuis like me lol …. anyways - then i added yet ANOTHER level … making it the hardest one yet which includes all the traps and enemies and hard to reach coins .. i then implemented a theash hold which makes it so you have to get a certain amount of coins befroet the checkpoint activates … then i added a sprite selector to make it so that the player can choose the sprite and each sprite has a special move … still not yet fully decided the moves but they will be decided soon - hopefully next devloog … then i went ahead and tried to add a 2 player mode where 2 players can play on the same keyboard (player 1 : up , left , right ) (player 2 : w, a ,d) … there are a total of 6 enemies to face throughout … lets get this going .. we are nearly there at he end …. woooooooooooooooohooooo"}, {"post_id": 28530, "ts": "2026-07-14T20:49:52Z", "hours": 1.0, "text": "i finished working on the level i was working on in the previous devlog . i then came across a major issue … if i spam doublejump on spikes - i dont die … like i become superman - not good at all … i had to fix this , and i fixed it to have a longer cooldown when using you double jump so , basically you have enough time for your sprite to hit the trap …"}, {"post_id": 28441, "ts": "2026-07-14T18:04:24Z", "hours": 3.0, "text": "i feel like a real dev that spends hours in the cave and comes out with 2-3 new features lol … today i worked on yet another level and added some new respawning and eliminating animations … i also animated the coins and added some secret special easter eggs within the game … you will need to wait for the game to be fully developed before finding out … again - any other features be sure to comment below on what features to add ."}, {"post_id": 27784, "ts": "2026-07-13T17:18:47Z", "hours": 1.0, "text": "i worked on implementing the new traps i mensioned in the previous devlog … i then continued adding a new level … this then led me to an idea of a level selector so you can replay levels if you wanted to . - genuis …. which i started to implement … thanks ;)"}, {"post_id": 27621, "ts": "2026-07-13T11:24:44Z", "hours": 6.0, "text": "i worked on creating a token/coin that you collect while trying to complete the level , i am debating wether to have a coin threthhold . so if you dont collect x amount of coints in the level you cannot activate the checkpoint … i also worked on a reset character reset game , resume interface where you can click esc to pause then you have the 3 options … i then created more sprites for the user to select what chatacter they want to play as … i am looking at adding different powers for each character in the next devlog … i added another level and i added smarter and more enemies that come to delete you off the game … lol … let me know what else i should add !!!….also i almost forgot , i added some new traps that i havnt put in the game yet but i have added the backend logic for - cant wait … thanks again!!"}, {"post_id": 27061, "ts": "2026-07-12T08:34:30Z", "hours": 4.0, "text": "Another long session finished. This time it was all about the little details that make a game actually feel good to play. I spent most of the time polishing existing features rather than adding new ones. I adjusted movement, tweaked animations, cleaned up the UI, and made small improvements throughout the game that most players probably won’t even notice—but together they make a huge difference.I also tracked down a few more bugs that somehow managed to sneak in. There were some visual glitches, a couple of edge cases where objects weren’t behaving correctly, and a few issues with level transitions. After a lot of testing (and breaking the game several times), everything is now much more stable.It’s funny because I barely added any “new” content today, but the game honestly feels so much smoother than it did this morning. I guess this is what real game development is like—hours of polishing for improvements that are hard to see but easy to feel.Anyway… that’s another 5 hours gone. Time to call it a day. Thanks for watching, and I’ll see you in the next devlog!"}, {"post_id": 26162, "ts": "2026-07-10T19:59:54Z", "hours": 5.0, "text": "i5 hours later … and this devlog is mainly focused on polishing, fixing bugs and making the game feel much smoother. First, I spent a lot of time going through the code and cleaning up some problems that were starting to appear as the game got bigger. I improved the overall efficiency of the game by removing unnecessary checks, optimising some of the update loops and making sure objects were not being processed when they did not need to be. This should help the game run better, especially when more enemies and level elements are added later. …. Next, I worked on fixing a bunch of smaller bugs that were affecting gameplay. I fixed some collision issues where the player could sometimes get stuck inside blocks, improved the respawn system so the player resets properly every time, and fixed some problems with the enemy behaviour after the player dies. There were also some annoying issues with jumping and movement that caused inconsistent results, so I spent time making the controls feel more reliable. …. WOW , i feel like a real game dev working ovetime lol …. Thank you , see you in the next one . that was a mouthful …"}, {"post_id": 25962, "ts": "2026-07-10T14:24:35Z", "hours": 6.0, "text": "wow this is going to be a big devlog ! …. first i created a homescreen that players can log in / sign up for future scoreboard featuers …. and possible 2 player or singleplayer selector ….. next i began adding sound effects to the game - like when you die and respawn and jump - there is a delay but i will fix that in the next devlog …. then i made the enemy smarter and i decided to allow it to pass through block like a ghost …. the only block it doesnt pass through is you so it can elimiate you when its hitbox crosses your hitbox …. i then fixed some major respawning and hit box bugs that come about after double jumping which took FOREVER ….i finished completing level 2 which i have to say , well done to the creator of the game lol because this game is going to be epic !!! , see you in the next one !"}, {"post_id": 25467, "ts": "2026-07-09T19:06:53Z", "hours": 1.0, "text": "i worked on improving the self moving enemy … im still deciding wether to give it the ability ro move through objects or if i should have it move like a nomral player … i managed to get it to float so it can easily move terrain and it has got immunity to traps so it can even follow you through traps … but (theres always a but) you can easily get rid of the enemy by jumping over it from left to right a few times …. i want to fix this in the next devlog …"}, {"post_id": 25409, "ts": "2026-07-09T17:46:48Z", "hours": 4.0, "text": "i worked on creating the program that works in the background … it is a program that powers and gives the enemy its own brain… it follows the enemy (YOU!) , i am working on making it smarter and faster - its a bit dopey at the moment :( ….. the enemy kills you just by you touching it or it touching you - still working on that (give it some time !!) ….. i then worked on making the second level (i made it hard for you , yes YOU) …. hopefully we have a little enemy running around next devlog ?!"}, {"post_id": 25212, "ts": "2026-07-09T10:19:56Z", "hours": 1.0, "text": "i fully fixed the trampoline bug that gives you immunity to traps after jumping on it [i actually did now :) ] …. i then had some trouble with making more objects with the new layout of the code …. i then got around that and began tweaking the first level and planning the second level . i then began addind a enemy block - the green one in the image , and a new spikey enemy which follows you like a mario bloomba . i havnt added the logic for this but i will hope to add it in the next devlog :-)"}, {"post_id": 24783, "ts": "2026-07-08T16:08:59Z", "hours": 2.0, "text": "i worked on fixing the oop problem i had in the previous devlog … i then changed the whole structure of the code to make it easy to read and add changes in future devlogs …. i then added the animation for the trampolines and tested them … they change your gravity when you jump on them making it like a trampoline u jump on … there is a image attached of me testing one over a floor of spikes … the animation works perfectly now …. and before u would survive afrer falling on spikes when coming off the trampoline for some reason , i have that fixed now …… i hope ;D"}, {"post_id": 24663, "ts": "2026-07-08T12:11:27Z", "hours": 1.0, "text": "i finished creating the first level … and the checkpoint actually works !!!, . i then had a problem with the creation of the objects , i decided to change the way the objects are created from lists into OOP , so classed and objects , this then broke my entire game :( …. i began fixing this and will hopefully be finished by the next devlog …. ;)"}, {"post_id": 24318, "ts": "2026-07-07T20:28:29Z", "hours": 2.0, "text": "i worked on adding more the very first level , i made it decently simple with a hint* double jump involved … i fixed the saw animation as it looked like it was a glitchy looped gif but now a smooth continuos animation …. i added a wall of blocks so you cannot go the other way …. i am hoping to replace this with a wall of invisible blocks which you cannot pass instead of visible blocks …. i also want the platform to extend on for many more blocks which i added which allows me to create more levels in sequence . next i hope to finish level 2 so i have 2 fully working levels to play . the end goal is “impossible” levels which are close to impossible to complete and keep sane while playing them"}, {"post_id": 24014, "ts": "2026-07-07T09:24:56Z", "hours": 1.0, "text": "i worked on fixing major respawning bugs , the character respawns back where it is supposed to respawn but the character sprite disppears , this was really hard and long to debug . i also created the animation for the saw trap which allows the saw blade to spin which makes the game more realsitic and enjoyable to play"}, {"post_id": 23671, "ts": "2026-07-06T19:40:44Z", "hours": 4.0, "text": "i continued creating the level … i added 2 paths , a harder bottom path with required speed and accuracy or a easier top path which is easier but requires patience …. i am yet to finish the top layer on the level as i need to code the logic and animation for the trampoline which will be the core for most of the game … it gives you a jump boost + float which allows you to travel quite some distance when jumping off of it . the flame of the fire wasnt dealing damage so i fixed that by updating its hitbox . i then added a standing player animation so it moves up and down as if its breathing when idle …."}, {"post_id": 23498, "ts": "2026-07-06T14:52:42Z", "hours": 8.0, "text": "i worked on a log in / sign up screen which authenticates users before they play the game to allow for future add ons such as leaderboards etc etc … i then added trap logic and a checkpoint flag which i didnt quite get to work … hopefully i get it to work in the next devlog , this will allow me to create lots of levels … i also added spikes with spike logic .. so if the player touches any part of the spikes the spirte detects it and the character respawns to the latest touches checkpoint … i later want to add lives so if u fail more than 3 times you respawn right back to the very beginning …. i also added 2 more traps that are spinning saws and a fire … which opperate the same way spikes do but are of different dimentions - the fire is smaller and the saw is bigger and wider … a mixture of these will hopefully begin to create a really hard level to completre … i also added double jump for the character / fixed double jump …. to stop players from abbusing double jump there is a small cooldown for double jump so its not exploited …. for the next devlog i would like to create a working level with a checkpoit that works on the other end ."}, {"post_id": 12434, "ts": "2026-06-20T09:23:44Z", "hours": 1.0, "text": "I started by creating a new object type called Checkpoint. Unlike blocks and traps, checkpoints don’t damage the player. Instead they: Detect collision with the player Store a respawn location Become “activated” when touched This is the first non-hazard interactive object in the game. Added Respawn Position Variable Previously the player always returned to:"}, {"post_id": 11898, "ts": "2026-06-19T12:00:48Z", "hours": 1.0, "text": "Added Collision-Based Damage System Until now, traps were purely visual. The player could walk through fire without consequence. I extended the collision system so that objects can now affect the player based on their name property. This is the first time the game starts behaving like an actual platformer. Introduced make_hit() Logic Instead of instantly killing the player, I added a hit state system: Player gets flagged as hit Small delay before respawn logic runs Allows future animation / sound integration This also prepares the system for: spikes saws lava checkpoints First Basic Death/Respawn Logic At this stage, respawning is still very simple: If player touches hazard → reset position No checkpoint system yet No lives system yet But this is the foundation for it. Problems Encountered Problem 1: Player kept dying multiple times per frame Cause Collision was being detected continuously every loop tick. Fix Added a simple hit lock"}, {"post_id": 11842, "ts": "2026-06-19T08:41:11Z", "hours": 1.0, "text": "Now that the level system is working, the next logical feature would be the first hazard. At this point in development, most students don’t immediately build fire, saws, spikes, trampolines, checkpoints, menus, sounds, etc. Instead, they usually start by experimenting with one animated trap to learn how animated world objects work. The fire trap is the most likely candidate because it uses the same sprite-sheet system you’ve already built for the player."}, {"post_id": 10676, "ts": "2026-06-17T15:13:38Z", "hours": 1.0, "text": "After implementing the camera system, I noticed that the level still looked very basic because platforms were being drawn as plain black rectangles. During this development session I focused on creating a more professional level system using actual game assets. I created a general-purpose Object class that could be used as the foundation for future game elements such as blocks, traps, checkpoints, and interactive objects. This significantly improved the organisation of the project and reduced code duplication. I then created a Block class which inherits from the Object class. Instead of drawing rectangles, blocks now load an image from the terrain sprite sheet. This made the level look much closer to the final game. To support this, I also created a helper function called get_block() which extracts a specific terrain tile from the terrain sprite sheet and scales it appropriately."}, {"post_id": 10569, "ts": "2026-06-17T11:30:01Z", "hours": 1.0, "text": "up until this point the game world was effectively limited to a single screen. While the player could move and jump on platforms, the entire level was always visible at once. To fix this and move closer to a real platformer, I implemented a camera system using an offset value (offset_x). This allows the player to move through a much larger world while the screen follows them smoothly. Instead of drawing everything at fixed positions, all objects are now rendered relative to the camera position. This is one of the most important structural changes in the entire project, because it transforms the game from a “static scene” into a scrolling level. Problems Encountered Problem 1: Everything moved incorrectly after adding camera After introducing offset_x, all objects appeared shifted or misaligned. Cause: Objects were still being drawn using absolute coordinates. Fix: Updated draw calls to subtract camera offset:"}, {"post_id": 10064, "ts": "2026-06-16T17:20:33Z", "hours": 2.0, "text": "focused on expanding the system into a full animation framework. Instead of using one image, I implemented a sprite sheet loader that splits images into multiple frames. This allows the character to animate smoothly while running, jumping, and idling. A major improvement in this session was introducing direction-based sprite flipping, which means the same animation can be reused for left and right movement without duplicating assets. I also started restructuring the Player class so that animation is handled separately from movement logic. This makes the code much more scalable for future additions like enemies and traps. Problems Encountered Problem 1: Sprite sheets not splitting correctly At first, animations were broken because frames were not being sliced properly. Cause: Incorrect calculation of sprite width division."}, {"post_id": 9840, "ts": "2026-06-16T09:28:01Z", "hours": 1.0, "text": "I spent this development session researching sprite sheets and learning how animations are typically handled in platformer games. I downloaded the character assets and experimented with loading images into Pygame. To avoid repeating code for every animation, I created a function that loads images from a folder and stores them in a dictionary. This will eventually become the foundation of the final load_sprite_sheets() function used throughout the project. I also replaced the rectangle with a single idle sprite. At this stage there are no animations yet—the player simply displays one image. Problems Encountered Problem 1: Images not loading When first attempting to load the sprite, Pygame returned a file path error. Cause The image folder was not in the same location as the Python file. Fix Used the os.path.join() function to create file paths more reliably."}, {"post_id": 9481, "ts": "2026-06-15T20:42:32Z", "hours": 1.0, "text": "introducing platform objects. Instead of relying only on the bottom of the screen as a floor, I created a simple Block system. Each block represents a solid object in the world that the player can stand on. This required restructuring collision logic so that the player is no longer only interacting with the screen boundary, but with multiple objects. I also started separating the world into a list of objects, which is an important step toward building full levels later. Key Improvements Made …: Added Block System A simple block class was introduced to represent platforms. Object List System Instead of hardcoding collisions, all blocks are stored in a list so the level can be expanded easily. Basic Collision Detection A simple collision check was added to stop the player falling through platforms. Problems Encountered … Problem : Player clipping through platforms When first adding blocks, the player would sometimes fall through them or “stick” inside them. Cause: Collision was only being checked after movement, not corrected properly. Fix: Added positional correction after detecting collision:"}, {"post_id": 9250, "ts": "2026-06-15T15:11:22Z", "hours": 1.0, "text": "started turning the simple movement demo into a real platformer by adding physics. The first majour feature added was gravity. Instead of the player staying in the air after a jump or falling instantly at a fixed speed, I introduced a vertical velocity system. This allows the player to accelerate downwards over time, making movement feel more natural. After implementing gravity, i added a jump system. When the player presses the space bar or up arrow key, an upward velocity is applied. Gravity then gradually pulls the player back down. However, after adding jumping and gravity, the player was able to fall infinitely off the screen. To fix this, I implemented a basic floor collision system using the bottom of the screen as a temporary ground. This ensured the player always lands correctly and resets vertical velocity when touching the ground."}, {"post_id": 9204, "ts": "2026-06-15T13:33:17Z", "hours": 1.0, "text": "focused on making the game interactive by allowing the player to move around the screen. I first created a player velocity constant which controls the movement speed of the player. Using a constant means the speed can easily be adjusted later without modifying multiple parts of the code. I then implemented keyboard input detection using pygame.key.get_pressed(). This allowed the left and right arrow keys to move the player across the screen. To improve code organisation I added movement methods inside the Player class rather than directly modifying the player’s position inside the main game loop. This makes the program easier to maintain as more functionality is added later."}, {"post_id": 6761, "ts": "2026-06-11T10:15:09Z", "hours": 1.0, "text": "Objectives : Add FPS control Create project constants Improve game loop structure Add a background colour Prepare the codebase for future player development Progress. After successfully creating the game window, (after a long long time) I focused on improving the structure of the program. A frame rate limit was added using “ pygame.time.Clock() “to ensure the game runs consistently on different computers. I created constants for the screen width, screen height and fps rather than hard coding values throughout the program. This will make future changes easier. I also replaced the plain black screen with a temporary sky blue background. This makes the project feel more like a game environment and provides a better foundation for testing future features. Although no player has been added yet, the game loop is now stable and organised enough to begin implementing movement systems. Problems Encountered Initially the game was running as fast as the computer would allow, causing unnecessary CPU usage. Adding FPS control fixed this issue and ensures consistent performance. Testing Performed Verified the game window opens correctly. Verified the frame rate remains stable at 60 fps. Confirmed the window closes without errors. Next Steps Create the player object. Draw the player on screen. Begin implementing horizontal movement using keyboard controls."}, {"post_id": 6405, "ts": "2026-06-10T19:33:44Z", "hours": 0.0, "text": "I started the project by setting up the basic Pygame environment. The first goal was simply to get a window appearing on screen. After importing Pygame and initialising it, I created a 1000×800 game window and added a title to the window. I then created a basic game loop which keeps the program running until the player closes the window. At this stage there are no graphics, characters or levels. The project currently only displays a blank screen. Problems Encountered No major issues were encountered during this stage. The main focus was confirming that Pygame was installed correctly and that the game window could be opened and closed safely."}]...
|
Title: Pygame Platformer by @nishchaybhudia | Star Title: Pygame Platformer by @nishchaybhudia | Stardance
Devlogs:
I started the project by setting up the basic Pygame environment. The first goal was simply to get a window appearing on screen. After importing Pygame and initialising it, I created a 1000×800 game window and added a title to the window. I then created a basic game loop which keeps the program running until the player closes the window. At this stage there are no graphics, characters or levels. The project currently only displays a blank screen. Problems Encountered No major issues were encountered during this stage. The main focus was confirming that Pygame was installed correctly and that the game window could be opened and closed safely.
Objectives : Add FPS control Create project constants Improve game loop structure Add a background colour Prepare the codebase for future player development Progress. After successfully creating the game window, (after a long long time) I focused on improving the structure of the program. A frame rate limit was added using “ pygame.time.Clock() “to ensure the game runs consistently on different computers. I created constants for the screen width, screen height and fps rather than hard coding values throughout the program. This will make future changes easier. I also replaced the plain black screen with a temporary sky blue background. This makes the project feel more like a game environment and provides a better foundation for testing future features. Although no player has been added yet, the game loop is now stable and organised enough to begin implementing movement systems. Problems Encountered Initially the game was running as fast as the computer would allow, causing unnecessary CPU usage. Adding FPS control fixed this issue and ensures consistent performance. Testing Performed Verified the game window opens correctly. Verified the frame rate remains stable at 60 fps. Confirmed the window closes without errors. Next Steps Create the player object. Draw the player on screen. Begin implementing horizontal movement using keyboard controls.
focused on making the game interactive by allowing the player to move around the screen. I first created a player velocity constant which controls the movement speed of the player. Using a constant means the speed can easily be adjusted later without modifying multiple parts of the code. I then implemented keyboard input detection using pygame.key.get_pressed(). This allowed the left and right arrow keys to move the player across the screen. To improve code organisation I added movement methods inside the Player class rather than directly modifying the player’s position inside the main game loop. This makes the program easier to maintain as more functionality is added later.
started turning the simple movement demo into a real platformer by adding physics. The first majour feature added was gravity. Instead of the player staying in the air after a jump or falling instantly at a fixed speed, I introduced a vertical velocity system. This allows the player to accelerate downwards over time, making movement feel more natural. After implementing gravity, i added a jump system. When the player presses the space bar or up arrow key, an upward velocity is applied. Gravity then gradually pulls the player back down. However, after adding jumping and gravity, the player was able to fall infinitely off the screen. To fix this, I implemented a basic floor collision system using the bottom of the screen as a temporary ground. This ensured the player always lands correctly and resets vertical velocity when touching the ground.
introducing platform objects. Instead of relying only on the bottom of the screen as a floor, I created a simple Block system. Each block represents a solid object in the world that the player can stand on. This required restructuring collision logic so that the player is no longer only interacting with the screen boundary, but with multiple objects. I also started separating the world into a list of objects, which is an important step toward building full levels later. Key Improvements Made …: Added Block System A simple block class was introduced to represent platforms. Object List System Instead of hardcoding collisions, all blocks are stored in a list so the level can be expanded easily. Basic Collision Detection A simple collision check was added to stop the player falling through platforms. Problems Encountered … Problem : Player clipping through platforms When first adding blocks, the player would sometimes fall through them or “stick” inside them. Cause: Collision was only being checked after movement, not corrected properly. Fix: Added positional correction after detecting collision:
I spent this development session researching sprite sheets and learning how animations are typically handled in platformer games. I downloaded the character assets and experimented with loading images into Pygame. To avoid repeating code for every animation, I created a function that loads images from a folder and stores them in a dictionary. This will eventually become the foundation of the final load_sprite_sheets() function used throughout the project. I also replaced the rectangle with a single idle sprite. At this stage there are no animations yet—the player simply displays one image. Problems Encountered Problem 1: Images not loading When first attempting to load the sprite, Pygame returned a file path error. Cause The image folder was not in the same location as the Python file. Fix Used the os.path.join() function to create file paths more reliably.
focused on expanding the system into a full animation framework. Instead of using one image, I implemented a sprite sheet loader that splits images into multiple frames. This allows the character to animate smoothly while running, jumping, and idling. A major improvement in this session was introducing direction-based sprite flipping, which means the same animation can be reused for left and right movement without duplicating assets. I also started restructuring the Player class so that animation is handled separately from movement logic. This makes the code much more scalable for future additions like enemies and traps. Problems Encountered Problem 1: Sprite sheets not splitting correctly At first, animations were broken because frames were not being sliced properly. Cause: Incorrect calculation of sprite width division.
up until this point the game world was effectively limited to a single screen. While the player could move and jump on platforms, the entire level was always visible at once. To fix this and move closer to a real platformer, I implemented a camera system using an offset value (offset_x). This allows the player to move through a much larger world while the screen follows them smoothly. Instead of drawing everything at fixed positions, all objects are now rendered relative to the camera position. This is one of the most important structural changes in the entire project, because it transforms the game from a “static scene” into a scrolling level. Problems Encountered Problem 1: Everything moved incorrectly after adding camera After introducing offset_x, all objects appeared shifted or misaligned. Cause: Objects were still being drawn using absolute coordinates. Fix: Updated draw calls to subtract camera offset:
After implementing the camera system, I noticed that the level still looked very basic because platforms were being drawn as plain black rectangles. During this development session I focused on creating a more professional level system using actual game assets. I created a general-purpose Object class that could be used as the foundation for future game elements such as blocks, traps, checkpoints, and interactive objects. This significantly improved the organisation of the project and reduced code duplication. I then created a Block class which inherits from the Object class. Instead of drawing rectangles, blocks now load an image from the terrain sprite sheet. This made the level look much closer to the final game. To support this, I also created a helper function called get_block() which extracts a specific terrain tile from the terrain sprite sheet and scales it appropriately.
Now that the level system is working, the next logical feature would be the first hazard. At this point in development, most students don’t immediately build fire, saws, spikes, trampolines, checkpoints, menus, sounds, etc. Instead, they usually start by experimenting with one animated trap to learn how animated world objects work. The fire trap is the most likely candidate because it uses the same sprite-sheet system you’ve already built for the player.
Added Collision-Based Damage System Until now, traps were purely visual. The player could walk through fire without consequence. I extended the collision system so that objects can now affect the player based on their name property. This is the first time the game starts behaving like an actual platformer. Introduced make_hit() Logic Instead of instantly killing the player, I added a hit state system: Player gets flagged as hit Small delay before respawn logic runs Allows future animation / sound integration This also prepares the system for: spikes saws lava checkpoints First Basic Death/Respawn Logic At this stage, respawning is still very simple: If player touches hazard → reset position No checkpoint system yet No lives system yet But this is the foundation for it. Problems Encountered Problem 1: Player kept dying multiple times per frame Cause Collision was being detected continuously every loop tick. Fix Added a simple hit lock
I started by creating a new object type called Checkpoint. Unlike blocks and traps, checkpoints don’t damage the player. Instead they: Detect collision with the player Store a respawn location Become “activated” when touched This is the first non-hazard interactive object in the game. Added Respawn Position Variable Previously the player always returned to:
i worked on a log in / sign up screen which authenticates users before they play the game to allow for future add ons such as leaderboards etc etc … i then added trap logic and a checkpoint flag which i didnt quite get to work … hopefully i get it to work in the next devlog , this will allow me to create lots of levels … i also added spikes with spike logic .. so if the player touches any part of the spikes the spirte detects it and the character respawns to the latest touches checkpoint … i later want to add lives so if u fail more than 3 times you respawn right back to the very beginning …. i also added 2 more traps that are spinning saws and a fire … which opperate the same way spikes do but are of different dimentions - the fire is smaller and the saw is bigger and wider … a mixture of these will hopefully begin to create a really hard level to completre … i also added double jump for the character / fixed double jump …. to stop players from abbusing double jump there is a small cooldown for double jump so its not exploited …. for the next devlog i would like to create a working level with a checkpoit that works on the other end .
i continued creating the level … i added 2 paths , a harder bottom path with required speed and accuracy or a easier top path which is easier but requires patience …. i am yet to finish the top layer on the level as i need to code the logic and animation for the trampoline which will be the core for most of the game … it gives you a jump boost + float which allows you to travel quite some distance when jumping off of it . the flame of the fire wasnt dealing damage so i fixed that by updating its hitbox . i then added a standing player animation so it moves up and down as if its breathing when idle ….
i worked on fixing major respawning bugs , the character respawns back where it is supposed to respawn but the character sprite disppears , this was really hard and long to debug . i also created the animation for the saw trap which allows the saw blade to spin which makes the game more realsitic and enjoyable to play
i worked on adding more the very first level , i made it decently simple with a hint* double jump involved … i fixed the saw animation as it looked like it was a glitchy looped gif but now a smooth continuos animation …. i added a wall of blocks so you cannot go the other way …. i am hoping to replace this with a wall of invisible blocks which you cannot pass instead of visible blocks …. i also want the platform to extend on for many more blocks which i added which allows me to create more levels in sequence . next i hope to finish level 2 so i have 2 fully working levels to play . the end goal is “impossible” levels which are close to impossible to complete and keep sane while playing them
i finished creating the first level … and the checkpoint actually works !!!, . i then had a problem with the creation of the objects , i decided to change the way the objects are created from lists into OOP , so classed and objects , this then broke my entire game :( …. i began fixing this and will hopefully be finished by the next devlog …. ;)
i worked on fixing the oop problem i had in the previous devlog … i then changed the whole structure of the code to make it easy to read and add changes in future devlogs …. i then added the animation for the trampolines and tested them … they change your gravity when you jump on them making it like a trampoline u jump on … there is a image attached of me testing one over a floor of spikes … the animation works perfectly now …. and before u would survive afrer falling on spikes when coming off the trampoline for some reason , i have that fixed now …… i hope ;D
i fully fixed the trampoline bug that gives you immunity to traps after jumping on it [i actually did now :) ] …. i then had some trouble with making more objects with the new layout of the code …. i then got around that and began tweaking the first level and planning the second level . i then began addind a enemy block - the green one in the image , and a new spikey enemy which follows you like a mario bloomba . i havnt added the logic for this but i will hope to add it in the next devlog :-)
i worked on creating the program that works in the background … it is a program that powers and gives the enemy its own brain… it follows the enemy (YOU!) , i am working on making it smarter and faster - its a bit dopey at the moment :( ….. the enemy kills you just by you touching it or it touching you - still working on that (give it some time !!) ….. i then worked on making the second level (i made it hard for you , yes YOU) …. hopefully we have a little enemy running around next devlog ?!
i worked on improving the self moving enemy … im still deciding wether to give it the ability ro move through objects or if i should have it move like a nomral player … i managed to get it to float so it can easily move terrain and it has got immunity to traps so it can even follow you through traps … but (theres always a but) you can easily get rid of the enemy by jumping over it from left to right a few times …. i want to fix this in the next devlog …
wow this is going to be a big devlog ! …. first i created a homescreen that players can log in / sign up for future scoreboard featuers …. and possible 2 player or singleplayer selector ….. next i began adding sound effects to the game - like when you die and respawn and jump - there is a delay but i will fix that in the next devlog …. then i made the enemy smarter and i decided to allow it to pass through block like a ghost …. the only block it doesnt pass through is you so it can elimiate you when its hitbox crosses your hitbox …. i then fixed some major respawning and hit box bugs that come about after double jumping which took FOREVER ….i finished completing level 2 which i have to say , well done to the creator of the game lol because this game is going to be epic !!! , see you in the next one !
i5 hours later … and this devlog is mainly focused on polishing, fixing bugs and making the game feel much smoother. First, I spent a lot of time going through the code and cleaning up some problems that were starting to appear as the game got bigger. I improved the overall efficiency of the game by removing unnecessary checks, optimising some of the update loops and making sure objects were not being processed when they did not need to be. This should help the game run better, especially when more enemies and level elements are added later. …. Next, I worked on fixing a bunch of smaller bugs that were affecting gameplay. I fixed some collision issues where the player could sometimes get stuck inside blocks, improved the respawn system so the player resets properly every time, and fixed some problems with the enemy behaviour after the player dies. There were also some annoying issues with jumping and movement that caused inconsistent results, so I spent time making the controls feel more reliable. …. WOW , i feel like a real game dev working ovetime lol …. Thank you , see you in the next one . that was a mouthful …
Another long session finished. This time it was all about the little details that make a game actually feel good to play. I spent most of the time polishing existing features rather than adding new ones. I adjusted movement, tweaked animations, cleaned up the UI, and made small improvements throughout the game that most players probably won’t even notice—but together they make a huge difference.I also tracked down a few more bugs that somehow managed to sneak in. There were some visual glitches, a couple of edge cases where objects weren’t behaving correctly, and a few issues with level transitions. After a lot of testing (and breaking the game several times), everything is now much more stable.It’s funny because I barely added any “new” content today, but the game honestly feels so much smoother than it did this morning. I guess this is what real game development is like—hours of polishing for improvements that are hard to see but easy to feel.Anyway… that’s another 5 hours gone. Time to call it a day. Thanks for watching, and I’ll see you in the next devlog!
i worked on creating a token/coin that you collect while trying to complete the level , i am debating wether to have a coin threthhold . so if you dont collect x amount of coints in the level you cannot activate the checkpoint … i also worked on a reset character reset game , resume interface where you can click esc to pause then you have the 3 options … i then created more sprites for the user to select what chatacter they want to play as … i am looking at adding different powers for each character in the next devlog … i added another level and i added smarter and more enemies that come to delete you off the game … lol … let me know what else i should add !!!….also i almost forgot , i added some new traps that i havnt put in the game yet but i have added the backend logic for - cant wait … thanks again!!
i worked on implementing the new traps i mensioned in the previous devlog … i then continued adding a new level … this then led me to an idea of a level selector so you can replay levels if you wanted to . - genuis …. which i started to implement … thanks ;)
i feel like a real dev that spends hours in the cave and comes out with 2-3 new features lol … today i worked on yet another level and added some new respawning and eliminating animations … i also animated the coins and added some secret special easter eggs within the game … you will need to wait for the game to be fully developed before finding out … again - any other features be sure to comment below on what features to add .
i finished working on the level i was working on in the previous devlog . i then came across a major issue … if i spam doublejump on spikes - i dont die … like i become superman - not good at all … i had to fix this , and i fixed it to have a longer cooldown when using you double jump so , basically you have enough time for your sprite to hit the trap …
ok … lets get this going … today i done a full code run thru as i could not find out why the player was still being immune to the spikes when double jumping .. but its now fixed .. not suprising for a genuis like me lol …. anyways - then i added yet ANOTHER level … making it the hardest one yet which includes all the traps and enemies and hard to reach coins .. i then implemented a theash hold which makes it so you have to get a certain amount of coins befroet the checkpoint activates … then i added a sprite selector to make it so that the player can choose the sprite and each sprite has a special move … still not yet fully decided the moves but they will be decided soon - hopefully next devloog … then i went ahead and tried to add a 2 player mode where 2 players can play on the same keyboard (player 1 : up , left , right ) (player 2 : w, a ,d) … there are a total of 6 enemies to face throughout … lets get this going .. we are nearly there at he end …. woooooooooooooooohooooo
i have fully gone over each level refining the placement of each and every object … i then played the game multiple times just to make sure it is actually possible …. i set up the code so that i can begin adding the abilities for each new characer … i then made sure there are no bugs so that when the second player is added nothing silly happens because there will be more inputs and more possibility of things going pear shaped … i know this is a boring devlog but it is neccesary … please come back for the next one it will be good .. i promise …
i have nearly finished the game !!! We’re getting really close to finishing the game now! This session was focused on adding the final gameplay features before polishing everything up.The biggest addition was the 2-player system, which is now fully implemented. It still needs a few tweaks and bug fixes, but the core mechanics are working well and make the game much more enjoyable.I also added a sprite selection screen, allowing players to choose their character before starting. Each sprite now has its own unique special ability, making every character feel different and encouraging players to experiment with different playstyles.Content-wise, I created two brand new levels, giving players more challenges to complete. To make these levels more interesting, I also introduced two new trap types along with another enemy variant, adding more variety and requiring players to think more carefully about how they progress through each stage.At this point, the game is almost complete. The remaining work is mainly polishing, balancing gameplay, fixing bugs, and making sure everything feels smooth before the final release.
i fixed placement of traps and enemies to make the levels dooable and also make the levels harder … im also planning to add and have started to add different level screens , so each level takes you to a different screen each time you complete it … also i made it so that you have to collect 40% of the coins available in each level to move onto the next level so dont be skipping coins … i also made all the characters have double jump because i felt bad for all you guys that will be playing the game …
i turned my code into a format that can be uploaded onto itch.io so i can begin getting ready for shipping this project … i then lowered the spiked swinging balls so its possible to jump across the gap in level 5 when finsihing the level … have a look !!
i worked on switching from itch.io to the github web to host my game
Ships:
What I made: an “impossible” platformer in Python/pygame — 4 characters each with their own move (dash, wall cling, ground pound, frog leap), 2 player mode, 5 levels, and traps like saws, a sliding rock head and a swinging spiked ball. Packaged it so it also runs in a browser through GitHub Pages, not just as a local script. What was challenging: making the abilities feel actually different from each other but still fair took a lot of back and forth, and the web version being randomly laggy took a while to actually track down instead of just guessing. Turned out it was checking collisions against every object in the whole level every single frame instead of just the stuff near the player, plus redrawing the background from scratch 238 times a frame. What I’m proud of: getting it running properly in a browser instead of just as a local file makes it feel like an actual finished thing rather than a script sitting on my laptop. It’s still a bit laggy on the GitHub Pages version, but running it locally on my own machine there’s no lag at all, so the game itself is solid — it’s specifically the web packaging that still needs work....
|
1792878778.141592
|
1793742778.141592
|
|
14391
|
StarOS by @Ved | Stardance
|
Ved
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T17:59:22Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "StarOS StarOS is a browser-based desktop environment built using vanilla HTML, CSS, and JavaScript. The project recreates the feel of a desktop operating system inside a web browser, complete with draggable windows, desktop icons, a live clock, and built-in applications. Current apps include: ⭐ Star Notes 📖 Wikipedia 📇 Contacts 🌤️ Weather One of the biggest challenges was building a reusable window system that supports dragging, opening, and closing multiple applications. Along the way I learned more about DOM manipulation, event handling, UI design, and organizing larger JavaScript projects. StarOS is still growing, and I plan to add more applications such as a calculator, settings app, file explorer, and music player. GitHub: https://github.com/VedDevs/StarOS Built with: HTML CSS JavaScript This was a fun project that taught me a lot about building interactive web applications from scratch.", "repo": "https://github.com/VedDevs/StarOS", "demo": "https://staros-web.netlify.app/"}]...
|
[{"post_id": 8770, "ts": "2026 [{"post_id": 8770, "ts": "2026-06-14T16:09:58Z", "hours": 1.0372, "text": "Weather App I added The a Weather App (without API!!)"}, {"post_id": 8017, "ts": "2026-06-13T11:43:45Z", "hours": 0.6644, "text": "Added Contacts app I added a Contacts App which allows users to contact me I also Refined the UI and Code"}, {"post_id": 7544, "ts": "2026-06-12T16:25:11Z", "hours": 1.3358, "text": "Created Wikipedia and updated the UI i finally added the wikipedia functionality, Updated The UI and made a logo for the OS also I used added the favicon to the StarOS"}, {"post_id": 6270, "ts": "2026-06-10T15:15:49Z", "hours": 2.2425, "text": "Completed the Tutorial I have Finally Completed the tutorial for WebOS and made the most basic OS for the future"}]...
|
Title: StarOS by @Ved | Stardance
Devlogs:
Comple Title: StarOS by @Ved | Stardance
Devlogs:
Completed the Tutorial I have Finally Completed the tutorial for WebOS and made the most basic OS for the future
Created Wikipedia and updated the UI i finally added the wikipedia functionality, Updated The UI and made a logo for the OS also I used added the favicon to the StarOS
Added Contacts app I added a Contacts App which allows users to contact me I also Refined the UI and Code
Weather App I added The a Weather App (without API!!)
Ships:
StarOS StarOS is a browser-based desktop environment built using vanilla HTML, CSS, and JavaScript. The project recreates the feel of a desktop operating system inside a web browser, complete with draggable windows, desktop icons, a live clock, and built-in applications. Current apps include: ⭐ Star Notes 📖 Wikipedia 📇 Contacts 🌤️ Weather One of the biggest challenges was building a reusable window system that supports dragging, opening, and closing multiple applications. Along the way I learned more about DOM manipulation, event handling, UI design, and organizing larger JavaScript projects. StarOS is still growing, and I plan to add more applications such as a calculator, settings app, file explorer, and music player. GitHub: https://github.com/VedDevs/StarOS Built with: HTML CSS JavaScript This was a fun project that taught me a lot about building interactive web applications from scratch....
|
1793246024.8330762
|
1793332424.8330762
|
|
14413
|
quartz by @p0tato | Stardance
|
p0tato
|
1
|
41.0
|
670
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-03T05:04:04Z", "hours": 41.0, "multiplier": 17.33, "payout": 670, "blessing": "neutral", "text": "I made Quartz, a desktop automation app for Windows and Linux. It’s pretty similar to the Shortcuts app on MacOS. Quartz allows you to create shortcuts, which are lists of actions, that run things on your computer, whether that is read a file, send a web request, or something else. These shortcuts can be activated manually or using triggers (e.g. at a certain time). The main reason I created this, and the most important QoL improvement is that with Quartz, you can easily create and manage small scripts that do stuff on your computer, like watch a file or directory and running subsequent actions. The most challenging part was adapting/scrapping features for Linux, since a user’s environment can be very different from another user’s environment, so I had to choose some important features and scrap the unrealistic ones. For example, I really wanted to add an emulate mouse/keyboard button action, but it simply wasn’t feasible, since the app would have to require root privileges on both platforms, which was something I was trying to avoid. I am proud of how the project turned out, but especially the user interface, since it took a while to design and actually build the interface, and I think it turned out well, with a bit room for improvement. Some UI changes will come in future updates. To test the project, you first need to make sure that you are on either Windows or a systemd-based Linux distribution. Then you can simply just follow the instructions on the README. The app uses a Python FastAPI daemon with a Flutter UI. To save memory, the UI is a completely seperate process than the daemon, so it’s OK to close the app window/kill the UI process without affecting the backend.", "repo": "https://github.com/Someone68/quartz", "demo": "https://github.com/Someone68/quartz/releases/latest/"}]...
|
[{"post_id": 60650, "ts": "202 [{"post_id": 60650, "ts": "2026-09-03T04:38:11Z", "hours": 1.2889, "text": "i said last time that it was the final devlog before ship but then i realized there were a lot of bugs to fix and stuff so this the the ACTUAL final devlog before ship!!! changes include: bugfixes (a lot) github actions wiki/docs release 0.2.0"}, {"post_id": 59354, "ts": "2026-09-01T03:07:16Z", "hours": 2.7883, "text": "final devlog before ship!! i mostly just worked on refining the build process and bug fixing, which is why im not going over each change individually. the UI/UX could be improved, but its good enough for the initial ship. all that’s left: re-build the new binaries and release release the windows binaries ship!!! the very compressed and unreadable gif below is the one in the readme lol"}, {"post_id": 50702, "ts": "2026-08-20T01:03:03Z", "hours": 9.3431, "text": "FINALLY i got the build process and packaging working now it works and people can install it! windows works now too! i didnt have time to create a devlog until now so enjoy heres the full changelog: main changes: added action: truncate number allowed users to assign each shortcut a color removed shortcut icons since an icon picker would be really annoying to add overhauled the homepage, now you can select shortcuts, batch delete, and more (see screenshot!!) fixed kill process action disabled running a shortcut while it’s already running (very inconsistent behavior previously) UI now ensures that there is only one window using a weird hack fixed notifications not showing on windows removed emulate mouse button stub action (extremely difficult cross-platform) wrote some docs that i realize i need to update now since i changed the linux install process lol packaging AI: create the windows installer builder AI: create uninstaller create a logo that i put so much effort into (2 minutes in figma) a ton of other stuff including a whole build process for linux notes yea, i did use ai for some stuff, either because i was lazy or… yeah i was lazy. todo major UI improvements released binaries 🚢ing"}, {"post_id": 38525, "ts": "2026-07-31T23:15:42Z", "hours": 2.1325, "text": "quartz update 5.1: the actions update 1 added a ton of cool actions, heres the full list: NEW filesystem: create directory NEW filesystem: create file NEW filesystem: delete directory NEW filesystem: delete file NEW filesystem: get file properties NEW filesystem: read file NEW filesystem: write file NEW filesystem: rename or move file or directory NEW system: power - lock, logout, suspend, hibernate, shutdown, reboot NEW system: send notification NEW misc: send web request other changes: fixed some overflow issues in the UI ok bye new update coming soon"}, {"post_id": 37961, "ts": "2026-07-31T01:01:52Z", "hours": 2.9072, "text": "quartz update #5: the apps update smaller update this time changes added some config file support (located in USER/.config/quartz) added tooltips (?) to certain action inputs added the app selector, as seen in the screenshot below! action updates: NEW open app: opens an app using the selector NEW open link: opens a link, as a website, file, etc. NEW kill process: kills a process via app selector, name, or pid with the option to terminate instead WIP emulate mouse: stub (not implemented) trigger updates: app open: change to use app selector app close: change to use app selector lots of bugfixes, both on backend and UI fixed a lot of overflow issues on UI on smaller screens todo add the remaining trigger types add some more actions figure out how to build and package the app (really need this to ship) notes yes i am aware that deltarune is in my apps list, and yes i have played chapter five"}, {"post_id": 36177, "ts": "2026-07-28T03:00:44Z", "hours": 2.1269, "text": "quartz update #4 changes: optimize polling trigger listeners by limiting one polling agent per trigger type add more triggerss directory watch (file create/delete/rename) directory contents watch (file content changes) app open app close schedule (cron) fixed file watch trigger updated ui pubsec.yaml name to “quartz” instead of “ui” added bracket/quote formatting to text fields added trigger output usage in ui like action outputs allow viewing run logs from settings page"}, {"post_id": 32655, "ts": "2026-07-21T23:02:12Z", "hours": 2.9225, "text": "quartz update #3 changes: added some basic automatic shortcut triggers startup, file watch, clipboard watch will add more later fixed some issues and improved message box/dialog box (using ai) removed collapsible sidebar on editor page polishing/consistency changes including adding a mono font for text fields allow changing shortcut properties through inspector (see image) split editor page file into several modules (previously 1400+ lines long…) to-do: add more triggers and actions figure out how to detect hotkeys on linux (may not be possible on wayland) fix windows functionality figure out how to build/package app more stuff that i forgot about"}, {"post_id": 30446, "ts": "2026-07-18T00:19:18Z", "hours": 0.8075, "text": "update 2: made a cool thing where variables and outputs in a text field are highlighted (see right of image)"}, {"post_id": 29672, "ts": "2026-07-16T18:59:07Z", "hours": 4.3172, "text": "update: added drag and drop, added flow control, removed client side decorations on linux, and more"}, {"post_id": 28048, "ts": "2026-07-14T02:16:11Z", "hours": 12.6333, "text": "devlog #1 of quartz, a desktop automation app similar to shortcuts on ios/mac but for linux (and maybe windows in the future). the main idea is that you create shortcuts that contain multiple “steps”, which can do many things, including: setting a variable, showing a pop-up, running a command, and more. the main reason i decided to work on this is because making shell scripts and managing them are kind of annoying, so creating a nice interface to easily manage scripts (or shortcuts) would be very helpful. as for technical details, the backend (saving and running) uses a background python process, while the ui uses flutter and material design. current features done: basic backend (saving and running shortcuts), some ui (creating, editing shortcuts/steps). todo: add UI for control flow (if/else), add shortcut triggers (to automatically run shortcuts), add a lot more actions, improve the UI, (maybe) app integrations. the reason this took over 10hr is mostly because of the ui, since i am not the most familiar with flutter and there are a lot of moving parts."}]...
|
Title: quartz by @p0tato | Stardance
Devlogs:
dev Title: quartz by @p0tato | Stardance
Devlogs:
devlog #1 of quartz, a desktop automation app similar to shortcuts on ios/mac but for linux (and maybe windows in the future). the main idea is that you create shortcuts that contain multiple “steps”, which can do many things, including: setting a variable, showing a pop-up, running a command, and more. the main reason i decided to work on this is because making shell scripts and managing them are kind of annoying, so creating a nice interface to easily manage scripts (or shortcuts) would be very helpful. as for technical details, the backend (saving and running) uses a background python process, while the ui uses flutter and material design. current features done: basic backend (saving and running shortcuts), some ui (creating, editing shortcuts/steps). todo: add UI for control flow (if/else), add shortcut triggers (to automatically run shortcuts), add a lot more actions, improve the UI, (maybe) app integrations. the reason this took over 10hr is mostly because of the ui, since i am not the most familiar with flutter and there are a lot of moving parts.
update: added drag and drop, added flow control, removed client side decorations on linux, and more
update 2: made a cool thing where variables and outputs in a text field are highlighted (see right of image)
quartz update #3 changes: added some basic automatic shortcut triggers startup, file watch, clipboard watch will add more later fixed some issues and improved message box/dialog box (using ai) removed collapsible sidebar on editor page polishing/consistency changes including adding a mono font for text fields allow changing shortcut properties through inspector (see image) split editor page file into several modules (previously 1400+ lines long…) to-do: add more triggers and actions figure out how to detect hotkeys on linux (may not be possible on wayland) fix windows functionality figure out how to build/package app more stuff that i forgot about
quartz update #4 changes: optimize polling trigger listeners by limiting one polling agent per trigger type add more triggerss directory watch (file create/delete/rename) directory contents watch (file content changes) app open app close schedule (cron) fixed file watch trigger updated ui pubsec.yaml name to “quartz” instead of “ui” added bracket/quote formatting to text fields added trigger output usage in ui like action outputs allow viewing run logs from settings page
quartz update #5: the apps update smaller update this time changes added some config file support (located in USER/.config/quartz) added tooltips (?) to certain action inputs added the app selector, as seen in the screenshot below! action updates: NEW open app: opens an app using the selector NEW open link: opens a link, as a website, file, etc. NEW kill process: kills a process via app selector, name, or pid with the option to terminate instead WIP emulate mouse: stub (not implemented) trigger updates: app open: change to use app selector app close: change to use app selector lots of bugfixes, both on backend and UI fixed a lot of overflow issues on UI on smaller screens todo add the remaining trigger types add some more actions figure out how to build and package the app (really need this to ship) notes yes i am aware that deltarune is in my apps list, and yes i have played chapter five
quartz update 5.1: the actions update 1 added a ton of cool actions, heres the full list: NEW filesystem: create directory NEW filesystem: create file NEW filesystem: delete directory NEW filesystem: delete file NEW filesystem: get file properties NEW filesystem: read file NEW filesystem: write file NEW filesystem: rename or move file or directory NEW system: power - lock, logout, suspend, hibernate, shutdown, reboot NEW system: send notification NEW misc: send web request other changes: fixed some overflow issues in the UI ok bye new update coming soon
FINALLY i got the build process and packaging working now it works and people can install it! windows works now too! i didnt have time to create a devlog until now so enjoy heres the full changelog: main changes: added action: truncate number allowed users to assign each shortcut a color removed shortcut icons since an icon picker would be really annoying to add overhauled the homepage, now you can select shortcuts, batch delete, and more (see screenshot!!) fixed kill process action disabled running a shortcut while it’s already running (very inconsistent behavior previously) UI now ensures that there is only one window using a weird hack fixed notifications not showing on windows removed emulate mouse button stub action (extremely difficult cross-platform) wrote some docs that i realize i need to update now since i changed the linux install process lol packaging AI: create the windows installer builder AI: create uninstaller create a logo that i put so much effort into (2 minutes in figma) a ton of other stuff including a whole build process for linux notes yea, i did use ai for some stuff, either because i was lazy or… yeah i was lazy. todo major UI improvements released binaries 🚢ing
final devlog before ship!! i mostly just worked on refining the build process and bug fixing, which is why im not going over each change individually. the UI/UX could be improved, but its good enough for the initial ship. all that’s left: re-build the new binaries and release release the windows binaries ship!!! the very compressed and unreadable gif below is the one in the readme lol
i said last time that it was the final devlog before ship but then i realized there were a lot of bugs to fix and stuff so this the the ACTUAL final devlog before ship!!! changes include: bugfixes (a lot) github actions wiki/docs release 0.2.0
Ships:
I made Quartz, a desktop automation app for Windows and Linux. It’s pretty similar to the Shortcuts app on MacOS. Quartz allows you to create shortcuts, which are lists of actions, that run things on your computer, whether that is read a file, send a web request, or something else. These shortcuts can be activated manually or using triggers (e.g. at a certain time). The main reason I created this, and the most important QoL improvement is that with Quartz, you can easily create and manage small scripts that do stuff on your computer, like watch a file or directory and running subsequent actions. The most challenging part was adapting/scrapping features for Linux, since a user’s environment can be very different from another user’s environment, so I had to choose some important features and scrap the unrealistic ones. For example, I really wanted to add an emulate mouse/keyboard button action, but it simply wasn’t feasible, since the app would have to require root privileges on both platforms, which was something I was trying to avoid. I am proud of how the project turned out, but especially the user interface, since it took a while to design and actually build the interface, and I think it turned out well, with a bit room for improvement. Some UI changes will come in future updates. To test the project, you first need to make sure that you are on either Windows or a systemd-based Linux distribution. Then you can simply just follow the instructions on the README. The app uses a Python FastAPI daemon with a Flutter UI. To save memory, the UI is a completely seperate process than the daemon, so it’s OK to close the app window/kill the UI process without affecting the backend....
|
1793256473.3541164
|
1793342873.3541164
|
|
14426
|
Exonot by @RishabhGarg | Stardance
|
RishabhGarg
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T01:34:50Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a LaTeX package that provides macros for common symbols used in a field of astronomy/astrophysics that studies exoplanets, or planets outside of our solar system!", "repo": "https://github.com/rgphys/exonot", "demo": "https://github.com/rgphys/exonot/blob/main/exonot-demo.pdf"}]...
|
[{"post_id": 17321, "ts": "202 [{"post_id": 17321, "ts": "2026-06-28T01:31:39Z", "hours": 0.7258, "text": "A lot of my research involves exoplanets (planets outside of our solar system), and writing out the common symbols in LaTeX for papers becomes tiring, so I made a package with macros for these symbols."}]...
|
Title: Exonot by @RishabhGarg | Stardance
Devlogs Title: Exonot by @RishabhGarg | Stardance
Devlogs:
A lot of my research involves exoplanets (planets outside of our solar system), and writing out the common symbols in LaTeX for papers becomes tiring, so I made a package with macros for these symbols.
Ships:
I made a LaTeX package that provides macros for common symbols used in a field of astronomy/astrophysics that studies exoplanets, or planets outside of our solar system!...
|
1793227694.6229885
|
1793314094.6229885
|
|
14428
|
My very own WebOS by @Nikhilsahu | Stardance
|
Nikhilsahu
|
1
|
1.0
|
0
|
[{"ship_num": 1, "hours": 1.0, [{"ship_num": 1, "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made NikhilOS — a web-based operating system that runs in the browser. It has draggable and resizable windows, a taskbar, and multiple built-in apps like a Terminal (with real commands like neofetch, ls, echo), File Manager, Text Editor, Music Player, Calculator, Settings, and NikhilAI — a built-in chatbot that answers questions about JEE, tells jokes, and gives OS info. Making windows draggable was the hardest part — I had to understand how mouse events work in JavaScript (mousedown, mousemove, mouseup) and how absolute positioning works with z-index so windows stack correctly when you click them. The NikhilAI chatbot — it was my own idea, not in the guide. It has context-aware responses for JEE tips, jokes, and OS info. Also proud that everything is in plain HTML, CSS and JS — no frameworks at all. I have not integrated api because i can't use it publicly on github. No password needed — just open the link and double-click any icon on the desktop to open an app. Right-click the desktop for a context menu. Try the Terminal and type (neofetch) or (help) to see available commands. Open NikhilAI and chat with it!", "repo": "https://github.com/Nikhil20222/NikhilOS/", "demo": "https://nikhil-os.vercel.app/", "ts": "2026-06-23T09:31:19Z"}]...
|
[{"post_id": 14228, "ts": "202 [{"post_id": 14228, "ts": "2026-06-23T07:35:28Z", "hours": 0.0, "text": "Today I finally started working on my WebOS project. The idea was simple: make a desktop-like operating system that runs completely in the browser. First I worked on the basic layout. I made the desktop screen, taskbar, and some placeholder app icons. Most of the time went into figuring out how I wanted everything to look and behave. CSS took longer than expected because every small thing somehow broke something else . By the end of the day I had a decent-looking desktop UI and a clear idea of what features I wanted to add next. What I finished: Desktop layout Taskbar App icons Basic styling Next goal: Make apps open in actual windows instead of being static elements."}, {"post_id": 14239, "ts": "2026-06-23T07:56:01Z", "hours": 0.0, "text": "Windows Finally Work Today’s focus was getting the window system working. I wanted apps to open like they do on a real operating system, so I spent most of the day working on draggable windows. At first everything was a mess. Windows were overlapping weirdly and sometimes clicks weren’t registering properly. After a lot of trial and error (and way too many console.logs), I got dragging, opening, closing, and focusing windows working properly. Honestly this was the first time the project started feeling like an actual OS instead of just a webpage. What I finished: Draggable windows Open/close functionality Active window focus system Better UI interactions Biggest challenge: Managing multiple windows without breaking everything"}, {"post_id": 14254, "ts": "2026-06-23T08:46:41Z", "hours": 0.0, "text": "Apps, Bug Fixes and Final Touches Today was mostly about polishing the project and making it feel complete. I added the remaining apps and improved the overall experience. Then came the fun part: fixing all the random bugs I had been ignoring for days . I also cleaned up some code, improved animations, and tested everything multiple times. A lot of small improvements don’t look huge individually, but together they made the project feel much smoother. Looking back, this project taught me a lot about DOM manipulation, event handling, UI design, and debugging. There were definitely moments where I felt stuck, but seeing everything work in the end was worth it. Final features: Desktop interface Taskbar Multiple app windows Window management Responsive UI improvements Chatbot Really happy with how this turned out. Time to ship it ."}]...
|
Title: My very own WebOS by @Nikhilsahu | Stardanc Title: My very own WebOS by @Nikhilsahu | Stardance
Devlogs:
Apps, Bug Fixes and Final Touches Today was mostly about polishing the project and making it feel complete. I added the remaining apps and improved the overall experience. Then came the fun part: fixing all the random bugs I had been ignoring for days . I also cleaned up some code, improved animations, and tested everything multiple times. A lot of small improvements don’t look huge individually, but together they made the project feel much smoother. Looking back, this project taught me a lot about DOM manipulation, event handling, UI design, and debugging. There were definitely moments where I felt stuck, but seeing everything work in the end was worth it. Final features: Desktop interface Taskbar Multiple app windows Window management Responsive UI improvements Chatbot Really happy with how this turned out. Time to ship it .
Windows Finally Work Today’s focus was getting the window system working. I wanted apps to open like they do on a real operating system, so I spent most of the day working on draggable windows. At first everything was a mess. Windows were overlapping weirdly and sometimes clicks weren’t registering properly. After a lot of trial and error (and way too many console.logs), I got dragging, opening, closing, and focusing windows working properly. Honestly this was the first time the project started feeling like an actual OS instead of just a webpage. What I finished: Draggable windows Open/close functionality Active window focus system Better UI interactions Biggest challenge: Managing multiple windows without breaking everything
Today I finally started working on my WebOS project. The idea was simple: make a desktop-like operating system that runs completely in the browser. First I worked on the basic layout. I made the desktop screen, taskbar, and some placeholder app icons. Most of the time went into figuring out how I wanted everything to look and behave. CSS took longer than expected because every small thing somehow broke something else . By the end of the day I had a decent-looking desktop UI and a clear idea of what features I wanted to add next. What I finished: Desktop layout Taskbar App icons Basic styling Next goal: Make apps open in actual windows instead of being static elements.
Ships:
I made NikhilOS — a web-based operating system that runs in the browser. It has draggable and resizable windows, a taskbar, and multiple built-in apps like a Terminal (with real commands like neofetch, ls, echo), File Manager, Text Editor, Music Player, Calculator, Settings, and NikhilAI — a built-in chatbot that answers questions about JEE, tells jokes, and gives OS info. Making windows draggable was the hardest part — I had to understand how mouse events work in JavaScript (mousedown, mousemove, mouseup) and how absolute positioning works with z-index so windows stack correctly when you click them. The NikhilAI chatbot — it was my own idea, not in the guide. It has context-aware responses for JEE tips, jokes, and OS info. Also proud that everything is in plain HTML, CSS and JS — no frameworks at all. I have not integrated api because i can't use it publicly on github. No password needed — just open the link and double-click any icon on the desktop to open an app. Right-click the desktop for a context menu. Try the Terminal and type (neofetch) or (help) to see available commands. Open NikhilAI and chat with it!...
|
1792878830.2428734
|
1793742830.2428734
|
|
14429
|
SigmaOS by @Nutties | Stardance
|
Nutties
|
1
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T17:18:14Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Basic About Me website is done! But still not finished.", "repo": "https://github.com/NuttiesNuts/SigmaOS", "demo": "https://sigma-co.uk"}]...
|
[{"post_id": 17726, "ts": "202 [{"post_id": 17726, "ts": "2026-06-28T17:12:31Z", "hours": 3.3531, "text": "Personal Website - Devlog 3 I still hate CSS but it’s getting more manageable now, I made a basic About Me which I will improve. Plus I started working on a File Explorer (not implemented yet). Things I did: About Me Refactored app handling Added TailwindCSS As always, building things one block at a time ."}, {"post_id": 9508, "ts": "2026-06-15T21:27:27Z", "hours": 3.3411, "text": "Personal Website - Devlog 2 Progressing through the development I have achieved a base to work upon. Things I did: More CSS… Basic App As always, building things one block at a time ."}, {"post_id": 6431, "ts": "2026-06-10T20:16:32Z", "hours": 2.8325, "text": "Personal Website - Devlog 1 I’m designing a new website for me and my projects, I made one a couple of weeks ago but was not really satisfied with it and it was really messy (was using an Astro template) so je decided to use the WebOS mission to develop a cooler and simpler one. Things I learned: Sedimented my HTML Gained more experience in Figma CSS is the bane of my existence As always, building things one block at a time ."}]...
|
Title: SigmaOS by @Nutties | Stardance
Devlogs:
P Title: SigmaOS by @Nutties | Stardance
Devlogs:
Personal Website - Devlog 1 I’m designing a new website for me and my projects, I made one a couple of weeks ago but was not really satisfied with it and it was really messy (was using an Astro template) so je decided to use the WebOS mission to develop a cooler and simpler one. Things I learned: Sedimented my HTML Gained more experience in Figma CSS is the bane of my existence As always, building things one block at a time .
Personal Website - Devlog 2 Progressing through the development I have achieved a base to work upon. Things I did: More CSS… Basic App As always, building things one block at a time .
Personal Website - Devlog 3 I still hate CSS but it’s getting more manageable now, I made a basic About Me which I will improve. Plus I started working on a File Explorer (not implemented yet). Things I did: About Me Refactored app handling Added TailwindCSS As always, building things one block at a time .
Ships:
Basic About Me website is done! But still not finished....
|
1793202800.587755
|
1793289200.587755
|
|
14436
|
Utility Pad by @GunRattler28 | Stardance
|
GunRattler28
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-02T06:21:31Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I’ve finished everything needed for the utility pad. Just waitng for my order to be fufilled now! :) so excited", "repo": "https://github.com/GunRattler28/Utility-Pad", "demo": ""}]...
|
[{"post_id": 20301, "ts": "202 [{"post_id": 20301, "ts": "2026-07-01T21:14:07Z", "hours": 0.5486, "text": "Mapped all my Keybinds"}]...
|
Title: Utility Pad by @GunRattler28 | Stardance
D Title: Utility Pad by @GunRattler28 | Stardance
Devlogs:
Mapped all my Keybinds
Ships:
I’ve finished everything needed for the utility pad. Just waitng for my order to be fufilled now! :) so excited...
|
1792835648.8822832
|
1793699648.8822832
|
|
14474
|
NetraOS by @wuff | Stardance
|
wuff
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-30T23:34:40Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "NetraOS What is NetraOS? NetraOS is a browser-based mini desktop I created as a web OS project. It runs directly in the browser and is designed to feel like a simple operating system, with draggable windows, a top bar clock, and a custom retro-style interface. Key Features Inside: Draggable Windows – Move app windows around like on a real desktop. Live Clock – A real-time clock shown in the top bar. Welcome Window – A built-in intro window for the project. Calculator App – A simple calculator with basic operations. Notes App – A notes window with local saving in the browser. How to use it: Open the project in your browser. Click app names in the dock to open windows. Drag windows by their title bars. Use the calculator and notes app directly inside NetraOS.", "repo": "https://github.com/wuffgame/NetraOS", "demo": "https://wuffgame.github.io/NetraOS/"}]...
|
[{"post_id": 19602, "ts": "202 [{"post_id": 19602, "ts": "2026-06-30T23:19:23Z", "hours": 1.8839, "text": "Devlog 3 Over the last few days, during breaks from my other projects, I spent some time searching online on how to make two new applications: a calculator and a notepad. I decided not to add app icons for now (because why not) and instead keep simple text-based names. While working on the calculator, I ran into an issue where the buttons weren’t working properly. After looking it up online, I found something called DOMContentLoaded, so I used that to fix it. The notepad now has a save feature, so your notes stay even after refreshing the window. This is the last devlog before the first ship!!!"}, {"post_id": 6441, "ts": "2026-06-10T20:33:07Z", "hours": 1.3281, "text": "Devlog 2 Just like the tutorial suggested, I added a desktop background (I had no better idea, so I used the Windows XP wallpaper) and a top bar. I think it’s starting to look pretty decent so far. Next time, I plan to spend a bit more time working on it (a few hours) before posting another devlog, so I can polish everything up a little more. See you in the next devlog!"}, {"post_id": 5934, "ts": "2026-06-09T22:21:39Z", "hours": 0.8333, "text": "Devlog 1 Today, after spending the whole day messing around in KiCad, I decided I needed to code something. But since I didn’t have enough time to open Python and continue working on the Global Chat, I decided to switch to a new project. Let me introduce you to NetraOS!!! During the last hour, I programmed a loading screen that will be shown while the desktop is starting up. I’ll probably change it later to make it look a bit nicer, but for now I’m pretty happy with how it looks. See you in the next devlog! P.S. Since this is not my main project, I’m not sure how often new devlogs will appear."}]...
|
Title: NetraOS by @wuff | Stardance
Devlogs:
Devl Title: NetraOS by @wuff | Stardance
Devlogs:
Devlog 1 Today, after spending the whole day messing around in KiCad, I decided I needed to code something. But since I didn’t have enough time to open Python and continue working on the Global Chat, I decided to switch to a new project. Let me introduce you to NetraOS!!! During the last hour, I programmed a loading screen that will be shown while the desktop is starting up. I’ll probably change it later to make it look a bit nicer, but for now I’m pretty happy with how it looks. See you in the next devlog! P.S. Since this is not my main project, I’m not sure how often new devlogs will appear.
Devlog 2 Just like the tutorial suggested, I added a desktop background (I had no better idea, so I used the Windows XP wallpaper) and a top bar. I think it’s starting to look pretty decent so far. Next time, I plan to spend a bit more time working on it (a few hours) before posting another devlog, so I can polish everything up a little more. See you in the next devlog!
Devlog 3 Over the last few days, during breaks from my other projects, I spent some time searching online on how to make two new applications: a calculator and a notepad. I decided not to add app icons for now (because why not) and instead keep simple text-based names. While working on the calculator, I ran into an issue where the buttons weren’t working properly. After looking it up online, I found something called DOMContentLoaded, so I used that to fix it. The notepad now has a save feature, so your notes stay even after refreshing the window. This is the last devlog before the first ship!!!
Ships:
NetraOS What is NetraOS? NetraOS is a browser-based mini desktop I created as a web OS project. It runs directly in the browser and is designed to feel like a simple operating system, with draggable windows, a top bar clock, and a custom retro-style interface. Key Features Inside: Draggable Windows – Move app windows around like on a real desktop. Live Clock – A real-time clock shown in the top bar. Welcome Window – A built-in intro window for the project. Calculator App – A simple calculator with basic operations. Notes App – A notes window with local saving in the browser. How to use it: Open the project in your browser. Click app names in the dock to open windows. Drag windows by their title bars. Use the calculator and notes app directly inside NetraOS....
|
1793220976.0225153
|
1793307376.0225153
|
|
14477
|
Celestial Capitalist by @Ratseer | Stardance
|
Ratseer
|
1
|
80.0
|
1360
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-18T08:46:59Z", "hours": 80.0, "multiplier": 19.18, "payout": 1360, "blessing": "neutral", "text": "Celestial Capitalist is a simulation game where the player simultaneously builds and ascends the corporate ladder from the bottom of the street to the self-built throne at the top of the cosmos. Beg your way from homelessness, run a lemonade stand, scam grandmas on the internet, start a cult, play union-buster tower defence, and generally just have a grand stupid time while the world slowly bends to your will. Currently on FIRST BETA! Contains the slightly unpolished first stage, Rock Bottom, with basic progression, a bunch of minigames and… style!. You’re homeless and you needa earn money to get out of it. Also you can’t save yet. And the volume is broken. WE’LL FIX IT ONE DAY. Controls are all point and clicked + arrow keys for the Fake Injury minigame. Windows only for the moment - will support more soon. Unzip and run ccap1.0exe. By @idi0cy and RatseerOfRattesse Made for Hack Club Stardance. Tribulations Coding is notorious for producing the kind of mistakes one looks through for an entire night and solves in a second of effort. We had a lot of that. The amount of stupid crap on the way here is immense and we’ve still not cleared out all of it. But, @idi0cy and I hope you will enjoy what we’ve made, cuz we sure did enjoy making it. Celestial Capitalist by @idi0cy and @Ratseer .", "repo": "https://github.com/idi0cy/Celestial-Capitalist", "demo": "https://ratseerofrattesse.itch.io/celestial-capitalist"}]...
|
[{"post_id": 70013, "ts": "202 [{"post_id": 70013, "ts": "2026-09-18T08:42:14Z", "hours": 3.6286, "text": "Celestial Capitalist - Beta Complete! After four hours of horrifically annoying bugfixing with @idi0cy , CC is ship ready! We did a lot of misc fixes. There was some really stupid code we left in such as ‘check if x > y’ and consecutively in that one ‘check if x < y’. We’re geniuses. Anyway, we just added a sound slider that doesn’t work outside the editor 😭 . There were also a bunch of balancing issues to fix, such as me labelling a bottle of soy sauce as 45 dollars. But it’s done, oh lord it’s done. Check it out! https://ratseerofrattesse.itch.io/celestial-capitalist"}, {"post_id": 67110, "ts": "2026-09-13T05:19:16Z", "hours": 10.2817, "text": "Revamped Tutorial Gave the new tutorial put in place by @idi0cy some flair. It now also contains a text box for you to pick a save name, which will automatically show up in the ledger where the account name thing is. It may be the save name, but we’re not going to be implementing saves before shipping as we’re lazy and have things to do. The revamp has also made the game through anywhere from 1-103 data.tree is null errors but it ain’t crashing and I’m done solving that crap. Two Bowls of Chili We now have the two bowls of chili as per request by a friend of @idi0cy . New Item Mechanics I’ve changed the item system so that they can take on far more data than just an item type. They now have an additionalProperties , which is a Dictionary that is meant to take a string key and value. This allows us to store pretty much any data we want in there. This was done so that I could make items give temporary skill buffs with ease, as a lot of them are currently only good for selling. So now, you can use a pencil and gain a minute of +1 dexterity (which helps in the fake injury and stealth steal minigames), among other buffs. Miscellaneous fixes We are nearing release, and so we’ve begun to review a lot of stuff and make balancing/bugfixing changes. Deathscreen now returns you to title screen. Made perception affect scavenge quality and charisma affect market quality Added a bajillion tooltips to explain stuff Haggle difficulty has been made easier Fixed an issue in scavenge that made all the loot 0 quality Made event popups stack Made it so other windows can’t open if a scavenge game is happening Celestial Capitalist , dubiously developed by @Ratseer and @idi0cy ."}, {"post_id": 56846, "ts": "2026-08-28T19:55:57Z", "hours": 12.85, "text": "Vitals System Added a health, hydration, and satiation system. Satiation controls max health, and if your hydration hits 0, you begin taking damage over time. When you take damage or your health is low, your screen has a damage overlay. Celestial Capitalist in collaboration with @idi0cy ."}, {"post_id": 42247, "ts": "2026-08-06T21:19:59Z", "hours": 10.2553, "text": "The Great Organization So while @idi0cy over there has been coding new stuff, I’ve been over here cleaning after his mess. I’m currently in the process of adding documentation comments to everything so we know what the hell anything is after we code it. Suffice to say, it’s not going that great but it’s coming along. This man literally wrote a variable called lengthOfTimeUnitThingHi_rAt_D_ontWeLovenamingConVentIons just to piss me off. Another part of the organization effort is adding these #region and #endregion comments everywhere so we can close and expand large sections of code. The Great Centralization I’ve also been working on centralizing certain things. I’ve added a new InventoryHelper class, which contains methods used for inventories such as the market stalls, loot boxes, the actual inventory, and the pick to sell menu. Attached below is the documentation comments for the Resources class containing pretty much every texture, dialogue line, name, and utility function and now a lot of the scripts extend it."}, {"post_id": 23270, "ts": "2026-07-06T03:47:42Z", "hours": 5.2578, "text": "The Market I’ve added a shop system! At exactly 00:00 every day the Market tab refreshes with a new market stall, with randomly generated name, products, and an owner profile for the funnies. This system isn’t really for you to buy and flip prices in the get money tab - this is supposed to drag money out of you when you’re starving for food and also purchase upgrades for your run. Said upgrades have not yet been implemented, but - Using Items Items that can be used now pop up a use item button in the inventory. Monetary items now return money to your ledger and food items now add to your vitals - which hasn’t been implemented yet. We’ll also be adding more items and usages - such as those aforementioned upgrades. Celestial Capitalist in collaboration with @idi0cy"}, {"post_id": 14197, "ts": "2026-06-23T06:03:54Z", "hours": 15.8422, "text": "Celestial Capitalist: Scavenging WOW that took a while! Probably should have posted some breadcrumbs midway but whatever. The SCAVENGING FEATURE IS COMPLETE. This is basically loot box opening simulator + squid game dalgona cookies. This will be your main way to get items to sell (therefore earn money). The value of each item is based off that quality value we’ve been showing off, as well as the item’s base value and your minigame performance. Loot even scales as you gain more money (which I do in the video with a debug keybind), allowing you to go from looting trash cans to looting discarded packages and dropped briefcases. To spice up the loot, I’ve also added WAYYY too many items (yes, I did the textures myself). The hardest part of this whole thing was making a proper weighted loot system. That was a pain, because I could never quite fine tune the results to what I wanted - still really haven’t, but it works well enough. The other hardest part was me, as a relative beginner to programming, discovering that assigning a new variable to an array in fact synced both arrays. Godot what the hell is duplicate_deep() 😭 Celestial Capitalist in collaboration with @idi0cy"}, {"post_id": 11810, "ts": "2026-06-19T06:57:08Z", "hours": 3.935, "text": "Celestial Capitalist: Randomized Stranger Names Just made random names for all the strangers - which was a damn pain because @idi0cy , despite his all-knowing-ness, decided to name the index of the button icons with the stranger sprites ‘index’, then proceeded to reference those same values in a different function under the name ‘place’ whilst the argument ‘index’ in said function was something entirely different. This confused me for at least an hour. You will also notice that we have a new merry little cast of sprites, for those strangers. I tried to make them look as dystopian as possible. Think it worked. Would probably have gone for more distorted faces too if I had the time. As you can see below, I spent way too long getting a massive list of names - mostly from Orteil’s RandomGen, and then a few references to media I like. We’ll definitely be adding more."}, {"post_id": 11148, "ts": "2026-06-18T07:16:54Z", "hours": 2.7939, "text": "Celestial Capitalist: Inventory Revamp + Misc Fixes Revamped the inventory item inspector and made it prettier, as seen below Also did various other internal fixes with code and stuff such as renaming a button, adding lines to the fake injury game, and item flavour text edit: just noticed the screenshot is horrendous so i replaced it edit two: nvm apparently stardance just crops it 😭 wtf"}, {"post_id": 11063, "ts": "2026-06-18T03:06:53Z", "hours": 2.9181, "text": "Celestial Capitalist: Randomized Dialogue little mini update while i do more stuff This and 15 more stupid lines per each dialogue option"}, {"post_id": 8514, "ts": "2026-06-14T05:01:46Z", "hours": 2.7608, "text": "Celestial Capitalist: Daily Monetaries + Tooltips Added a general purpose tooltip scene for instancing with the _make_custom_tooltip() method. That was a pain to get right - I spent a good half hour trying to figure out why it wouldn’t work before realizing the root had to be a container node. Control nodes stink and I hate them. In practical terms, I’ve added a method to append daily costs and profits to the ledger interface. Nothing actually uses it yet, so the values in here are from a debug keybind I was using."}, {"post_id": 8010, "ts": "2026-06-13T11:16:41Z", "hours": 3.9717, "text": "Celestial Capitalist: The Ledger Bit of an annoyance to make, but it works :D This is where you can keep track of your transactions and balance, as well as a hub for future financial stats that have yet to be implemented. Did a bunch of tomfoolery with containers and control nodes and all that weird stuff trying to make the collapsible boxes work - ended up just changing minimum sizes myself instead of bothering with the FoldableContainers. Other stuff In terms of backend stuff I guess you’d call it, I made some changes to the project settings for window scaling + added some font settings so we can apply them everywhere easier, as well as a button template script that won’t actually do anything. That’s for the tooltips on the daily buttons in the legder - for later!"}, {"post_id": 7783, "ts": "2026-06-13T00:11:11Z", "hours": 3.9939, "text": "Celestial Capitalist Dynamic Background Background now changes based on night cycle. Damn this was a pain - mostly because the issue wasn’t even the programming it was the frickin math. I hate math. I hate math so much. Also godot what the hell do you mean ‘70 is out of bounds of 70’ i’m dying The following showcase vid has time passing so quickly because I added a keybind to add hours to the clock for debug purposes. Also my laptop’s a bit laggy lmao Still needs polish, but hey, it works."}, {"post_id": 6529, "ts": "2026-06-10T23:42:25Z", "hours": 1.6681, "text": "Celestial Capitalist: Sprite Refresh Just did a big ol’ redo of all the placeholder sprite art + redid inventory grid to have five columns instead of ten so those 32*32 textures don’t go to waste. Also, this definitely took longer than an hour and a half. Unfortunately, I can’t log Krita. Anyw check out @idi0cy , he’s doing the code for this and original concept."}]...
|
Title: Celestial Capitalist by @Ratseer | Stardanc Title: Celestial Capitalist by @Ratseer | Stardance
Devlogs:
Celestial Capitalist: Sprite Refresh Just did a big ol’ redo of all the placeholder sprite art + redid inventory grid to have five columns instead of ten so those 32*32 textures don’t go to waste. Also, this definitely took longer than an hour and a half. Unfortunately, I can’t log Krita. Anyw check out @idi0cy , he’s doing the code for this and original concept.
Celestial Capitalist Dynamic Background Background now changes based on night cycle. Damn this was a pain - mostly because the issue wasn’t even the programming it was the frickin math. I hate math. I hate math so much. Also godot what the hell do you mean ‘70 is out of bounds of 70’ i’m dying The following showcase vid has time passing so quickly because I added a keybind to add hours to the clock for debug purposes. Also my laptop’s a bit laggy lmao Still needs polish, but hey, it works.
Celestial Capitalist: The Ledger Bit of an annoyance to make, but it works :D This is where you can keep track of your transactions and balance, as well as a hub for future financial stats that have yet to be implemented. Did a bunch of tomfoolery with containers and control nodes and all that weird stuff trying to make the collapsible boxes work - ended up just changing minimum sizes myself instead of bothering with the FoldableContainers. Other stuff In terms of backend stuff I guess you’d call it, I made some changes to the project settings for window scaling + added some font settings so we can apply them everywhere easier, as well as a button template script that won’t actually do anything. That’s for the tooltips on the daily buttons in the legder - for later!
Celestial Capitalist: Daily Monetaries + Tooltips Added a general purpose tooltip scene for instancing with the _make_custom_tooltip() method. That was a pain to get right - I spent a good half hour trying to figure out why it wouldn’t work before realizing the root had to be a container node. Control nodes stink and I hate them. In practical terms, I’ve added a method to append daily costs and profits to the ledger interface. Nothing actually uses it yet, so the values in here are from a debug keybind I was using.
Celestial Capitalist: Randomized Dialogue little mini update while i do more stuff This and 15 more stupid lines per each dialogue option
Celestial Capitalist: Inventory Revamp + Misc Fixes Revamped the inventory item inspector and made it prettier, as seen below Also did various other internal fixes with code and stuff such as renaming a button, adding lines to the fake injury game, and item flavour text edit: just noticed the screenshot is horrendous so i replaced it edit two: nvm apparently stardance just crops it 😭 wtf
Celestial Capitalist: Randomized Stranger Names Just made random names for all the strangers - which was a damn pain because @idi0cy , despite his all-knowing-ness, decided to name the index of the button icons with the stranger sprites ‘index’, then proceeded to reference those same values in a different function under the name ‘place’ whilst the argument ‘index’ in said function was something entirely different. This confused me for at least an hour. You will also notice that we have a new merry little cast of sprites, for those strangers. I tried to make them look as dystopian as possible. Think it worked. Would probably have gone for more distorted faces too if I had the time. As you can see below, I spent way too long getting a massive list of names - mostly from Orteil’s RandomGen, and then a few references to media I like. We’ll definitely be adding more.
Celestial Capitalist: Scavenging WOW that took a while! Probably should have posted some breadcrumbs midway but whatever. The SCAVENGING FEATURE IS COMPLETE. This is basically loot box opening simulator + squid game dalgona cookies. This will be your main way to get items to sell (therefore earn money). The value of each item is based off that quality value we’ve been showing off, as well as the item’s base value and your minigame performance. Loot even scales as you gain more money (which I do in the video with a debug keybind), allowing you to go from looting trash cans to looting discarded packages and dropped briefcases. To spice up the loot, I’ve also added WAYYY too many items (yes, I did the textures myself). The hardest part of this whole thing was making a proper weighted loot system. That was a pain, because I could never quite fine tune the results to what I wanted - still really haven’t, but it works well enough. The other hardest part was me, as a relative beginner to programming, discovering that assigning a new variable to an array in fact synced both arrays. Godot what the hell is duplicate_deep() 😭 Celestial Capitalist in collaboration with @idi0cy
The Market I’ve added a shop system! At exactly 00:00 every day the Market tab refreshes with a new market stall, with randomly generated name, products, and an owner profile for the funnies. This system isn’t really for you to buy and flip prices in the get money tab - this is supposed to drag money out of you when you’re starving for food and also purchase upgrades for your run. Said upgrades have not yet been implemented, but - Using Items Items that can be used now pop up a use item button in the inventory. Monetary items now return money to your ledger and food items now add to your vitals - which hasn’t been implemented yet. We’ll also be adding more items and usages - such as those aforementioned upgrades. Celestial Capitalist in collaboration with @idi0cy
The Great Organization So while @idi0cy over there has been coding new stuff, I’ve been over here cleaning after his mess. I’m currently in the process of adding documentation comments to everything so we know what the hell anything is after we code it. Suffice to say, it’s not going that great but it’s coming along. This man literally wrote a variable called lengthOfTimeUnitThingHi_rAt_D_ontWeLovenamingConVentIons just to piss me off. Another part of the organization effort is adding these #region and #endregion comments everywhere so we can close and expand large sections of code. The Great Centralization I’ve also been working on centralizing certain things. I’ve added a new InventoryHelper class, which contains methods used for inventories such as the market stalls, loot boxes, the actual inventory, and the pick to sell menu. Attached below is the documentation comments for the Resources class containing pretty much every texture, dialogue line, name, and utility function and now a lot of the scripts extend it.
Vitals System Added a health, hydration, and satiation system. Satiation controls max health, and if your hydration hits 0, you begin taking damage over time. When you take damage or your health is low, your screen has a damage overlay. Celestial Capitalist in collaboration with @idi0cy .
Revamped Tutorial Gave the new tutorial put in place by @idi0cy some flair. It now also contains a text box for you to pick a save name, which will automatically show up in the ledger where the account name thing is. It may be the save name, but we’re not going to be implementing saves before shipping as we’re lazy and have things to do. The revamp has also made the game through anywhere from 1-103 data.tree is null errors but it ain’t crashing and I’m done solving that crap. Two Bowls of Chili We now have the two bowls of chili as per request by a friend of @idi0cy . New Item Mechanics I’ve changed the item system so that they can take on far more data than just an item type. They now have an additionalProperties , which is a Dictionary that is meant to take a string key and value. This allows us to store pretty much any data we want in there. This was done so that I could make items give temporary skill buffs with ease, as a lot of them are currently only good for selling. So now, you can use a pencil and gain a minute of +1 dexterity (which helps in the fake injury and stealth steal minigames), among other buffs. Miscellaneous fixes We are nearing release, and so we’ve begun to review a lot of stuff and make balancing/bugfixing changes. Deathscreen now returns you to title screen. Made perception affect scavenge quality and charisma affect market quality Added a bajillion tooltips to explain stuff Haggle difficulty has been made easier Fixed an issue in scavenge that made all the loot 0 quality Made event popups stack Made it so other windows can’t open if a scavenge game is happening Celestial Capitalist , dubiously developed by @Ratseer and @idi0cy .
Celestial Capitalist - Beta Complete! After four hours of horrifically annoying bugfixing with @idi0cy , CC is ship ready! We did a lot of misc fixes. There was some really stupid code we left in such as ‘check if x > y’ and consecutively in that one ‘check if x < y’. We’re geniuses. Anyway, we just added a sound slider that doesn’t work outside the editor 😭 . There were also a bunch of balancing issues to fix, such as me labelling a bottle of soy sauce as 45 dollars. But it’s done, oh lord it’s done. Check it out! https://ratseerofrattesse.itch.io/celestial-capitalist
Ships:
Celestial Capitalist is a simulation game where the player simultaneously builds and ascends the corporate ladder from the bottom of the street to the self-built throne at the top of the cosmos. Beg your way from homelessness, run a lemonade stand, scam grandmas on the internet, start a cult, play union-buster tower defence, and generally just have a grand stupid time while the world slowly bends to your will. Currently on FIRST BETA! Contains the slightly unpolished first stage, Rock Bottom, with basic progression, a bunch of minigames and… style!. You’re homeless and you needa earn money to get out of it. Also you can’t save yet. And the volume is broken. WE’LL FIX IT ONE DAY. Controls are all point and clicked + arrow keys for the Fake Injury minigame. Windows only for the moment - will support more soon. Unzip and run ccap1.0exe. By @idi0cy and RatseerOfRattesse Made for Hack Club Stardance. Tribulations Coding is notorious for producing the kind of mistakes one looks through for an entire night and solves in a second of effort. We had a lot of that. The amount of stupid crap on the way here is immense and we’ve still not cleared out all of it. But, @idi0cy and I hope you will enjoy what we’ve made, cuz we sure did enjoy making it. Celestial Capitalist by @idi0cy and @Ratseer ....
|
1793148990.2043073
|
1793235390.2043073
|
|
14483
|
ArianaGrandeOS by @SP14 | Stardance
|
SP14
|
1
|
14.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-14T18:22:43Z", "hours": 14.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built ArianaGrandeOS, a browser-based operating system themed entirely around Ariana Grande and her music as a special gift for my sister. It features a custom desktop environment with 12 built-in applications, including a trivia app, paint app, location-based weather, custom widgets, and a dynamic quote rotator. The most challenging part was definitely the music player because manually resizing and compressing square album covers into high-quality wide desktop backgrounds to keep the project file under 2MB was a huge issue, and fixing a ton of frustrating syncing bugs for all 111 tracks almost broke the audio entirely. I’m incredibly proud of the custom queue system I built to make it feel like a real streaming app, and the absolute best part was seeing how happy my sister was when she finally tested it out. Before you test it, you should know that you can drag and resize all four corners of any app window, change up the overall themes and fonts in the settings panel, and click directly on the fortune cookie to crack it open for a hidden message! I hope you enjoy! :)", "repo": "https://github.com/SP14-cyber/ariana-grande-webos", "demo": "https://sp14-cyber.github.io/ariana-grande-webos/GrandeOS.html"}]...
|
[{"post_id": 7819, "ts": "2026 [{"post_id": 7819, "ts": "2026-06-13T01:43:30Z", "hours": 2.0561, "text": "ArianaGrandeOS is finally ready to ship!! I polished everything up and added some final features. I added an Ariana Grande trivia app where you can answer questions about Ariana, her music, and her career. I also updated the homepage, made the time bigger so it’s easier to see, added a “Now Playing” section, and added a few more apps on the display of the homepage. One thing I’m really happy with is the music player. I added a queue system so you can choose exactly which songs you want to play next instead of having to listen in album order. It makes the music player feel way more like a real streaming app and was something I really wanted to include before shipping. The music player ended up being way harder than I expected. Even though all 111 songs were already in the OS, they weren’t syncing properly at all. I spent a long time trying to figure out what was wrong and honestly thought I had broken everything at one point 😭. After a lot of testing and fixing random issues, such as the play button not working, audio not playing, etc etc, I finally got every single song synced correctly and working. Seeing all 111 songs play perfectly from Yours Truly all the way to Eternal Sunshine felt so rewarding. I also added a quote section to the homepage that changes every 30 seconds. All of the quotes are from Ariana Grande, and there are currently 12 different ones that rotate throughout the day. The OS now has 12 different apps and actually feels like a real operating system. Looking back at where I started, it’s kind of crazy how much it grew from a simple pink desktop into this huge Ariana-themed project!! :) The best part was finally showing it to my sister. She thought it was absolutely amazing and was especially excited about the music player. Watching her click through everything and seeing how happy she was made all the frustrating bugs and long hours worth it. I’m really proud of how this turned out and am super excited to finally ship it :)) Thank you all so much for following along through this journey!"}, {"post_id": 7494, "ts": "2026-06-12T14:35:29Z", "hours": 10.5608, "text": "Last devlog I had a very basic frontend and that was basically it. Since then I built almost everything and it actually feels like a real OS now. The biggest thing I worked on was the music player. I built it to look like a real music player with a dark background, big album art, pink progress bar, white play button. You can browse all 7 albums, click to see every song inside, and tap any song to play it. I added in all 111 songs from Yours Truly to Eternal Sunshine in the right order. The hardest part was the wallpaper choices. I wanted real album photos so I had to embed them directly into the HTML so the file works on its own without needing extra files. I also needed to find the wide version of each album so it could fit on the screen; all her album covers are originally square. For some of the photos, I couldn’t find the wise version, so I had to manually import the photos into a photo editor and fill in the backgrounds. Every time I added a photo the file went over 2MB. Took a while to get the quality high but at the same time keep the file size reasonable. Other stuff I added: Calendar with monthly and yearly view, you can add events to any date Journal and Notes combined into one app with tabs Stopwatch and Timer that flashes red in the last 5 seconds and beeps when done A paint app where you can draw and save as PNG Welcome screen with a guide that walks you through the whole OS A to-do list! A fun little fortune cookie app which you can crack (press on), revealing a fortune cookie message related to Ariana Grande Browser that has Ariana Grande’s socials pinned to the top Added a notification bell that keeps you updated on album drops, tours, etc etc Weather application which is based on user’s location All 4 corners of every window can now be dragged to resize Added customizable features such as album cover wallpapers, themes, fonts, changing font size, etc etc What I’m going to be doing next: Fixing up bugs and any issues Adding more details or effects to the home screen to give it more oomph Maybe: adding more wallpaper choices (?) Really happy with what I have and what else I’ll accomplish!! So excited to show this to my sister (I’ll let you all know what she thinks in my next devpost…coming soon!!) :))"}, {"post_id": 7152, "ts": "2026-06-11T22:56:30Z", "hours": 1.8175, "text": "Built the base of GrandeOS and pink desktop background as well as a taskbar with a live clock that updates every second, and the first draggable window. I chose the pink color palette intentionally because my sister’s favorite color matches Ariana’s whole aesthetic, so every color decision was locked in from the start. Next up: building out the actual apps and adding more draggable windows!!"}]...
|
Title: ArianaGrandeOS by @SP14 | Stardance
Devlog Title: ArianaGrandeOS by @SP14 | Stardance
Devlogs:
Built the base of GrandeOS and pink desktop background as well as a taskbar with a live clock that updates every second, and the first draggable window. I chose the pink color palette intentionally because my sister’s favorite color matches Ariana’s whole aesthetic, so every color decision was locked in from the start. Next up: building out the actual apps and adding more draggable windows!!
Last devlog I had a very basic frontend and that was basically it. Since then I built almost everything and it actually feels like a real OS now. The biggest thing I worked on was the music player. I built it to look like a real music player with a dark background, big album art, pink progress bar, white play button. You can browse all 7 albums, click to see every song inside, and tap any song to play it. I added in all 111 songs from Yours Truly to Eternal Sunshine in the right order. The hardest part was the wallpaper choices. I wanted real album photos so I had to embed them directly into the HTML so the file works on its own without needing extra files. I also needed to find the wide version of each album so it could fit on the screen; all her album covers are originally square. For some of the photos, I couldn’t find the wise version, so I had to manually import the photos into a photo editor and fill in the backgrounds. Every time I added a photo the file went over 2MB. Took a while to get the quality high but at the same time keep the file size reasonable. Other stuff I added: Calendar with monthly and yearly view, you can add events to any date Journal and Notes combined into one app with tabs Stopwatch and Timer that flashes red in the last 5 seconds and beeps when done A paint app where you can draw and save as PNG Welcome screen with a guide that walks you through the whole OS A to-do list! A fun little fortune cookie app which you can crack (press on), revealing a fortune cookie message related to Ariana Grande Browser that has Ariana Grande’s socials pinned to the top Added a notification bell that keeps you updated on album drops, tours, etc etc Weather application which is based on user’s location All 4 corners of every window can now be dragged to resize Added customizable features such as album cover wallpapers, themes, fonts, changing font size, etc etc What I’m going to be doing next: Fixing up bugs and any issues Adding more details or effects to the home screen to give it more oomph Maybe: adding more wallpaper choices (?) Really happy with what I have and what else I’ll accomplish!! So excited to show this to my sister (I’ll let you all know what she thinks in my next devpost…coming soon!!) :))
ArianaGrandeOS is finally ready to ship!! I polished everything up and added some final features. I added an Ariana Grande trivia app where you can answer questions about Ariana, her music, and her career. I also updated the homepage, made the time bigger so it’s easier to see, added a “Now Playing” section, and added a few more apps on the display of the homepage. One thing I’m really happy with is the music player. I added a queue system so you can choose exactly which songs you want to play next instead of having to listen in album order. It makes the music player feel way more like a real streaming app and was something I really wanted to include before shipping. The music player ended up being way harder than I expected. Even though all 111 songs were already in the OS, they weren’t syncing properly at all. I spent a long time trying to figure out what was wrong and honestly thought I had broken everything at one point 😭. After a lot of testing and fixing random issues, such as the play button not working, audio not playing, etc etc, I finally got every single song synced correctly and working. Seeing all 111 songs play perfectly from Yours Truly all the way to Eternal Sunshine felt so rewarding. I also added a quote section to the homepage that changes every 30 seconds. All of the quotes are from Ariana Grande, and there are currently 12 different ones that rotate throughout the day. The OS now has 12 different apps and actually feels like a real operating system. Looking back at where I started, it’s kind of crazy how much it grew from a simple pink desktop into this huge Ariana-themed project!! :) The best part was finally showing it to my sister. She thought it was absolutely amazing and was especially excited about the music player. Watching her click through everything and seeing how happy she was made all the frustrating bugs and long hours worth it. I’m really proud of how this turned out and am super excited to finally ship it :)) Thank you all so much for following along through this journey!
Ships:
I built ArianaGrandeOS, a browser-based operating system themed entirely around Ariana Grande and her music as a special gift for my sister. It features a custom desktop environment with 12 built-in applications, including a trivia app, paint app, location-based weather, custom widgets, and a dynamic quote rotator. The most challenging part was definitely the music player because manually resizing and compressing square album covers into high-quality wide desktop backgrounds to keep the project file under 2MB was a huge issue, and fixing a ton of frustrating syncing bugs for all 111 tracks almost broke the audio entirely. I’m incredibly proud of the custom queue system I built to make it feel like a real streaming app, and the absolute best part was seeing how happy my sister was when she finally tested it out. Before you test it, you should know that you can drag and resize all four corners of any app window, change up the overall themes and fonts in the settings panel, and click directly on the fortune cookie to crack it open for a hidden message! I hope you enjoy! :)...
|
1792878467.6506474
|
1793742467.6506474
|
|
14484
|
projekatiOS by @onako | Stardance
|
onako
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-29T20:33:40Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "projekatiOS is a webOS for my personal and other people’s stuff that might be interesting. Currently it is a playground but it’ll develop into a portfolio website once I have more projects to offer. The feature that the guide didn’t list is that you can restart individual apps. What I am proud of: Apps are easy to create (they are essentially iFrames). In case you want to test it out: minimized apps continue to play audio, if you want to stop the audio, reload the app. In case anything breaks, you can reload the app.", "repo": "https://github.com/Onako2/projekatiOS", "demo": "https://nuc.de.majic.rs/projekatios"}]...
|
[{"post_id": 18625, "ts": "202 [{"post_id": 18625, "ts": "2026-06-29T20:26:41Z", "hours": 0.3175, "text": "Add a small description in the readme, yay :)"}, {"post_id": 18606, "ts": "2026-06-29T20:05:03Z", "hours": 1.3803, "text": "Sooo.. There are a few new apps! And you can add your own iFrame as an app now."}, {"post_id": 8428, "ts": "2026-06-14T00:35:16Z", "hours": 0.4336, "text": "The website is deployed now! https://nuc.de.majic.rs/projekatios"}, {"post_id": 8410, "ts": "2026-06-13T23:44:11Z", "hours": 2.1731, "text": "projekatiOS makes creating custom apps easy now! Apps can be isolated and will automatically move to the front when moved."}, {"post_id": 5882, "ts": "2026-06-09T20:48:33Z", "hours": 1.7481, "text": "I might be cooking? Currently doing it contrary to the guide in nextJS haha"}]...
|
Title: projekatiOS by @onako | Stardance
Devlogs: Title: projekatiOS by @onako | Stardance
Devlogs:
I might be cooking? Currently doing it contrary to the guide in nextJS haha
projekatiOS makes creating custom apps easy now! Apps can be isolated and will automatically move to the front when moved.
The website is deployed now! https://nuc.de.majic.rs/projekatios
Sooo.. There are a few new apps! And you can add your own iFrame as an app now.
Add a small description in the readme, yay :)
Ships:
projekatiOS is a webOS for my personal and other people’s stuff that might be interesting. Currently it is a playground but it’ll develop into a portfolio website once I have more projects to offer. The feature that the guide didn’t list is that you can restart individual apps. What I am proud of: Apps are easy to create (they are essentially iFrames). In case you want to test it out: minimized apps continue to play audio, if you want to stop the audio, reload the app. In case anything breaks, you can reload the app....
|
1793138315.841008
|
1793224715.841008
|
|
14489
|
PandaOS by @panda | Stardance
|
panda
|
1
|
6.0
|
74
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T21:56:55Z", "hours": 6.0, "multiplier": 12.02, "payout": 74, "blessing": "neutral", "text": "I made my very own webOS from scratch, themed just like my portfolio and nvim config. Check it out !", "repo": "https://github.com/mail2adnanyazik-bit/pandaOS", "demo": "https://panda-os-five.vercel.app/"}]...
|
[{"post_id": 8256, "ts": "2026 [{"post_id": 8256, "ts": "2026-06-13T18:52:29Z", "hours": 0.4458, "text": "Fixed final minor bugs, pushed final version to GitHub, and used Vercel to deploy ! Im pretty much done now, and am pretty proud of the end result - check out the page here : https://panda-84hn8kync-mail2adnanyazik-bits-projects.vercel.app/ I would love to hear some feedback / get some bug reports - feel free to check it out and let me know what you think in the comments !"}, {"post_id": 7585, "ts": "2026-06-12T18:01:28Z", "hours": 0.6078, "text": "Fixed all bugs from last time, did all TODO’s also added polish, animations, etc. fixed some buggy features"}, {"post_id": 7035, "ts": "2026-06-11T19:55:56Z", "hours": 2.4794, "text": "Added content to apps, a spotlight app search, and other polish features such as right clicking desktop, a music player, etc Still TODO : sync the dock volume bar with the settings volume bar and remove vol bar from music app. make the buttons for notes look better - right now they are wierd and grey fix brightness slider - when adjusted it just turns screen and background white make calculator look better Make text in panda profile bigger, and make window in total bigger along with everything inside it add song status bar (how long it has been playing , a loading bar dude, like in spotify) above the play and pause and so buttons delete about from spotlight add more css to all apps"}, {"post_id": 6356, "ts": "2026-06-10T18:10:46Z", "hours": 2.64, "text": "Finished the Homepage and core logic for my WebOS What was done : Added background image Changed font to look a little more terminal-y finished core window dragging logic made a close button for the windows time and date display on bottom right fake (for now) volume slider placeholder “Apps” including projects placeholder, sysmon (fake system stats display), terminal (again placeholder) Core logic for which window is in foreground and which in back (drawing layers) TODO : replace placeholders with actual content (i can copy a bit from my portfolio website :P ) add a favorite music playing app (and subsequently make volume slider actually adjust volume) push to github decide on next features to add"}]...
|
Title: PandaOS by @panda | Stardance
Devlogs:
Fin Title: PandaOS by @panda | Stardance
Devlogs:
Finished the Homepage and core logic for my WebOS What was done : Added background image Changed font to look a little more terminal-y finished core window dragging logic made a close button for the windows time and date display on bottom right fake (for now) volume slider placeholder “Apps” including projects placeholder, sysmon (fake system stats display), terminal (again placeholder) Core logic for which window is in foreground and which in back (drawing layers) TODO : replace placeholders with actual content (i can copy a bit from my portfolio website :P ) add a favorite music playing app (and subsequently make volume slider actually adjust volume) push to github decide on next features to add
Added content to apps, a spotlight app search, and other polish features such as right clicking desktop, a music player, etc Still TODO : sync the dock volume bar with the settings volume bar and remove vol bar from music app. make the buttons for notes look better - right now they are wierd and grey fix brightness slider - when adjusted it just turns screen and background white make calculator look better Make text in panda profile bigger, and make window in total bigger along with everything inside it add song status bar (how long it has been playing , a loading bar dude, like in spotify) above the play and pause and so buttons delete about from spotlight add more css to all apps
Fixed all bugs from last time, did all TODO’s also added polish, animations, etc. fixed some buggy features
Fixed final minor bugs, pushed final version to GitHub, and used Vercel to deploy ! Im pretty much done now, and am pretty proud of the end result - check out the page here : https://panda-84hn8kync-mail2adnanyazik-bits-projects.vercel.app/ I would love to hear some feedback / get some bug reports - feel free to check it out and let me know what you think in the comments !
Ships:
I made my very own webOS from scratch, themed just like my portfolio and nvim config. Check it out !...
|
1793134416.122985
|
1793220816.122985
|
|
14508
|
Neural Playground by @aarnav_sharma | Stardance
|
aarnav_sharma
|
1
|
5.13
|
50
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-16T20:22:25Z", "hours": 4.0, "multiplier": 11.43, "payout": 50, "blessing": "neutral", "text": "I made a Neural Playground app in which you can visualize a neural network training itself. This was challenging, as I had never created UI with python before, and the math was also challenging. Some things you should know is that windows might show a blue screen saying that they are protecting you computer from this app, to bypass it just click more info and then run anyway. Also for mac you will need to download the project open it in an IDE and then install a package then run. You can get more detailed information in the README.", "repo": "https://github.com/Thunder-pro-grammer/neural-playground", "demo": "https://github.com/Thunder-pro-grammer/neural-playground/releases/tag/v1.0"}]...
|
[{"post_id": 37793, "ts": "202 [{"post_id": 37793, "ts": "2026-07-30T18:42:39Z", "hours": 1.1306, "text": "First Dev log after the first ship!!!!!! So lots of people were not able to open my project (probably because it did not work on Mac, and to open it on Mac they had to install some stuff), so I decided to switch from CustomTkinter to Streamlit, and now it runs on the web! The Streamlit app looks a lot better than the old one(if you have any ideas, I am all ears). I also lowered the Epoch number so it does not train itself as quickly. Now I am working on creating the reset button again, and am using some of the feedback I got on my app during the ship, and making it more interactive and animated."}, {"post_id": 29708, "ts": "2026-07-16T19:56:05Z", "hours": 0.3333, "text": "I added a reset button so users will be able reset the network, and train the data again without having to close the app and run again. Clicking the button creates a new NeuralNetwork object, tells the canvas to swap in the new network and redraw, and resets the loss label back to blank."}, {"post_id": 29654, "ts": "2026-07-16T18:35:07Z", "hours": 0.76, "text": "Today I got the Train button actually working. Clicking it runs the network through 3000 epochs(1 epoch is one full pass through of all the data) of training, then redraws the canvas with the updated weights and shows the current loss number, you can now visually see the colors and thickness of the lines changing. I also added a loss counter on the right of the screen to show the amount of loss, and how each time you click train the loss goes down until it reaches near zero(0.0001, it will never reach 0, it will just infinitely go toward zero, but we won’t be able to see the change).The hardest part was that nothing visually changed on screen, and I assumed it was a color/contrast problem with how I was rendering the weights. I spent time tuning the color logic before realizing the bug: I had written using the wrong method leading to it not updating the visuals. Once I fixed that line, the canvas started updating correctly and the color changes I’d built earlier were finally visible. Next I am going to add a reset button and possibly live animation during training instead of only seeing the result after it finishes."}, {"post_id": 27857, "ts": "2026-07-13T19:11:42Z", "hours": 1.9072, "text": "I updated the UI on the canvas to where it shows circles for neurons, connected by red and blue lines that have differing thicknesses. The red lines are positive weights, and blue lines are negative weights. The thickness of the line shows how much weight it has. Thicker lines have stronger weight magnitude, and thinner lines have weaker weights, the hardest part was actually making it symmetrical and look good, this took an hour to do. Next, I am going to make the train button actually work to show the canvas draw itself out so see the neural network build."}, {"post_id": 14039, "ts": "2026-06-23T00:42:57Z", "hours": 1.3792, "text": "First Devlog! I’m building a neural network visualizer to help you see how the network trains itself. Today I finished the math layer of the project such as passing inputs through the network(made up of neurons which decide how strongly to fire based on the inputs), calculating how much weight(How strong a connection is between two neurons) contributed to the error and nudging every weight and bias to reduce the error. I used NumPy to do this because of speed as it was more efficient at running due to being programmed in C(as well as python) and it had built in matrix math functions. The hardest part was understanding backpropagation specifically how the error gets calculated backwards through every layer using the chain rule from calculus. I figured it out after I realized that the network was just asking which weights caused the mistake and nudging them in the direction that reduces the error. Why am I building this? Because you can see more information clearly, and what path and connections the network is using, something a terminal can’t show you. And it just looks cool To test it works, I trained it on XOR which stands for exclusive or and returns 1 only when one input is 1. Next up: the UI"}]...
|
Title: Neural Playground by @aarnav_sharma | Stard Title: Neural Playground by @aarnav_sharma | Stardance
Devlogs:
First Devlog! I’m building a neural network visualizer to help you see how the network trains itself. Today I finished the math layer of the project such as passing inputs through the network(made up of neurons which decide how strongly to fire based on the inputs), calculating how much weight(How strong a connection is between two neurons) contributed to the error and nudging every weight and bias to reduce the error. I used NumPy to do this because of speed as it was more efficient at running due to being programmed in C(as well as python) and it had built in matrix math functions. The hardest part was understanding backpropagation specifically how the error gets calculated backwards through every layer using the chain rule from calculus. I figured it out after I realized that the network was just asking which weights caused the mistake and nudging them in the direction that reduces the error. Why am I building this? Because you can see more information clearly, and what path and connections the network is using, something a terminal can’t show you. And it just looks cool To test it works, I trained it on XOR which stands for exclusive or and returns 1 only when one input is 1. Next up: the UI
I updated the UI on the canvas to where it shows circles for neurons, connected by red and blue lines that have differing thicknesses. The red lines are positive weights, and blue lines are negative weights. The thickness of the line shows how much weight it has. Thicker lines have stronger weight magnitude, and thinner lines have weaker weights, the hardest part was actually making it symmetrical and look good, this took an hour to do. Next, I am going to make the train button actually work to show the canvas draw itself out so see the neural network build.
Today I got the Train button actually working. Clicking it runs the network through 3000 epochs(1 epoch is one full pass through of all the data) of training, then redraws the canvas with the updated weights and shows the current loss number, you can now visually see the colors and thickness of the lines changing. I also added a loss counter on the right of the screen to show the amount of loss, and how each time you click train the loss goes down until it reaches near zero(0.0001, it will never reach 0, it will just infinitely go toward zero, but we won’t be able to see the change).The hardest part was that nothing visually changed on screen, and I assumed it was a color/contrast problem with how I was rendering the weights. I spent time tuning the color logic before realizing the bug: I had written using the wrong method leading to it not updating the visuals. Once I fixed that line, the canvas started updating correctly and the color changes I’d built earlier were finally visible. Next I am going to add a reset button and possibly live animation during training instead of only seeing the result after it finishes.
I added a reset button so users will be able reset the network, and train the data again without having to close the app and run again. Clicking the button creates a new NeuralNetwork object, tells the canvas to swap in the new network and redraw, and resets the loss label back to blank.
First Dev log after the first ship!!!!!! So lots of people were not able to open my project (probably because it did not work on Mac, and to open it on Mac they had to install some stuff), so I decided to switch from CustomTkinter to Streamlit, and now it runs on the web! The Streamlit app looks a lot better than the old one(if you have any ideas, I am all ears). I also lowered the Epoch number so it does not train itself as quickly. Now I am working on creating the reset button again, and am using some of the feedback I got on my app during the ship, and making it more interactive and animated.
Ships:
I made a Neural Playground app in which you can visualize a neural network training itself. This was challenging, as I had never created UI with python before, and the math was also challenging. Some things you should know is that windows might show a blue screen saying that they are protecting you computer from this app, to bypass it just click more info and then run anyway. Also for mac you will need to download the project open it in an IDE and then install a package then run. You can get more detailed information in the README....
|
1793137873.7169695
|
1793224273.7169695
|
|
14535
|
Issued YSWS by @Acidicts | Stardance
|
Acidicts
|
1
|
91.58
|
1383
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T17:03:11Z", "hours": 89.0, "multiplier": 15.53, "payout": 1383, "blessing": "neutral", "text": "Shipped!!! There are a bunch of features and stuff that I have added to this since flavortown, from the ordering system to devlogs and ship flow. Project Info This is the ruby on rails app for the ysws draft #issued where YS: Designs made with Code WS: Clothes and other swag with those designs Features added: A bunch of features have been added and I have separated them to 3 categories Major ones for functionality, quality of life for feel and use, security for data security. New Major Features: Designs view now is more detailed including hackatime projects and images from devlogs and ships Ship flow system so you can submit to the ysws Product Design system (admin only - for making the shop items by importing from printful via api) Order system using lots of hotwired turbo (choose color, design placement rotation and scale) Notifications (3 types Normal which provides info and 2 others Boolean which gets a yes or no answer and text which gets a written answer Reviewer Panel which shows pending ships to review with some data on (need to add hackatime info for it though) Storing Reviewer proof videos in a cloudflare R2 storage Quality-Of-Life: Added better UI/UX with some issues with need for ironing out (eg font change from workbench to ‘lexend’ and ‘space mono’ Kept a consistent style through the site, although some panels might need better border colour On login it redirects to the page you logged in by Security: I added User DB encryption to protect user data stored on the postgres database instance, such as name and email Summary Made the functional part of the ysws site (Designs, ordering, shipping) Added more security for user data Improved UI(Font and colour scheme)", "repo": "https://github.com/Acidicts/Issued", "demo": "https://issued.bing-bong.uk"}]...
|
[{"post_id": 78879, "ts": "202 [{"post_id": 78879, "ts": "2026-10-11T21:05:08Z", "hours": 2.5772, "text": "I created the fulfilment system for a fulfilment team to use Recent changes Removed redundant save! calls and updated fulfillment tests to reduce unnecessary database operations and align test logic with current behavior 9acc056 . Added a fulfillment role, batch pipeline, and popup controller to support new workflow automation and UI interactions afa7a20 . The popup controller likely handles transient UI elements like notifications or modals. Fixed a crash in /designs preview rendering by resolving an issue blocking Ruby scan/lint CI, ensuring previews no longer fail unexpectedly ( 911f035 ). Corrected a stray question mark in a design preview image tag to prevent malformed HTML output ( 955dd6c ). Added a note about YSWS draft sponsorship documentation, possibly for tracking external partnerships or funding discussions ( d92d571 ). No performance optimizations or subsystem overhauls were addressed in this cycle. Next steps depend on external feedback and test coverage improvements implied by recent test updates."}, {"post_id": 75924, "ts": "2026-10-01T16:48:57Z", "hours": 0.6297, "text": "Deploying on coolify and fixing bugs with that + encrypting current db"}, {"post_id": 75729, "ts": "2026-09-30T21:34:41Z", "hours": 1.0775, "text": "Recent changes - Installed Bundler 4.0.4 in the Dockerfile to standardize gem management across environments ( 88ba659 ). - Ensured the verification directory exists for SVG upload tests, addressing missing file system setup in test workflows ( 83f2e53 ). - Resolved a Turbo conflict in order steps, likely related to event streaming or frame rendering in Rails views ( e8d08f4 ). Updated navigation unread counts dynamically from notification events, improving real-time feedback for user activity ( a75f6ff )."}, {"post_id": 75254, "ts": "2026-09-29T16:08:17Z", "hours": 3.9967, "text": "## Recent changes Notifications: Unanswered notifications now retain their unread status until explicitly addressed. This ensures users can distinguish between pending and resolved interactions without relying on manual state updates ( 751a370 ). Security: Authentication workflows, file uploads, and resource authorization checks have been updated with additional safeguards. Specifics include input validation and access control refinements, though implementation details are not disclosed in the commit message ( 97e48db )."}, {"post_id": 74657, "ts": "2026-09-27T21:33:33Z", "hours": 2.8042, "text": "Made Notifications Useful Recent changes Persistent unread state for unanswered boolean notifications Notifications with unresolved boolean actions (e.g., approvals) now remain marked as unread until explicitly addressed. This ensures users revisit pending decisions. Commit: 39aabb2 . Interactive notification replies with approval time tracking Added support for direct replies to notifications, along with timestamp logging for when approvals are finalized. This enables granular tracking of response times for actionable alerts. Commit: 6ac80f9 ."}, {"post_id": 74176, "ts": "2026-09-26T21:01:23Z", "hours": 9.8606, "text": "Recent changes Added ship request reviews, resubmission logic, and R2 storage integration for tracking reviewed submissions ( 41b1e43 ). Started on the review workflow Started on Resubmission logic Set up support for cloudflare R2 Guarded Hack Club token persistence behind encryption configuration, ensuring tokens are only stored when encryption is explicitly enabled ( a4b6d0c )."}, {"post_id": 71158, "ts": "2026-09-20T11:24:58Z", "hours": 2.1222, "text": "Recent changes Comment delete, Turbo Comment Box, and ship request fade functionality Add #destroy functionality to the comments with owner permission, path, delete button, and dependent comments. Make use of valid commentable_type/id while building comments and make responses as Turbo streams and wrap up comments within a Turbo frame. Resize the comment box according to the content changes detected by the MutationObserver. Make ship request modal and overlay fade in and out. Consider higher level ship request as blockers for all ship requests. Comment card and comment list styling."}, {"post_id": 70827, "ts": "2026-09-19T20:44:04Z", "hours": 7.9789, "text": "Recent changes Add comments to devlogs and ship requests Implement polymorphic Comment model with CommentsController, Stimulus-driven collapsing comment box, markdown preview form, and styles. Comments will be rendered by Turbo frames and allow editing by owner/admin. This is what else is included in this change: Encryption of hackclub_access_token and hackclub_refresh_token through ActiveRecord encryption, including config, env sample and migration task for already existing non-encrypted tokens. SSL enforcement in production (assume_ssl, force_ssl). Update filter_parameters to strip out sensitive information and OAuth tokens from logs. Fix ExchangeRate API call to include Bearer authentication header. Sanitization of devlogs HTML output through SafeListSanitizer. Update Design#can_make_devlog to can_make_devlog? method and restrict can_ship? check to devlogs without ship request. Add SRI integrity attribute to marked/DOMPurify scripts loaded from CDNs. UI improvements: styles for disabled buttons, utility class for hover-underline effect, devlog cards layout and info icons."}, {"post_id": 65654, "ts": "2026-09-10T22:45:01Z", "hours": 4.65, "text": "Recent changes Ship request flow and SVG conversion : Added support for processing ship requests, handling SVG conversions, and validating devlog images before submission 8ca9b5d9 . Nil safety for Hackatime projects : Wrapped the @hackatime_projects variable in an Array structure to prevent nil errors when retrieving project data a29691ff . CI environment and test ordering : Set RAILS_ENV=test for the CI setup process and reordered the sequence of test steps to improve execution reliability 2968d162 . Authorization consolidation : Refactored authorization guards and consolidated the linking logic for Hackatime projects 4c2b1836 ."}, {"post_id": 63555, "ts": "2026-09-07T13:59:01Z", "hours": 4.54, "text": "Recent changes Fixed a failure in the CI/CD pipeline commit Implemented status tracking for balance events and refined the underlying thread logic associated with them commit Refactored the token rendering component for render_encoded to allow {{design: design.id}} making a pill, to improve display fidelity and added an edit functionality for devlog entries commit Integrated support for uploading images directly within the devlog interface and established links to corresponding Hackatime projects commit"}, {"post_id": 62972, "ts": "2026-09-06T15:23:56Z", "hours": 7.4994, "text": "Added Devlogs and changed hackatime projects to be multi model per design. Move hackatime project linkage from a single designs.hackatime_project column to a has_many hackatime_projects model, syncing each project’s time and aggregating totals on designs. Add devlogs, ship_requests, ships, and comments models/routes/views for design logging and shipping, and make balance_events polymorphic.Update designs controller, helpers, and views to render multiple project pills, allow adding/removing linked projects, and show a combined hackatime/image/devlog layout. Add redcarpet for Markdown rendering and adjust CSS for dark mode, responsive galleries, and pill controls. Added Devlogs and the prep for adding the shipping flow I added devlogs to the project in prep for the shipping flow"}, {"post_id": 61811, "ts": "2026-09-04T21:55:13Z", "hours": 3.1611, "text": "Recent changes Added support for balance events and thread adjustments to improve financial tracking accuracy. This also included an update to the notification rendering system to safely handle these new data types without breaking existing templates (commit: ( faed39b57619 )). Fixed the positioning of the design box within the product editor. This specifically addresses display issues occurring when editing products via /admin/products/<id>/edit (commit: ( aa4e314b5dcd ))."}, {"post_id": 60507, "ts": "2026-09-02T21:52:42Z", "hours": 5.5383, "text": "I’ve focused on refining the shop page styling, header positioning, and cost handling logic ( d10a9c51 ). The recent batch of work involved schema adjustments for a product enabled flag, adding support for cost and thread costs ( 82f9f2d1 ), applying a schema fix ( 3f8bcb8a ), fixing CI pipeline issues ( 71e98a ), and pushing updates to production ( ca19da29 ). Recent changes Added an image variants system and updated views to utilize thumb and display variants specifically ( a2e4eb28 ). Implemented cost handling updates, including a specific support for thread costs alongside general product cost tracking ( 82f9f2d1 ). Added an auto annotaterb script executed within the Rails migration process ( 7d07d278 ). Applied schema fixes to ensure data integrity during the recent updates ( 3f8bcb8a ). Updated the RSVP page styles and refreshed the thanks template ( 217945eb ). Refined header positioning and shop page styling across the frontend ( d10a9c51 ). Added a product enabled flag to control product visibility and state in the system ( 82f9f2d1 ). Whats next: Umm, so whats next I think would be adding balance_events so you can trace changes in balances(spending/earning)"}, {"post_id": 59213, "ts": "2026-08-31T21:41:46Z", "hours": 2.8433, "text": "Since the last update, I’ve focused on enhancing the order preview system to support complex design workflows and improving image navigation for multi-image configurations. Recent changes Added multi-image preview navigation with left/right arrow buttons and an index display (e.g., “Image 2 of 5”) to streamline design review workflows ( b269fe5 ). This change directly addresses the need to review multiple design iterations in a single view without page reloads. Refactored the order preview component to support multiple print areas with independently configurable design images. This involved restructuring the preview logic to handle dynamic print area definitions while maintaining consistent state across design selections ( 0545118 ). The refactor enables customers to visualize different designs on separate print areas (e.g., front/back/ sleeves) within the same order preview."}, {"post_id": 58236, "ts": "2026-08-30T16:26:21Z", "hours": 8.9714, "text": "Print area management UI & backend ( a42a00d ): Built a full stack for managing print areas (think “where the design goes” on a shirt front or back). This includes models to store print area dimensions, controllers to handle CRUD ops, and RESTful routes to tie it all together. The frontend now lets users drag/drop to define print zones with responsive positioning ( position: absolute + transform: scale to handle dynamic sizing). Edge case: Products with multiple print areas (e.g., front + back) now render distinct configurations without clobbering state. Printful service & stock syncing ( 7b5d817 ): Added printful_id to product models to map Issued products to Printful’s inventory. UI updates to display Printful sync status (green checkmarks for success, red alerts for failures). Technical tangents The print area system was a slow make. For example: To ensure designs stay within printable bounds, I had to calculate dynamic margins based on product type (e.g., a hoodie’s print area ≠ a mug’s). This involved hacking some trigonometry into the frontend to snap selections to “safe zones.” On the backend, I’m using ActiveRecord callbacks to validate print area dimensions against product specs. If a user tries to set a print area wider than the product allows It raises a PrintAreaOutOfBounds error Future features The actual ship flow and being able to edit multiple print areas instead of just the one"}, {"post_id": 53048, "ts": "2026-08-23T13:14:54Z", "hours": 4.1422, "text": "Added Variants for size and colors with stock for each printful region facility. Stimulus target which groups the variants by colour and deletes empty groups"}, {"post_id": 50653, "ts": "2026-08-19T22:27:11Z", "hours": 3.3331, "text": "Created Printful API Integration and improved order screen to allow better customisations Add Printful import endpoint and order preview UI improvementsImplemented Printful product import, added order preview generation, UI styles, and controller changes for drag‑resize‑rotate preview."}, {"post_id": 37237, "ts": "2026-07-29T19:53:07Z", "hours": 0.3972, "text": "Improved the New Order Page to be neater, and better themed along the colour scheme"}, {"post_id": 37220, "ts": "2026-07-29T19:25:45Z", "hours": 1.2728, "text": "Rename admin-product to products and refactor CSS, controller, and views. Updated class names and CSS variables, added .no-product-grid and .dashed-break styles. Simplified image loading logic in the product preview controller, and replaced large inline layout styles with external stylesheet includes."}, {"post_id": 35739, "ts": "2026-07-27T11:35:58Z", "hours": 1.3936, "text": "Add brand colors, badge styles, and redesign pagesAdd brand color variables, badge styles, and a full redesign of design pages with responsive layouts, fixed redirect stuff, optimised by using one erb engine call for designs"}, {"post_id": 35463, "ts": "2026-07-26T22:10:06Z", "hours": 1.1911, "text": "Dropdown Styling & Component Replacement The design form’s dropdown interface was overhauled to improve visual consistency and user experience. A native <select> element was replaced with a custom-styled solution using 3ab7405 , allowing for greater flexibility in aligning with the project’s aesthetic goals. This change ensures smoother integration with the overall theme and avoids browser-specific styling quirks. CSS Refactoring & Theme Variables Design form styling was fully refactored in 928b7b0 , introducing global theme variables to streamline color, spacing, and typography management. This move simplifies future theme adjustments and promotes code reuse. Model defaults were also standardized to reduce redundancy in form initialization logic, making the codebase more maintainable. Admin Test Redirects In 2af0071 , the admin test workflow was updated to automatically redirect to the products list URL after test submissions. This improves user navigation by providing immediate feedback and next steps, ensuring a cohesive backend experience. Current Status The frontend is now more thematically consistent, with design forms serving as a primary focus area. Admin workflows are being optimized for clarity and efficiency, though backend test processing logic remains pending integration. The codebase is gradually adopting a modular structure, particularly for UI components and configuration. Things Learnt Custom dropdowns using CSS and JavaScript offer better cross-browser compatibility than styling native <select> elements. Theme variables significantly reduce the effort required for UI adjustments, especially as the project scales. Redirects in admin flows should be designed with user context in mind to avoid confusion."}, {"post_id": 34704, "ts": "2026-07-25T17:05:22Z", "hours": 1.6431, "text": "Project Summary: Admin & Infrastructure Progress Key Milestones & Features Built 🛠️ Admin Product Management UI : Added a full admin interface for product management, including preview capabilities, environment variable integration, and updated order flow logic. This enables admins to efficiently manage product listings and track orders. 🆓 Privacy Enhancements : Implemented a “hide PII” controller to anonymize user data in the UI, ensuring sensitive information is protected in user-facing tables. 🧪 Product Cost Handling : Validated GBP pricing logic for products, ensuring accurate cost handling in the British Pounds currency. 🛠️ CI/CD & Dependency Updates : Configured PostgreSQL in CI pipelines, updated database URLs, and bumped Ruby gem versions to ensure a stable, up-to-date environment. 🎨 Styling Cleanup : Replaced inline styles in admin views with stylesheet_link_tag imports, improving maintainability and separation of concerns. Current Status The project now has a functional admin dashboard for product and order management, with privacy features baked into user data displays. Infrastructure is PostgreSQL-ready in CI, and styling practices align with modern Rails conventions. Core e-commerce logic (pricing, currency) is under testing, with environment variables streamlining configuration. Lessons Learned Privacy by Design : Integrating PII protection early simplifies compliance and reduces technical debt. Infrastructure as Code : Automating PostgreSQL setup in CI saves manual effort and reduces environment inconsistencies. Maintainable Styles : Moving to external stylesheets improves collaboration and long-term code hygiene. Order Page Started Created a functional order page Currency Handling : Explicit GBP validation highlights the need for clear financial logic in order systems."}, {"post_id": 32945, "ts": "2026-07-22T13:01:39Z", "hours": 1.1947, "text": "Replace admin view inline styles with stylesheet_link_tag importsRemoved large embedded CSS from multiple admin templates and switched to external stylesheet links for consistency and maintainability."}, {"post_id": 32314, "ts": "2026-07-21T12:27:35Z", "hours": 0.3503, "text": "Add CurrencyConvertible include and cost conversion helpersInclude CurrencyConvertible in ApplicationHelper and Product, add cost_usd and cost_gbp methods, remove obsolete gbp_to_usd, usd_per_gbp and fetch_usd_conversion_rates, rename cost column comment, and adjust product inheritance."}, {"post_id": 32039, "ts": "2026-07-20T22:30:02Z", "hours": 1.2369, "text": "Update README, moved CSS files, fixed issues between pages (styling)Include planning file entry, revise README wording, and remove dashboard and notifications stylesheet files."}, {"post_id": 30900, "ts": "2026-07-18T21:33:53Z", "hours": 0.9747, "text": "feat(database): migrate from SQLite to PostgreSQL and switch to Redis infrastructure- replace sqlite3 with PostgreSQL database adapter in Gemfile and config configure Redis for caching, Action Cable, and Active Job instead of Solid adapters add guide attribute to User model for onboarding flow control implement user existence validation in ApplicationController refactor CSS architecture by moving stylesheets to components directory create shared designs.css stylesheet for design pages with responsive styling update todo partial to check guide flag before displaying onboarding prompts add migration for guide column on users table"}, {"post_id": 26210, "ts": "2026-07-10T21:30:31Z", "hours": 0.6197, "text": "Key Milestones & Features The project has made solid strides in building out core admin functionality and refining user interactions: Admin Controller Tests : Comprehensive tests for the dashboard, orders, and products controllers were added, ensuring reliability and laying groundwork for future expansions. Form Submission Control : A disable button feature was implemented in the design-form component to prevent multiple submissions, improving UX and reducing backend load. Dashboard Updates : The dashboard_controller.rb received updates (specifics pending documentation), likely enhancing core admin workflows. Current Status The admin interface is shaping up with test-covered controllers and polished frontend interactions. Testing prioritization suggests a focus on stability, while form improvements reflect attention to user-centric details. The project appears in an active development phase, with July 2026 commits indicating recent momentum. Things Learnt Test-Driven Practices : Adding controller tests early highlights the team’s emphasis on maintainable, scalable code. Form UX Nuances : Disabling submission buttons during processing is a small but impactful tweak to prevent errors and improve responsiveness. Documentation Gaps : The vague “Update dashboard_controller.rb” commit underscores the importance of descriptive commit messages for clarity in collaborative projects."}, {"post_id": 20347, "ts": "2026-07-01T22:27:04Z", "hours": 0.7008, "text": "fix(auth): update product params to include thread_cost instead of cost_gbp - replace deprecated cost_gbp parameter with thread_cost in product creation/update - adjust database migration to add thread_cost column to products table, added shop, added notification page"}, {"post_id": 19576, "ts": "2026-06-30T22:24:00Z", "hours": 1.3847, "text": "Used claude to brainstorm colour schemes and layouts. Created this new dashboard design and transitioned the rest of the site to follow the colour scheme"}, {"post_id": 13382, "ts": "2026-06-21T22:29:32Z", "hours": 0.6847, "text": "Add design image gallery with viewer page- Add image route, controller action, and full-size viewer template Add gallery grid on show page with hover overlays and timestamps Fix partial render syntax (collection with as: :image)"}, {"post_id": 12184, "ts": "2026-06-19T21:59:46Z", "hours": 2.8486, "text": "Summary Major update: background removal, UI improvements, model fixes, and CI stability. Changes Added RemoveBackgroundJob with rembg CLI for automatic background removal Created Image and DesignEditSession models; updated schema comments Added brand.css and regulated form partial for new/edit designs Added dark mode support and image preview scaling Enabled PostgreSQL extensions; switched dev DB to SQLite Removed stale migrations (verified, trust columns from users) Cleaned up model validations and associations Fixed CI test suite with updated fixtures Removed node_modules from git; added to .gitignore Removed unused editor and dashboard views Updated Gemfile/Gemfile.lock dependencies"}]...
|
Title: Issued YSWS by @Acidicts | Stardance
Devlo Title: Issued YSWS by @Acidicts | Stardance
Devlogs:
Summary Major update: background removal, UI improvements, model fixes, and CI stability. Changes Added RemoveBackgroundJob with rembg CLI for automatic background removal Created Image and DesignEditSession models; updated schema comments Added brand.css and regulated form partial for new/edit designs Added dark mode support and image preview scaling Enabled PostgreSQL extensions; switched dev DB to SQLite Removed stale migrations (verified, trust columns from users) Cleaned up model validations and associations Fixed CI test suite with updated fixtures Removed node_modules from git; added to .gitignore Removed unused editor and dashboard views Updated Gemfile/Gemfile.lock dependencies
Add design image gallery with viewer page- Add image route, controller action, and full-size viewer template Add gallery grid on show page with hover overlays and timestamps Fix partial render syntax (collection with as: :image)
Used claude to brainstorm colour schemes and layouts. Created this new dashboard design and transitioned the rest of the site to follow the colour scheme
fix(auth): update product params to include thread_cost instead of cost_gbp - replace deprecated cost_gbp parameter with thread_cost in product creation/update - adjust database migration to add thread_cost column to products table, added shop, added notification page
Key Milestones & Features The project has made solid strides in building out core admin functionality and refining user interactions: Admin Controller Tests : Comprehensive tests for the dashboard, orders, and products controllers were added, ensuring reliability and laying groundwork for future expansions. Form Submission Control : A disable button feature was implemented in the design-form component to prevent multiple submissions, improving UX and reducing backend load. Dashboard Updates : The dashboard_controller.rb received updates (specifics pending documentation), likely enhancing core admin workflows. Current Status The admin interface is shaping up with test-covered controllers and polished frontend interactions. Testing prioritization suggests a focus on stability, while form improvements reflect attention to user-centric details. The project appears in an active development phase, with July 2026 commits indicating recent momentum. Things Learnt Test-Driven Practices : Adding controller tests early highlights the team’s emphasis on maintainable, scalable code. Form UX Nuances : Disabling submission buttons during processing is a small but impactful tweak to prevent errors and improve responsiveness. Documentation Gaps : The vague “Update dashboard_controller.rb” commit underscores the importance of descriptive commit messages for clarity in collaborative projects.
feat(database): migrate from SQLite to PostgreSQL and switch to Redis infrastructure- replace sqlite3 with PostgreSQL database adapter in Gemfile and config configure Redis for caching, Action Cable, and Active Job instead of Solid adapters add guide attribute to User model for onboarding flow control implement user existence validation in ApplicationController refactor CSS architecture by moving stylesheets to components directory create shared designs.css stylesheet for design pages with responsive styling update todo partial to check guide flag before displaying onboarding prompts add migration for guide column on users table
Update README, moved CSS files, fixed issues between pages (styling)Include planning file entry, revise README wording, and remove dashboard and notifications stylesheet files.
Add CurrencyConvertible include and cost conversion helpersInclude CurrencyConvertible in ApplicationHelper and Product, add cost_usd and cost_gbp methods, remove obsolete gbp_to_usd, usd_per_gbp and fetch_usd_conversion_rates, rename cost column comment, and adjust product inheritance.
Replace admin view inline styles with stylesheet_link_tag importsRemoved large embedded CSS from multiple admin templates and switched to external stylesheet links for consistency and maintainability.
Project Summary: Admin & Infrastructure Progress Key Milestones & Features Built 🛠️ Admin Product Management UI : Added a full admin interface for product management, including preview capabilities, environment variable integration, and updated order flow logic. This enables admins to efficiently manage product listings and track orders. 🆓 Privacy Enhancements : Implemented a “hide PII” controller to anonymize user data in the UI, ensuring sensitive information is protected in user-facing tables. 🧪 Product Cost Handling : Validated GBP pricing logic for products, ensuring accurate cost handling in the British Pounds currency. 🛠️ CI/CD & Dependency Updates : Configured PostgreSQL in CI pipelines, updated database URLs, and bumped Ruby gem versions to ensure a stable, up-to-date environment. 🎨 Styling Cleanup : Replaced inline styles in admin views with stylesheet_link_tag imports, improving maintainability and separation of concerns. Current Status The project now has a functional admin dashboard for product and order management, with privacy features baked into user data displays. Infrastructure is PostgreSQL-ready in CI, and styling practices align with modern Rails conventions. Core e-commerce logic (pricing, currency) is under testing, with environment variables streamlining configuration. Lessons Learned Privacy by Design : Integrating PII protection early simplifies compliance and reduces technical debt. Infrastructure as Code : Automating PostgreSQL setup in CI saves manual effort and reduces environment inconsistencies. Maintainable Styles : Moving to external stylesheets improves collaboration and long-term code hygiene. Order Page Started Created a functional order page Currency Handling : Explicit GBP validation highlights the need for clear financial logic in order systems.
Dropdown Styling & Component Replacement The design form’s dropdown interface was overhauled to improve visual consistency and user experience. A native <select> element was replaced with a custom-styled solution using 3ab7405 , allowing for greater flexibility in aligning with the project’s aesthetic goals. This change ensures smoother integration with the overall theme and avoids browser-specific styling quirks. CSS Refactoring & Theme Variables Design form styling was fully refactored in 928b7b0 , introducing global theme variables to streamline color, spacing, and typography management. This move simplifies future theme adjustments and promotes code reuse. Model defaults were also standardized to reduce redundancy in form initialization logic, making the codebase more maintainable. Admin Test Redirects In 2af0071 , the admin test workflow was updated to automatically redirect to the products list URL after test submissions. This improves user navigation by providing immediate feedback and next steps, ensuring a cohesive backend experience. Current Status The frontend is now more thematically consistent, with design forms serving as a primary focus area. Admin workflows are being optimized for clarity and efficiency, though backend test processing logic remains pending integration. The codebase is gradually adopting a modular structure, particularly for UI components and configuration. Things Learnt Custom dropdowns using CSS and JavaScript offer better cross-browser compatibility than styling native <select> elements. Theme variables significantly reduce the effort required for UI adjustments, especially as the project scales. Redirects in admin flows should be designed with user context in mind to avoid confusion.
Add brand colors, badge styles, and redesign pagesAdd brand color variables, badge styles, and a full redesign of design pages with responsive layouts, fixed redirect stuff, optimised by using one erb engine call for designs
Rename admin-product to products and refactor CSS, controller, and views. Updated class names and CSS variables, added .no-product-grid and .dashed-break styles. Simplified image loading logic in the product preview controller, and replaced large inline layout styles with external stylesheet includes.
Improved the New Order Page to be neater, and better themed along the colour scheme
Created Printful API Integration and improved order screen to allow better customisations Add Printful import endpoint and order preview UI improvementsImplemented Printful product import, added order preview generation, UI styles, and controller changes for drag‑resize‑rotate preview.
Added Variants for size and colors with stock for each printful region facility. Stimulus target which groups the variants by colour and deletes empty groups
Print area management UI & backend ( a42a00d ): Built a full stack for managing print areas (think “where the design goes” on a shirt front or back). This includes models to store print area dimensions, controllers to handle CRUD ops, and RESTful routes to tie it all together. The frontend now lets users drag/drop to define print zones with responsive positioning ( position: absolute + transform: scale to handle dynamic sizing). Edge case: Products with multiple print areas (e.g., front + back) now render distinct configurations without clobbering state. Printful service & stock syncing ( 7b5d817 ): Added printful_id to product models to map Issued products to Printful’s inventory. UI updates to display Printful sync status (green checkmarks for success, red alerts for failures). Technical tangents The print area system was a slow make. For example: To ensure designs stay within printable bounds, I had to calculate dynamic margins based on product type (e.g., a hoodie’s print area ≠ a mug’s). This involved hacking some trigonometry into the frontend to snap selections to “safe zones.” On the backend, I’m using ActiveRecord callbacks to validate print area dimensions against product specs. If a user tries to set a print area wider than the product allows It raises a PrintAreaOutOfBounds error Future features The actual ship flow and being able to edit multiple print areas instead of just the one
Since the last update, I’ve focused on enhancing the order preview system to support complex design workflows and improving image navigation for multi-image configurations. Recent changes Added multi-image preview navigation with left/right arrow buttons and an index display (e.g., “Image 2 of 5”) to streamline design review workflows ( b269fe5 ). This change directly addresses the need to review multiple design iterations in a single view without page reloads. Refactored the order preview component to support multiple print areas with independently configurable design images. This involved restructuring the preview logic to handle dynamic print area definitions while maintaining consistent state across design selections ( 0545118 ). The refactor enables customers to visualize different designs on separate print areas (e.g., front/back/ sleeves) within the same order preview.
I’ve focused on refining the shop page styling, header positioning, and cost handling logic ( d10a9c51 ). The recent batch of work involved schema adjustments for a product enabled flag, adding support for cost and thread costs ( 82f9f2d1 ), applying a schema fix ( 3f8bcb8a ), fixing CI pipeline issues ( 71e98a ), and pushing updates to production ( ca19da29 ). Recent changes Added an image variants system and updated views to utilize thumb and display variants specifically ( a2e4eb28 ). Implemented cost handling updates, including a specific support for thread costs alongside general product cost tracking ( 82f9f2d1 ). Added an auto annotaterb script executed within the Rails migration process ( 7d07d278 ). Applied schema fixes to ensure data integrity during the recent updates ( 3f8bcb8a ). Updated the RSVP page styles and refreshed the thanks template ( 217945eb ). Refined header positioning and shop page styling across the frontend ( d10a9c51 ). Added a product enabled flag to control product visibility and state in the system ( 82f9f2d1 ). Whats next: Umm, so whats next I think would be adding balance_events so you can trace changes in balances(spending/earning)
Recent changes Added support for balance events and thread adjustments to improve financial tracking accuracy. This also included an update to the notification rendering system to safely handle these new data types without breaking existing templates (commit: ( faed39b57619 )). Fixed the positioning of the design box within the product editor. This specifically addresses display issues occurring when editing products via /admin/products/<id>/edit (commit: ( aa4e314b5dcd )).
Added Devlogs and changed hackatime projects to be multi model per design. Move hackatime project linkage from a single designs.hackatime_project column to a has_many hackatime_projects model, syncing each project’s time and aggregating totals on designs. Add devlogs, ship_requests, ships, and comments models/routes/views for design logging and shipping, and make balance_events polymorphic.Update designs controller, helpers, and views to render multiple project pills, allow adding/removing linked projects, and show a combined hackatime/image/devlog layout. Add redcarpet for Markdown rendering and adjust CSS for dark mode, responsive galleries, and pill controls. Added Devlogs and the prep for adding the shipping flow I added devlogs to the project in prep for the shipping flow
Recent changes Fixed a failure in the CI/CD pipeline commit Implemented status tracking for balance events and refined the underlying thread logic associated with them commit Refactored the token rendering component for render_encoded to allow {{design: design.id}} making a pill, to improve display fidelity and added an edit functionality for devlog entries commit Integrated support for uploading images directly within the devlog interface and established links to corresponding Hackatime projects commit
Recent changes Ship request flow and SVG conversion : Added support for processing ship requests, handling SVG conversions, and validating devlog images before submission 8ca9b5d9 . Nil safety for Hackatime projects : Wrapped the @hackatime_projects variable in an Array structure to prevent nil errors when retrieving project data a29691ff . CI environment and test ordering : Set RAILS_ENV=test for the CI setup process and reordered the sequence of test steps to improve execution reliability 2968d162 . Authorization consolidation : Refactored authorization guards and consolidated the linking logic for Hackatime projects 4c2b1836 .
Recent changes Add comments to devlogs and ship requests Implement polymorphic Comment model with CommentsController, Stimulus-driven collapsing comment box, markdown preview form, and styles. Comments will be rendered by Turbo frames and allow editing by owner/admin. This is what else is included in this change: Encryption of hackclub_access_token and hackclub_refresh_token through ActiveRecord encryption, including config, env sample and migration task for already existing non-encrypted tokens. SSL enforcement in production (assume_ssl, force_ssl). Update filter_parameters to strip out sensitive information and OAuth tokens from logs. Fix ExchangeRate API call to include Bearer authentication header. Sanitization of devlogs HTML output through SafeListSanitizer. Update Design#can_make_devlog to can_make_devlog? method and restrict can_ship? check to devlogs without ship request. Add SRI integrity attribute to marked/DOMPurify scripts loaded from CDNs. UI improvements: styles for disabled buttons, utility class for hover-underline effect, devlog cards layout and info icons.
Recent changes Comment delete, Turbo Comment Box, and ship request fade functionality Add #destroy functionality to the comments with owner permission, path, delete button, and dependent comments. Make use of valid commentable_type/id while building comments and make responses as Turbo streams and wrap up comments within a Turbo frame. Resize the comment box according to the content changes detected by the MutationObserver. Make ship request modal and overlay fade in and out. Consider higher level ship request as blockers for all ship requests. Comment card and comment list styling.
Recent changes Added ship request reviews, resubmission logic, and R2 storage integration for tracking reviewed submissions ( 41b1e43 ). Started on the review workflow Started on Resubmission logic Set up support for cloudflare R2 Guarded Hack Club token persistence behind encryption configuration, ensuring tokens are only stored when encryption is explicitly enabled ( a4b6d0c ).
Made Notifications Useful Recent changes Persistent unread state for unanswered boolean notifications Notifications with unresolved boolean actions (e.g., approvals) now remain marked as unread until explicitly addressed. This ensures users revisit pending decisions. Commit: 39aabb2 . Interactive notification replies with approval time tracking Added support for direct replies to notifications, along with timestamp logging for when approvals are finalized. This enables granular tracking of response times for actionable alerts. Commit: 6ac80f9 .
## Recent changes Notifications: Unanswered notifications now retain their unread status until explicitly addressed. This ensures users can distinguish between pending and resolved interactions without relying on manual state updates ( 751a370 ). Security: Authentication workflows, file uploads, and resource authorization checks have been updated with additional safeguards. Specifics include input validation and access control refinements, though implementation details are not disclosed in the commit message ( 97e48db ).
Recent changes - Installed Bundler 4.0.4 in the Dockerfile to standardize gem management across environments ( 88ba659 ). - Ensured the verification directory exists for SVG upload tests, addressing missing file system setup in test workflows ( 83f2e53 ). - Resolved a Turbo conflict in order steps, likely related to event streaming or frame rendering in Rails views ( e8d08f4 ). Updated navigation unread counts dynamically from notification events, improving real-time feedback for user activity ( a75f6ff ).
Deploying on coolify and fixing bugs with that + encrypting current db
I created the fulfilment system for a fulfilment team to use Recent changes Removed redundant save! calls and updated fulfillment tests to reduce unnecessary database operations and align test logic with current behavior 9acc056 . Added a fulfillment role, batch pipeline, and popup controller to support new workflow automation and UI interactions afa7a20 . The popup controller likely handles transient UI elements like notifications or modals. Fixed a crash in /designs preview rendering by resolving an issue blocking Ruby scan/lint CI, ensuring previews no longer fail unexpectedly ( 911f035 ). Corrected a stray question mark in a design preview image tag to prevent malformed HTML output ( 955dd6c ). Added a note about YSWS draft sponsorship documentation, possibly for tracking external partnerships or funding discussions ( d92d571 ). No performance optimizations or subsystem overhauls were addressed in this cycle. Next steps depend on external feedback and test coverage improvements implied by recent test updates.
Ships:
Shipped!!! There are a bunch of features and stuff that I have added to this since flavortown, from the ordering system to devlogs and ship flow. Project Info This is the ruby on rails app for the ysws draft #issued where YS: Designs made with Code WS: Clothes and other swag with those designs Features added: A bunch of features have been added and I have separated them to 3 categories Major ones for functionality, quality of life for feel and use, security for data security. New Major Features: Designs view now is more detailed including hackatime projects and images from devlogs and ships Ship flow system so you can submit to the ysws Product Design system (admin only - for making the shop items by importing from printful via api) Order system using lots of hotwired turbo (choose color, design placement rotation and scale) Notifications (3 types Normal which provides info and 2 others Boolean which gets a yes or no answer and text which gets a written answer Reviewer Panel which shows pending ships to review with some data on (need to add hackatime info for it though) Storing Reviewer proof videos in a cloudflare R2 storage Quality-Of-Life: Added better UI/UX with some issues with need for ironing out (eg font change from workbench to ‘lexend’ and ‘space mono’ Kept a consistent style through the site, although some panels might need better border colour On login it redirects to the page you logged in by Security: I added User DB encryption to protect user data stored on the postgres database instance, such as name and email Summary Made the functional part of the ysws site (Designs, ordering, shipping) Added more security for user data Improved UI(Font and colour scheme)...
|
1793152180.3656843
|
1793238580.3656843
|
|
14537
|
Mana Rune by @Mo | Stardance
|
Mo
|
1
|
51.26
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-09T22:53:50Z", "hours": 51.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a data and texture pack for minecraft. I was a big project that added at least 49 custom items and a ton of custom textures, dimensions, advancements, and much more. The texture pack and playtesting were not counted in the hour count, but i’m guessing the total would be 150-200 hours. I hope anyone seeing this thinks that it is cool, even if they don’t play it.", "repo": "https://github.com/Im-not-a-banana/Mana-Rune", "demo": "https://onedrive.live.com/?sw=bypass&bypassReason=abandoned&qt=allmyphotos&photosData=%2Fshare%2FEFB52E9CE6833146%21s49e637cbd5b94cc5adf98c94f5ef94dc%3Fithint%3Dvideo%26e%3DfIjwP7%26migratedtospo%3Dtrue&cid=EFB52E9CE6833146&id=EFB52E9CE6833146%21s49e637cbd5b94cc5adf98c94f5ef94dc&redeem=aHR0cHM6Ly8xZHJ2Lm1zL3YvYy9lZmI1MmU5Y2U2ODMzMTQ2L0lRRExOLVpKdWRYRlRLMzVqSlQxNzVUY0FUX2pSVE5OcmZjM1BwOEZmc01SN2NjP2U9Zklqd1A3&startedResponseCatch=true&v=photos"}]...
|
[{"post_id": 26188, "ts": "202 [{"post_id": 26188, "ts": "2026-07-10T20:49:49Z", "hours": 0.255, "text": "I fixed a few minor things before finally being finished, such as all of the information about it, music playing too frequently in custom dimensions, and the player being able to get an infinite supply of amulets of class if they check the general information after level 4. This is my final devlog, and I know I haven’t been deoing too many. I just do them after fully finishing and polishing major features. Happy coding :)"}, {"post_id": 25486, "ts": "2026-07-09T19:54:15Z", "hours": 29.24, "text": "I finally finished. I added a lot of new features, like all of the archer amulets. I also finished the Info system and all custom advancements. The picture shows only about a third of them."}, {"post_id": 14553, "ts": "2026-06-23T18:32:55Z", "hours": 19.9692, "text": "I’m adding four (maybe +) custom biomes and two (maybe+) dimensions. I also added custom enchantements, sitting, and lots of more custom items with custom textures."}, {"post_id": 6503, "ts": "2026-06-10T22:38:12Z", "hours": 2.0472, "text": "Some of the features and most of the custom items in my data/texture pack."}]...
|
Title: Mana Rune by @Mo | Stardance
Devlogs:
Some Title: Mana Rune by @Mo | Stardance
Devlogs:
Some of the features and most of the custom items in my data/texture pack.
I’m adding four (maybe +) custom biomes and two (maybe+) dimensions. I also added custom enchantements, sitting, and lots of more custom items with custom textures.
I finally finished. I added a lot of new features, like all of the archer amulets. I also finished the Info system and all custom advancements. The picture shows only about a third of them.
I fixed a few minor things before finally being finished, such as all of the information about it, music playing too frequently in custom dimensions, and the player being able to get an infinite supply of amulets of class if they check the general information after level 4. This is my final devlog, and I know I haven’t been deoing too many. I just do them after fully finishing and polishing major features. Happy coding :)
Ships:
I made a data and texture pack for minecraft. I was a big project that added at least 49 custom items and a ton of custom textures, dimensions, advancements, and much more. The texture pack and playtesting were not counted in the hour count, but i’m guessing the total would be 150-200 hours. I hope anyone seeing this thinks that it is cool, even if they don’t play it....
|
1793245954.015377
|
1793332354.015377
|
|
14538
|
Hangman by @IronHawk109 | Stardance
|
IronHawk109
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-14T13:55:56Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "My project is a Hangman game. It was challenging at first, but when the basic structure was done it was easy to add extra things to it. Before you play the game, it has a few words already saved but more words and categories can be added by pressing the add button. Any new words and categories added will be saved to a text file so you will have a list that can be continuously expanded. In order to run the game the zip file has to be downloaded and then extracted. At this point, when the zip file is extracted, open the extracted folder. If the name of the folder ends in .exe then you may have a blue window pop up. At the bottom of that window click on more info and then click on run anyway. However, if this does not pop then you will need Microsoft visual studio. When you click into the extracted folder, you will see something that ends in .sln. Click on this to open the game in visual studio, and then when everything is loaded, click on the start button at the top. This should also work on a Apple computer by running the game using visual studio. Enjoy!", "repo": "https://github.com/IronHawk109/Hangman", "demo": "https://drive.google.com/file/d/1rwlQsCC38BlQ_y91eoONUHr-6IjrytVh/view?usp=sharing"}]...
|
[{"post_id": 14663, "ts": "202 [{"post_id": 14663, "ts": "2026-06-23T21:02:46Z", "hours": 0.25, "text": "Hangman game built using visual basic."}]...
|
Title: Hangman by @IronHawk109 | Stardance
Devlog Title: Hangman by @IronHawk109 | Stardance
Devlogs:
Hangman game built using visual basic.
Ships:
My project is a Hangman game. It was challenging at first, but when the basic structure was done it was easy to add extra things to it. Before you play the game, it has a few words already saved but more words and categories can be added by pressing the add button. Any new words and categories added will be saved to a text file so you will have a list that can be continuously expanded. In order to run the game the zip file has to be downloaded and then extracted. At this point, when the zip file is extracted, open the extracted folder. If the name of the folder ends in .exe then you may have a blue window pop up. At the bottom of that window click on more info and then click on run anyway. However, if this does not pop then you will need Microsoft visual studio. When you click into the extracted folder, you will see something that ends in .sln. Click on this to open the game in visual studio, and then when everything is loaded, click on the start button at the top. This should also work on a Apple computer by running the game using visual studio. Enjoy!...
|
1793202697.7840393
|
1793289097.7840393
|
|
14548
|
PhoebOS: Digital temple of Apollo by @Icky_Vicky | PhoebOS: Digital temple of Apollo by @Icky_Vicky | Stardance...
|
Icky_Vicky
|
1
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T03:10:31Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a WebOS with a functional clock in the top bar, an app that links to a list of reading material, and a work in progress weather app!", "repo": "https://github.com/IckyVicky-real/PhoebOS", "demo": "https://ickyvicky-real.github.io/PhoebOS/"}]...
|
[{"post_id": 73439, "ts": "202 [{"post_id": 73439, "ts": "2026-09-25T02:59:08Z", "hours": 8.1939, "text": "I sorta forgot to post devlogs I was I working oops. I succesfully built several functional windows, made my simple app that linked to a list of reading material, and then the only thing I had left to do was build my complex app. The complex app I decided to build was a weather app. Over the past roughly two weeks of work I managed to complete a fully functional weather app that was based off a free API tracker that I found that was made specifically for weather apps like mine. I say all of this in past tense because, as of yesterday at the time I am posting this devlog, that API tracker shut down without warning. As a result of this, the entirety of the 8h 11m devlog I am posting will have absolutely nothing to show for it. Needless to say this is extremely frustrating, and I am hoping that whoever is reading this will see how hard I tried on that app and consider my WebOS 1 project finished enough. After losing what is essentially all of my progress, I have decided to spend the last week off this event focusing on other projects. I understand that I have not done what this mission asked of me, but I hope you understand that I tried my absolute hardest."}, {"post_id": 63285, "ts": "2026-09-07T01:04:06Z", "hours": 0.4731, "text": "I tried separating the time and date from the window, but I haven’t figured it out yet :b. I also changed the window position to the center and changed the border tyep"}, {"post_id": 63268, "ts": "2026-09-07T00:27:29Z", "hours": 1.2722, "text": "I am working on a web OS that will act as a digital temple to the Greek god Apollo! So far I’ve only added a title page with a clock that updates every second."}]...
|
Title: PhoebOS: Digital temple of Apollo by @Icky_ Title: PhoebOS: Digital temple of Apollo by @Icky_Vicky | Stardance
Devlogs:
I am working on a web OS that will act as a digital temple to the Greek god Apollo! So far I’ve only added a title page with a clock that updates every second.
I tried separating the time and date from the window, but I haven’t figured it out yet :b. I also changed the window position to the center and changed the border tyep
I sorta forgot to post devlogs I was I working oops. I succesfully built several functional windows, made my simple app that linked to a list of reading material, and then the only thing I had left to do was build my complex app. The complex app I decided to build was a weather app. Over the past roughly two weeks of work I managed to complete a fully functional weather app that was based off a free API tracker that I found that was made specifically for weather apps like mine. I say all of this in past tense because, as of yesterday at the time I am posting this devlog, that API tracker shut down without warning. As a result of this, the entirety of the 8h 11m devlog I am posting will have absolutely nothing to show for it. Needless to say this is extremely frustrating, and I am hoping that whoever is reading this will see how hard I tried on that app and consider my WebOS 1 project finished enough. After losing what is essentially all of my progress, I have decided to spend the last week off this event focusing on other projects. I understand that I have not done what this mission asked of me, but I hope you understand that I tried my absolute hardest.
Ships:
I made a WebOS with a functional clock in the top bar, an app that links to a list of reading material, and a work in progress weather app!...
|
1793148693.7008598
|
1793235093.7008598
|
|
14549
|
brainrotOS by @franco | Stardance
|
franco
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T20:29:25Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hey, i’ve made an operating system called BrainrotOS yeah…. It has 4 main apps: Welcome Weather Zero Paloma Clicker I am not proud of the project idea but ive advanced way to much. sorry for making you review this. 🥀", "repo": "https://github.com/Franco-Senes/BrainrotOS", "demo": "https://franco-senes.github.io/BrainrotOS/"}]...
|
[{"post_id": 9461, "ts": "2026 [{"post_id": 9461, "ts": "2026-06-15T20:24:57Z", "hours": 0.3458, "text": "Made the windows smoother and also fixed some bugs"}, {"post_id": 9438, "ts": "2026-06-15T19:57:14Z", "hours": 0.4631, "text": "finished the os add weather and my personal portfolio i hate this project 🥀😭"}, {"post_id": 5953, "ts": "2026-06-09T23:33:03Z", "hours": 0.3744, "text": "what is this 😭🥀"}]...
|
Title: brainrotOS by @franco | Stardance
Devlogs: Title: brainrotOS by @franco | Stardance
Devlogs:
what is this 😭🥀
finished the os add weather and my personal portfolio i hate this project 🥀😭
Made the windows smoother and also fixed some bugs
Ships:
Hey, i’ve made an operating system called BrainrotOS yeah…. It has 4 main apps: Welcome Weather Zero Paloma Clicker I am not proud of the project idea but ive advanced way to much. sorry for making you review this. 🥀...
|
1793137900.1091137
|
1793224300.1091137
|
|
14558
|
Blender Donut by @anabelleahteck | Stardance
|
anabelleahteck
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T17:09:47Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Blender Donut and Coffee Mug following Blender Guru’s Beginner Blender Tutorial (2026) on YouTube. It was challenging because I previously only knew how to model in Fusion360 and Blender is a lot different than Fusion360, but it was fun to see the final result come together! This is the first step in my Blender journey, since I originally wanted to learn Blender so I can 3D model and print more cosplay props!", "repo": "https://github.com/AnabelleA53/blender-projects", "demo": ""}]...
|
[{"post_id": 17705, "ts": "202 [{"post_id": 17705, "ts": "2026-06-28T16:50:02Z", "hours": 2.5003, "text": "I finished the Blender Donut! Primarily done since I was only aiming to learn core 3D modeling skills since I want to model more cosplay props, which I though Blender would allow me to do because of the accessibility of its organic modeling. Today I finished by editing the mug thickness, making a plate for the donut, and adding a table for everything to sit on. I also learned more about proportional editing and sculpting in order to make certain parts of the icing more dense, and latticing to manipulate and object’s thickness after it was already made. Afterwards, I learned how to apply textures via both an image and a PBR texture pack and UV Editing. I also added another face in the coffee mug so it actually has coffee. And finally, I took some renders of the scene both with and without textures, which you can see below."}, {"post_id": 17330, "ts": "2026-06-28T02:19:28Z", "hours": 2.0169, "text": "Making a donut in blender for the first time! I’m currently learning how to use Blender and am following the Beginner Blender Tutorial (2026) from Blender Guru on YouTube. Today, I was able to learn a ton of new things from putting down a shape to modifying it to make it more realistic. I was pretty surprised how fast I got into organic modeling since I’ve only used Fusion360 before. Usually organic modeling is the bane of my existence on there, but here, it just requires a lot of patience. I feel like Blender is a bit more easy to use but it just has a ton of features that I don’t know about. I also learned about modifiers. They’re really interesting because they give your objects some sort of property before you apply it to become a real thing. It’s pretty cool. Next time I’ll continue the tutorial and hopefully finish it."}]...
|
Title: Blender Donut by @anabelleahteck | Stardanc Title: Blender Donut by @anabelleahteck | Stardance
Devlogs:
Making a donut in blender for the first time! I’m currently learning how to use Blender and am following the Beginner Blender Tutorial (2026) from Blender Guru on YouTube. Today, I was able to learn a ton of new things from putting down a shape to modifying it to make it more realistic. I was pretty surprised how fast I got into organic modeling since I’ve only used Fusion360 before. Usually organic modeling is the bane of my existence on there, but here, it just requires a lot of patience. I feel like Blender is a bit more easy to use but it just has a ton of features that I don’t know about. I also learned about modifiers. They’re really interesting because they give your objects some sort of property before you apply it to become a real thing. It’s pretty cool. Next time I’ll continue the tutorial and hopefully finish it.
I finished the Blender Donut! Primarily done since I was only aiming to learn core 3D modeling skills since I want to model more cosplay props, which I though Blender would allow me to do because of the accessibility of its organic modeling. Today I finished by editing the mug thickness, making a plate for the donut, and adding a table for everything to sit on. I also learned more about proportional editing and sculpting in order to make certain parts of the icing more dense, and latticing to manipulate and object’s thickness after it was already made. Afterwards, I learned how to apply textures via both an image and a PBR texture pack and UV Editing. I also added another face in the coffee mug so it actually has coffee. And finally, I took some renders of the scene both with and without textures, which you can see below.
Ships:
I made a Blender Donut and Coffee Mug following Blender Guru’s Beginner Blender Tutorial (2026) on YouTube. It was challenging because I previously only knew how to model in Fusion360 and Blender is a lot different than Fusion360, but it was fun to see the final result come together! This is the first step in my Blender journey, since I originally wanted to learn Blender so I can 3D model and print more cosplay props!...
|
1793138129.9165988
|
1793224529.9165988
|
|
14576
|
Tuxpad! by @jacob_g | Stardance
|
jacob_g
|
1
|
9.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-23T17:29:08Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "The Tuxpad is a 6-key macropad with an OLED display, neopixel light bar, and circuitpython firmware, designed to simplify repetitive tasks. Building this project gave me a fun way to learn PCB design in Kicad and practice my skills in Python and Onshape. I have to ship it to get the parts to actually build it, so no video yet :( But the feature I’m most looking forward to is the neopixel bar, I’m planning on making some pretty awesome adaptive light patterns with it!", "repo": "https://github.com/JacobG-774/hackpad", "demo": ""}]...
|
[{"post_id": 13487, "ts": "202 [{"post_id": 13487, "ts": "2026-06-22T02:40:10Z", "hours": 3.9425, "text": "Been a while since my last devlog but I finished designing the case and a first draft of the firmware. No huge challenges with the case, I’m not super confident in my alignment on everything but I think it should work. Writing firmware was fairly difficult due to limited documentation for circuitpython, but I was able to find some sources and miiight have used a few VScode inline suggestions. While procrastinating on that firmware, I made a nice little render of the hackpad in tinkercad… yes… tinkercad, because onshape doesn’t support STL files in the ways I needed it to. Anyways once I finish uploading everything to the github repo I should be ready to submit!"}, {"post_id": 11070, "ts": "2026-06-18T03:24:05Z", "hours": 2.5647, "text": "Finished the PCB yesterday and now I’m just working on the case. Had to reroute traces many times because my circuit is a bit complex. I enjoy electrical/software design more so unfortunately the case has been a bit of a struggle for motivation, but I still got most of the bottom half done. I also spent way more than the hour I logged trying to figure out complex ways to mount the PCB before deciding to just screw it to the bottom. I guess simple is better, and if not it will at least save me some sanity lol"}, {"post_id": 9688, "ts": "2026-06-16T03:10:19Z", "hours": 2.6828, "text": "Finished making schematics and started actually designing the PCB (aligned components and started traces.) This was my first time using Kicad so there was a slight learning curve, but not as much as I expected. I decided not to use matrix wiring on the switches as it would only save 1 pin. Also took a while to figure out which symbols and footprints to use, but I think I got them right. Had to do some back-of-napkin math to make sure the board has enough current to power all my LEDS, which hopefully will look pretty cool in a ring around the hackpad!"}]...
|
Title: Tuxpad! by @jacob_g | Stardance
Devlogs:
F Title: Tuxpad! by @jacob_g | Stardance
Devlogs:
Finished making schematics and started actually designing the PCB (aligned components and started traces.) This was my first time using Kicad so there was a slight learning curve, but not as much as I expected. I decided not to use matrix wiring on the switches as it would only save 1 pin. Also took a while to figure out which symbols and footprints to use, but I think I got them right. Had to do some back-of-napkin math to make sure the board has enough current to power all my LEDS, which hopefully will look pretty cool in a ring around the hackpad!
Finished the PCB yesterday and now I’m just working on the case. Had to reroute traces many times because my circuit is a bit complex. I enjoy electrical/software design more so unfortunately the case has been a bit of a struggle for motivation, but I still got most of the bottom half done. I also spent way more than the hour I logged trying to figure out complex ways to mount the PCB before deciding to just screw it to the bottom. I guess simple is better, and if not it will at least save me some sanity lol
Been a while since my last devlog but I finished designing the case and a first draft of the firmware. No huge challenges with the case, I’m not super confident in my alignment on everything but I think it should work. Writing firmware was fairly difficult due to limited documentation for circuitpython, but I was able to find some sources and miiight have used a few VScode inline suggestions. While procrastinating on that firmware, I made a nice little render of the hackpad in tinkercad… yes… tinkercad, because onshape doesn’t support STL files in the ways I needed it to. Anyways once I finish uploading everything to the github repo I should be ready to submit!
Ships:
The Tuxpad is a 6-key macropad with an OLED display, neopixel light bar, and circuitpython firmware, designed to simplify repetitive tasks. Building this project gave me a fun way to learn PCB design in Kicad and practice my skills in Python and Onshape. I have to ship it to get the parts to actually build it, so no video yet :( But the feature I’m most looking forward to is the neopixel bar, I’m planning on making some pretty awesome adaptive light patterns with it!...
|
1793267611.7456114
|
1793354011.7456114
|
|
14659
|
Voice-Controlled Pen Plotter by @Papas | Stardance
|
Papas
|
1
|
12.0
|
60
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-12T03:50:18Z", "hours": 12.0, "multiplier": 5.0, "payout": 60, "blessing": "neutral", "text": "I made a voice controlled pen plotter that writes down whatever you want! This is my first ever hardware project (and also the first time coding for a physical thing), so it was a great learning experience! I faced quite a lot of bugs and challenges, (shown in my develops), but I overcome them. There are a lot more demo videos linked on my Github, so please go check them out! This project also doubles as my outpost submission. I have many more ideas to add, but for now, I hope you all like it!", "repo": "https://github.com/Papas12213/Voice-Script", "demo": ""}]...
|
[{"post_id": 26890, "ts": "202 [{"post_id": 26890, "ts": "2026-07-11T22:55:28Z", "hours": 4.3208, "text": "Ready to Ship! I’ve fixed a huge bug I had where the machine would only work every other time (It was a soft limits problem). It’s a good thing I caught this since it was very random. If the user tried to write again, the plotter would like freak out and make this ugly noise and send a ton of errors. Turns out it was because it thought it was homed. Since the motors were still moving, it wouldn’t home, and it would think that it hit its soft limits. Besides fixing this bug, I also added the following: Longer speech recognition and more time to talk. Sometimes the microphone would stop before you finished talking. Finished my readme file on Github and posted my 2 versions of the laser head on Printables! The link is here . Added some delays to prevent motors from overflowing and added clearer instructions. Took some videos of the plotter in action, will be uploaded on my GitHub soon! This is my submission for outpost as well! I spend quite a lot of time in my readme, so I would really appreciate it if ya’ll could give m some feedback or anything I could change. It’s my first time posting on my GitHub and using Git, so any advice is appreciated. Thanks! (note: gif doesn’t appear to work but it is the same gif as in my GitHub)"}, {"post_id": 25173, "ts": "2026-07-09T06:58:44Z", "hours": 4.1736, "text": "1st official working version of my code! I have added a ton of things, so I’ll listen them out in order of importance: I updated the code to make the plotter continue writing even when reaching the end! It will move down and continue writing there, allowing the user to say much longer sentences. Its only limit is the actual space (150mm x 150mm), but more words can fit if the font size is changed. I spent some more time at my local library and updated the pen holder! While the original holder worked, the screw I used to lock in the pen either forced the pen too deep into the paper, or forced it to scrape the paper. This made the writing look really ugly. I changed it to now use the weight of the pen as the holder! Essentially, the pen is holding itself down, making the writing much smoother. Debugged and simplified a good portion of my code! Since I added the ability for the plotter to continue writing, I had to change the way g-code was sent. After a bit of learning, I was able to make my code much more efficient. This also allowed for the code to sent 1 by 1, giving the plotter time to move. Originally, it would get overflowed with code and would start to scribble. Downloaded git and creating a Github for my plotter! I honestly knew nothing about git or GitHub, and I somehow deleted my entire folder, alongside my code. Luckily, I had copied and pasted my code into a repository, so I was saved there. I’m currently working on the GitHub page, but it should be done very soon and I will be ready to ship! And hopefully qualify for Outpost! While the base product is done, I have a ton of ideas to add. This project was originally built to allow my disabled niece to write. While it allows her to take physical notes, the need for a computer and an IDE like VScode takes away from the accessibility. Because of this, my main idea is to connect the plotter to a raspberry pi (or any sort of microcontroller) to allow the user to just click a button when wanting to use the machine. Not only would this make the process much easier to understand, but it would erase the huge cable mess I currently have when connecting my MacBook to the machine. I have much more stuff to add, so please let me know any ideas or feedback! This is my first time actually using code for something physical, so it was definitely a great learning experience. I hope I can take this project much, much further. (Much more photos + videos will be uploaded to the GitHub!!)"}, {"post_id": 23837, "ts": "2026-07-07T00:42:24Z", "hours": 1.3753, "text": "This Devlog is from a day ago, I just realized I never hit post 😭 I got my software to work! While it’s fairly simple, it can write basic phrases. I used python for my script, and I primarily used googles “speech recognition” library for the voice detection. Then, using the Hershey fonts library and a function, I was able to convert the string of text into g-code that would then be sent to the printer (This part took a while to figure out). Currently, since my plotter doesn’t have a z-axis, I figured that using the cursive font would work best since there is not much lifting in cursive. I also went to my local library to use their computers fusion software to designa pen holder (My Mac refuses to download fusion for some reason, it’s always unresponsive). I added the photos below (Since this was on a library computer the blocks screen recording, I’m not able to record my time with timelapse. The design took me around 2 hours though since I’m not the best with fusion 360) While it definitely could be improved, it works for now. Additionally, I made it so that the size of the letters vary on the amount of letters said. For example, if I say a long sentence that would normally extend past the paper, the code will scale this sentence down until it fits onto the paper. Now, the basics to my project are finally done! There’s still so much to improve upon, but the idea works. For now, I’d like to add: code that will make the plotter write more than 1 sentence. (This would require it to move down the paper, which would drag the pen across the paper, so I gotta figure something out) A way to click/unclick the pen OR a way to move the pen up a down. A super simple z-axis A better pen holder, sometimes this one doesn’t write as well. I’ll be back at the library. Try and get the code onto a raspberry pi or arduino (Don’t know which would nworkbetter) To erase the need for a computer."}, {"post_id": 20569, "ts": "2026-07-02T05:44:26Z", "hours": 0.5572, "text": "Took me a while to figure out that I need to write the g-code in a separate area and that the software wouldn’t actually work as an IDE (Like I thought it did). After some annoying code, I got it to draw a heart! (ignore the blotching I left the sharpie uncapped and was moving the axis’s around) Also, since it doesn’t have a z-axis, it drags everywhere (hence the long line). Now I need to make a pen holder since my zip tie is (barely) holding it down."}, {"post_id": 20521, "ts": "2026-07-02T04:20:30Z", "hours": 1.6025, "text": "Finally configured the laser printer I found on the side of the road. I’m guessing either the PCB or the motors are damaged since the machine basically has a mind of its own. Sometimes, the Y-axis controls need to be inverted, and other times, the x-axis controls need to be inverted. I think I found the sweet spot this time though. (Maybe this was on my part too since I barely know the $ commands) My pen plotter can now: Move in the direction told WITHOUT triggering an alarm Successfully Home itself (It would go to the other end and make the most gruesome sound) Move the actual distance shown (Would move 0.8mm and think it moved 1mm). - Doesn’t send power to z axis! (Doesn’t have one). Recognize soft limits and restrict its movement if the code goes beyond the machines size. I’m barely getting started with this too. Now, I need to send it some G-code and see how it writes. Also, I need to make a custom pen holder to mount the pencil/pen. Gonna have to use Thinkercad. Also gotta figure out how I’m gonna get it to translate words into G-code, but it’s 1 step at a time."}]...
|
Title: Voice-Controlled Pen Plotter by @Papas | St Title: Voice-Controlled Pen Plotter by @Papas | Stardance
Devlogs:
Finally configured the laser printer I found on the side of the road. I’m guessing either the PCB or the motors are damaged since the machine basically has a mind of its own. Sometimes, the Y-axis controls need to be inverted, and other times, the x-axis controls need to be inverted. I think I found the sweet spot this time though. (Maybe this was on my part too since I barely know the $ commands) My pen plotter can now: Move in the direction told WITHOUT triggering an alarm Successfully Home itself (It would go to the other end and make the most gruesome sound) Move the actual distance shown (Would move 0.8mm and think it moved 1mm). - Doesn’t send power to z axis! (Doesn’t have one). Recognize soft limits and restrict its movement if the code goes beyond the machines size. I’m barely getting started with this too. Now, I need to send it some G-code and see how it writes. Also, I need to make a custom pen holder to mount the pencil/pen. Gonna have to use Thinkercad. Also gotta figure out how I’m gonna get it to translate words into G-code, but it’s 1 step at a time.
Took me a while to figure out that I need to write the g-code in a separate area and that the software wouldn’t actually work as an IDE (Like I thought it did). After some annoying code, I got it to draw a heart! (ignore the blotching I left the sharpie uncapped and was moving the axis’s around) Also, since it doesn’t have a z-axis, it drags everywhere (hence the long line). Now I need to make a pen holder since my zip tie is (barely) holding it down.
This Devlog is from a day ago, I just realized I never hit post 😭 I got my software to work! While it’s fairly simple, it can write basic phrases. I used python for my script, and I primarily used googles “speech recognition” library for the voice detection. Then, using the Hershey fonts library and a function, I was able to convert the string of text into g-code that would then be sent to the printer (This part took a while to figure out). Currently, since my plotter doesn’t have a z-axis, I figured that using the cursive font would work best since there is not much lifting in cursive. I also went to my local library to use their computers fusion software to designa pen holder (My Mac refuses to download fusion for some reason, it’s always unresponsive). I added the photos below (Since this was on a library computer the blocks screen recording, I’m not able to record my time with timelapse. The design took me around 2 hours though since I’m not the best with fusion 360) While it definitely could be improved, it works for now. Additionally, I made it so that the size of the letters vary on the amount of letters said. For example, if I say a long sentence that would normally extend past the paper, the code will scale this sentence down until it fits onto the paper. Now, the basics to my project are finally done! There’s still so much to improve upon, but the idea works. For now, I’d like to add: code that will make the plotter write more than 1 sentence. (This would require it to move down the paper, which would drag the pen across the paper, so I gotta figure something out) A way to click/unclick the pen OR a way to move the pen up a down. A super simple z-axis A better pen holder, sometimes this one doesn’t write as well. I’ll be back at the library. Try and get the code onto a raspberry pi or arduino (Don’t know which would nworkbetter) To erase the need for a computer.
1st official working version of my code! I have added a ton of things, so I’ll listen them out in order of importance: I updated the code to make the plotter continue writing even when reaching the end! It will move down and continue writing there, allowing the user to say much longer sentences. Its only limit is the actual space (150mm x 150mm), but more words can fit if the font size is changed. I spent some more time at my local library and updated the pen holder! While the original holder worked, the screw I used to lock in the pen either forced the pen too deep into the paper, or forced it to scrape the paper. This made the writing look really ugly. I changed it to now use the weight of the pen as the holder! Essentially, the pen is holding itself down, making the writing much smoother. Debugged and simplified a good portion of my code! Since I added the ability for the plotter to continue writing, I had to change the way g-code was sent. After a bit of learning, I was able to make my code much more efficient. This also allowed for the code to sent 1 by 1, giving the plotter time to move. Originally, it would get overflowed with code and would start to scribble. Downloaded git and creating a Github for my plotter! I honestly knew nothing about git or GitHub, and I somehow deleted my entire folder, alongside my code. Luckily, I had copied and pasted my code into a repository, so I was saved there. I’m currently working on the GitHub page, but it should be done very soon and I will be ready to ship! And hopefully qualify for Outpost! While the base product is done, I have a ton of ideas to add. This project was originally built to allow my disabled niece to write. While it allows her to take physical notes, the need for a computer and an IDE like VScode takes away from the accessibility. Because of this, my main idea is to connect the plotter to a raspberry pi (or any sort of microcontroller) to allow the user to just click a button when wanting to use the machine. Not only would this make the process much easier to understand, but it would erase the huge cable mess I currently have when connecting my MacBook to the machine. I have much more stuff to add, so please let me know any ideas or feedback! This is my first time actually using code for something physical, so it was definitely a great learning experience. I hope I can take this project much, much further. (Much more photos + videos will be uploaded to the GitHub!!)
Ready to Ship! I’ve fixed a huge bug I had where the machine would only work every other time (It was a soft limits problem). It’s a good thing I caught this since it was very random. If the user tried to write again, the plotter would like freak out and make this ugly noise and send a ton of errors. Turns out it was because it thought it was homed. Since the motors were still moving, it wouldn’t home, and it would think that it hit its soft limits. Besides fixing this bug, I also added the following: Longer speech recognition and more time to talk. Sometimes the microphone would stop before you finished talking. Finished my readme file on Github and posted my 2 versions of the laser head on Printables! The link is here . Added some delays to prevent motors from overflowing and added clearer instructions. Took some videos of the plotter in action, will be uploaded on my GitHub soon! This is my submission for outpost as well! I spend quite a lot of time in my readme, so I would really appreciate it if ya’ll could give m some feedback or anything I could change. It’s my first time posting on my GitHub and using Git, so any advice is appreciated. Thanks! (note: gif doesn’t appear to work but it is the same gif as in my GitHub)
Ships:
I made a voice controlled pen plotter that writes down whatever you want! This is my first ever hardware project (and also the first time coding for a physical thing), so it was a great learning experience! I faced quite a lot of bugs and challenges, (shown in my develops), but I overcome them. There are a lot more demo videos linked on my Github, so please go check them out! This project also doubles as my outpost submission. I have many more ideas to add, but for now, I hope you all like it!...
|
1793130574.3196733
|
1793216974.3196733
|
|
14668
|
Cosmebun by @aarnakumar029 | Stardance
|
aarnakumar029
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-20T03:26:02Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Okay so Cosmebun, I made earlier this year like around april/may I’m only turning this in now to see how stardance works and how much star dust I’ll get for 30 minutes. More about the project: it’s called cosmeBun because this website can be an alternative for chemists working in cosmetics, as many states banned animal testing and such animal testing regarded using bunnies. I used lovable to make it pretty but the ML model I worked on myself. This won me silver in the teen tech awards so the project is really close to my heart.", "repo": "https://github.com/aarnakumar-025/cosmebun-de510187", "demo": "https://cosmebun.lovable.app"}]...
|
[{"post_id": 11979, "ts": "202 [{"post_id": 11979, "ts": "2026-06-19T15:37:08Z", "hours": 0.5214, "text": "ts is a test to see if the stardust stuff works fr"}]...
|
Title: Cosmebun by @aarnakumar029 | Stardance
Dev Title: Cosmebun by @aarnakumar029 | Stardance
Devlogs:
ts is a test to see if the stardust stuff works fr
Ships:
Okay so Cosmebun, I made earlier this year like around april/may I’m only turning this in now to see how stardance works and how much star dust I’ll get for 30 minutes. More about the project: it’s called cosmeBun because this website can be an alternative for chemists working in cosmetics, as many states banned animal testing and such animal testing regarded using bunnies. I used lovable to make it pretty but the ML model I worked on myself. This won me silver in the teen tech awards so the project is really close to my heart....
|
1793238570.9540293
|
1793324970.9540293
|
|
14699
|
Hollow - Game Dev by @magomango | Stardance
|
magomango
|
1
|
137.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-27T03:11:30Z", "hours": 137.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "HOLLOW - 3D, 1st POV Retro (optional) Horror Game!! What I made: HOLLOW is a short first-person survival horror game in Godot 4, inspired by Puppet Combo games and Granny. You’re stuck in a house with a monster wandering the halls, and you have to explore, find items, and solve a chain of puzzles to escape. No weapons, so your only options are hiding and running. What was challenging: the enemy AI, by far. For a long time it ignored me completely, even when I stood right in front of it. It turned out my player’s camera and body were offset 115 units from where the game thought I was, so the monster was staring at an empty spot across the room. I also fought navigation meshes floating above the floor, imported 3D models launching themselves into the sky because of hidden built-in colliders, and getting the web build under itch.io’s size limit (527 MB to 465 MB by shrinking textures). What I’m proud of: the monster actually feels like it’s hunting you. It wanders, chases you when it spots you, keeps following you around corners, and searches the area after it loses you. I also built one reusable puzzle system that runs almost every puzzle in the game, plus a caged creature that asks you for things and reacts with its own animations. Tho it still looks kinda silly sometimes because it spins a bit or is kinda dumb. but thats good for the player!! Lol. How to test it: play in the browser or download for Windows/Mac. WASD move · Shift sprint · C crouch · E interact / pick up / use · V toggle the VHS filter Look at objects to get hints, and press E while holding the right item to use it. You get 5 hits per life and 3 lives. Downloads aren’t code-signed. On Windows click More info > Run anyway; on Mac right-click > Open. Happy Halloween, and I hope you enjoy it!!!", "repo": "https://github.com/magnolia345/StarDance-Hallow", "demo": "https://magnoliaggogog.itch.io/hallow"}]...
|
[{"post_id": 83154, "ts": "202 [{"post_id": 83154, "ts": "2026-10-27T02:25:22Z", "hours": 3.3642, "text": "Literally done. Finished decorating; adding end screens; making itch.io page Lazy lmao… but i js spent like 5 hours straight doing stuff (besides coding like making the readme actually read-ABLE lmao) BRUH ARE YOU KIDDING ME."}, {"post_id": 82855, "ts": "2026-10-26T01:12:13Z", "hours": 11.5164, "text": "ALMOST DONENNE ~ whats up DONE WITH ALL PUZZLES. LETTS GOOO implementation SO continuation from previous post - implementation of the puzzles Lots of puzzles, eg the lock to the exit, use the same mechanic, and I attach the same script where I input different things in the Inspector. Each Object X which takes Object Y leads to Event Z happening. Explaining the below image: I can attach the same script of code to different things. So obviously, Object X (where i attach the script) is the door in this case; Object Y is the key; and Event Z is the lock hiding. Sometimes the Event is something like dropping loot, which is making something visible and the mode switches from disabled to inherit at the bottom in Process. Future LITERALLY SO CLOSE TO SHIPPING FEFHEFR. maybe tonight… Just last decorations, death screen (oh yea, the enemy is so peakkkkk… reveal later) See you soon!"}, {"post_id": 81886, "ts": "2026-10-22T20:59:17Z", "hours": 7.7286, "text": "puzzles? how cool is this? ~ whats up started puzzles, hopefully gonna finish very soon? implementation Most of my puzzles involve doing something, then something else happens (eg appearing vs disappearing). So I just made a script and attached it to certain places where objects are supposed to be inter-actable with. more detailed desc later Future finish the puzzles oof"}, {"post_id": 80859, "ts": "2026-10-19T01:43:18Z", "hours": 12.4375, "text": "FAV ROOM + glow in the dark pumpkins?? ~ whats up so i got the enemy to work. thank god. PLUS I GOT MY FAVORITE-ST ROOM EVER MADE!! Implementation/fix for enemy Looping btw 2 rooms: wander code picked farthest random point, so movement was lwk sporadic and weird. So we switched to getting the first valid point randomly generated instead. Walked off into the void: bc the navigationmesh or where it can roam WAS PARTIALLY OUTSIDE. bruh. so just resized the NM Never saw me or chased: LMAO this was so funny. So apparently my body was like 115 WHOLE-STINKING units away from where the code thought I was.. so easy fix, but bruh. Lost me at corners when i sharp turned: chase_memory now is for keeping track of position even after losing sight. Also added the hit screen, which is like a little bit of blood, for funsies THE ROOM OMGGOGMG - this was so heavily inspired (not copied… cuz yk i got crates here) by that one bunker room in Stay Out of the House by PUPPETCOMBO (omg peakkk). it’s a maze in there. check out the 2nd image! Future PUZZLES. OMG (still) I have so many ideas and so little timeeee. PS: wanted to fit all images in one frame. (yea okay syre bvro)"}, {"post_id": 79448, "ts": "2026-10-14T01:05:09Z", "hours": 10.0569, "text": "GUMBALLS ~ whats up FINALLY finished decorating?? Okay, so I got the enemy to work - FOR LIKE 5 SECONDS - before i broke it again T-T. IDEK what I did bruh. Implementation So I baked a navigationmesh which is all the places the enemy can go (eg mostly where the player can go mostly) and then successfully (for a while at least) made it move randomly and chase the player when it crossed its line of view. It would even hit the player and make a bloody screen show up. BUT NOW IT DOESN’T WORK. HUhhh?? It doesn’t even move at all. So comes debugging: I integrated each step one by one instead of working on the code for like 5 hours and then testing it. Hopefully I can get this thing to work ugh. (My desc are lwk bad here but its because Im raging) Future PUZZLES. OMG I have so many ideas and so little timeeee. anyway, here’s this gumball machine which might be my favorite thing ever. toodles"}, {"post_id": 77150, "ts": "2026-10-05T19:44:07Z", "hours": 10.9308, "text": "WE GOT CABINETS ~ Happy Spooky-Season!! HORROR SEASON + whats up Player can finally open doors- nope not doors, those are harder to implement than cabinets. But then isn’t a door literally just a big cabinet? #showerthoughts Implementation Basically, interact ‘E’ asks whether the raycast, or the “imaginary line” shot out the player though the red dot in the center, hits the object. If the player is standing close enough and they press E, it turns the door 90 degrees about the side aixs. It took a bit to implement bc I kept MESSING UP what the raycast would collid with. Plus this cabinet is like A MILLION different pieces. it legit takes 10 seconds to scroll through everything. I mean ig bro. Future Do this to like all the other cabinets (T-T), fix enemy (idk why its glitching), implement puzzles. AND ADD HALLOWEEN EASTER EGGS! (or are they called Halloween Eggs bc its not rlly easter… #showerthoughtsagain… haha)"}, {"post_id": 72476, "ts": "2026-09-23T01:17:52Z", "hours": 10.0992, "text": "PLAYGROUND - and pick up I added this cool playground into the game, where you can actually go inside and even slide down the slide. Peak childhood nostalgia :) You can also now pick up items and drop them realistically, affected by gravity. I’m holding a hammer in this image! I think the game is coming along well. Slowly… AHhhh gotta pick up the pace."}, {"post_id": 71017, "ts": "2026-09-20T06:44:20Z", "hours": 8.9114, "text": "Still decorating… Sometimes the things you look the hardest for… Is just in plain sight… I also added in the enemy. Dw it won’t be a cubicle forever."}, {"post_id": 68393, "ts": "2026-09-15T01:40:40Z", "hours": 12.5781, "text": "** PARKOUR ** Still decorating. but im so proud of myself for making this little parkour. the ladder was so hard to get the player to actually get on T-T"}, {"post_id": 62367, "ts": "2026-09-05T18:10:53Z", "hours": 9.9689, "text": "Hallow Continued - MECHANICS ~ What’s been going on Still working on decorating. Aesthetics are important oookkk? Been working on mechanics, such as interacting. Since these models are from online, I have to resize everything and also make a function so they can be interacted with. How it works: basically you just have to be close enough to some object, then press ‘E’ to interact with the object, which then causes some change. For example, this cabinet opens, but I’m planning on adding different puzzles which isn’t as simple as opening a drawer. Issues: Since the hitbox (or CollisionShape3D in Godot) is over the whole cabinet, it opens all the drawers. I guess that makes it easier for the player lmao. But if I wanted to make it over each drawer, then I would’ve had to make smaller hitboxes and arranged them properly. I accidentally made this cabinet TOO TALL T-T. So I wonder how the player will get up there… (totally on purpose haha) It limits which models I could take from online. A lot of models are not separated into parts (eg drawer1 is attached permanently to drawer2), meaning they can’t actually open. I realized this half way thru scavenging. :( Also started on the enemy AI stuff, but it’s not that done yet. ~ Plan Continue decorating, making them interactable. I have also made a whole map of the layout and the fun puzzles I’m planning to put in. I would share it but spoilers… :) Credit for cabinet below: Bedside table: “Bedside table old” ( https://skfb.ly/owuAQ ) by Nollien is licensed under Creative Commons Attribution ( http://creativecommons.org/licenses/by/4.0/ ). SKETCHFAB is a peakkk website! pretty realistic looking things on here!"}, {"post_id": 54118, "ts": "2026-08-24T22:49:47Z", "hours": 6.8272, "text": "Hallow Continued - COUCHES ~ What’s been going on Really right now is one of the fun-ner parts: just adding in open-license 3D models from online and decorating the whole place (in- and ex-terior). And obviously crediting everything on this massive google doc. 👍 I was hoping it would be sorta fast, but tell me how it’s been a few hours already lol T-T ~ After this Make everything interact-able and bring in the props and tools you need to find to escape with. Some of these models don’t have an interior, so I’ll need to figure how to sideball that issue. And a gamedev’s worst nightmare: doors… 👀 Ohhh and also rearrange my whole filesystem and Scene panel. Uhhh which door is which again…. absolute monstrosity right now… Credit for sofa below: “trashy backyard sofa” ( https://skfb.ly/pHVBH ) by Schmoldt5000 is licensed under Creative Commons Attribution ( http://creativecommons.org/licenses/by/4.0/). SKETCHFAB is a peakkk website! pretty realistic looking things on here!"}, {"post_id": 47898, "ts": "2026-08-16T05:24:37Z", "hours": 19.6883, "text": "Devlog 2 - Layout Done It’s been a while since my last post, but I’ve finished the pretty giant layout. I think I want a couple of floors, but that might be ambitious. We’ll see. Right now it has over 10 rooms and an outside! The doors are a big large right now, but this is an orphanage and the player is a kid so maybe its ok. 😓 I also started brainstorming some puzzles. Next step: decorating the interior and exterior and adding in items."}, {"post_id": 27028, "ts": "2026-07-12T05:56:11Z", "hours": 12.6417, "text": "Devlog #1 - Hollow GAME Dev Hey everyone! This is my first time posting and first time ever doing anything Hack Club related. I’ve seen so many cool projects already, and it really inspired me to create something and ship it out. Lmao, skip all this rant and go to the bottom for the actual project to save time! I’m developing a GAME ! – A little about me and why I’m here : I LOVE horror! Especially horror games. However I’m more of a person who likes watching people play games and am too scared sometimes to play them myself. Things like the Resident Evil series, indie games (like by Puppet Combo), or even mobile games like Granny. So I thought why not make one myself since it’s summer and all. I’m familiar with programming but totally new to game dev, so this will be an interesting adventure. – What I’ve learned so far about the game dev process : There’s a LOT to learn and decide. Eg What gaming platform you wanna use (so many differences lmao) like unreal, unity, and godot Plot of your game (so MUCH stuff to consider here) General gameplay style (open exploration? cutscene hand holding gameplay?) How long you want your game to be (uhhh…) and so much more… 😓 I’ve tried making a GDD (game dev doc), and rn its still being refined as the vision comes together. —– MY GAME PREMISE —– Game name: Hollow Gist: The player is stuck in an Orphanage and strives for a way out + An investigator attempts to voyage to the Orphanage, but seeks shelter in somewhere unknown… (trying to go for the multiple enemy/story happening but its all connected…) **Inspo: **HEAVILY from Resident Evil 7 (the Baker’s House), the mobile game The Evil Nun, puppet combo games (like Stay Out of the House or Nun Massacre), random dreams I’ve had (lol) Platform: GODOT (highkey underrated) – Whats done so far a dark environment and a few bare rooms stamina bar that can be recharged flashlight movement controls 1/2 of door mechanics (so many memes about how game devs hate door physics hahaha.. yea me too) Js the first week, so player basic mechanics are in. – Future plans for posts Polish the environment and figuring out the enemy Finishing the GDD and posting clips of it Posting a short demo game on Itch.io Thanks for reading this post!"}]...
|
Title: Hollow - Game Dev by @magomango | Stardance Title: Hollow - Game Dev by @magomango | Stardance
Devlogs:
Devlog #1 - Hollow GAME Dev Hey everyone! This is my first time posting and first time ever doing anything Hack Club related. I’ve seen so many cool projects already, and it really inspired me to create something and ship it out. Lmao, skip all this rant and go to the bottom for the actual project to save time! I’m developing a GAME ! – A little about me and why I’m here : I LOVE horror! Especially horror games. However I’m more of a person who likes watching people play games and am too scared sometimes to play them myself. Things like the Resident Evil series, indie games (like by Puppet Combo), or even mobile games like Granny. So I thought why not make one myself since it’s summer and all. I’m familiar with programming but totally new to game dev, so this will be an interesting adventure. – What I’ve learned so far about the game dev process : There’s a LOT to learn and decide. Eg What gaming platform you wanna use (so many differences lmao) like unreal, unity, and godot Plot of your game (so MUCH stuff to consider here) General gameplay style (open exploration? cutscene hand holding gameplay?) How long you want your game to be (uhhh…) and so much more… 😓 I’ve tried making a GDD (game dev doc), and rn its still being refined as the vision comes together. —– MY GAME PREMISE —– Game name: Hollow Gist: The player is stuck in an Orphanage and strives for a way out + An investigator attempts to voyage to the Orphanage, but seeks shelter in somewhere unknown… (trying to go for the multiple enemy/story happening but its all connected…) **Inspo: **HEAVILY from Resident Evil 7 (the Baker’s House), the mobile game The Evil Nun, puppet combo games (like Stay Out of the House or Nun Massacre), random dreams I’ve had (lol) Platform: GODOT (highkey underrated) – Whats done so far a dark environment and a few bare rooms stamina bar that can be recharged flashlight movement controls 1/2 of door mechanics (so many memes about how game devs hate door physics hahaha.. yea me too) Js the first week, so player basic mechanics are in. – Future plans for posts Polish the environment and figuring out the enemy Finishing the GDD and posting clips of it Posting a short demo game on Itch.io Thanks for reading this post!
Devlog 2 - Layout Done It’s been a while since my last post, but I’ve finished the pretty giant layout. I think I want a couple of floors, but that might be ambitious. We’ll see. Right now it has over 10 rooms and an outside! The doors are a big large right now, but this is an orphanage and the player is a kid so maybe its ok. 😓 I also started brainstorming some puzzles. Next step: decorating the interior and exterior and adding in items.
Hallow Continued - COUCHES ~ What’s been going on Really right now is one of the fun-ner parts: just adding in open-license 3D models from online and decorating the whole place (in- and ex-terior). And obviously crediting everything on this massive google doc. 👍 I was hoping it would be sorta fast, but tell me how it’s been a few hours already lol T-T ~ After this Make everything interact-able and bring in the props and tools you need to find to escape with. Some of these models don’t have an interior, so I’ll need to figure how to sideball that issue. And a gamedev’s worst nightmare: doors… 👀 Ohhh and also rearrange my whole filesystem and Scene panel. Uhhh which door is which again…. absolute monstrosity right now… Credit for sofa below: “trashy backyard sofa” ( https://skfb.ly/pHVBH ) by Schmoldt5000 is licensed under Creative Commons Attribution ( http://creativecommons.org/licenses/by/4.0/). SKETCHFAB is a peakkk website! pretty realistic looking things on here!
Hallow Continued - MECHANICS ~ What’s been going on Still working on decorating. Aesthetics are important oookkk? Been working on mechanics, such as interacting. Since these models are from online, I have to resize everything and also make a function so they can be interacted with. How it works: basically you just have to be close enough to some object, then press ‘E’ to interact with the object, which then causes some change. For example, this cabinet opens, but I’m planning on adding different puzzles which isn’t as simple as opening a drawer. Issues: Since the hitbox (or CollisionShape3D in Godot) is over the whole cabinet, it opens all the drawers. I guess that makes it easier for the player lmao. But if I wanted to make it over each drawer, then I would’ve had to make smaller hitboxes and arranged them properly. I accidentally made this cabinet TOO TALL T-T. So I wonder how the player will get up there… (totally on purpose haha) It limits which models I could take from online. A lot of models are not separated into parts (eg drawer1 is attached permanently to drawer2), meaning they can’t actually open. I realized this half way thru scavenging. :( Also started on the enemy AI stuff, but it’s not that done yet. ~ Plan Continue decorating, making them interactable. I have also made a whole map of the layout and the fun puzzles I’m planning to put in. I would share it but spoilers… :) Credit for cabinet below: Bedside table: “Bedside table old” ( https://skfb.ly/owuAQ ) by Nollien is licensed under Creative Commons Attribution ( http://creativecommons.org/licenses/by/4.0/ ). SKETCHFAB is a peakkk website! pretty realistic looking things on here!
** PARKOUR ** Still decorating. but im so proud of myself for making this little parkour. the ladder was so hard to get the player to actually get on T-T
Still decorating… Sometimes the things you look the hardest for… Is just in plain sight… I also added in the enemy. Dw it won’t be a cubicle forever.
PLAYGROUND - and pick up I added this cool playground into the game, where you can actually go inside and even slide down the slide. Peak childhood nostalgia :) You can also now pick up items and drop them realistically, affected by gravity. I’m holding a hammer in this image! I think the game is coming along well. Slowly… AHhhh gotta pick up the pace.
WE GOT CABINETS ~ Happy Spooky-Season!! HORROR SEASON + whats up Player can finally open doors- nope not doors, those are harder to implement than cabinets. But then isn’t a door literally just a big cabinet? #showerthoughts Implementation Basically, interact ‘E’ asks whether the raycast, or the “imaginary line” shot out the player though the red dot in the center, hits the object. If the player is standing close enough and they press E, it turns the door 90 degrees about the side aixs. It took a bit to implement bc I kept MESSING UP what the raycast would collid with. Plus this cabinet is like A MILLION different pieces. it legit takes 10 seconds to scroll through everything. I mean ig bro. Future Do this to like all the other cabinets (T-T), fix enemy (idk why its glitching), implement puzzles. AND ADD HALLOWEEN EASTER EGGS! (or are they called Halloween Eggs bc its not rlly easter… #showerthoughtsagain… haha)
GUMBALLS ~ whats up FINALLY finished decorating?? Okay, so I got the enemy to work - FOR LIKE 5 SECONDS - before i broke it again T-T. IDEK what I did bruh. Implementation So I baked a navigationmesh which is all the places the enemy can go (eg mostly where the player can go mostly) and then successfully (for a while at least) made it move randomly and chase the player when it crossed its line of view. It would even hit the player and make a bloody screen show up. BUT NOW IT DOESN’T WORK. HUhhh?? It doesn’t even move at all. So comes debugging: I integrated each step one by one instead of working on the code for like 5 hours and then testing it. Hopefully I can get this thing to work ugh. (My desc are lwk bad here but its because Im raging) Future PUZZLES. OMG I have so many ideas and so little timeeee. anyway, here’s this gumball machine which might be my favorite thing ever. toodles
FAV ROOM + glow in the dark pumpkins?? ~ whats up so i got the enemy to work. thank god. PLUS I GOT MY FAVORITE-ST ROOM EVER MADE!! Implementation/fix for enemy Looping btw 2 rooms: wander code picked farthest random point, so movement was lwk sporadic and weird. So we switched to getting the first valid point randomly generated instead. Walked off into the void: bc the navigationmesh or where it can roam WAS PARTIALLY OUTSIDE. bruh. so just resized the NM Never saw me or chased: LMAO this was so funny. So apparently my body was like 115 WHOLE-STINKING units away from where the code thought I was.. so easy fix, but bruh. Lost me at corners when i sharp turned: chase_memory now is for keeping track of position even after losing sight. Also added the hit screen, which is like a little bit of blood, for funsies THE ROOM OMGGOGMG - this was so heavily inspired (not copied… cuz yk i got crates here) by that one bunker room in Stay Out of the House by PUPPETCOMBO (omg peakkk). it’s a maze in there. check out the 2nd image! Future PUZZLES. OMG (still) I have so many ideas and so little timeeee. PS: wanted to fit all images in one frame. (yea okay syre bvro)
puzzles? how cool is this? ~ whats up started puzzles, hopefully gonna finish very soon? implementation Most of my puzzles involve doing something, then something else happens (eg appearing vs disappearing). So I just made a script and attached it to certain places where objects are supposed to be inter-actable with. more detailed desc later Future finish the puzzles oof
ALMOST DONENNE ~ whats up DONE WITH ALL PUZZLES. LETTS GOOO implementation SO continuation from previous post - implementation of the puzzles Lots of puzzles, eg the lock to the exit, use the same mechanic, and I attach the same script where I input different things in the Inspector. Each Object X which takes Object Y leads to Event Z happening. Explaining the below image: I can attach the same script of code to different things. So obviously, Object X (where i attach the script) is the door in this case; Object Y is the key; and Event Z is the lock hiding. Sometimes the Event is something like dropping loot, which is making something visible and the mode switches from disabled to inherit at the bottom in Process. Future LITERALLY SO CLOSE TO SHIPPING FEFHEFR. maybe tonight… Just last decorations, death screen (oh yea, the enemy is so peakkkkk… reveal later) See you soon!
Literally done. Finished decorating; adding end screens; making itch.io page Lazy lmao… but i js spent like 5 hours straight doing stuff (besides coding like making the readme actually read-ABLE lmao) BRUH ARE YOU KIDDING ME.
Ships:
HOLLOW - 3D, 1st POV Retro (optional) Horror Game!! What I made: HOLLOW is a short first-person survival horror game in Godot 4, inspired by Puppet Combo games and Granny. You’re stuck in a house with a monster wandering the halls, and you have to explore, find items, and solve a chain of puzzles to escape. No weapons, so your only options are hiding and running. What was challenging: the enemy AI, by far. For a long time it ignored me completely, even when I stood right in front of it. It turned out my player’s camera and body were offset 115 units from where the game thought I was, so the monster was staring at an empty spot across the room. I also fought navigation meshes floating above the floor, imported 3D models launching themselves into the sky because of hidden built-in colliders, and getting the web build under itch.io’s size limit (527 MB to 465 MB by shrinking textures). What I’m proud of: the monster actually feels like it’s hunting you. It wanders, chases you when it spots you, keeps following you around corners, and searches the area after it loses you. I also built one reusable puzzle system that runs almost every puzzle in the game, plus a caged creature that asks you for things and reacts with its own animations. Tho it still looks kinda silly sometimes because it spins a bit or is kinda dumb. but thats good for the player!! Lol. How to test it: play in the browser or download for Windows/Mac. WASD move · Shift sprint · C crouch · E interact / pick up / use · V toggle the VHS filter Look at objects to get hints, and press E while holding the right item to use it. You get 5 hits per life and 3 lives. Downloads aren’t code-signed. On Windows click More info > Run anyway; on Mac right-click > Open. Happy Halloween, and I hope you enjoy it!!!...
|
1793156050.1516168
|
1793242450.1516168
|
|
14705
|
LUMA by @Eben-Siyabalapitiya | Stardance
|
Eben-Siyabalapitiya
|
1
|
39.0
|
177
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-07T22:44:28Z", "hours": 39.0, "multiplier": 5.0, "payout": 177, "blessing": "neutral", "text": "I built LUMA. She is a little desk robot with animated eyes that actually has a personality. tap it once and it gets excited, spam tap it and it gets mad, rub your finger on it and it gets cozy. each emotion has multiple different face variants so it never shows the same reaction twice. it also shows live weather, a real time clock and a calendar on a tiny 1.8 TFT screen. The hardest part was spending hours writing the emotion system, making sure everything was perfect, and then compiling it only to get hit with “101% of flash limit” it wouldn’t even upload. completely forgot there was a size limit while I was writing it so I just kept going and going. ended up spending more time fixing that than actually writing the feature in the first place. had to rip out entire libraries and replace them with raw socket connections and manual parsers just to get it under the limit without losing a single feature and it was a very painful session honestly. But what I’m most proud of is how far it came from just a random idea. the firmware, the enclosure, the website, the domain, the devlogs all of it open source so anyone can build their own. this is my first ever open source project and it came out way better than I ever expected. genuinely wasn’t expecting it to get this far or turn out this good, it went way beyond what I had in mind when I started and I’m really proud of it. love how it turned out. Everything is at meetluma.live if you want to check it out or build your own", "repo": "https://github.com/Eben-Siyabalapitiya/LUMA", "demo": ""}]...
|
[{"post_id": 24384, "ts": "202 [{"post_id": 24384, "ts": "2026-07-07T22:13:10Z", "hours": 13.0889, "text": "DEVLOG 008 - The Website & Wrapping Everything Up Everything is finally done after a long grind. Building the Website Since this is my first ever open source project I really wanted the website to be really good. Not just functional but actually good. So I locked for hours and paid attention to every single detail. Started with a blue colour scheme but it wasn’t sitting right with LUMA’s darker aesthetic so i decided to switch everything to a deeper darker palette and it immediately i knew it was perfect for her. I went through a lot of iterations getting the look right, smooth scroll animations, hover effects, proper transitions throughout. Kept going back and refining until it felt clean and polished. Bugs I ran into along the way: Files weren’t downloading when the download button was clicked tracked down the issue and got it fixed Some animations were firing at the wrong time on scroll it was all so cooked so i had to adjust the trigger points for all of them so everything feels smooth and clean A few layout inconsistencies on smaller screens that needed sorting Hover states on some cards weren’t behaving correctly so i hadda clean those up as well Some placeholder sections needed proper content wired in before publishing so i had to collect all the files and add it to its proper spots Each thing small on its own but there were a lot lot lot of them so they all adds up. What’s on the Site? Made sure everything anyone needs to build their own LUMA is actually there: Full build guide with step by step instructions Wiring diagram so its not just the chart from before, a proper schematic so anyone can see visually how it all connects before they start wiring 3MF file set up in Bambu Lab with the right settings infill, wall thickness, all the print settings dialed in. One click download and it’s ready to print CAD file included so anyone can open it up and customize the enclosure if they need to Recommendations section for parts and anything else that helps with the build Contact section so if anyone has questions or runs into issues building it they can reach out directly and the question will straight drop into my email ( i check my emails everyday) Bought a proper domain for it as well with the money i had left. LUMA now has a real home on the internet and its not just a project link, an actual address anyone can search up and find. Code on GitHub Everything is published. Full firmware, wiring, build instructions all of it open source and ready for anyone who wants to build their own. Honestly really proud of how far this went. Luma started as a random idea and turned into a complete project working firmware, a finished enclosure, a proper website, a domain, and a GitHub repo with everything documented. My first ever open source project and it came out wayyy better than I expected. LUMA IS FINALLY DONE. Not just for me for anyone who wants their own little desk companion. GitHub → https://github.com/Eben-Siyabalapitiya/LUMA Website → https://meetluma.live/"}, {"post_id": 22453, "ts": "2026-07-04T22:27:35Z", "hours": 6.17, "text": "DEVLOG 007 — Final Polish & Full Assembly Mostly physical work this session but a lot got done and LUMA is finally feeling complete. ───────────────────────────────────────── New Enclosure & Sensor Placement ───────────────────────────────────────── Reprinted the enclosure again with a new slot for the second sensor. Moved things around so the layout actually makes sense to use: ◆ Emotion sensor mounted on the top, easy to reach, natural to tap or hold while LUMA is sitting on your desk ◆ Mode switch moved to the back top center so switching between face, clock, weather, and calendar is just a tap on the back Much more intuitive than before. ───────────────────────────────────────── Legs ───────────────────────────────────────── LUMA was looking too much like a plain box so I designed and printed her some legs. Honestly one of those small changes that made a big difference, she looks way more like an actual character now and it just suited her really well. ───────────────────────────────────────── Reprints & Tolerance Fixes ───────────────────────────────────────── Had to reprint most of the parts to get the thickness right for the touch sensors to actually work properly through the walls. Also tightened up the sensor slot tolerances that were coming out too loose. Took a few iterations but everything fits clean now. ───────────────────────────────────────── Full Rewire & Schematic ───────────────────────────────────────── Rewired the whole thing properly from scratch. Made a proper schematic diagram and followed it this time so there are no guessing games with the connections. Resoldered everything cleanly so it’s solid for the final assembly and not going anywhere. ───────────────────────────────────────── Code & CAD Cleanup ───────────────────────────────────────── Fixed up the remaining code bugs, cleaned everything up and made sure it was all working properly. Same with the CAD, went through it and sorted all the small things that still needed attention. ───────────────────────────────────────── Final Print — Black ───────────────────────────────────────── Printed everything in black for the final assembly. Really suited LUMA. Looked way better than the prototypes. ───────────────────────────────────────── GitHub & Wrapping Up ───────────────────────────────────────── Set up a proper GitHub repo, wrote everything up, and finalized the project. LUMA is done. Next goal is to build LUMA a website. Full build guide, open source, everything anyone needs to build their own. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"}, {"post_id": 21162, "ts": "2026-07-02T23:31:36Z", "hours": 5.6367, "text": "DEVLOG 005 - Second Touch Sensor & Emotion System Added a second capacitive touch sensor on a new GPIO pin dedicated entirely to emotions. How It Works Built a full gesture detection system on the new sensor: ◆ Single tap → excited ◆ Hold for 800ms → cozy ◆ Rapid tap 3+ times → mad Each emotion has 5 or 6 distinct face variants that cycle using weighted random probabilities so it never shows the same reaction twice in a row. ◈ Mad - red angry eyes in different shapes: wide glare, tiny squint, psycho stare, disgusted droop ◈ Excited - big round happy eyes, bouncy small eyes, wide open stare ◈ Cozy - half closed drowsy eyes, warm round soft eyes, tiny sleepy eyes Emotions auto expire after 6 seconds and return to the default idle face automatically. Spent a long time writing the code, fixing errors, getting everything working and then the compiled firmware came out at 101% of the ESP32’s flash limit and wouldn’t upload. Couldn’t just scrap it after all that work so I started diagnosing what was eating the space. The two biggest culprits: ◈ HTTPClient and ArduinoJson together were pulling in around 60–80KB of overhead just from the libraries alone How I Fixed It ◆ Replaced HTTPClient and ArduinoJson with a raw WiFiClient socket connection and three tiny manual JSON parsers using strstr and atof no library needed at all ◆ Replaced every cos and sin math call with precomputed fixed point lookup tables stored in PROGMEM completely removed the float math library dependency ◆ Wrapped all string literals in F() to keep them in flash instead of RAM Got the binary down under the limit without cutting a single feature. Everything still works exactly the same, it just actually fits on the board now. Still needs some tuning though the emotion faces need a bit more work to feel right and there are a few things here and there that need cleaning up. The structure and foundation is solid but it’s not fully polished yet. More to come on that in the next log."}, {"post_id": 19651, "ts": "2026-07-01T01:00:57Z", "hours": 1.5672, "text": "DEVLOG 004 - Fixes, Wiring Cleanup & Getting It Solid Mostly a cleanup and bug fixing session today before moving on to the next round of upgrades. Screen Flip Once the screen was mounted in the enclosure everything was upside down. One line fix changed setRotation from 1 to 3 and that was it. Done. Weather Screen Bug Tracked down an annoying bug where the weather screen would show data the first time but come back blank after switching away and returning. The issue was a redraw flag that never reset on screen re entry. Fixed it by resetting the flag in both the screen router and the mode switch handler so weather now fully redraws every time you land on it. Enclosure Reprint - Screen Pocket Reprinted the base and added a small pocket to the cutout because the screen wasn’t sitting flush. The soldered pins on the front of the screen were hitting the case and pushing it up slightly. Added a slot for them to drop into screen sits perfectly flush now. Wiring Issues - Touch Sensor One of the touch sensors was activating on its own just a red light flashing like something was constantly triggering it with nothing touching it. First thought was the code since I was in the middle of cleaning everything up anyway, so I spent a while going through it trying to figure out what was wrong. Nothing. Code was fine. Turned out to be a bad ground connection on the sensor the whole time. Resoldered it properly and it’s been stable since. Classic hardware problem disguised as a software problem. Overall today was about getting everything solid and clean before the next upgrade push. Wiring is tidy, code is cleaned up, everything is working as expected."}, {"post_id": 18929, "ts": "2026-06-30T03:25:21Z", "hours": 3.5008, "text": "DEVLOG 003 — First Real Assembly Now that the firmware was in a solid place, it was time to actually build the thing. Got into CAD properly and started designing the enclosure for real not just roughing it out anymore, actually planning where every component sits and how it all fits together. Originally I was just going to use the bare ESP32 board and solder everything directly onto it, but ended up switching to a breakout board for the ESP32 instead which was the right call. That change meant I had to scale the enclosure up a bit to fit everything properly, so I reworked the design, got the dimensions right, and sent it to print. Once it came off the printer I grabbed the calipers and started checking everything: ◆ ESP32 breakout board fit perfectly in its slot ◆ Screen seated clean in the cutout ◆ Touch sensor connected and sitting in the right spots ◆ Overall fit was exactly where I wanted it Pretty satisfying moment honestly. But then I started running into the first real problems. ◈ The walls ended up being too thick, so the capacitive touch sensors could barely detect anything through them touch was sluggish and inconsistent, not responsive at all ◈ The screen had to be mounted the way it is because flipping it would’ve sent the wires running from the pins straight into the breakout board no room for that. Which left the display showing everything upside down Both things need fixing, but overall for a first proper assembly it came out pretty well. It’s starting to look like an actual product, which is a good feeling."}, {"post_id": 17746, "ts": "2026-06-28T17:42:08Z", "hours": 4.1867, "text": "DEVLOG 002 — Firmware & Making It Actually Look Good First thing I tackled was getting the core firmware structured properly. Built out the full mode switching system FACE, CLOCK, WEATHER, and CALENDAR all cycling on a single small capacitive touch sensor. Then got into the connectivity side of things: ◆ WiFi connecting on boot automatically ◆ NTP time sync so the clock always pulls real time without me hardcoding anything ◆ OpenWeatherMap API hooked up parsing temperature, humidity, wind speed, and condition ◆ Calendar built from the actual current date with a real day grid and event highlights Everything was working at this point but honestly it looked terrible just white text on a black screen, nothing impressive at all. It was functional but it didn’t feel like anything yet. So I basically tore everything out visually and rebuilt every screen from scratch. That’s where it started actually feeling like a real product. ◈ Gradient header bar across every screen ◈ Weather display completely redone color coded temperature + pixel art icon system that draws different visuals depending on the condition (sun, clouds, rain, thunderstorm, snow, fog all drawn in code, no images) ◈ Calendar got a proper grid with weekday headers, today highlighted, and event colors ◈ Clock got a big clean digital readout with a seconds progress bar filling across the screen in real time ◈ Scrolling agenda strip at the bottom of the calendar showing the next upcoming event Going from plain text to all of that in one session was a big jump. That was the moment it started looking like something I’d actually want on my desk."}, {"post_id": 16710, "ts": "2026-06-27T04:42:31Z", "hours": 4.3819, "text": "DEVLOG 001 - Planning out & Testing So basically I had this idea of building a little desktop robot that could show a face, clock, weather, and calendar and I just wanted something that felt alive on my desk, not another boring info display. Decided to go with the ESP32 and the ST7735 TFT display, ordered the parts and waited. Parts came in and before doing anything permanent I threw everything onto a breadboard first just to test connections and make sure the components were actually talking to each other. Got the ESP32 seated, wired up the TFT with the SPI lines, and powered it on and immediately the display was just… white. Solid white, nothing rendering at all. I genuinely thought it was a code issue so I started digging through everything: Rewrote the initialization logic multiple times Swapped library settings, tried different pin configs Spent way too long convinced it was something in the code Eventually I just rewired the whole breadboard from scratch out of frustration and it just worked. Wiring issue the whole time, one of the connections on the breadboard just wasn’t seated properly into the rail. Such a simple thing but it ate up so much time. After that everything started clicking. Got the display confirmed working, flashed the RoboEyes library on it and saw the eyes blink on actual hardware for the first time that was a real moment honestly. Super small but it just felt like okay this is actually going somewhere. First boot was literally just a face sitting there blinking on a breadboard with loose wires everywhere, nothing else running, but that was enough to know the foundation was solid. Ended the session jumping into CAD and just roughing out what the enclosure could look like, trying to figure out how everything fits together in a way that actually looks good sitting on a desk."}]...
|
Title: LUMA by @Eben-Siyabalapitiya | Stardance
D Title: LUMA by @Eben-Siyabalapitiya | Stardance
Devlogs:
DEVLOG 001 - Planning out & Testing So basically I had this idea of building a little desktop robot that could show a face, clock, weather, and calendar and I just wanted something that felt alive on my desk, not another boring info display. Decided to go with the ESP32 and the ST7735 TFT display, ordered the parts and waited. Parts came in and before doing anything permanent I threw everything onto a breadboard first just to test connections and make sure the components were actually talking to each other. Got the ESP32 seated, wired up the TFT with the SPI lines, and powered it on and immediately the display was just… white. Solid white, nothing rendering at all. I genuinely thought it was a code issue so I started digging through everything: Rewrote the initialization logic multiple times Swapped library settings, tried different pin configs Spent way too long convinced it was something in the code Eventually I just rewired the whole breadboard from scratch out of frustration and it just worked. Wiring issue the whole time, one of the connections on the breadboard just wasn’t seated properly into the rail. Such a simple thing but it ate up so much time. After that everything started clicking. Got the display confirmed working, flashed the RoboEyes library on it and saw the eyes blink on actual hardware for the first time that was a real moment honestly. Super small but it just felt like okay this is actually going somewhere. First boot was literally just a face sitting there blinking on a breadboard with loose wires everywhere, nothing else running, but that was enough to know the foundation was solid. Ended the session jumping into CAD and just roughing out what the enclosure could look like, trying to figure out how everything fits together in a way that actually looks good sitting on a desk.
DEVLOG 002 — Firmware & Making It Actually Look Good First thing I tackled was getting the core firmware structured properly. Built out the full mode switching system FACE, CLOCK, WEATHER, and CALENDAR all cycling on a single small capacitive touch sensor. Then got into the connectivity side of things: ◆ WiFi connecting on boot automatically ◆ NTP time sync so the clock always pulls real time without me hardcoding anything ◆ OpenWeatherMap API hooked up parsing temperature, humidity, wind speed, and condition ◆ Calendar built from the actual current date with a real day grid and event highlights Everything was working at this point but honestly it looked terrible just white text on a black screen, nothing impressive at all. It was functional but it didn’t feel like anything yet. So I basically tore everything out visually and rebuilt every screen from scratch. That’s where it started actually feeling like a real product. ◈ Gradient header bar across every screen ◈ Weather display completely redone color coded temperature + pixel art icon system that draws different visuals depending on the condition (sun, clouds, rain, thunderstorm, snow, fog all drawn in code, no images) ◈ Calendar got a proper grid with weekday headers, today highlighted, and event colors ◈ Clock got a big clean digital readout with a seconds progress bar filling across the screen in real time ◈ Scrolling agenda strip at the bottom of the calendar showing the next upcoming event Going from plain text to all of that in one session was a big jump. That was the moment it started looking like something I’d actually want on my desk.
DEVLOG 003 — First Real Assembly Now that the firmware was in a solid place, it was time to actually build the thing. Got into CAD properly and started designing the enclosure for real not just roughing it out anymore, actually planning where every component sits and how it all fits together. Originally I was just going to use the bare ESP32 board and solder everything directly onto it, but ended up switching to a breakout board for the ESP32 instead which was the right call. That change meant I had to scale the enclosure up a bit to fit everything properly, so I reworked the design, got the dimensions right, and sent it to print. Once it came off the printer I grabbed the calipers and started checking everything: ◆ ESP32 breakout board fit perfectly in its slot ◆ Screen seated clean in the cutout ◆ Touch sensor connected and sitting in the right spots ◆ Overall fit was exactly where I wanted it Pretty satisfying moment honestly. But then I started running into the first real problems. ◈ The walls ended up being too thick, so the capacitive touch sensors could barely detect anything through them touch was sluggish and inconsistent, not responsive at all ◈ The screen had to be mounted the way it is because flipping it would’ve sent the wires running from the pins straight into the breakout board no room for that. Which left the display showing everything upside down Both things need fixing, but overall for a first proper assembly it came out pretty well. It’s starting to look like an actual product, which is a good feeling.
DEVLOG 004 - Fixes, Wiring Cleanup & Getting It Solid Mostly a cleanup and bug fixing session today before moving on to the next round of upgrades. Screen Flip Once the screen was mounted in the enclosure everything was upside down. One line fix changed setRotation from 1 to 3 and that was it. Done. Weather Screen Bug Tracked down an annoying bug where the weather screen would show data the first time but come back blank after switching away and returning. The issue was a redraw flag that never reset on screen re entry. Fixed it by resetting the flag in both the screen router and the mode switch handler so weather now fully redraws every time you land on it. Enclosure Reprint - Screen Pocket Reprinted the base and added a small pocket to the cutout because the screen wasn’t sitting flush. The soldered pins on the front of the screen were hitting the case and pushing it up slightly. Added a slot for them to drop into screen sits perfectly flush now. Wiring Issues - Touch Sensor One of the touch sensors was activating on its own just a red light flashing like something was constantly triggering it with nothing touching it. First thought was the code since I was in the middle of cleaning everything up anyway, so I spent a while going through it trying to figure out what was wrong. Nothing. Code was fine. Turned out to be a bad ground connection on the sensor the whole time. Resoldered it properly and it’s been stable since. Classic hardware problem disguised as a software problem. Overall today was about getting everything solid and clean before the next upgrade push. Wiring is tidy, code is cleaned up, everything is working as expected.
DEVLOG 005 - Second Touch Sensor & Emotion System Added a second capacitive touch sensor on a new GPIO pin dedicated entirely to emotions. How It Works Built a full gesture detection system on the new sensor: ◆ Single tap → excited ◆ Hold for 800ms → cozy ◆ Rapid tap 3+ times → mad Each emotion has 5 or 6 distinct face variants that cycle using weighted random probabilities so it never shows the same reaction twice in a row. ◈ Mad - red angry eyes in different shapes: wide glare, tiny squint, psycho stare, disgusted droop ◈ Excited - big round happy eyes, bouncy small eyes, wide open stare ◈ Cozy - half closed drowsy eyes, warm round soft eyes, tiny sleepy eyes Emotions auto expire after 6 seconds and return to the default idle face automatically. Spent a long time writing the code, fixing errors, getting everything working and then the compiled firmware came out at 101% of the ESP32’s flash limit and wouldn’t upload. Couldn’t just scrap it after all that work so I started diagnosing what was eating the space. The two biggest culprits: ◈ HTTPClient and ArduinoJson together were pulling in around 60–80KB of overhead just from the libraries alone How I Fixed It ◆ Replaced HTTPClient and ArduinoJson with a raw WiFiClient socket connection and three tiny manual JSON parsers using strstr and atof no library needed at all ◆ Replaced every cos and sin math call with precomputed fixed point lookup tables stored in PROGMEM completely removed the float math library dependency ◆ Wrapped all string literals in F() to keep them in flash instead of RAM Got the binary down under the limit without cutting a single feature. Everything still works exactly the same, it just actually fits on the board now. Still needs some tuning though the emotion faces need a bit more work to feel right and there are a few things here and there that need cleaning up. The structure and foundation is solid but it’s not fully polished yet. More to come on that in the next log.
DEVLOG 007 — Final Polish & Full Assembly Mostly physical work this session but a lot got done and LUMA is finally feeling complete. ───────────────────────────────────────── New Enclosure & Sensor Placement ───────────────────────────────────────── Reprinted the enclosure again with a new slot for the second sensor. Moved things around so the layout actually makes sense to use: ◆ Emotion sensor mounted on the top, easy to reach, natural to tap or hold while LUMA is sitting on your desk ◆ Mode switch moved to the back top center so switching between face, clock, weather, and calendar is just a tap on the back Much more intuitive than before. ───────────────────────────────────────── Legs ───────────────────────────────────────── LUMA was looking too much like a plain box so I designed and printed her some legs. Honestly one of those small changes that made a big difference, she looks way more like an actual character now and it just suited her really well. ───────────────────────────────────────── Reprints & Tolerance Fixes ───────────────────────────────────────── Had to reprint most of the parts to get the thickness right for the touch sensors to actually work properly through the walls. Also tightened up the sensor slot tolerances that were coming out too loose. Took a few iterations but everything fits clean now. ───────────────────────────────────────── Full Rewire & Schematic ───────────────────────────────────────── Rewired the whole thing properly from scratch. Made a proper schematic diagram and followed it this time so there are no guessing games with the connections. Resoldered everything cleanly so it’s solid for the final assembly and not going anywhere. ───────────────────────────────────────── Code & CAD Cleanup ───────────────────────────────────────── Fixed up the remaining code bugs, cleaned everything up and made sure it was all working properly. Same with the CAD, went through it and sorted all the small things that still needed attention. ───────────────────────────────────────── Final Print — Black ───────────────────────────────────────── Printed everything in black for the final assembly. Really suited LUMA. Looked way better than the prototypes. ───────────────────────────────────────── GitHub & Wrapping Up ───────────────────────────────────────── Set up a proper GitHub repo, wrote everything up, and finalized the project. LUMA is done. Next goal is to build LUMA a website. Full build guide, open source, everything anyone needs to build their own. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DEVLOG 008 - The Website & Wrapping Everything Up Everything is finally done after a long grind. Building the Website Since this is my first ever open source project I really wanted the website to be really good. Not just functional but actually good. So I locked for hours and paid attention to every single detail. Started with a blue colour scheme but it wasn’t sitting right with LUMA’s darker aesthetic so i decided to switch everything to a deeper darker palette and it immediately i knew it was perfect for her. I went through a lot of iterations getting the look right, smooth scroll animations, hover effects, proper transitions throughout. Kept going back and refining until it felt clean and polished. Bugs I ran into along the way: Files weren’t downloading when the download button was clicked tracked down the issue and got it fixed Some animations were firing at the wrong time on scroll it was all so cooked so i had to adjust the trigger points for all of them so everything feels smooth and clean A few layout inconsistencies on smaller screens that needed sorting Hover states on some cards weren’t behaving correctly so i hadda clean those up as well Some placeholder sections needed proper content wired in before publishing so i had to collect all the files and add it to its proper spots Each thing small on its own but there were a lot lot lot of them so they all adds up. What’s on the Site? Made sure everything anyone needs to build their own LUMA is actually there: Full build guide with step by step instructions Wiring diagram so its not just the chart from before, a proper schematic so anyone can see visually how it all connects before they start wiring 3MF file set up in Bambu Lab with the right settings infill, wall thickness, all the print settings dialed in. One click download and it’s ready to print CAD file included so anyone can open it up and customize the enclosure if they need to Recommendations section for parts and anything else that helps with the build Contact section so if anyone has questions or runs into issues building it they can reach out directly and the question will straight drop into my email ( i check my emails everyday) Bought a proper domain for it as well with the money i had left. LUMA now has a real home on the internet and its not just a project link, an actual address anyone can search up and find. Code on GitHub Everything is published. Full firmware, wiring, build instructions all of it open source and ready for anyone who wants to build their own. Honestly really proud of how far this went. Luma started as a random idea and turned into a complete project working firmware, a finished enclosure, a proper website, a domain, and a GitHub repo with everything documented. My first ever open source project and it came out wayyy better than I expected. LUMA IS FINALLY DONE. Not just for me for anyone who wants their own little desk companion. GitHub → https://github.com/Eben-Siyabalapitiya/LUMA Website → https://meetluma.live/
Ships:
I built LUMA. She is a little desk robot with animated eyes that actually has a personality. tap it once and it gets excited, spam tap it and it gets mad, rub your finger on it and it gets cozy. each emotion has multiple different face variants so it never shows the same reaction twice. it also shows live weather, a real time clock and a calendar on a tiny 1.8 TFT screen. The hardest part was spending hours writing the emotion system, making sure everything was perfect, and then compiling it only to get hit with “101% of flash limit” it wouldn’t even upload. completely forgot there was a size limit while I was writing it so I just kept going and going. ended up spending more time fixing that than actually writing the feature in the first place. had to rip out entire libraries and replace them with raw socket connections and manual parsers just to get it under the limit without losing a single feature and it was a very painful session honestly. But what I’m most proud of is how far it came from just a random idea. the firmware, the enclosure, the website, the domain, the devlogs all of it open source so anyone can build their own. this is my first ever open source project and it came out way better than I ever expected. genuinely wasn’t expecting it to get this far or turn out this good, it went way beyond what I had in mind when I started and I’m really proud of it. love how it turned out. Everything is at meetluma.live if you want to check it out or build your own...
|
1792875239.0659401
|
1793739239.0659401
|
|
14747
|
GoatOS by @sal2x | Stardance
|
sal2x
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-23T18:51:23Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made GoatOS, a goat themed web operating system. Since I’m just learning coding for the first time, the project took a while but I’m really proud of how it turned out! GoatOS features goat photos and a lot of educational information about goats.", "repo": "https://github.com/sclaireloucks-arch/veryfirstwebsite", "demo": "https://sclaireloucks-arch.github.io/veryfirstwebsite/"}]...
|
[{"post_id": 14561, "ts": "202 [{"post_id": 14561, "ts": "2026-06-23T18:44:48Z", "hours": 0.0, "text": "4th devlog- I finished the README for GoatOS, and completed my GoatGallery app. It took me a little while to sync all my changes, but now GoatOS is complete! You can now access it in the demo url, and I’ll be shipping this project."}, {"post_id": 14203, "ts": "2026-06-23T06:17:13Z", "hours": 0.0, "text": "3rd devlog- I made an app! GoatFacts-It’s a text-based app where you can see facts about goats by clicking on categories. I think I was coding faster than I was before, because it didn’t take super long. It was a lot of trial and error for me though, and I had to change the style of it about 4 times to try to get something I liked. I think I am satisfied with the results now! GoatGallery- also began working on a second app that shows pictures of goats, along with some information about the breed. It has been going smoothly, as I mostly just had to remember what I did for the other app, and then adjust. All that’s left mostly to do is to finish GoatGallery and tweak a few things, and then it’s basically finished! Hopefully last devlog 🤞 and then I’ll be shipping GoatOS!"}, {"post_id": 11069, "ts": "2026-06-18T03:19:03Z", "hours": 0.0, "text": "2nd devlog- Today I changed the welcome page to fit more to the vibe of the website, created it to be draggable, as well as open and close. I made the top bar it’s own color and used js to track the time, updating it. Some challenges I found while doing this was that it was hard 💀 I’ve never coded, except a little bit of Python so all of this was a learning experience for me, but it began to get faster as I learned. A lot of the hours were changing things to look different, or fixing errors. Hopefully the next devlog I’ll have worked faster and have learned more as well. The next thing to do is to create apps to make it look more like an official OS, and I hope to be able to ship it soon after that!"}, {"post_id": 10263, "ts": "2026-06-16T22:06:06Z", "hours": 0.0, "text": "Yesterday I began working on GoatOS. So far, I have created a welcome page with a desktop background, and a top bar that shows the date and time. In the welcome page I stated the purpose of the site, to serve as your go-to Goat operating system. Some challenges I found while doing these were that centering the welcome page was difficult, but after a few minutes of researching I was able to figure it out. It was also a struggle to figure out how to make it look more like an OS rather than a plain website. The next steps I plan to take are that I’ll create multiple different windows that will be draggable, have a random-goat picture generator, and create goat themed apps."}]...
|
Title: GoatOS by @sal2x | Stardance
Devlogs:
Yest Title: GoatOS by @sal2x | Stardance
Devlogs:
Yesterday I began working on GoatOS. So far, I have created a welcome page with a desktop background, and a top bar that shows the date and time. In the welcome page I stated the purpose of the site, to serve as your go-to Goat operating system. Some challenges I found while doing these were that centering the welcome page was difficult, but after a few minutes of researching I was able to figure it out. It was also a struggle to figure out how to make it look more like an OS rather than a plain website. The next steps I plan to take are that I’ll create multiple different windows that will be draggable, have a random-goat picture generator, and create goat themed apps.
2nd devlog- Today I changed the welcome page to fit more to the vibe of the website, created it to be draggable, as well as open and close. I made the top bar it’s own color and used js to track the time, updating it. Some challenges I found while doing this was that it was hard 💀 I’ve never coded, except a little bit of Python so all of this was a learning experience for me, but it began to get faster as I learned. A lot of the hours were changing things to look different, or fixing errors. Hopefully the next devlog I’ll have worked faster and have learned more as well. The next thing to do is to create apps to make it look more like an official OS, and I hope to be able to ship it soon after that!
3rd devlog- I made an app! GoatFacts-It’s a text-based app where you can see facts about goats by clicking on categories. I think I was coding faster than I was before, because it didn’t take super long. It was a lot of trial and error for me though, and I had to change the style of it about 4 times to try to get something I liked. I think I am satisfied with the results now! GoatGallery- also began working on a second app that shows pictures of goats, along with some information about the breed. It has been going smoothly, as I mostly just had to remember what I did for the other app, and then adjust. All that’s left mostly to do is to finish GoatGallery and tweak a few things, and then it’s basically finished! Hopefully last devlog 🤞 and then I’ll be shipping GoatOS!
4th devlog- I finished the README for GoatOS, and completed my GoatGallery app. It took me a little while to sync all my changes, but now GoatOS is complete! You can now access it in the demo url, and I’ll be shipping this project.
Ships:
I made GoatOS, a goat themed web operating system. Since I’m just learning coding for the first time, the project took a while but I’m really proud of how it turned out! GoatOS features goat photos and a lot of educational information about goats....
|
1793127261.2130246
|
1793213661.2130246
|