|
41508
|
Artifact by @wwillow | Stardance
|
wwillow
|
0
|
17.55
|
0
|
[]
|
[{"post_id": 40556, "ts": "202 [{"post_id": 40556, "ts": "2026-08-04T05:50:34Z", "hours": 2.1292, "text": "Just worked on routing traces yea so just like the title says i just routed the PCB its really ugly but i hope for that to improve over the versions that plan to come. that was really all for today still some small things that i have to do / fix but that can wait till tomorrow"}, {"post_id": 39877, "ts": "2026-08-03T04:35:19Z", "hours": 0.3, "text": "Started work on the UI design i wanted to go with minimal and like a pixel or like old design, i only have 6 buttons on my PCB so i have to get creative with some typing restraints"}, {"post_id": 39261, "ts": "2026-08-02T03:41:50Z", "hours": 4.9169, "text": "Creating the chassis and adding to CAD Pt. 2 so today i worked on adding making my CAD design look better and i also added rail / supports that will hold in the PCB so i doesn’t move which im also going to extend this to hold the screen later, added the USB-C hole and button holes then i went into fusion 360 and i started to create my chassis, i started all over again even though last time i only had a box, i wanted to use sketches this time because it would be easier and it felt better starting off again. first i added the supports, i went with this design where half the supports are connected to the bottom and the other half is connected to the top that way the PCB can just kinda snug in there, next i just added a opening so that the usb port would fit, then a added in my PCB so i could see if everything lined up which it did so im very thank full for that next i added the button holes, i was kinda freaking out about this because i thought that the supports would interfere with my buttons, but if you look at the photos there is only minor inter lap which i didn’t even account for when making them so it was pure luck that this happened now the real challenge will be creating the actually buttons because i don’t how how to make them to where they wont get stuck on stuff or how to distribute the pressure of the press all around the button because i don’t know if you can see but the button component on the PCB is a bit under the center of the button on the case, so my main worry is about hitting the button component and the button like tilting and getting stuck or not being able to come back to its unpressed position, if you understand what im saying. if you made it this far and have any ideas i would appreciate after i finish this i was thinking about also adding a slimmer version, but that might have less features than the planned second version i tend to create because when looking at my Case in fusion 360 i realized how much space i am wasting so i dont know."}, {"post_id": 38634, "ts": "2026-08-01T04:06:39Z", "hours": 3.2908, "text": "Redesigning CAD + Started creating case Pt. 1 Today i decided to work on making my CAD design better because the first every version looked really bad, didn’t have all the angles and measurements i needed to actually make this device. In this new version there will be more drawing for stuff like how all the components will fit inside the chassis - how they stack on top of each other so i can see how much room i will have. I don’t have a picture of the chassis i made in this journal because it was literally just a box but ill probably add a photo of it in the next part I decided to make the USB-C breakout board is was using on my PCB in my CAD design so i could make my design more accurate without guessing, this probably took the most time out of my day i kept entering the wrong numbers so i had to redo it a lot and had to keep looking back when i first added my chassis into fusion 360 i realized that it was to small because i didn’t really account for walls because in Auto Cad they are only lines they dont have thicknesses, so i decided to make two models one where i added a 1mm thickness to the wall going into the device which would make the inside smaller which didn’t work so i decided to go with my second where i just added 1mm all around the outside, im really counting on being able to order it in aluminum or something a little stronger but now thinking about it i might add a extra 0.5mm onto it"}, {"post_id": 38027, "ts": "2026-07-31T05:30:31Z", "hours": 3.4197, "text": "Starting the PCB — Added the Display and Replaced USB-C today i started working on the PCB. First i added all of my footprints and assigned them to their components. at first i didn’t have the display datasheet yet, so i just placed everything without thinking about the display components because I didn’t know how big the connector I needed was going to be I was originally going to start routing today starting with the USB-C connector but the D+ and D− data lines on it were so incredibly frustrating that i decided to switch it for a different component. I also wasn’t very confident that I could solder the previous USB-C component so I replaced it with a Adafruit USB-C breakout board. After that i contacted the display manufacturer and asked them to send me the display’s datasheet so I could figure out which connector i needed. Once i got the datasheet i added the display connector and a backlight driver to my schematic. i still haven’t positioned the display connector or any of its supporting components on the PCB yet which is why the attached image looks a little messy. I plan to work on placing those components tomorrow."}, {"post_id": 37484, "ts": "2026-07-30T08:14:53Z", "hours": 2.2408, "text": "Partially Completed Schematic Today I started designing the schematic for Artifact by finding and choosing the main components I wanted to use. For the microcontroller, I chose the STM32U585 because it has good USB support, plenty of memory, and a lot of GPIO pins for the hardware I already have planned and anything else I might add later. For the security chip, I chose the ATECC608C. It will help protect the encryption keys used for passwords, accounts, and other important information. For external storage, I chose the W25Q128 flash memory chip. It will be used to store account information, and it also uses less power than something like an SD card. I wanted to keep power usage in mind in case I decide to add a battery later. For the buttons, I chose the EVQ-P7 because they are small and should work well as side mounted buttons. For the USB-C connector, I picked one that looks similar to the connector on the YubiKey 5. I chose it because it looked familiar and matched what I imagined Artifact would look like. Those are most of the main components I have chosen so far. One problem I had was importing the component symbols into KiCad. I was originally using KiCad 10.0, and it would say the libraries imported correctly, but they were actually silently failing and I could not use them. I ended up switching to KiCad 9.0.4, which fixed the problem.Right now, the schematic does not have a display because I am still waiting for the manufacturer to send me the files I need."}, {"post_id": 37121, "ts": "2026-07-29T16:37:32Z", "hours": 1.2494, "text": "Finished the V1 Sketch using AutoCad I worked on my first sketch of my hardware project called artifact, the design is based of a image i had in my head of what i wanted it to look like. i wanted to go for a usb stick look with usb-c(which is in yellow) and then having buttons on top(orange) that can be used to could be used to control the interface, right when i started this project i looked for the screen(purple) i would be using right away because i wanted to base my case and overall dimensions on it so that later on my pcb and all that wouldn’t be to big, i chose to make it 14mm tall so that later on i would have enough room for a battery, my pcb and anything else i might have to add because im still trying to find all my parts, overall its a little bigger than a regular usb but i think it will be fine, the only thing im worried about is the weight because i dont know if it will be able to stay connected to the usbc port when connected to a phone or pc"}]...
|
Title: Artifact by @wwillow | Stardance
Devlogs:
Title: Artifact by @wwillow | Stardance
Devlogs:
Finished the V1 Sketch using AutoCad I worked on my first sketch of my hardware project called artifact, the design is based of a image i had in my head of what i wanted it to look like. i wanted to go for a usb stick look with usb-c(which is in yellow) and then having buttons on top(orange) that can be used to could be used to control the interface, right when i started this project i looked for the screen(purple) i would be using right away because i wanted to base my case and overall dimensions on it so that later on my pcb and all that wouldn’t be to big, i chose to make it 14mm tall so that later on i would have enough room for a battery, my pcb and anything else i might have to add because im still trying to find all my parts, overall its a little bigger than a regular usb but i think it will be fine, the only thing im worried about is the weight because i dont know if it will be able to stay connected to the usbc port when connected to a phone or pc
Partially Completed Schematic Today I started designing the schematic for Artifact by finding and choosing the main components I wanted to use. For the microcontroller, I chose the STM32U585 because it has good USB support, plenty of memory, and a lot of GPIO pins for the hardware I already have planned and anything else I might add later. For the security chip, I chose the ATECC608C. It will help protect the encryption keys used for passwords, accounts, and other important information. For external storage, I chose the W25Q128 flash memory chip. It will be used to store account information, and it also uses less power than something like an SD card. I wanted to keep power usage in mind in case I decide to add a battery later. For the buttons, I chose the EVQ-P7 because they are small and should work well as side mounted buttons. For the USB-C connector, I picked one that looks similar to the connector on the YubiKey 5. I chose it because it looked familiar and matched what I imagined Artifact would look like. Those are most of the main components I have chosen so far. One problem I had was importing the component symbols into KiCad. I was originally using KiCad 10.0, and it would say the libraries imported correctly, but they were actually silently failing and I could not use them. I ended up switching to KiCad 9.0.4, which fixed the problem.Right now, the schematic does not have a display because I am still waiting for the manufacturer to send me the files I need.
Starting the PCB — Added the Display and Replaced USB-C today i started working on the PCB. First i added all of my footprints and assigned them to their components. at first i didn’t have the display datasheet yet, so i just placed everything without thinking about the display components because I didn’t know how big the connector I needed was going to be I was originally going to start routing today starting with the USB-C connector but the D+ and D− data lines on it were so incredibly frustrating that i decided to switch it for a different component. I also wasn’t very confident that I could solder the previous USB-C component so I replaced it with a Adafruit USB-C breakout board. After that i contacted the display manufacturer and asked them to send me the display’s datasheet so I could figure out which connector i needed. Once i got the datasheet i added the display connector and a backlight driver to my schematic. i still haven’t positioned the display connector or any of its supporting components on the PCB yet which is why the attached image looks a little messy. I plan to work on placing those components tomorrow.
Redesigning CAD + Started creating case Pt. 1 Today i decided to work on making my CAD design better because the first every version looked really bad, didn’t have all the angles and measurements i needed to actually make this device. In this new version there will be more drawing for stuff like how all the components will fit inside the chassis - how they stack on top of each other so i can see how much room i will have. I don’t have a picture of the chassis i made in this journal because it was literally just a box but ill probably add a photo of it in the next part I decided to make the USB-C breakout board is was using on my PCB in my CAD design so i could make my design more accurate without guessing, this probably took the most time out of my day i kept entering the wrong numbers so i had to redo it a lot and had to keep looking back when i first added my chassis into fusion 360 i realized that it was to small because i didn’t really account for walls because in Auto Cad they are only lines they dont have thicknesses, so i decided to make two models one where i added a 1mm thickness to the wall going into the device which would make the inside smaller which didn’t work so i decided to go with my second where i just added 1mm all around the outside, im really counting on being able to order it in aluminum or something a little stronger but now thinking about it i might add a extra 0.5mm onto it
Creating the chassis and adding to CAD Pt. 2 so today i worked on adding making my CAD design look better and i also added rail / supports that will hold in the PCB so i doesn’t move which im also going to extend this to hold the screen later, added the USB-C hole and button holes then i went into fusion 360 and i started to create my chassis, i started all over again even though last time i only had a box, i wanted to use sketches this time because it would be easier and it felt better starting off again. first i added the supports, i went with this design where half the supports are connected to the bottom and the other half is connected to the top that way the PCB can just kinda snug in there, next i just added a opening so that the usb port would fit, then a added in my PCB so i could see if everything lined up which it did so im very thank full for that next i added the button holes, i was kinda freaking out about this because i thought that the supports would interfere with my buttons, but if you look at the photos there is only minor inter lap which i didn’t even account for when making them so it was pure luck that this happened now the real challenge will be creating the actually buttons because i don’t how how to make them to where they wont get stuck on stuff or how to distribute the pressure of the press all around the button because i don’t know if you can see but the button component on the PCB is a bit under the center of the button on the case, so my main worry is about hitting the button component and the button like tilting and getting stuck or not being able to come back to its unpressed position, if you understand what im saying. if you made it this far and have any ideas i would appreciate after i finish this i was thinking about also adding a slimmer version, but that might have less features than the planned second version i tend to create because when looking at my Case in fusion 360 i realized how much space i am wasting so i dont know.
Started work on the UI design i wanted to go with minimal and like a pixel or like old design, i only have 6 buttons on my PCB so i have to get creative with some typing restraints
Just worked on routing traces yea so just like the title says i just routed the PCB its really ugly but i hope for that to improve over the versions that plan to come. that was really all for today still some small things that i have to do / fix but that can wait till tomorrow...
|
1793569986.1617649
|
1794174786.1617649
|
|
41507
|
My awesome macropad! by @lerry | Stardance
|
lerry
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @lerry | Stardance
|
1793569985.2508712
|
1794174785.2508712
|
|
41506
|
Untitled by @lerry | Stardance
|
lerry
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @lerry | Stardance
|
1793569984.3647757
|
1794174784.3647757
|
|
41505
|
My own site! by @yuduri | Stardance
|
yuduri
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @yuduri | Stardance
|
1793569983.4615793
|
1794174783.4615793
|
|
18071
|
WinSentry by @Sgattix | Stardance
|
Sgattix
|
1
|
10.0
|
137
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T18:08:39Z", "hours": 10.0, "multiplier": 14.33, "payout": 137, "blessing": "neutral", "text": "Shipped: WinSentry v1.0 (Rust) Windows loves to treat power users like guests on their own hardware. Despite running an i7-12700K and 32GB of DDR5, I was sick of locked UI threads, disappearing taskbar icons, and silent disk-space bloating. So, I spent the last few hours building WinSentry—a lightweight, native Windows daemon built in Rust to force the OS to be clean, stable, and responsive. What it does: The 300ms UI Panic Button: A low-level global keyboard hook (Ctrl + Alt + W) that forcefully kills explorer.exe, deletes the corrupted IconCache.db file while the thread is dead, and instantly spawns a fresh shell instance. Frozen taskbars fixed instantly. Automated System Debloater: A highly optimized background runner that wakes up every 30 minutes to sweep system-generated trash paths (%TEMP%, crash dumps) without locking active files. Safe Developer Staging Queue: An on-demand CLI engine (winsentry –scan) that recursively walks user-specified workspace paths to look for massive black holes like node_modules and pycache . It stages them in a local queue.json file so you can safely review and approve the purge via winsentry –purge. Centralized Config: Everything is fully customizable via %APPDATA%/WinSentry/config.toml. Performance Profiles (Zero Bloat): Because this was built in Rust to combat OS sluggishness, it has a completely invisible footprint: Idle: 0% CPU | 2.4MB RAM (Sits quietly listening for the hotkey message loop). Peak Scan/Discovery Phase: Max 10% CPU | 5MB RAM (Even while recursively scanning thousands of developer subdirectories). Built with embedded UAC manifest integration so it automatically handles the administrative privileges required to clean up system directories right out of the box. Time to stop waiting for the OS.", "repo": "https://github.com/Sgattix/winsentry", "demo": "https://github.com/Sgattix/WinSentry/releases"}]...
|
[{"post_id": 9348, "ts": "2026 [{"post_id": 9348, "ts": "2026-06-15T18:03:32Z", "hours": 3.7375, "text": "It is finally done. After 3 hours and 40 minutes, WinSentry is complete, fully optimized, and running flawlessly. The final block of development focused entirely on the user-controlled workspace clearing engine and rigorous resource profiling. The Final Piece: The Safe Developer Staging Queue The automated system janitor is great for temp folders, but developer bloat like node_modules or pycache requires absolute user safety. How it works: I implemented a high-speed, sequential directory traversal engine. When triggered on-demand via the CLI (winsentry –scan), the tool walks through user-specified workspace paths looking for target directory names defined in the config. The Guardrail: Instead of deleting anything, the tool calculates the total directory size and flushes the data to a local state file inside %APPDATA%/WinSentry/queue.json. The Interactive Review: The user is notified via the terminal that bloat has been discovered. Running winsentry –purge loads the JSON queue and gives the user an interactive, explicit review prompt to check boxes or type all to confirm deletion. Absolute control, zero risk of accidental data loss. Production Performance Benchmarks Since this tool was built to fight Windows sluggishness, it could not afford to be heavy. Running a fast compiled systems language like Rust paid off massively. Here are the real-world metrics monitored via Windows Task Manager: Idle Footprint: 0% CPU and 0.9MB of RAM. It sits completely dormant in the background, listening for the global hotkey message loop and waiting for the 30-minute system interval. Peak Scan & Discovery Footprint: Maximum 10% CPU usage and a peak of 5MB of RAM while actively traversing thousands of subdirectories and calculating file sizes during a deep disk scan. On an NVMe and DDR5 setup, the scan completes in seconds, meaning the system never hitches and the user never has to wait for the utility. READY TO SHIP!"}, {"post_id": 8751, "ts": "2026-06-14T15:37:52Z", "hours": 3.8133, "text": "Two more hours in, and WinSentry now has a fully functioning debloating engine and a robust multi-threaded architecture. What’s new I ripped out the real-time event watcher and replaced it with a task that executes once every 30 minutes. It sleeps completely in between cycles. Performance dropped immediately back to 0% CPU on idle, achieving the exact “invisible” footprint a performance tool needs. Reworked Threading: Thread safety is locked down. The core engine now cleanly separates the global UI hotkey listener thread from the background debloating loop, ensuring a heavy system cleanup never hitches or delays the 300ms “Panic Button” response. System Debloater: The 30-minute janitor thread now actively sweeps system-generated trash paths (configured via %APPDATA%/WinSentry/config.toml). It safely bypasses active, locked files while cleanly executing deep purges on dead telemetry and crash dumps. Robust Logging & Documentation: Implemented a lightweight, structured local logging system to track exactly how many megabytes of ghost space are reclaimed over time. I also laid down the full README.md. Next Up Implementing the User-Specified Safe Queue (queue.json). I’ll be writing the directory traversal logic to detect massive developer black holes (node_modules, pycache ) and scaffolding the manual CLI review step so users can safely approve massive space reclamation."}, {"post_id": 8168, "ts": "2026-06-13T16:42:58Z", "hours": 2.1289, "text": "Windows has a bad habit of treating the user like a guest on their own machine. Despite running an i7-12700K, 32GB of DDR5, and a fast NVMe, I still run into locked UI threads, disappearing taskbar icons, and a persistent “waiting for the OS” feeling. Instead of dealing with it, I’m building WinSentry—a lightweight, native Windows daemon written in Rust designed to force the OS to be responsive and clean. What I Built (The First 2 Hours) Instead of cutting corners, I spent the first block of development setting up a bulletproof core architecture: The 300ms Panic Button: Implemented a low-level global keyboard hook using the Win32 API (RegisterHotKey). Pressing Ctrl + Alt + W forcefully kills explorer.exe, wipes the easily-corrupted local %localappdata%\\IconCache.db file while the thread is dead, clears the icons registry at HKEY_CURRENT_USER \\ Software \\ Classes \\ .png and instantly spawns a clean shell instance. Configuration System: Designed a centralized configuration system that initializes inside a specified directory. Users can customize their hotkeys and define exact target paths. Aggressive Binary Optimization: The background daemon sits completely idle at 0% CPU and takes up less than 1MB of RAM, making it practically invisible to the system. Next Up Moving on to the storage engine: Implementing ReadDirectoryChangesW for zero-overhead, real-time event tracking on high-bloat system folders (%TEMP%, crash dumps). Building the staging queue pipeline (queue.json) to safely scaffold and manually review massive developer black holes like node_modules and pycache before purging them."}]...
|
Title: WinSentry by @Sgattix | Stardance
Devlogs: Title: WinSentry by @Sgattix | Stardance
Devlogs:
Windows has a bad habit of treating the user like a guest on their own machine. Despite running an i7-12700K, 32GB of DDR5, and a fast NVMe, I still run into locked UI threads, disappearing taskbar icons, and a persistent “waiting for the OS” feeling. Instead of dealing with it, I’m building WinSentry—a lightweight, native Windows daemon written in Rust designed to force the OS to be responsive and clean. What I Built (The First 2 Hours) Instead of cutting corners, I spent the first block of development setting up a bulletproof core architecture: The 300ms Panic Button: Implemented a low-level global keyboard hook using the Win32 API (RegisterHotKey). Pressing Ctrl + Alt + W forcefully kills explorer.exe, wipes the easily-corrupted local %localappdata%\IconCache.db file while the thread is dead, clears the icons registry at HKEY_CURRENT_USER \ Software \ Classes \ .png and instantly spawns a clean shell instance. Configuration System: Designed a centralized configuration system that initializes inside a specified directory. Users can customize their hotkeys and define exact target paths. Aggressive Binary Optimization: The background daemon sits completely idle at 0% CPU and takes up less than 1MB of RAM, making it practically invisible to the system. Next Up Moving on to the storage engine: Implementing ReadDirectoryChangesW for zero-overhead, real-time event tracking on high-bloat system folders (%TEMP%, crash dumps). Building the staging queue pipeline (queue.json) to safely scaffold and manually review massive developer black holes like node_modules and pycache before purging them.
Two more hours in, and WinSentry now has a fully functioning debloating engine and a robust multi-threaded architecture. What’s new I ripped out the real-time event watcher and replaced it with a task that executes once every 30 minutes. It sleeps completely in between cycles. Performance dropped immediately back to 0% CPU on idle, achieving the exact “invisible” footprint a performance tool needs. Reworked Threading: Thread safety is locked down. The core engine now cleanly separates the global UI hotkey listener thread from the background debloating loop, ensuring a heavy system cleanup never hitches or delays the 300ms “Panic Button” response. System Debloater: The 30-minute janitor thread now actively sweeps system-generated trash paths (configured via %APPDATA%/WinSentry/config.toml). It safely bypasses active, locked files while cleanly executing deep purges on dead telemetry and crash dumps. Robust Logging & Documentation: Implemented a lightweight, structured local logging system to track exactly how many megabytes of ghost space are reclaimed over time. I also laid down the full README.md. Next Up Implementing the User-Specified Safe Queue (queue.json). I’ll be writing the directory traversal logic to detect massive developer black holes (node_modules, pycache ) and scaffolding the manual CLI review step so users can safely approve massive space reclamation.
It is finally done. After 3 hours and 40 minutes, WinSentry is complete, fully optimized, and running flawlessly. The final block of development focused entirely on the user-controlled workspace clearing engine and rigorous resource profiling. The Final Piece: The Safe Developer Staging Queue The automated system janitor is great for temp folders, but developer bloat like node_modules or pycache requires absolute user safety. How it works: I implemented a high-speed, sequential directory traversal engine. When triggered on-demand via the CLI (winsentry –scan), the tool walks through user-specified workspace paths looking for target directory names defined in the config. The Guardrail: Instead of deleting anything, the tool calculates the total directory size and flushes the data to a local state file inside %APPDATA%/WinSentry/queue.json. The Interactive Review: The user is notified via the terminal that bloat has been discovered. Running winsentry –purge loads the JSON queue and gives the user an interactive, explicit review prompt to check boxes or type all to confirm deletion. Absolute control, zero risk of accidental data loss. Production Performance Benchmarks Since this tool was built to fight Windows sluggishness, it could not afford to be heavy. Running a fast compiled systems language like Rust paid off massively. Here are the real-world metrics monitored via Windows Task Manager: Idle Footprint: 0% CPU and 0.9MB of RAM. It sits completely dormant in the background, listening for the global hotkey message loop and waiting for the 30-minute system interval. Peak Scan & Discovery Footprint: Maximum 10% CPU usage and a peak of 5MB of RAM while actively traversing thousands of subdirectories and calculating file sizes during a deep disk scan. On an NVMe and DDR5 setup, the scan completes in seconds, meaning the system never hitches and the user never has to wait for the utility. READY TO SHIP!
Ships:
Shipped: WinSentry v1.0 (Rust) Windows loves to treat power users like guests on their own hardware. Despite running an i7-12700K and 32GB of DDR5, I was sick of locked UI threads, disappearing taskbar icons, and silent disk-space bloating. So, I spent the last few hours building WinSentry—a lightweight, native Windows daemon built in Rust to force the OS to be clean, stable, and responsive. What it does: The 300ms UI Panic Button: A low-level global keyboard hook (Ctrl + Alt + W) that forcefully kills explorer.exe, deletes the corrupted IconCache.db file while the thread is dead, and instantly spawns a fresh shell instance. Frozen taskbars fixed instantly. Automated System Debloater: A highly optimized background runner that wakes up every 30 minutes to sweep system-generated trash paths (%TEMP%, crash dumps) without locking active files. Safe Developer Staging Queue: An on-demand CLI engine (winsentry –scan) that recursively walks user-specified workspace paths to look for massive black holes like node_modules and pycache . It stages them in a local queue.json file so you can safely review and approve the purge via winsentry –purge. Centralized Config: Everything is fully customizable via %APPDATA%/WinSentry/config.toml. Performance Profiles (Zero Bloat): Because this was built in Rust to combat OS sluggishness, it has a completely invisible footprint: Idle: 0% CPU | 2.4MB RAM (Sits quietly listening for the hotkey message loop). Peak Scan/Discovery Phase: Max 10% CPU | 5MB RAM (Even while recursively scanning thousands of developer subdirectories). Built with embedded UAC manifest integration so it automatically handles the administrative privileges required to clean up system directories right out of the box. Time to stop waiting for the OS....
|
1793569982.2696185
|
1793656382.2696185
|
|
41503
|
My first slack bot! by @Asteria_ | Stardance
|
Asteria_
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Asteria_ | Stardanc Title: My first slack bot! by @Asteria_ | Stardance...
|
1793569981.3855147
|
1794174781.3855147
|
|
59606
|
web by @x_youaplaya | Stardance
|
x_youaplaya
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: web by @x_youaplaya | Stardance
|
1793569980.5063436
|
1794174780.5063436
|
|
959
|
Ebeep by @Avizi | Stardance
|
Avizi
|
1
|
85.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-23T10:29:40Z", "hours": 85.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "my project is a “beeper” with an eink display, it features three low profile mechanical switches, esp32, battery and a 3d printed case to tie it all up. ill be building two of them and gifting one to my GF on her birthday later this month!", "repo": "https://github.com/Av1zi/Ebeep", "demo": ""}]...
|
[{"post_id": 33374, "ts": "202 [{"post_id": 33374, "ts": "2026-07-23T07:45:06Z", "hours": 11.1325, "text": "Devlog #18 - The Final One my project in short to those who havent seen it yet My project is a “beeper” with an e-ink display. It features three low-profile mechanical switches, an ESP32, a battery, and a 3D-printed case to tie it all together. I built two of them and gifted one to my GF for her birthday! so this is it, the last devlog for Ebeep. i finished the Blender showcase animation, check it out ⬇️⬇️⬇️ took way longer than expected since I’ve never really used blender for anything like this before, but I’m happy with how it turned out. (or kicad) as for the PCB, the design is fully done, routed, and ready to export to gerbers, but I decided not to actually order it right now. the perfboard build already works and does the job, and the PCB was mostly a “because I can” side project once I started documenting everything (devlog #16 lol). might revisit it in the future if I ever want to build a v2 or make more of these, but for now the current build is what’s shipping as “done.” looking back this project went through basically everything a project can go through: missed deadlines, a broken 3d printer, a bug that silently deleted my girlfriend’s messages for a week without me noticing, failed prints, finals eating my motivation and somehow it still came out the other side working, on both devices, doing everything I wanted it to do. if I had to do it again I’d probably: start the PCB earlier instead of perfboard + rework set up proper MQTT retained-message handling from day one instead of patching it in later. budget way more time for the case than I did CAD alone ate multiple redesigns and i still needed help from my friend to finish it i really need to work on my CAD skills but honestly, for a project that started as “let’s port some code to an esp32 I’m scared to solder,” I’m really proud of where it landed. whats next? id really love to keep working and making it the best i can (the 3d render is really rough as i had to finish it TODAY and some of the code is still messy), but realistically, nothing planned this is the ‘finish’ line. maybe a better PCB with a good showcase with cleaner code and a case that actually houses the PCB someday, maybe not. either way, thanks to everyone who followed along since the start. TL;DR finished the showcase render, PCB design is complete but staying unbuilt for now, and the project is officially ‘done’. thanks for reading 🎉"}, {"post_id": 32922, "ts": "2026-07-22T12:11:04Z", "hours": 8.3689, "text": "Devlog #17 pcb is done and showcase animation my project in short to those who havent seen it yet My project is a “beeper” with an e-ink display. It features three low-profile mechanical switches, an ESP32, a battery, and a 3D-printed case to tie it all together. I’ll be building two of them and gifting one to my GF for her birthday! i finished the pcb and refined it! yesterday ish i had like an idea to make an animation in blender to showcase the device for the final devlog so i started working on it nect devlog will be the final one! (i think)"}, {"post_id": 30954, "ts": "2026-07-18T23:27:55Z", "hours": 10.3483, "text": "Devlog #16 documenting (and accidental PCB?) my project in short to those who havent seen it yet My project is a “beeper” with an e-ink display. It features three low-profile mechanical switches, an ESP32, a battery, and a 3D-printed case to tie it all together. I’ll be building two of them and gifting one to my GF for her birthday! so i finally sat down to start documenting my work, but while doing so… i might have gone a little over the top and started designing a custom PCB for the project ;-;it’s pretty fun ngl, i’m really enjoying working on it! ohh also, i fixed a MAJOR bug in my code. i have absolutely no clue how i didn’t notice it earlier, but when i was trying to fix bugs last week, i accidentally introduced a new one that deleted messages the exact second they arrived. so yeah… i didn’t get any messages from my girlfriend for a whole week lol. oops. and if anyone here knows how to make pcbs please help me i have no clue what im doing thanks!"}, {"post_id": 29566, "ts": "2026-07-16T16:26:24Z", "hours": 1.05, "text": "Devlog #15 Small changes my project in short to those who havent seen it yet My project is a “beeper” with an e-ink display. It features three low-profile mechanical switches, an ESP32, a battery, and a 3D-printed case to tie it all together.I’ll be building two of them and gifting one to my GF for her birthday! i a couple of issues with blackjack: * can now display around 11 cards(more than that is extremly unlikely so i didnt bother) * dealer no longer draws cards if u bust * now the split looks much much cleaner now even if one device is disconnected the msg will be stored and displayed when the device connects to the wifi some other stuff i forgot"}, {"post_id": 28397, "ts": "2026-07-14T17:07:08Z", "hours": 3.7961, "text": "Devlog #14 - The project is compleated! (if there arent ane new bugs) my project in short to those who havent seen it yet My project is a “beeper” with an e-ink display. It features three low-profile mechanical switches, an ESP32, a battery, and a 3D-printed case to tie it all together. I’ll be building two of them and gifting one to my GF for her birthday! what did i do? i added connect 4 & blackJack both of em should work now i fixed a problem with the wifi connection made new art for the connect 4 & blackjack to replace the place holders. i have already gifted the other device and shes probably reading this devlog so hello and sorry it took long all i have to do is finish up the docs and the github page and then were ready to ship"}, {"post_id": 25346, "ts": "2026-07-09T16:06:15Z", "hours": 6.6869, "text": "Devlog #13 The project is completed (mostly) my project in short to those who havent seen it yet My project is a “beeper” with an e-ink display. It features three low-profile mechanical switches, an ESP32, a battery, and a 3D-printed case to tie it all together.I’ll be building two of them and gifting one to my GF for her birthday! Just finished building my second ebeep device! The good news are it came out SO much better than the first one, It might not be super obvious from the photos but trust me the difference IRL is HUGE. The Type-C connection actually fits properly this time! and the two devices are communicating great, and I even managed to run multiple rounds of Tic-Tac-Toe. . As for the bad news, It seems like every other day I encounter a new issue usually related to Wi-Fi or server connectivity. hopefully my janky code i wrote so far successfully patched them out. I’m trying to squash as many as possible before I gift one to my girlfriend later this week. If I have time, I’ll try to finish up Connect 4 as well and i think ill give up on the poker game i dont want to delay it any longer lol. . Also, for those who were wondering, we landed in 30th place (out of 36?) at the FRC competition"}, {"post_id": 19344, "ts": "2026-06-30T16:56:56Z", "hours": 4.9703, "text": "Devlog #12 THE FIRST ONE IS DONE my project in short to those who havent seen it yet: My project is a “beeper” with an e-ink display. It features three low-profile mechanical switches, an ESP32, a battery, and a 3D-printed case to tie it all together. I’ll be building two of them and gifting one to my GF for her birthday! I soldered everything up, crammed it into the box, and it works now. hooray! The only issue I had was that the negative terminal on the bottom of the esp32 disconnected when I tried to fit it into the box. I’m now in the process of testing and ironing out bugs. So far i found two the battery readout is weird but it works, and the battery runs out way too quickly, so I’m trying to fix those issues. unfortunately, I don’t know when I’ll be able to finish the second one since the 3D printer broke down (I literally bought it last week ) It took me a while to finish this one since I had an FRC competition to attend and couldnt finish everything in 1 day."}, {"post_id": 16357, "ts": "2026-06-26T16:42:53Z", "hours": 6.3789, "text": "Devlog #11 we are 80% there! my project in short my project is a “beeper” with an eink display, it will feature three low profile mechanical switches, esp32, battery and a 3d printed case to tie it all up.ill be building two of them and gifting one to my GF on her birthday! what did i do? i finished the CAD (i hope), and started soldering everything together with the help of my dad(hes the best) the electronic plate is coming together nicly its not done yet but its mostly done!! and i will probably finish the first beeper TODAY!"}, {"post_id": 14554, "ts": "2026-06-23T18:34:15Z", "hours": 2.7692, "text": "Devlog #10 i missed the deadline :( (failed print after failed print) my project in short my project is a “beeper” with an eink display, it will feature three low profile mechanical switches, esp32, battery and a 3d printed case to tie it all up. ill be building two of them and gifting one to my GF on her birthday! Her birthday was yesterday, i missed the deadline and my motivation is at an all time low. The code is done (i hope) but the 3d case is so horrible. its way too big and wastes so much material on useless spots and way too little on places in places that need it. the whole thing needs a redesign and I’m working on that but unfortunately ill have to postpone it by at least two days since i have 1 more final exam i need to take. and i just feel awful that i have to give her the birthday present with a week+ delay TL;DR i missed the dead line and I’m really down, the case needs a major redesign and im yet to even start soldering the code probably is done"}, {"post_id": 13239, "ts": "2026-06-21T17:54:28Z", "hours": 2.5981, "text": "Devlog #9 (1 day until GF birthday) TL;DR: finished tic tac toe, added icons to show if the bepper lost internet connection and updated the 3d model my project in short my project is a “beeper” with an eink display, it will feature three low profile mechanical switches, esp32, battery and a 3d printed case to tie it all up. ill be building two of them and gifting one to my GF on her birthday later this month! what did i do? online tic tac toe works now icons to show if the connection is lost and automatically reconnect updated 3d model to actually use M4 screws how do they talk to eachother? i made a comic to demonstrate it cuz ik yall aint reading all that but if u want to read it in more detail: the first player sends to the other a message “TTT_JOIN” in /games then start listening to /games/TTT (channel where all the game communication will happen) the second player will receive that message and will get a notification that someone is waiting to play tic tac toe then if he wants he will join the the game and send a msg on /games/TTT that he joined both screens will update and show the tic tac toe board. each player will take his turn and send a message in /games/TTT with a row and a column of the place he chose to play and the screen will update accordingly. when the game ends they could request a rematch and will start this whole process again"}, {"post_id": 12102, "ts": "2026-06-19T19:09:33Z", "hours": 8.5831, "text": "Devlog 8 (3 DAYS LEFT UNTILL GF BIRTHDAY) CAD IS DONE what did i do? finished the cad hopefully will start printing on sunday when my new 3d printer arrives (and hopefully wont have to change anything bc i have 3 DAYS LEFT ) I REWORKED THE ENTIRE MQTT CODE (made the beeper talk to each other differently in order to make games possible) almost done with the online tic tac toe (the more indepth devlog will be the next one) fixed like 4 bugs and another 2 popped up kill me whats next? finish EVERYTHING before my GF birthday on Tuesday (sorry for this short devlog dont have much to say about the cad model the one on the code will come tmr hopefully)"}, {"post_id": 7523, "ts": "2026-06-12T15:45:53Z", "hours": 4.0075, "text": "Devlog #7 Its a big one what did i do? added a way to set the wifi password from your phone made the beeper actually able to talk and send messages fixed a lot of bugs that popped up after the switch to esp32 added a way to scroll faster for convince me and my friend started designing a case we will 3d print whats next? finish design a 3d printed case maybe finish one of the games side notes: i added a short video with a demo of everything working together would love to hear your thoughts about it background music: In the pool by kensuke ushio (forgor who made the piano cover im using) update on me: physics finals is in 3 days and I’m so cooked might not be able to design the case for a while"}, {"post_id": 6183, "ts": "2026-06-10T11:59:50Z", "hours": 2.0744, "text": "Devlog #6 my project is a “beeper” with an eink display, it will feature three low profile mechanical switches, esp32, battery and a 3d printed case to tie it all up. ill be building two of them and gifting one to my GF on her birthday later this month! what did i do? the esp32 arrived yesterday its much much smaller than i expected and i have no clue how im going to solder it later ;-; anyways so i worked on porting my current code from arduino to esp32, its seems to be working as intended. now i just need to add all the missing features like the mqtt protocol and wifi portal. whats next? add the wifi portal (so i wont have to hardcode the wifi credentials in the code) make the esp32 work with the mqtt protocol design a 3d printed case finish the games (not really a priority right now) update on me: more finals soon yay :/"}, {"post_id": 4877, "ts": "2026-06-08T13:14:45Z", "hours": 1.6892, "text": "Devlog #5! to those haven’t seen my project yet in short: my project is a “beeper” with an eink display ill be building two of them and gifting one to my GF on her birthday later this month! it will feature three low profile mechanical switches, esp32, battery and a 3d printed case to tie it all up what did i do? i was bored since i cant really work on the project and have to wait for my esp32 to arrive >:( so i went on a side quest and added the game select menu, nothing major i also need to design the icons since they are just place holders from google whats next? wait for esp32 to arrive >:( actually make blackjack and the other games ask my friend to 3d help me 3d model the case update on me: sorry for the long wait i had a bunch of shit 2 do and war with iran ;-;"}, {"post_id": 3074, "ts": "2026-06-05T23:33:08Z", "hours": 2.1186, "text": "Devlog #4! . to those haven’t seen my project yet in short: my project is a “beeper” with an eink display ill be building two of them and gifting one to my GF on her birthday later this month! it will feature three low profile mechanical switches, esp32, battery and a 3d printed case to tie it all up what did i do? . i tired connecting my current setup to the MQTT broker and make it actually able to talk to other devices BUT IT DIDNT WORK i spent hours debugging it, only to come to the conclusion that i CANT do it with my current setup and i NEED the esp32 to continue coding or at least it will be much easier every day that passes i hate AliExpress even more it should have arrived 4 days ago ;-; the only useful i did is figure out how .gitignore work so now i dont need a hotspot lol whats next? wait for esp32 to arrive >:( update on me: . nothing rely new from yesterday . side note i just noticed ive never actually shown you how the UI i made previously works. so i attached a short walk through"}, {"post_id": 2424, "ts": "2026-06-04T22:02:29Z", "hours": 1.2675, "text": "Devlog #3 . to those haven’t seen my project yet in short: . my project is a “beeper” with an eink display (like the name suggests). ill be building two of them and gifting one to my GF on her birthday later this month! it will feature three low profile mechanical switches, esp32, battery and a 3d printed case to tie it all up what did i do today? . today i added Wifi! since i still dont have my esp32 (damm you AliExpress and your slow shipping), i wont be able to use the cool web UI library i wanted to use… so i changed my phones hotspot to the most boring name & password i could think of and hard coded those credentials in (i dont know how to hide sensitive info from GitHub and didn’t want to add my real wifi lol) edit: i also added the little wifi ui thingy you see in the picture whats next? i will research more about the MQTT protocol my two devices will use to communicate add end to end encryption (both devices will have a hard coded secret “password” they will use to encrypt and decrypt the messages) if esp arrives soon (WHICH IT SHOULD) ill connect it to the bread board and change the code accordingly and much more just later on id love to hear what your thoughts in the comments :) update on me: today was my computer science finals and it was 5 hours. i was pretty burned out after that so didn’t do that much today either :/ the next couple days are packed with personal stuff and more final exams so u might not hear from me soon… ill try to work on this project at least an hour every day so if u do it will be small changes unfortunately"}, {"post_id": 1723, "ts": "2026-06-03T21:50:03Z", "hours": 1.3117, "text": "Devlog #2 My project Ebeep is starting to take a bit more shape! . my project is a “beeper” with an eink display (like the name suggests). ill be building two of them and gifting one to my GF on her birthday later this month! . i rewrote almost the ENTIRE UI since last time the code i wrote was pretty bad and it had terrible UI. hopefully tomorrow i could work on actually connecting it to the internet and work on basic end to end encryption (maybe?). also i really hope ill get my esp32s soon so i could actually test my code on that instead of my arduino and design my 3d case for it. . today and yesterday werent very productive since my CS finals are tomorrow! so wish me luck!"}, {"post_id": 1088, "ts": "2026-06-02T22:16:57Z", "hours": 5.4681, "text": "day 1 of my ebeep project, i managed to make the eInk display work properly after HOURS of trouble shooting code. (apparently if it says 3.3V only it means dont connect a 5V Arduino to it oops) i managed to make the sick UI hopefully the esp32 and the battery will come soon so i can start designing the case for it"}]...
|
Title: Ebeep by @Avizi | Stardance
Devlogs:
day 1 Title: Ebeep by @Avizi | Stardance
Devlogs:
day 1 of my ebeep project, i managed to make the eInk display work properly after HOURS of trouble shooting code. (apparently if it says 3.3V only it means dont connect a 5V Arduino to it oops) i managed to make the sick UI hopefully the esp32 and the battery will come soon so i can start designing the case for it
Devlog #2 My project Ebeep is starting to take a bit more shape! . my project is a “beeper” with an eink display (like the name suggests). ill be building two of them and gifting one to my GF on her birthday later this month! . i rewrote almost the ENTIRE UI since last time the code i wrote was pretty bad and it had terrible UI. hopefully tomorrow i could work on actually connecting it to the internet and work on basic end to end encryption (maybe?). also i really hope ill get my esp32s soon so i could actually test my code on that instead of my arduino and design my 3d case for it. . today and yesterday werent very productive since my CS finals are tomorrow! so wish me luck!
Devlog #3 . to those haven’t seen my project yet in short: . my project is a “beeper” with an eink display (like the name suggests). ill be building two of them and gifting one to my GF on her birthday later this month! it will feature three low profile mechanical switches, esp32, battery and a 3d printed case to tie it all up what did i do today? . today i added Wifi! since i still dont have my esp32 (damm you AliExpress and your slow shipping), i wont be able to use the cool web UI library i wanted to use… so i changed my phones hotspot to the most boring name & password i could think of and hard coded those credentials in (i dont know how to hide sensitive info from GitHub and didn’t want to add my real wifi lol) edit: i also added the little wifi ui thingy you see in the picture whats next? i will research more about the MQTT protocol my two devices will use to communicate add end to end encryption (both devices will have a hard coded secret “password” they will use to encrypt and decrypt the messages) if esp arrives soon (WHICH IT SHOULD) ill connect it to the bread board and change the code accordingly and much more just later on id love to hear what your thoughts in the comments :) update on me: today was my computer science finals and it was 5 hours. i was pretty burned out after that so didn’t do that much today either :/ the next couple days are packed with personal stuff and more final exams so u might not hear from me soon… ill try to work on this project at least an hour every day so if u do it will be small changes unfortunately
Devlog #4! . to those haven’t seen my project yet in short: my project is a “beeper” with an eink display ill be building two of them and gifting one to my GF on her birthday later this month! it will feature three low profile mechanical switches, esp32, battery and a 3d printed case to tie it all up what did i do? . i tired connecting my current setup to the MQTT broker and make it actually able to talk to other devices BUT IT DIDNT WORK i spent hours debugging it, only to come to the conclusion that i CANT do it with my current setup and i NEED the esp32 to continue coding or at least it will be much easier every day that passes i hate AliExpress even more it should have arrived 4 days ago ;-; the only useful i did is figure out how .gitignore work so now i dont need a hotspot lol whats next? wait for esp32 to arrive >:( update on me: . nothing rely new from yesterday . side note i just noticed ive never actually shown you how the UI i made previously works. so i attached a short walk through
Devlog #5! to those haven’t seen my project yet in short: my project is a “beeper” with an eink display ill be building two of them and gifting one to my GF on her birthday later this month! it will feature three low profile mechanical switches, esp32, battery and a 3d printed case to tie it all up what did i do? i was bored since i cant really work on the project and have to wait for my esp32 to arrive >:( so i went on a side quest and added the game select menu, nothing major i also need to design the icons since they are just place holders from google whats next? wait for esp32 to arrive >:( actually make blackjack and the other games ask my friend to 3d help me 3d model the case update on me: sorry for the long wait i had a bunch of shit 2 do and war with iran ;-;
Devlog #6 my project is a “beeper” with an eink display, it will feature three low profile mechanical switches, esp32, battery and a 3d printed case to tie it all up. ill be building two of them and gifting one to my GF on her birthday later this month! what did i do? the esp32 arrived yesterday its much much smaller than i expected and i have no clue how im going to solder it later ;-; anyways so i worked on porting my current code from arduino to esp32, its seems to be working as intended. now i just need to add all the missing features like the mqtt protocol and wifi portal. whats next? add the wifi portal (so i wont have to hardcode the wifi credentials in the code) make the esp32 work with the mqtt protocol design a 3d printed case finish the games (not really a priority right now) update on me: more finals soon yay :/
Devlog #7 Its a big one what did i do? added a way to set the wifi password from your phone made the beeper actually able to talk and send messages fixed a lot of bugs that popped up after the switch to esp32 added a way to scroll faster for convince me and my friend started designing a case we will 3d print whats next? finish design a 3d printed case maybe finish one of the games side notes: i added a short video with a demo of everything working together would love to hear your thoughts about it background music: In the pool by kensuke ushio (forgor who made the piano cover im using) update on me: physics finals is in 3 days and I’m so cooked might not be able to design the case for a while
Devlog 8 (3 DAYS LEFT UNTILL GF BIRTHDAY) CAD IS DONE what did i do? finished the cad hopefully will start printing on sunday when my new 3d printer arrives (and hopefully wont have to change anything bc i have 3 DAYS LEFT ) I REWORKED THE ENTIRE MQTT CODE (made the beeper talk to each other differently in order to make games possible) almost done with the online tic tac toe (the more indepth devlog will be the next one) fixed like 4 bugs and another 2 popped up kill me whats next? finish EVERYTHING before my GF birthday on Tuesday (sorry for this short devlog dont have much to say about the cad model the one on the code will come tmr hopefully)
Devlog #9 (1 day until GF birthday) TL;DR: finished tic tac toe, added icons to show if the bepper lost internet connection and updated the 3d model my project in short my project is a “beeper” with an eink display, it will feature three low profile mechanical switches, esp32, battery and a 3d printed case to tie it all up. ill be building two of them and gifting one to my GF on her birthday later this month! what did i do? online tic tac toe works now icons to show if the connection is lost and automatically reconnect updated 3d model to actually use M4 screws how do they talk to eachother? i made a comic to demonstrate it cuz ik yall aint reading all that but if u want to read it in more detail: the first player sends to the other a message “TTT_JOIN” in /games then start listening to /games/TTT (channel where all the game communication will happen) the second player will receive that message and will get a notification that someone is waiting to play tic tac toe then if he wants he will join the the game and send a msg on /games/TTT that he joined both screens will update and show the tic tac toe board. each player will take his turn and send a message in /games/TTT with a row and a column of the place he chose to play and the screen will update accordingly. when the game ends they could request a rematch and will start this whole process again
Devlog #10 i missed the deadline :( (failed print after failed print) my project in short my project is a “beeper” with an eink display, it will feature three low profile mechanical switches, esp32, battery and a 3d printed case to tie it all up. ill be building two of them and gifting one to my GF on her birthday! Her birthday was yesterday, i missed the deadline and my motivation is at an all time low. The code is done (i hope) but the 3d case is so horrible. its way too big and wastes so much material on useless spots and way too little on places in places that need it. the whole thing needs a redesign and I’m working on that but unfortunately ill have to postpone it by at least two days since i have 1 more final exam i need to take. and i just feel awful that i have to give her the birthday present with a week+ delay TL;DR i missed the dead line and I’m really down, the case needs a major redesign and im yet to even start soldering the code probably is done
Devlog #11 we are 80% there! my project in short my project is a “beeper” with an eink display, it will feature three low profile mechanical switches, esp32, battery and a 3d printed case to tie it all up.ill be building two of them and gifting one to my GF on her birthday! what did i do? i finished the CAD (i hope), and started soldering everything together with the help of my dad(hes the best) the electronic plate is coming together nicly its not done yet but its mostly done!! and i will probably finish the first beeper TODAY!
Devlog #12 THE FIRST ONE IS DONE my project in short to those who havent seen it yet: My project is a “beeper” with an e-ink display. It features three low-profile mechanical switches, an ESP32, a battery, and a 3D-printed case to tie it all together. I’ll be building two of them and gifting one to my GF for her birthday! I soldered everything up, crammed it into the box, and it works now. hooray! The only issue I had was that the negative terminal on the bottom of the esp32 disconnected when I tried to fit it into the box. I’m now in the process of testing and ironing out bugs. So far i found two the battery readout is weird but it works, and the battery runs out way too quickly, so I’m trying to fix those issues. unfortunately, I don’t know when I’ll be able to finish the second one since the 3D printer broke down (I literally bought it last week ) It took me a while to finish this one since I had an FRC competition to attend and couldnt finish everything in 1 day.
Devlog #13 The project is completed (mostly) my project in short to those who havent seen it yet My project is a “beeper” with an e-ink display. It features three low-profile mechanical switches, an ESP32, a battery, and a 3D-printed case to tie it all together.I’ll be building two of them and gifting one to my GF for her birthday! Just finished building my second ebeep device! The good news are it came out SO much better than the first one, It might not be super obvious from the photos but trust me the difference IRL is HUGE. The Type-C connection actually fits properly this time! and the two devices are communicating great, and I even managed to run multiple rounds of Tic-Tac-Toe. . As for the bad news, It seems like every other day I encounter a new issue usually related to Wi-Fi or server connectivity. hopefully my janky code i wrote so far successfully patched them out. I’m trying to squash as many as possible before I gift one to my girlfriend later this week. If I have time, I’ll try to finish up Connect 4 as well and i think ill give up on the poker game i dont want to delay it any longer lol. . Also, for those who were wondering, we landed in 30th place (out of 36?) at the FRC competition
Devlog #14 - The project is compleated! (if there arent ane new bugs) my project in short to those who havent seen it yet My project is a “beeper” with an e-ink display. It features three low-profile mechanical switches, an ESP32, a battery, and a 3D-printed case to tie it all together. I’ll be building two of them and gifting one to my GF for her birthday! what did i do? i added connect 4 & blackJack both of em should work now i fixed a problem with the wifi connection made new art for the connect 4 & blackjack to replace the place holders. i have already gifted the other device and shes probably reading this devlog so hello and sorry it took long all i have to do is finish up the docs and the github page and then were ready to ship
Devlog #15 Small changes my project in short to those who havent seen it yet My project is a “beeper” with an e-ink display. It features three low-profile mechanical switches, an ESP32, a battery, and a 3D-printed case to tie it all together.I’ll be building two of them and gifting one to my GF for her birthday! i a couple of issues with blackjack: * can now display around 11 cards(more than that is extremly unlikely so i didnt bother) * dealer no longer draws cards if u bust * now the split looks much much cleaner now even if one device is disconnected the msg will be stored and displayed when the device connects to the wifi some other stuff i forgot
Devlog #16 documenting (and accidental PCB?) my project in short to those who havent seen it yet My project is a “beeper” with an e-ink display. It features three low-profile mechanical switches, an ESP32, a battery, and a 3D-printed case to tie it all together. I’ll be building two of them and gifting one to my GF for her birthday! so i finally sat down to start documenting my work, but while doing so… i might have gone a little over the top and started designing a custom PCB for the project ;-;it’s pretty fun ngl, i’m really enjoying working on it! ohh also, i fixed a MAJOR bug in my code. i have absolutely no clue how i didn’t notice it earlier, but when i was trying to fix bugs last week, i accidentally introduced a new one that deleted messages the exact second they arrived. so yeah… i didn’t get any messages from my girlfriend for a whole week lol. oops. and if anyone here knows how to make pcbs please help me i have no clue what im doing thanks!
Devlog #17 pcb is done and showcase animation my project in short to those who havent seen it yet My project is a “beeper” with an e-ink display. It features three low-profile mechanical switches, an ESP32, a battery, and a 3D-printed case to tie it all together. I’ll be building two of them and gifting one to my GF for her birthday! i finished the pcb and refined it! yesterday ish i had like an idea to make an animation in blender to showcase the device for the final devlog so i started working on it nect devlog will be the final one! (i think)
Devlog #18 - The Final One my project in short to those who havent seen it yet My project is a “beeper” with an e-ink display. It features three low-profile mechanical switches, an ESP32, a battery, and a 3D-printed case to tie it all together. I built two of them and gifted one to my GF for her birthday! so this is it, the last devlog for Ebeep. i finished the Blender showcase animation, check it out ⬇️⬇️⬇️ took way longer than expected since I’ve never really used blender for anything like this before, but I’m happy with how it turned out. (or kicad) as for the PCB, the design is fully done, routed, and ready to export to gerbers, but I decided not to actually order it right now. the perfboard build already works and does the job, and the PCB was mostly a “because I can” side project once I started documenting everything (devlog #16 lol). might revisit it in the future if I ever want to build a v2 or make more of these, but for now the current build is what’s shipping as “done.” looking back this project went through basically everything a project can go through: missed deadlines, a broken 3d printer, a bug that silently deleted my girlfriend’s messages for a week without me noticing, failed prints, finals eating my motivation and somehow it still came out the other side working, on both devices, doing everything I wanted it to do. if I had to do it again I’d probably: start the PCB earlier instead of perfboard + rework set up proper MQTT retained-message handling from day one instead of patching it in later. budget way more time for the case than I did CAD alone ate multiple redesigns and i still needed help from my friend to finish it i really need to work on my CAD skills but honestly, for a project that started as “let’s port some code to an esp32 I’m scared to solder,” I’m really proud of where it landed. whats next? id really love to keep working and making it the best i can (the 3d render is really rough as i had to finish it TODAY and some of the code is still messy), but realistically, nothing planned this is the ‘finish’ line. maybe a better PCB with a good showcase with cleaner code and a case that actually houses the PCB someday, maybe not. either way, thanks to everyone who followed along since the start. TL;DR finished the showcase render, PCB design is complete but staying unbuilt for now, and the project is officially ‘done’. thanks for reading 🎉
Ships:
my project is a “beeper” with an eink display, it features three low profile mechanical switches, esp32, battery and a 3d printed case to tie it all up. ill be building two of them and gifting one to my GF on her birthday later this month!...
|
1793569979.1387515
|
1793656379.1387515
|
|
41502
|
MEGUMI AI by @anshunavbora | Stardance
|
anshunavbora
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: MEGUMI AI by @anshunavbora | Stardance
|
1793569978.2616208
|
1794174778.2616208
|
|
41500
|
Cave friends by @cosmo | Stardance
|
cosmo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Cave friends by @cosmo | Stardance
|
1793569977.3598943
|
1794174777.3598943
|
|
59605
|
my APOD site by @x_youaplaya | Stardance
|
x_youaplaya
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @x_youaplaya | Stardance
|
1793569976.4488015
|
1794174776.4488015
|
|
59604
|
My own site! by @priyankageeta62 | Stardance
|
priyankageeta62
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @priyankageeta62 | Stardanc Title: My own site! by @priyankageeta62 | Stardance...
|
1793569975.546676
|
1794174775.546676
|
|
59601
|
my web os by @RobertSchmutsch | Stardance
|
RobertSchmutsch
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my web os by @RobertSchmutsch | Stardance
|
1793569974.6471562
|
1794174774.6471562
|
|
59600
|
TestOS by @vertigo | Stardance
|
vertigo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: TestOS by @vertigo | Stardance
|
1793569973.7340636
|
1794174773.7340636
|
|
24208
|
xbServerHub by @xb | Stardance
|
xb
|
0
|
7.57
|
0
|
[]
|
[{"post_id": 16473, "ts": "202 [{"post_id": 16473, "ts": "2026-06-26T20:23:23Z", "hours": 3.2156, "text": "Devlog: Real-Time Server Metrics with Glances and SignalR In this update, I added live server monitoring to xbServerHub . The goal was to collect system metrics (CPU, memory, network) from a Glances instance running in Docker, and stream them to the frontend in real time using SignalR — all while keeping the backend organized around Clean Architecture (Domain, Application, Persistence, API). What Was Done 1. Metrics Collection via Glances Glances exposes a REST API with system stats. I added a GlancesClient in the Persistence layer that polls the /cpu , /mem , and /network endpoints in parallel and maps the raw JSON responses into clean domain models ( ServerMetrics , CpuStats , MemoryStats , NetworkInterfaceStats ). A BackgroundService using PeriodicTimer polls Glances every 2 seconds and passes the result to a handler ( CollectSystemMetricsHandler ) in the Application layer, which doesn’t know or care that the data originally came from an HTTP call to Glances — it just receives a ServerMetrics object. 2. Broadcasting Metrics with SignalR To get this data to the frontend without constant polling from the client, I introduced an IMetricsBroadcaster interface in Application. This follows the same pattern as IGlancesClient : Application defines what it needs (a way to send metrics somewhere), without knowing how that’s actually done. The implementation, SignalRMetricsBroadcaster , lives in the API layer and uses a MetricsHub to push data to all connected clients via Clients.All.SendAsync . The handler now calls both the Glances client and the broadcaster on every tick, so every 2 seconds connected clients get a fresh snapshot pushed to them automatically. 3. Securing the Hub and Fixing Auth Routes Since metrics shouldn’t be visible to anyone who isn’t logged in, I added [Authorize] to MetricsHub . Because the app uses cookie-based authentication ( SignInManager ), this works without needing any token handling on the SignalR connection — the existing session cookie is enough, as long as the connection is treated as same-origin. This is also where I cleaned up and reorganized the authentication API routes to make sure they’re consistent with how the frontend (and now SignalR) expects to reach them, and wired up the Hub endpoint ( MapHub ) alongside the rest of the API configuration. Current State The backend now collects CPU, memory, and network stats every 2 seconds and pushes them live to any authenticated, connected client. The frontend isn’t consuming this yet — that’s the next step, along with finalizing the dev proxy setup so cookies and WebSocket connections behave the same in development as they will once frontend and backend are deployed together in a single container."}, {"post_id": 14534, "ts": "2026-06-23T17:56:51Z", "hours": 3.0894, "text": "Devlog: Frontend Login Flow and Session Handling with Cookies In this update, I built the entire frontend authentication flow for xbServerHub in React. The main goals were to handle regular login, two-factor authentication (2FA), and secure session persistence using cookies from the ASP.NET Core Identity backend. What Was Done 1. Project Structure and Clean Components Instead of keeping all the code in one giant file, I split the authentication page into smaller, reusable components: AuthPage.tsx – Manages which form to show. LoginForm.tsx – Handles the initial email and password submission. TwoFactorForm.tsx – Handles the 2FA code verification if required by the backend. 2. React Router and Route Protection I installed react-router-dom and configured the routing for the app: Public route: /auth for logging in. Protected route: /dashboard which can only be accessed by authenticated users. If an unauthenticated user tries to visit it, they are automatically redirected to login. 3. Axios Client and Cookie Sessions Since the ASP.NET backend uses cookie-based authentication, I set up an Axios instance with withCredentials: true . This ensures that the browser automatically stores and sends the session cookie with every single request. 4. Session Persistence (No Logout on Refresh) To fix the issue where refreshing the page logs the user out, I added an initialization check in App.tsx . When the app loads, it sends a quick request to GET user/me . If the server responds with success, the user stays logged in and lands straight on the dashboard. Code Reference: authService.ts Here is the complete service managing the API calls using Axios: import api from \" ./api \" ; import { AxiosError } from \" axios \" ; export interface LoginDto { email : string ; password : string ; } export interface AuthResult { isSuccess : boolean ; message : string ; requiresTwoFactor : boolean ; } export interface LoginWith2FADto { code : string ; rememberDevice : boolean ; } export const loginUser = async ( credentials : LoginDto ): Promise < AuthResult > => { try { const response = await api . post ( \" auth/login \" , credentials ); return response . data as AuthResult ; } catch ( error : unknown ) { let errorMessage = \" An error occurred during login. \" ; if (( error as AxiosError )?. response ?. data ) { errorMessage = ( error as AxiosError ). response ! . data as string ; } return { isSuccess : false , message : errorMessage , requiresTwoFactor : false , }; } } export const loginWith2FA = async ( data : LoginWith2FADto ): Promise < AuthResult > => { try { const response = await api . post ( \" auth/login-with-authenticator \" , data ); return response . data as AuthResult ; } catch ( error : unknown ) { let errorMessage = \" An error occurred during 2FA login. \" ; if (( error as AxiosError )?. response ?. data ) { errorMessage = ( error as AxiosError ). response ! . data as string ; } return { isSuccess : false , message : errorMessage , requiresTwoFactor : false , }; } } export const checkAuthStatus = async (): Promise < boolean > => { try { await api . get ( \" user/me \" ); return true ; } catch { return false ; } } export const logoutUser = async (): Promise < void > => { await api . post ( \" auth/logout \" ); }"}, {"post_id": 14246, "ts": "2026-06-23T08:23:51Z", "hours": 1.2658, "text": "Devlog: Implementing 2FA (TOTP) Authentication in ASP.NET This update focuses on authentication security. The core login flow has been refactored, and full support for Two-Factor Authentication (2FA) using authenticator apps (TOTP) has been implemented. The entire feature has been split into a business logic layer ( AuthService ) and an API layer ( AuthController ) using ASP.NET Core Identity. Architecture and Implementation Details 1. Updated Login Flow The standard login mechanism now detects whether a user has enabled two-factor authentication. If 2FA is active, the API blocks immediate access and returns a response containing RequiresTwoFactor = true , signaling that further verification is required. 2. QR Code Secret Generation To allow users to enable 2FA, the system securely generates a shared secret key and formats it into an industry-standard otpauth:// URI. This URI includes the issuer name ( xbServerHub ) and the user’s email, making it ready to be converted into a QR code on the frontend. 3. Input Sanitization Users often format verification codes with spaces or hyphens. To prevent validation failures due to formatting, the service automatically sanitizes the input string using .Replace(\" \", string.Empty).Replace(\"-\", string.Empty) before passing it to the token provider. 4. Account Management Enforced by Authorization New endpoints have been exposed to allow users to manually enable, verify, and disable their authenticator settings. All management endpoints are protected by the [Authorize] attribute, ensuring that only authenticated users can modify their security preferences. Code Reference: Verification and Activation The following method handles the final verification step. It cleans the user input, validates the token against the ASP.NET Identity token provider, and toggles the TwoFactorEnabled flag on the user record. public async Task < VerifyAuthenticatorResponseDto > VerifyAuthenticatorAsync ( string userId , string code ) { var user = await userManager . FindByIdAsync ( userId ); if ( user is null ) { return new () { IsSuccess = false , Message = \"User not found\" }; } var sanitizedCode = code . Replace ( \" \" , string . Empty ). Replace ( \"-\" , string . Empty ); var isValid = await userManager . VerifyTwoFactorTokenAsync ( user , userManager . Options . Tokens . AuthenticatorTokenProvider , sanitizedCode ); if (! isValid ) { _logger . LogWarning ( \"Invalid authenticator code for user: {UserId}\" , userId ); return new () { IsSuccess = false , Message = \"Invalid authenticator code\" }; } var enableResult = await userManager . SetTwoFactorEnabledAsync ( user , true ); if (! enableResult . Succeeded ) { _logger . LogWarning ( \"Failed to enable 2FA for user {UserId}: {Errors}\" , userId , string . Join ( \", \" , enableResult . Errors . Select ( e => e . Description ))); return new () { IsSuccess = false , Message = \"Failed to enable 2FA\" }; } _logger . LogInformation ( \"2FA enabled successfully for user: {UserId}\" , userId ); return new () { IsSuccess = true , Message = \"2FA enabled successfully\" }; }"}]...
|
Title: xbServerHub by @xb | Stardance
Devlogs:
De Title: xbServerHub by @xb | Stardance
Devlogs:
Devlog: Implementing 2FA (TOTP) Authentication in ASP.NET This update focuses on authentication security. The core login flow has been refactored, and full support for Two-Factor Authentication (2FA) using authenticator apps (TOTP) has been implemented. The entire feature has been split into a business logic layer ( AuthService ) and an API layer ( AuthController ) using ASP.NET Core Identity. Architecture and Implementation Details 1. Updated Login Flow The standard login mechanism now detects whether a user has enabled two-factor authentication. If 2FA is active, the API blocks immediate access and returns a response containing RequiresTwoFactor = true , signaling that further verification is required. 2. QR Code Secret Generation To allow users to enable 2FA, the system securely generates a shared secret key and formats it into an industry-standard otpauth:// URI. This URI includes the issuer name ( xbServerHub ) and the user’s email, making it ready to be converted into a QR code on the frontend. 3. Input Sanitization Users often format verification codes with spaces or hyphens. To prevent validation failures due to formatting, the service automatically sanitizes the input string using .Replace(" ", string.Empty).Replace("-", string.Empty) before passing it to the token provider. 4. Account Management Enforced by Authorization New endpoints have been exposed to allow users to manually enable, verify, and disable their authenticator settings. All management endpoints are protected by the [Authorize] attribute, ensuring that only authenticated users can modify their security preferences. Code Reference: Verification and Activation The following method handles the final verification step. It cleans the user input, validates the token against the ASP.NET Identity token provider, and toggles the TwoFactorEnabled flag on the user record. public async Task < VerifyAuthenticatorResponseDto > VerifyAuthenticatorAsync ( string userId , string code ) { var user = await userManager . FindByIdAsync ( userId ); if ( user is null ) { return new () { IsSuccess = false , Message = "User not found" }; } var sanitizedCode = code . Replace ( " " , string . Empty ). Replace ( "-" , string . Empty ); var isValid = await userManager . VerifyTwoFactorTokenAsync ( user , userManager . Options . Tokens . AuthenticatorTokenProvider , sanitizedCode ); if (! isValid ) { _logger . LogWarning ( "Invalid authenticator code for user: {UserId}" , userId ); return new () { IsSuccess = false , Message = "Invalid authenticator code" }; } var enableResult = await userManager . SetTwoFactorEnabledAsync ( user , true ); if (! enableResult . Succeeded ) { _logger . LogWarning ( "Failed to enable 2FA for user {UserId}: {Errors}" , userId , string . Join ( ", " , enableResult . Errors . Select ( e => e . Description ))); return new () { IsSuccess = false , Message = "Failed to enable 2FA" }; } _logger . LogInformation ( "2FA enabled successfully for user: {UserId}" , userId ); return new () { IsSuccess = true , Message = "2FA enabled successfully" }; }
Devlog: Frontend Login Flow and Session Handling with Cookies In this update, I built the entire frontend authentication flow for xbServerHub in React. The main goals were to handle regular login, two-factor authentication (2FA), and secure session persistence using cookies from the ASP.NET Core Identity backend. What Was Done 1. Project Structure and Clean Components Instead of keeping all the code in one giant file, I split the authentication page into smaller, reusable components: AuthPage.tsx – Manages which form to show. LoginForm.tsx – Handles the initial email and password submission. TwoFactorForm.tsx – Handles the 2FA code verification if required by the backend. 2. React Router and Route Protection I installed react-router-dom and configured the routing for the app: Public route: /auth for logging in. Protected route: /dashboard which can only be accessed by authenticated users. If an unauthenticated user tries to visit it, they are automatically redirected to login. 3. Axios Client and Cookie Sessions Since the ASP.NET backend uses cookie-based authentication, I set up an Axios instance with withCredentials: true . This ensures that the browser automatically stores and sends the session cookie with every single request. 4. Session Persistence (No Logout on Refresh) To fix the issue where refreshing the page logs the user out, I added an initialization check in App.tsx . When the app loads, it sends a quick request to GET user/me . If the server responds with success, the user stays logged in and lands straight on the dashboard. Code Reference: authService.ts Here is the complete service managing the API calls using Axios: import api from " ./api " ; import { AxiosError } from " axios " ; export interface LoginDto { email : string ; password : string ; } export interface AuthResult { isSuccess : boolean ; message : string ; requiresTwoFactor : boolean ; } export interface LoginWith2FADto { code : string ; rememberDevice : boolean ; } export const loginUser = async ( credentials : LoginDto ): Promise < AuthResult > => { try { const response = await api . post ( " auth/login " , credentials ); return response . data as AuthResult ; } catch ( error : unknown ) { let errorMessage = " An error occurred during login. " ; if (( error as AxiosError )?. response ?. data ) { errorMessage = ( error as AxiosError ). response ! . data as string ; } return { isSuccess : false , message : errorMessage , requiresTwoFactor : false , }; } } export const loginWith2FA = async ( data : LoginWith2FADto ): Promise < AuthResult > => { try { const response = await api . post ( " auth/login-with-authenticator " , data ); return response . data as AuthResult ; } catch ( error : unknown ) { let errorMessage = " An error occurred during 2FA login. " ; if (( error as AxiosError )?. response ?. data ) { errorMessage = ( error as AxiosError ). response ! . data as string ; } return { isSuccess : false , message : errorMessage , requiresTwoFactor : false , }; } } export const checkAuthStatus = async (): Promise < boolean > => { try { await api . get ( " user/me " ); return true ; } catch { return false ; } } export const logoutUser = async (): Promise < void > => { await api . post ( " auth/logout " ); }
Devlog: Real-Time Server Metrics with Glances and SignalR In this update, I added live server monitoring to xbServerHub . The goal was to collect system metrics (CPU, memory, network) from a Glances instance running in Docker, and stream them to the frontend in real time using SignalR — all while keeping the backend organized around Clean Architecture (Domain, Application, Persistence, API). What Was Done 1. Metrics Collection via Glances Glances exposes a REST API with system stats. I added a GlancesClient in the Persistence layer that polls the /cpu , /mem , and /network endpoints in parallel and maps the raw JSON responses into clean domain models ( ServerMetrics , CpuStats , MemoryStats , NetworkInterfaceStats ). A BackgroundService using PeriodicTimer polls Glances every 2 seconds and passes the result to a handler ( CollectSystemMetricsHandler ) in the Application layer, which doesn’t know or care that the data originally came from an HTTP call to Glances — it just receives a ServerMetrics object. 2. Broadcasting Metrics with SignalR To get this data to the frontend without constant polling from the client, I introduced an IMetricsBroadcaster interface in Application. This follows the same pattern as IGlancesClient : Application defines what it needs (a way to send metrics somewhere), without knowing how that’s actually done. The implementation, SignalRMetricsBroadcaster , lives in the API layer and uses a MetricsHub to push data to all connected clients via Clients.All.SendAsync . The handler now calls both the Glances client and the broadcaster on every tick, so every 2 seconds connected clients get a fresh snapshot pushed to them automatically. 3. Securing the Hub and Fixing Auth Routes Since metrics shouldn’t be visible to anyone who isn’t logged in, I added [Authorize] to MetricsHub . Because the app uses cookie-based authentication ( SignInManager ), this works without needing any token handling on the SignalR connection — the existing session cookie is enough, as long as the connection is treated as same-origin. This is also where I cleaned up and reorganized the authentication API routes to make sure they’re consistent with how the frontend (and now SignalR) expects to reach them, and wired up the Hub endpoint ( MapHub ) alongside the rest of the API configuration. Current State The backend now collects CPU, memory, and network stats every 2 seconds and pushes them live to any authenticated, connected client. The frontend isn’t consuming this yet — that’s the next step, along with finalizing the dev proxy setup so cookies and WebSocket connections behave the same in development as they will once frontend and backend are deployed together in a single container....
|
1793569972.481112
|
1794174772.481112
|
|
28816
|
Isotope Simulator by @harieshkarth | Stardance
|
harieshkarth
|
0
|
6.94
|
0
|
[]
|
[{"post_id": 23111, "ts": "202 [{"post_id": 23111, "ts": "2026-07-05T21:19:46Z", "hours": 1.9544, "text": "Devlog 2 And that’s the project complete! Making the descriptions for the isotopes was definitely easier than making the atom’s nucleus. I also learned how to actually manipulate text on Godot. In previous projects, I typed out all the text on a different app and exported it as a picture, which I used in Godot. As you can imagine, that’s incredibly inefficient. In this project, though, I just manipulated labels using GDScript and created boxes with color rects. This makes it much easier to change text. I also used a similar color palette as my atom simulator, and I think it turned out looking pretty good."}, {"post_id": 19255, "ts": "2026-06-30T14:56:55Z", "hours": 4.9847, "text": "Devlog 1 I’ve just finished the main part of this project: the interactive nucleus. It didn’t come without its headaches, though. In essence, the way it works is that when you press the up button, it adds a proton to the nucleus at a random position. When you press the down button, it removes the proton. Same thing for neutrons, except you use the right and left buttons, respectively. I wanted the nucleus to be relatively circular while still keeping the random positions for the subatomic particles. Eventually, I figured I could do that by forcing every particle to overlap with two other particles when they were randomly generating a position. However, this led to the particles not instantly showing up after you pressed either the up or right button, so I’ll have to make the algorithm that generates the particles more efficient. Additionally, many errors arose from pressing the add and remove buttons simultaneously for both of the particles. These were easily fixed in two ways. One was adding the await keyword before the methods in the functions that added and removed the particles. The second was adding booleans that restricted the remove function from being called while a particle was being added. These fixes took me a while to figure out, though. Moving on, I need to make the whole simulator look a bit better, and I also need to add labels for the number of particles there are and the names of the various isotopes."}]...
|
Title: Isotope Simulator by @harieshkarth | Starda Title: Isotope Simulator by @harieshkarth | Stardance
Devlogs:
Devlog 1 I’ve just finished the main part of this project: the interactive nucleus. It didn’t come without its headaches, though. In essence, the way it works is that when you press the up button, it adds a proton to the nucleus at a random position. When you press the down button, it removes the proton. Same thing for neutrons, except you use the right and left buttons, respectively. I wanted the nucleus to be relatively circular while still keeping the random positions for the subatomic particles. Eventually, I figured I could do that by forcing every particle to overlap with two other particles when they were randomly generating a position. However, this led to the particles not instantly showing up after you pressed either the up or right button, so I’ll have to make the algorithm that generates the particles more efficient. Additionally, many errors arose from pressing the add and remove buttons simultaneously for both of the particles. These were easily fixed in two ways. One was adding the await keyword before the methods in the functions that added and removed the particles. The second was adding booleans that restricted the remove function from being called while a particle was being added. These fixes took me a while to figure out, though. Moving on, I need to make the whole simulator look a bit better, and I also need to add labels for the number of particles there are and the names of the various isotopes.
Devlog 2 And that’s the project complete! Making the descriptions for the isotopes was definitely easier than making the atom’s nucleus. I also learned how to actually manipulate text on Godot. In previous projects, I typed out all the text on a different app and exported it as a picture, which I used in Godot. As you can imagine, that’s incredibly inefficient. In this project, though, I just manipulated labels using GDScript and created boxes with color rects. This makes it much easier to change text. I also used a similar color palette as my atom simulator, and I think it turned out looking pretty good....
|
1793569971.339975
|
1794174771.339975
|
|
22636
|
My awesome macropad! by @Georgekutty | Stardance
|
Georgekutty
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Georgekutty | Star Title: My awesome macropad! by @Georgekutty | Stardance...
|
1793569970.4473093
|
1794174770.4473093
|
|
26805
|
Nornir Chest MOVED TO FORGE by @Susssiest | Starda Nornir Chest MOVED TO FORGE by @Susssiest | Stardance...
|
Susssiest
|
0
|
44.33
|
0
|
[]
|
[{"post_id": 57005, "ts": "202 [{"post_id": 57005, "ts": "2026-08-29T02:23:30Z", "hours": 1.0675, "text": "Worked on firmware and updated BOM. also posted on makerworld! https://makerworld.com/en/models/3198743-god-of-war-nornir-chest-hinged-lid-no-ams#profileId-3619555"}, {"post_id": 50053, "ts": "2026-08-19T02:48:07Z", "hours": 0.3172, "text": "Finally printed all of the print only parts! Looks awesome. Still waiting on electronics."}, {"post_id": 38536, "ts": "2026-08-01T00:03:50Z", "hours": 0.2833, "text": "I’m submitting this for funding! I am broke and cant pay for the electronics lol. I also printed out a few parts. It needs a little post prosessing but looks great!"}, {"post_id": 37318, "ts": "2026-07-29T22:45:50Z", "hours": 0.4167, "text": "Almost done with Bambu Studio. Putting together files for a fully 3d printable model too, no electronics, no base."}, {"post_id": 37299, "ts": "2026-07-29T22:13:26Z", "hours": 1.2167, "text": "Printed base, supports are way to crazy and areas are too weak, tweaking and reprinting. Also starting to add some more work to the bambu studio portion of the project."}, {"post_id": 36724, "ts": "2026-07-28T23:37:03Z", "hours": 8.5158, "text": "Done with everything! I decided to do the bell instead of rune rock because I realized it wasn’t actually a rock, it was a statue, and I don’t want to spend 2 hours sculpting it. Prepping it in bambu studio, almost ready to start printing! Attached photo of statue to show you what I mean."}, {"post_id": 34791, "ts": "2026-07-25T19:45:15Z", "hours": 0.7669, "text": "Done with both brazier and spinning totem! On to rune rock and then wire paths and electronics."}, {"post_id": 34690, "ts": "2026-07-25T16:43:30Z", "hours": 3.6339, "text": "I’m choosing to use a different base, it just looks cooler, and also the other base had all these random strings of internal vertices. Also worked a little on the spinning rune activator/totem."}, {"post_id": 33670, "ts": "2026-07-23T19:36:14Z", "hours": 0.8667, "text": "Added reed switch to brazier, I downloaded a nice blades of chaos fridge magnet, that can be inserted into the top. So hopefully when the magnetic blade gets inserted the reed switch will activate and send a signal to the arduino."}, {"post_id": 33206, "ts": "2026-07-22T22:09:38Z", "hours": 2.8003, "text": "I’m adding a little brazier with a led rune that will turn off when activated, and send a signal to the chest to also turn off one of the lights. Once three runes are activated the chest’s servos will activate and it will be able to open. Almost done with brazier, need to add some more coal on the top."}, {"post_id": 32007, "ts": "2026-07-20T21:18:02Z", "hours": 4.2117, "text": "The chest has a base now! The base is so big it has to split into fourths to fit on the printer bed 😂. It is ~700 grams. I also added indents in it that will fit a breadboard, battery pack, and wires. I’m going to be using a nano on the breadboard. I could just stuff all the electronics in the chest, but then i wouldnt be able to fir anything inside, so I’m just doing this. I also think it looks awesome and I need to add some of the puzzles that unlock the chest around it, so the base is perfect. Got the base off of makerworld - https://makerworld.com/en/models/2679972-rocky-base-plateau#profileId-2967898"}, {"post_id": 30889, "ts": "2026-07-18T21:12:34Z", "hours": 2.7978, "text": "made a boulder for the rune puzzles that unlock the chest."}, {"post_id": 27066, "ts": "2026-07-12T09:00:56Z", "hours": 1.5167, "text": "Added a new gold engraving."}, {"post_id": 26527, "ts": "2026-07-11T12:00:34Z", "hours": 1.7919, "text": "It locks now! Will be using mg90 servos that turn 90 degrees, making the lid unable to open."}, {"post_id": 25214, "ts": "2026-07-09T10:20:36Z", "hours": 2.9928, "text": "Added runes! Looks great. Going to be using WS2812B Led rings, and I’m going to 3d print a cover thing for it that will disperse the lighting as it only has 7 leds per ring."}, {"post_id": 23283, "ts": "2026-07-06T04:48:24Z", "hours": 1.1669, "text": "Added hinges and a gold engraving on the top of the lid. Looks great, moving on to head and leds for runes."}, {"post_id": 20520, "ts": "2026-07-02T04:15:48Z", "hours": 1.2167, "text": "Finally progress. I’m not adding scales onto the dragon, but it actually still looks good."}, {"post_id": 19890, "ts": "2026-07-01T09:59:15Z", "hours": 4.3878, "text": "I spent 4 literal hours trying to put scales on the dragon curve. I give up, it will be ugly in blender."}, {"post_id": 19128, "ts": "2026-06-30T11:26:13Z", "hours": 1.8169, "text": "Spent forever making dragon curve thing."}, {"post_id": 18995, "ts": "2026-06-30T04:58:57Z", "hours": 1.1169, "text": "Adding side dragons p1"}, {"post_id": 18936, "ts": "2026-06-30T03:38:20Z", "hours": 0.3, "text": "Added Rune holes to the chest base."}, {"post_id": 17556, "ts": "2026-06-28T11:53:04Z", "hours": 0.495, "text": "Cleaned up vertice mess. and started adding some stuff."}, {"post_id": 17505, "ts": "2026-06-28T09:56:54Z", "hours": 0.6336, "text": "Started building my 3d printable Nornir Chest from God OF War. Just basic details right now."}]...
|
Title: Nornir Chest MOVED TO FORGE by @Susssiest | Title: Nornir Chest MOVED TO FORGE by @Susssiest | Stardance
Devlogs:
Started building my 3d printable Nornir Chest from God OF War. Just basic details right now.
Cleaned up vertice mess. and started adding some stuff.
Added Rune holes to the chest base.
Adding side dragons p1
Spent forever making dragon curve thing.
I spent 4 literal hours trying to put scales on the dragon curve. I give up, it will be ugly in blender.
Finally progress. I’m not adding scales onto the dragon, but it actually still looks good.
Added hinges and a gold engraving on the top of the lid. Looks great, moving on to head and leds for runes.
Added runes! Looks great. Going to be using WS2812B Led rings, and I’m going to 3d print a cover thing for it that will disperse the lighting as it only has 7 leds per ring.
It locks now! Will be using mg90 servos that turn 90 degrees, making the lid unable to open.
Added a new gold engraving.
made a boulder for the rune puzzles that unlock the chest.
The chest has a base now! The base is so big it has to split into fourths to fit on the printer bed 😂. It is ~700 grams. I also added indents in it that will fit a breadboard, battery pack, and wires. I’m going to be using a nano on the breadboard. I could just stuff all the electronics in the chest, but then i wouldnt be able to fir anything inside, so I’m just doing this. I also think it looks awesome and I need to add some of the puzzles that unlock the chest around it, so the base is perfect. Got the base off of makerworld - https://makerworld.com/en/models/2679972-rocky-base-plateau#profileId-2967898
I’m adding a little brazier with a led rune that will turn off when activated, and send a signal to the chest to also turn off one of the lights. Once three runes are activated the chest’s servos will activate and it will be able to open. Almost done with brazier, need to add some more coal on the top.
Added reed switch to brazier, I downloaded a nice blades of chaos fridge magnet, that can be inserted into the top. So hopefully when the magnetic blade gets inserted the reed switch will activate and send a signal to the arduino.
I’m choosing to use a different base, it just looks cooler, and also the other base had all these random strings of internal vertices. Also worked a little on the spinning rune activator/totem.
Done with both brazier and spinning totem! On to rune rock and then wire paths and electronics.
Done with everything! I decided to do the bell instead of rune rock because I realized it wasn’t actually a rock, it was a statue, and I don’t want to spend 2 hours sculpting it. Prepping it in bambu studio, almost ready to start printing! Attached photo of statue to show you what I mean.
Printed base, supports are way to crazy and areas are too weak, tweaking and reprinting. Also starting to add some more work to the bambu studio portion of the project.
Almost done with Bambu Studio. Putting together files for a fully 3d printable model too, no electronics, no base.
I’m submitting this for funding! I am broke and cant pay for the electronics lol. I also printed out a few parts. It needs a little post prosessing but looks great!
Finally printed all of the print only parts! Looks awesome. Still waiting on electronics.
Worked on firmware and updated BOM. also posted on makerworld! https://makerworld.com/en/models/3198743-god-of-war-nornir-chest-hinged-lid-no-ams#profileId-3619555...
|
1793569969.1541653
|
1794174769.1541653
|
|
44258
|
google-terminal-web by @Leon | Stardance
|
Leon
|
1
|
3.0
|
6
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T12:36:21Z", "hours": 3.0, "multiplier": 1.89, "payout": 6, "blessing": "neutral", "text": "Soooo this project exists bc I wanted to make a website for my other project! google-terminal….(my first go project) Annddd i wanted to code smth ai less…and in next! Bc i have not done any of both in a while! Yea! I never really learned tailwind css before, so i really enjoyed actually understanding what the hell copilot did in my last projects!", "repo": "https://github.com/Leonhoch5/google-terminal-web", "demo": "https://google-terminal.qoig.dev"}]...
|
[{"post_id": 45727, "ts": "202 [{"post_id": 45727, "ts": "2026-08-12T12:24:13Z", "hours": 1.7094, "text": "first final version? i added a small orphie in the blank spaceee and the controlls just like in any tui! Another addon is the functionality of the links and working controls! yup…thats it! (sorry for undetailed storytelling)"}, {"post_id": 41399, "ts": "2026-08-05T16:21:46Z", "hours": 1.4761, "text": "First mog version of the site… at the end it should not work like the app…just advertise it…(its my first ai less project in ages so…need to get back at it) later on one should be able to navigate like in the actual tui"}]...
|
Title: google-terminal-web by @Leon | Stardance
D Title: google-terminal-web by @Leon | Stardance
Devlogs:
First mog version of the site… at the end it should not work like the app…just advertise it…(its my first ai less project in ages so…need to get back at it) later on one should be able to navigate like in the actual tui
first final version? i added a small orphie in the blank spaceee and the controlls just like in any tui! Another addon is the functionality of the links and working controls! yup…thats it! (sorry for undetailed storytelling)
Ships:
Soooo this project exists bc I wanted to make a website for my other project! google-terminal….(my first go project) Annddd i wanted to code smth ai less…and in next! Bc i have not done any of both in a while! Yea! I never really learned tailwind css before, so i really enjoyed actually understanding what the hell copilot did in my last projects!...
|
1793569968.0075233
|
1793656368.0075233
|
|
26968
|
Frictionless by @Dubby27 | Stardance
|
Dubby27
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @Dubby27 | Stardance
|
1793569967.1200657
|
1794174767.1200657
|
|
23813
|
My awesome macropad! by @HACKER545 | Stardance
|
HACKER545
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @HACKER545 | Starda Title: My awesome macropad! by @HACKER545 | Stardance...
|
1793569966.2355995
|
1794174766.2355995
|
|
775
|
My awesome macropad! by @MohammadHisan | Stardance
|
MohammadHisan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @MohammadHisan | St Title: My awesome macropad! by @MohammadHisan | Stardance...
|
1793569965.3208911
|
1794174765.3208911
|
|
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. 🥀...
|
1793569963.6416442
|
1793656363.6416442
|
|
39312
|
MacroCAD by @gismondi_simone | Stardance
|
gismondi_simone
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-25T00:08:12Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I’m here to present you MacroCAD, my first KeyPad designed for CAD users. This is the first time I’ve built a project with the goal of creating something cool to keep on my desk. I had never worked with key switches before, so I ran into a few difficulties while designing the PCB—but nothing that couldn’t be solved with some research and a bit of patience. I worked on this project as a pastime during my week-long vacation in August. A VERY IMPORTANT PIECE OF ADVICE: DO NOT GET THE PROJECT WET!! It is, quite possibly, the least protected device I have ever designed when it comes to potential liquid spills.", "repo": "https://github.com/gismondisimone/MacroCAD", "demo": ""}]...
|
[{"post_id": 82492, "ts": "202 [{"post_id": 82492, "ts": "2026-10-24T23:55:03Z", "hours": 0.6981, "text": "I’ve finaly complited my MacroCAD. I had a few problems during the assembly, however I’ve managed to fix all the issues."}, {"post_id": 47819, "ts": "2026-08-16T01:01:37Z", "hours": 5.3689, "text": "I opted for this industrial look design"}, {"post_id": 35666, "ts": "2026-07-27T08:23:50Z", "hours": 0.9333, "text": "I’m being silly—I really ought to be working on my other project, but I’m having too much fun designing PCBs. I just hope my teammate @Pollo doesn’t see this post."}, {"post_id": 34556, "ts": "2026-07-25T11:27:42Z", "hours": 2.6, "text": "I got an idea, my plan is to create a number pad designing for CAD software"}, {"post_id": 34504, "ts": "2026-07-25T08:44:58Z", "hours": 0.8169, "text": "My first PCB on KiCad"}]...
|
Title: MacroCAD by @gismondi_simone | Stardance
D Title: MacroCAD by @gismondi_simone | Stardance
Devlogs:
My first PCB on KiCad
I got an idea, my plan is to create a number pad designing for CAD software
I’m being silly—I really ought to be working on my other project, but I’m having too much fun designing PCBs. I just hope my teammate @Pollo doesn’t see this post.
I opted for this industrial look design
I’ve finaly complited my MacroCAD. I had a few problems during the assembly, however I’ve managed to fix all the issues.
Ships:
I’m here to present you MacroCAD, my first KeyPad designed for CAD users. This is the first time I’ve built a project with the goal of creating something cool to keep on my desk. I had never worked with key switches before, so I ran into a few difficulties while designing the PCB—but nothing that couldn’t be solved with some research and a bit of patience. I worked on this project as a pastime during my week-long vacation in August. A VERY IMPORTANT PIECE OF ADVICE: DO NOT GET THE PROJECT WET!! It is, quite possibly, the least protected device I have ever designed when it comes to potential liquid spills....
|
1793569961.7413776
|
1793656361.7413776
|
|
33378
|
CanvasOS by @ortley | Stardance
|
ortley
|
1
|
16.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-19T23:30:59Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a WebOS with an infinite workspace. Travel far and wide, big and small, and everywhere inbetween in this expansive open-world Web Operating System. DEMO Challenges I faced Since this is my first time using React, I had to get used to React’s reactiveness and it’s stateful systems. State has to be explicitly defined, rather than being the default for all values, so this led to some delays in the displaying of some values early on. But once I understood how it was designed, it really came together. Then there’s the CSS, oh boy. What’s great is that it always works in some way. But what’s bad is that it never works in your way. Even simple elements would look fine with a couple lines of code, but there would always be a little off-centering, a little imbalance, a little alignment issue that meant a full change of the element was necessary. I know way too much about margin collapse and baseline alignment than I ever think I needed to know. That being said, when it works, it works really well. I really like how simple some processes are, like how event callbacks can be handled, and flexbox styling. Proud moments Getting the state synced across the whole app. This took ages to get right, with proxies to useState hooks and subscribe lists in order to make every component have a common sense of truth as changes are made elsewhere. Major helper in teaching me how react handles state. Honourable mention One thing that I really liked was the CI/CD pipeline where it goes like this: push live dev to main merge main to prod CI action builds program and pushes distributables to pages pages serves the website It’s really fun to see the actions just happen yk. like - I didn’t have to go through the process of building the project myself, then uploading it to some portal on a buggy website, it just does its thing and then I have my website. I kinda want to do some more of it :] Though unfortunately the site I’m using takes a while to update it’s cache, so it might not load correctly if I’ve just pushed an update.", "repo": "https://git.gay/ortley/canvasOS", "demo": "https://canvasos.ortley.pages.gay/index.html"}]...
|
[{"post_id": 31495, "ts": "202 [{"post_id": 31495, "ts": "2026-07-19T22:40:18Z", "hours": 2.1117, "text": "Live demo HERE (pushed at 22:21 UTC, may take some time for the asset cache to update) Devlog 4 This devlog was mostly spent getting the project reading for shipping. I actually had a read of the WebOS-1 spec, and holyyyy this mission is easy. I don’t think I had to do as much as I did, but at least I now have a really cool website Got the pause and stop buttons looking good with icons from Bootstrap Icons , as well as a very simple tray which I’m gonna expand in later iterations Also there’s a new tutorial section to help people trying out the demo. Once the asset cache refreshes, I’m probably gonna ship this project and get that cheese"}, {"post_id": 30945, "ts": "2026-07-18T23:11:19Z", "hours": 4.3919, "text": "Live demo HERE I’m creating a WebOS with an infinite canvas to work without boundaries wassup guys this devlog was hella fun bc for once i could actually both see and feel the results of what I was changing - can now definitely see why “frontend engineer” is a job someone would want to have. Changes Most of the changes were in how the program windows are manipulated. Before, all you could do is move them around, and close them using a small button in the top-right. But now, windows can be shifted, resized, and layered, and the cursor now changes when hovering over certain parts of the frame. Another one of the obvious changes are the new colours. I found them through a cool tool i’ve used for years https://huetone.ardov.me/ with the Ant Financial Design preset. I’d really recommend them if you want to design some colour palettes. Commits chore: fix build errors (dead code) fix: Stop text selection when stopping resizing feat: Add titlebar title truncation feat: add program resize button chore: make changes to force pages rebuild chore: fix asset access for prod chore: fix build errors fix: use vector background instead to remove visible pixels when zooming in fix: Fix background integration with scaling chore: Merge branch ‘restyling’ feat: re implement scrolling feat: larger program controls feat: add background pegs feat: hyprland-like window outlines feat: standard colours chore: Merge branch ‘restyling’ feat: add rounded corners chore: change pages.gay action to only run on push to production fix: Fix margin collapse + add nicer colours chore: migrate program style to program.css + partial work on fixing marign collapse on programs chore: Update README.md chore: fix build errors chore: fix CI to work with react feat: page CI feat: modificaionts for demo"}, {"post_id": 29195, "ts": "2026-07-15T22:40:49Z", "hours": 8.0353, "text": "holyyy i completely forgot to post any devlogs all week DEMO LIVE AT https://canvasos.ortley.pages.gay/ Changes to the backend Previously everything was handled by the main App() function, but MouseEvent issues (see below) meant that I had to centralize most of the reactive values of my components. Working with external stores and states was a pain since the standard useSyncExternalStore that React provides to communicate with singletons was just way too slow for any sort of real time read/write. This led to me implementing something like how zustand manages it’s stores. Now the state of a program can be modified from anywhere screaming at MouseEvent When dragging apps around by the titlebar, there is a chance that the mouse goes fast enough that it leaves the bounding box of the previous position of the titlebar. This leads to the titlebar not handling the MouseEvent , which was where the window moving logic was implemented. Since the mousemove MouseEvent wasn’t going to the titlebar, it would be going to the background, which wasn’t hooked up to move programs. This meant that the whole backend had to be refactored to allow both global modifying of the underlying data representation of the position of programs, and also allow the JSX of the programs to react to changes in their linked data structure Changelog b788c5e786 - feature: add program layering 91aeeec37b - chore: remove program frame de83c2089d - backend: centralised program managemtn 5d3c404924 - feature: add basic program frame with shadow root functionality 5c9e4011b7 - backend: migrate appstate to appstore with useState hooks fae40a30f9 - chore: rename panAnchor to prevMouse to fit new purpose 34057f6f4d - oops: Fixed it after breaking it 6b924a45fc - chore/backend: move Vec2 to common/type and implement appstate singleton e1cd7f506e - chore: refactor with Vec2 class 991dda305f - feature: Vec2 class 5f39b56395 - chore: remove preinstalled stuff Although a lot of this devlog is me being mad at react, I actually really enjoyed it and it was really fun to learn how to speak in the same language as react See the video for a demo of the project"}, {"post_id": 26056, "ts": "2026-07-10T17:20:42Z", "hours": 1.4136, "text": "Spent ages trying to figure this out with coordinate system conversions and linear equations. Turns out you can just use enlargements. CanvasOS panning + scrolling working correctly"}]...
|
Title: CanvasOS by @ortley | Stardance
Devlogs:
S Title: CanvasOS by @ortley | Stardance
Devlogs:
Spent ages trying to figure this out with coordinate system conversions and linear equations. Turns out you can just use enlargements. CanvasOS panning + scrolling working correctly
holyyy i completely forgot to post any devlogs all week DEMO LIVE AT https://canvasos.ortley.pages.gay/ Changes to the backend Previously everything was handled by the main App() function, but MouseEvent issues (see below) meant that I had to centralize most of the reactive values of my components. Working with external stores and states was a pain since the standard useSyncExternalStore that React provides to communicate with singletons was just way too slow for any sort of real time read/write. This led to me implementing something like how zustand manages it’s stores. Now the state of a program can be modified from anywhere screaming at MouseEvent When dragging apps around by the titlebar, there is a chance that the mouse goes fast enough that it leaves the bounding box of the previous position of the titlebar. This leads to the titlebar not handling the MouseEvent , which was where the window moving logic was implemented. Since the mousemove MouseEvent wasn’t going to the titlebar, it would be going to the background, which wasn’t hooked up to move programs. This meant that the whole backend had to be refactored to allow both global modifying of the underlying data representation of the position of programs, and also allow the JSX of the programs to react to changes in their linked data structure Changelog b788c5e786 - feature: add program layering 91aeeec37b - chore: remove program frame de83c2089d - backend: centralised program managemtn 5d3c404924 - feature: add basic program frame with shadow root functionality 5c9e4011b7 - backend: migrate appstate to appstore with useState hooks fae40a30f9 - chore: rename panAnchor to prevMouse to fit new purpose 34057f6f4d - oops: Fixed it after breaking it 6b924a45fc - chore/backend: move Vec2 to common/type and implement appstate singleton e1cd7f506e - chore: refactor with Vec2 class 991dda305f - feature: Vec2 class 5f39b56395 - chore: remove preinstalled stuff Although a lot of this devlog is me being mad at react, I actually really enjoyed it and it was really fun to learn how to speak in the same language as react See the video for a demo of the project
Live demo HERE I’m creating a WebOS with an infinite canvas to work without boundaries wassup guys this devlog was hella fun bc for once i could actually both see and feel the results of what I was changing - can now definitely see why “frontend engineer” is a job someone would want to have. Changes Most of the changes were in how the program windows are manipulated. Before, all you could do is move them around, and close them using a small button in the top-right. But now, windows can be shifted, resized, and layered, and the cursor now changes when hovering over certain parts of the frame. Another one of the obvious changes are the new colours. I found them through a cool tool i’ve used for years https://huetone.ardov.me/ with the Ant Financial Design preset. I’d really recommend them if you want to design some colour palettes. Commits chore: fix build errors (dead code) fix: Stop text selection when stopping resizing feat: Add titlebar title truncation feat: add program resize button chore: make changes to force pages rebuild chore: fix asset access for prod chore: fix build errors fix: use vector background instead to remove visible pixels when zooming in fix: Fix background integration with scaling chore: Merge branch ‘restyling’ feat: re implement scrolling feat: larger program controls feat: add background pegs feat: hyprland-like window outlines feat: standard colours chore: Merge branch ‘restyling’ feat: add rounded corners chore: change pages.gay action to only run on push to production fix: Fix margin collapse + add nicer colours chore: migrate program style to program.css + partial work on fixing marign collapse on programs chore: Update README.md chore: fix build errors chore: fix CI to work with react feat: page CI feat: modificaionts for demo
Live demo HERE (pushed at 22:21 UTC, may take some time for the asset cache to update) Devlog 4 This devlog was mostly spent getting the project reading for shipping. I actually had a read of the WebOS-1 spec, and holyyyy this mission is easy. I don’t think I had to do as much as I did, but at least I now have a really cool website Got the pause and stop buttons looking good with icons from Bootstrap Icons , as well as a very simple tray which I’m gonna expand in later iterations Also there’s a new tutorial section to help people trying out the demo. Once the asset cache refreshes, I’m probably gonna ship this project and get that cheese
Ships:
I made a WebOS with an infinite workspace. Travel far and wide, big and small, and everywhere inbetween in this expansive open-world Web Operating System. DEMO Challenges I faced Since this is my first time using React, I had to get used to React’s reactiveness and it’s stateful systems. State has to be explicitly defined, rather than being the default for all values, so this led to some delays in the displaying of some values early on. But once I understood how it was designed, it really came together. Then there’s the CSS, oh boy. What’s great is that it always works in some way. But what’s bad is that it never works in your way. Even simple elements would look fine with a couple lines of code, but there would always be a little off-centering, a little imbalance, a little alignment issue that meant a full change of the element was necessary. I know way too much about margin collapse and baseline alignment than I ever think I needed to know. That being said, when it works, it works really well. I really like how simple some processes are, like how event callbacks can be handled, and flexbox styling. Proud moments Getting the state synced across the whole app. This took ages to get right, with proxies to useState hooks and subscribe lists in order to make every component have a common sense of truth as changes are made elsewhere. Major helper in teaching me how react handles state. Honourable mention One thing that I really liked was the CI/CD pipeline where it goes like this: push live dev to main merge main to prod CI action builds program and pushes distributables to pages pages serves the website It’s really fun to see the actions just happen yk. like - I didn’t have to go through the process of building the project myself, then uploading it to some portal on a buggy website, it just does its thing and then I have my website. I kinda want to do some more of it :] Though unfortunately the site I’m using takes a while to update it’s cache, so it might not load correctly if I’ve just pushed an update....
|
1793569956.2093518
|
1793656356.2093518
|
|
20412
|
Remote Controlled Boat by @ahmadfarzadtaquee | Sta Remote Controlled Boat by @ahmadfarzadtaquee | Stardance...
|
ahmadfarzadtaquee
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Remote Controlled Boat by @ahmadfarzadtaque Title: Remote Controlled Boat by @ahmadfarzadtaquee | Stardance...
|
1793569954.9618278
|
1794174754.9618278
|
|
23562
|
Frictionless by @sebas | Stardance
|
sebas
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @sebas | Stardance
|
1793569954.03525
|
1794174754.03525
|
|
30284
|
Aero X by @Stwfan | Stardance
|
Stwfan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Aero X by @Stwfan | Stardance
|
1793569953.146989
|
1794174753.146989
|
|
24970
|
C++ Platformer by @Gamemaker_271 | Stardance
|
Gamemaker_271
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: C++ Platformer by @Gamemaker_271 | Stardanc Title: C++ Platformer by @Gamemaker_271 | Stardance...
|
1793569951.8106785
|
1794174751.8106785
|
|
12140
|
monkeypad by @simonproyt | Stardance
|
simonproyt
|
0
|
1.27
|
0
|
[]
|
[{"post_id": 5593, "ts": "2026 [{"post_id": 5593, "ts": "2026-06-09T13:25:37Z", "hours": 0.8439, "text": "I switched from kmk to qmk for the firmware for the macropad and added an oled screen ui that shows pc ram and cpu usage percentage and song data that is being transmitted to the macropad via a companion app written in go on the host system"}, {"post_id": 4869, "ts": "2026-06-08T12:43:10Z", "hours": 0.4311, "text": "So we manged to make a good pcb in KiCad after a few hours but sadly the hackatime companion app for KiCad was kinda broken so it didnt count towards my daily goals sadly"}]...
|
Title: monkeypad by @simonproyt | Stardance
Devlo Title: monkeypad by @simonproyt | Stardance
Devlogs:
So we manged to make a good pcb in KiCad after a few hours but sadly the hackatime companion app for KiCad was kinda broken so it didnt count towards my daily goals sadly
I switched from kmk to qmk for the firmware for the macropad and added an oled screen ui that shows pc ram and cpu usage percentage and song data that is being transmitted to the macropad via a companion app written in go on the host system...
|
1793569950.5488136
|
1794174750.5488136
|
|
4934
|
My awesome macropad! by @unlostkomodo | Stardance
|
unlostkomodo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @unlostkomodo | Sta Title: My awesome macropad! by @unlostkomodo | Stardance...
|
1793569949.6729565
|
1794174749.6729565
|
|
16754
|
My first slack bot! by @Mariah-Evelyn | Stardance
|
Mariah-Evelyn
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Mariah-Evelyn | Sta Title: My first slack bot! by @Mariah-Evelyn | Stardance...
|
1793569948.7715788
|
1794174748.7715788
|
|
35744
|
My first slack bot! by @ayanaj_13 | Stardance
|
ayanaj_13
|
1
|
2.36
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-22T01:18:02Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my own Slackbot called Honeydew. It can give you cat facts, tell you a cat mood, share a cat quote, or give you a fun animal quiz!. It was a very challenging project as it was my first time doing something like this. I had no experience whatsoever and had some help from AI. I’m proud of the outcome and hope to improve my skills by taking on more projects in the future.", "repo": "https://github.com/ayanajawaid1-cmd/Honeydew", "demo": "https://hackclub.enterprise.slack.com/archives/C0BKQQV65EU"}]...
|
[{"post_id": 33088, "ts": "202 [{"post_id": 33088, "ts": "2026-07-22T17:57:07Z", "hours": 0.3553, "text": "🍯 Honeydew is officially shipped! After fixing the final bugs and getting Honeydew running 24/7 on a server, I can finally say the project is complete. This project started as a simple idea for a Slack bot, but it ended up becoming much more than that. I added features like cat facts, cat moods, cat quotes, animal quizzes, slash commands, and more. The process definitely had its challenges. There were plenty of bugs, confusing errors, deployment issues, and moments where I had no idea why something suddenly stopped working 😭 But working through each problem taught me a lot about JavaScript, Node.js, Slack Bolt, GitHub, and deploying projects to a server. I’m really happy with how Honeydew turned out and proud that I was able to take it from an idea to a working project running 24/7.Thanks to everyone who helped and gave feedback throughout the process — and to ChatGPT for helping me understand and debug parts of the code along the way.🍯🐱🚀"}, {"post_id": 32659, "ts": "2026-07-21T23:07:01Z", "hours": 0.8969, "text": "🐱 Honeydew Devlog #2 Honeydew is slowly becoming an actual bot instead of just existing in my code editor 😭I got it to respond to different ways of asking for cat facts, like: “give me a cat fact” “tell me something about cats” “another one” “more” And instead of giving the same answer every time, it grabs new cat facts from an API 🐱✨There were definitely some moments where I thought the code was working… and then Honeydew completely ignored me 💀 But after a lot of testing, debugging, and restarting the bot approximately 500 times, it’s finally starting to feel like a real project. Next up: making Honeydew even smarter and adding more features 👀."}, {"post_id": 30968, "ts": "2026-07-18T23:54:55Z", "hours": 1.2386, "text": "🍯 Honeydew Dev log #1 So… I’m making an app called Honeydew! 🚀I’ve officially set up the project, created the files, and somehow managed to get the tokens working after staring at my screen for way too long 😭There were definitely some errors along the way, including one where both of my tokens were saying false, and I genuinely thought I had broken everything 💀 But after some troubleshooting… THEY FINALLY WORKED. Next up: creating the actual index.js file — aka the part where Honeydew starts becoming an actual functioning app instead of just a folder full of files and hope. I have absolutely no idea how this is going to go, but we’re building it anyway…"}]...
|
Title: My first slack bot! by @ayanaj_13 | Stardan Title: My first slack bot! by @ayanaj_13 | Stardance
Devlogs:
🍯 Honeydew Dev log #1 So… I’m making an app called Honeydew! 🚀I’ve officially set up the project, created the files, and somehow managed to get the tokens working after staring at my screen for way too long 😭There were definitely some errors along the way, including one where both of my tokens were saying false, and I genuinely thought I had broken everything 💀 But after some troubleshooting… THEY FINALLY WORKED. Next up: creating the actual index.js file — aka the part where Honeydew starts becoming an actual functioning app instead of just a folder full of files and hope. I have absolutely no idea how this is going to go, but we’re building it anyway…
🐱 Honeydew Devlog #2 Honeydew is slowly becoming an actual bot instead of just existing in my code editor 😭I got it to respond to different ways of asking for cat facts, like: “give me a cat fact” “tell me something about cats” “another one” “more” And instead of giving the same answer every time, it grabs new cat facts from an API 🐱✨There were definitely some moments where I thought the code was working… and then Honeydew completely ignored me 💀 But after a lot of testing, debugging, and restarting the bot approximately 500 times, it’s finally starting to feel like a real project. Next up: making Honeydew even smarter and adding more features 👀.
🍯 Honeydew is officially shipped! After fixing the final bugs and getting Honeydew running 24/7 on a server, I can finally say the project is complete. This project started as a simple idea for a Slack bot, but it ended up becoming much more than that. I added features like cat facts, cat moods, cat quotes, animal quizzes, slash commands, and more. The process definitely had its challenges. There were plenty of bugs, confusing errors, deployment issues, and moments where I had no idea why something suddenly stopped working 😭 But working through each problem taught me a lot about JavaScript, Node.js, Slack Bolt, GitHub, and deploying projects to a server. I’m really happy with how Honeydew turned out and proud that I was able to take it from an idea to a working project running 24/7.Thanks to everyone who helped and gave feedback throughout the process — and to ChatGPT for helping me understand and debug parts of the code along the way.🍯🐱🚀
Ships:
I made my own Slackbot called Honeydew. It can give you cat facts, tell you a cat mood, share a cat quote, or give you a fun animal quiz!. It was a very challenging project as it was my first time doing something like this. I had no experience whatsoever and had some help from AI. I’m proud of the outcome and hope to improve my skills by taking on more projects in the future....
|
1793569947.5587733
|
1793656347.5587733
|
|
2942
|
Elearn NGX by @bohrium2b | Stardance
|
bohrium2b
|
0
|
19.59
|
0
|
[]
|
[{"post_id": 12182, "ts": "202 [{"post_id": 12182, "ts": "2026-06-19T21:57:22Z", "hours": 2.4922, "text": "All the tests pass! A few small bugs have been fixed as well! My cleanup code quest has finished. Now on to fixing visual bugs and implementing more features!"}, {"post_id": 11606, "ts": "2026-06-18T21:56:26Z", "hours": 3.7958, "text": "Fixing bugs, writing unit tests, improving code coverage with tests :) Only 10% don’t pass (which is good!). I will fix those next. Other things: rubocop has fewer complaints now :) Code coverage is up to 80% (+/- 3%)."}, {"post_id": 7140, "ts": "2026-06-11T22:30:45Z", "hours": 2.4175, "text": "Everything is broken :( Things I did: Created more modes for organisation. Now questions are attached to “topics”, which belong to units, which belong to parts, which belong to courses. Created a UI (shown here) for organising topics and tags in a drag-and-drop UI Challenges: Getting drag and drop to reflect on the backend keeping types together and inter-compatible Preventing server resources from becoming overloaded"}, {"post_id": 3309, "ts": "2026-06-06T05:23:52Z", "hours": 1.4917, "text": "Exercises now have analytics! Things I built: exercise completion log weak points recommended questions Things that don’t work: dark mode (ew :( ). Some things are dark, some things are glaringly white, some fonts are weird Reviewing exercises has weird styling padding is weird"}, {"post_id": 3117, "ts": "2026-06-06T00:23:03Z", "hours": 3.0119, "text": "I added users, and everything broke :( The react component part takes too much memory to compile, so i added aggressive code splitting. Now different components (which are ended up as web components) are now independent files and are lazy-loaded. Things like perseus and mathjax are still big files but loaded separately. I added a top bar and a sign in screen! Also user roles like Admin, Content Manager, Teacher, Student. The sign in screen works! Also exercises creating, editing."}, {"post_id": 2430, "ts": "2026-06-04T22:14:02Z", "hours": 2.4056, "text": "Updated UI for question workspace! The problems: drag and drop broke, the sidebar stopped being draggable, and tags broke. Ooops. I fixed them by refactoring the dashboard module, implementing smaller changes, console.log religiously. Other things that changed: selection is now EITHER tag or question but not both at the same time. I’m not entirely sure on this because it seems rather odd. untagged questions sometimes have an “untagged” tag subtag cards are beautiful now the sidebar can now be disappeared into oblivion, never to be seen again (until the restore button is pressed) Things I still need to do: add toast status notifiers dialogues/modals should be using MUI not the native dialogue lazy loading/component splitting I realised that I can’t actually upload multiple images in stardance (even though it displays fine in the preview), which is a bit unfortunate."}, {"post_id": 1745, "ts": "2026-06-03T22:37:32Z", "hours": 3.9703, "text": "I love creating and editing questions! The only problem is it looks awful … :( What I did: created a Rails model for questions and tags (the big JSON image with questions) wrote logic to recursively build a tag tree (with tags, subtags, colours, and questions) wrote a view to allow dragging and dropping questions Challenges: getting the questions to actually drag and drop into the right tag preventing it from infinite-looping updating (I hate you React) sending backend requests to update the view, the whole fetch/get/post thing was complex and I accidentally DOS’ed my backend a few times (oops) Auto colour generation"}]...
|
Title: Elearn NGX by @bohrium2b | Stardance
Devlo Title: Elearn NGX by @bohrium2b | Stardance
Devlogs:
I love creating and editing questions! The only problem is it looks awful … :( What I did: created a Rails model for questions and tags (the big JSON image with questions) wrote logic to recursively build a tag tree (with tags, subtags, colours, and questions) wrote a view to allow dragging and dropping questions Challenges: getting the questions to actually drag and drop into the right tag preventing it from infinite-looping updating (I hate you React) sending backend requests to update the view, the whole fetch/get/post thing was complex and I accidentally DOS’ed my backend a few times (oops) Auto colour generation
Updated UI for question workspace! The problems: drag and drop broke, the sidebar stopped being draggable, and tags broke. Ooops. I fixed them by refactoring the dashboard module, implementing smaller changes, console.log religiously. Other things that changed: selection is now EITHER tag or question but not both at the same time. I’m not entirely sure on this because it seems rather odd. untagged questions sometimes have an “untagged” tag subtag cards are beautiful now the sidebar can now be disappeared into oblivion, never to be seen again (until the restore button is pressed) Things I still need to do: add toast status notifiers dialogues/modals should be using MUI not the native dialogue lazy loading/component splitting I realised that I can’t actually upload multiple images in stardance (even though it displays fine in the preview), which is a bit unfortunate.
I added users, and everything broke :( The react component part takes too much memory to compile, so i added aggressive code splitting. Now different components (which are ended up as web components) are now independent files and are lazy-loaded. Things like perseus and mathjax are still big files but loaded separately. I added a top bar and a sign in screen! Also user roles like Admin, Content Manager, Teacher, Student. The sign in screen works! Also exercises creating, editing.
Exercises now have analytics! Things I built: exercise completion log weak points recommended questions Things that don’t work: dark mode (ew :( ). Some things are dark, some things are glaringly white, some fonts are weird Reviewing exercises has weird styling padding is weird
Everything is broken :( Things I did: Created more modes for organisation. Now questions are attached to “topics”, which belong to units, which belong to parts, which belong to courses. Created a UI (shown here) for organising topics and tags in a drag-and-drop UI Challenges: Getting drag and drop to reflect on the backend keeping types together and inter-compatible Preventing server resources from becoming overloaded
Fixing bugs, writing unit tests, improving code coverage with tests :) Only 10% don’t pass (which is good!). I will fix those next. Other things: rubocop has fewer complaints now :) Code coverage is up to 80% (+/- 3%).
All the tests pass! A few small bugs have been fixed as well! My cleanup code quest has finished. Now on to fixing visual bugs and implementing more features!...
|
1793569946.39503
|
1794174746.39503
|
|
2599
|
My awesome macropad! by @alfie_nicholls | Stardanc My awesome macropad! by @alfie_nicholls | Stardance...
|
alfie_nicholls
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @alfie_nicholls | S Title: My awesome macropad! by @alfie_nicholls | Stardance...
|
1793569945.4929616
|
1794174745.4929616
|
|
15316
|
Physical Desktop Agent by @sivily | Stardance
|
sivily
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Physical Desktop Agent by @sivily | Stardan Title: Physical Desktop Agent by @sivily | Stardance...
|
1793569944.5740829
|
1794174744.5740829
|
|
19159
|
N-body simulator by @bd6015958 | Stardance
|
bd6015958
|
1
|
0.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T10:03:55Z", "hours": 0.0, "multiplier": 2.45, "payout": 1, "blessing": "neutral", "text": "This is a n-body simulator. I built this becuase I am interested in astrophysics.", "repo": "https://github.com/lmq-v/Orbital-Dynamics", "demo": "https://orbital-dynamics-ujpw.vercel.app/"}]...
|
[{"post_id": 9859, "ts": "2026 [{"post_id": 9859, "ts": "2026-06-16T09:58:28Z", "hours": 0.4133, "text": "physics engine"}]...
|
Title: N-body simulator by @bd6015958 | Stardance
Title: N-body simulator by @bd6015958 | Stardance
Devlogs:
physics engine
Ships:
This is a n-body simulator. I built this becuase I am interested in astrophysics....
|
1793569943.401921
|
1793656343.401921
|
|
36859
|
Untitled project by @KhadijaAhsan | Stardance
|
KhadijaAhsan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @KhadijaAhsan | Stardan Title: Untitled project by @KhadijaAhsan | Stardance...
|
1793569942.543725
|
1794174742.543725
|
|
6609
|
My first slack bot! by @Zsombi25 | Stardance
|
Zsombi25
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Zsombi25 | Stardanc Title: My first slack bot! by @Zsombi25 | Stardance...
|
1793569941.6325297
|
1794174741.6325297
|
|
20359
|
Untitled project by @pkal | Stardance
|
pkal
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @pkal | Stardance
|
1793569940.225078
|
1794174740.225078
|
|
9310
|
NLP random sample by @Kirizakuga | Stardance
|
Kirizakuga
|
0
|
1.91
|
0
|
[]
|
[{"post_id": 4248, "ts": "2026 [{"post_id": 4248, "ts": "2026-06-07T14:28:10Z", "hours": 1.0958, "text": "well, i think i got it, a simple feedforward net with guessing the next number in a list of number"}, {"post_id": 3480, "ts": "2026-06-06T13:07:31Z", "hours": 0.8111, "text": "well, this is the first devlog on this project, so im gonna make a quick overview about what im gonna do. Overall, the goals is an program that can turn any source to .md file and make an overview about that. About tech spec, i have something in mind, using MarkItDown by Microsoft to turn raw source into .md and use and nlp module to read and make and quick overview about the source. thats everything about now /.ps: im learning neuron network ( to train a model if i can :>)"}]...
|
Title: NLP random sample by @Kirizakuga | Stardanc Title: NLP random sample by @Kirizakuga | Stardance
Devlogs:
well, this is the first devlog on this project, so im gonna make a quick overview about what im gonna do. Overall, the goals is an program that can turn any source to .md file and make an overview about that. About tech spec, i have something in mind, using MarkItDown by Microsoft to turn raw source into .md and use and nlp module to read and make and quick overview about the source. thats everything about now /.ps: im learning neuron network ( to train a model if i can :>)
well, i think i got it, a simple feedforward net with guessing the next number in a list of number...
|
1793569939.3558705
|
1794174739.3558705
|
|
50055
|
pulse web by @akr0002 | Stardance
|
akr0002
|
2
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-28T09:03:11Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a nasa pulse web that shows nasa picture of the day and updates", "repo": "https://github.com/picectrljinx/pulse-web", "demo": "https://picectrljinx.github.io/pulse-web/"}, {"ship_num": 2, "ts": "2026-09-02T13:36:50Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a pulse web that shows the most recent pictures of nasa picture of the day what i found challenging was getting the date and image to load up as it was only showing the link but soon i found out the problem long story short its finally fixed", "repo": "https://github.com/picectrljinx/pulse-web", "demo": "https://picectrljinx.github.io/pulse-web/"}]...
|
[{"post_id": 71188, "ts": "202 [{"post_id": 71188, "ts": "2026-09-20T12:42:11Z", "hours": 0.4822, "text": "i have finished my pulse web a while ago and ordered the ras pi. i made this devlog to start a ras pi project where ill add screen a rechargable cell and ect.. to make it into a mini pc. i dont think ill have enough time to make this in stardance as it is ending soon hopefully this arrives quick and the parts so i can share this build :)"}, {"post_id": 60214, "ts": "2026-09-02T13:15:44Z", "hours": 0.9231, "text": "ive finally finished my pulse web yayy"}, {"post_id": 58900, "ts": "2026-08-31T13:51:16Z", "hours": 0.3408, "text": "i managed to get the pucture/vid running and the date but as i was continuing i tested it out and it shows this error i am currently working on to fix this cant seem to find the problem but hopefully will soon"}, {"post_id": 58873, "ts": "2026-08-31T13:27:12Z", "hours": 0.3697, "text": "so far my pulse web look like this i still have trouble with the image showing up hopefully i solve this problem"}, {"post_id": 58832, "ts": "2026-08-31T12:38:32Z", "hours": 0.9411, "text": "right now im fixing up my script.js for my nasa pulse web as i added the nasa pg of the latest picture but it only shows the link name and not the image. this isnt a big problem and will be fixed shortly"}, {"post_id": 49230, "ts": "2026-08-17T21:52:02Z", "hours": 0.3225, "text": "Today I started making my Pulse Web project. I made the HTML, CSS and JavaScript files and got the basic page working. I also started making the design for the website with a dark space theme. Next I want to add the NASA picture and make the website more interactive."}]...
|
Title: pulse web by @akr0002 | Stardance
Devlogs: Title: pulse web by @akr0002 | Stardance
Devlogs:
Today I started making my Pulse Web project. I made the HTML, CSS and JavaScript files and got the basic page working. I also started making the design for the website with a dark space theme. Next I want to add the NASA picture and make the website more interactive.
right now im fixing up my script.js for my nasa pulse web as i added the nasa pg of the latest picture but it only shows the link name and not the image. this isnt a big problem and will be fixed shortly
so far my pulse web look like this i still have trouble with the image showing up hopefully i solve this problem
i managed to get the pucture/vid running and the date but as i was continuing i tested it out and it shows this error i am currently working on to fix this cant seem to find the problem but hopefully will soon
ive finally finished my pulse web yayy
i have finished my pulse web a while ago and ordered the ras pi. i made this devlog to start a ras pi project where ill add screen a rechargable cell and ect.. to make it into a mini pc. i dont think ill have enough time to make this in stardance as it is ending soon hopefully this arrives quick and the parts so i can share this build :)
Ships:
i made a pulse web that shows the most recent pictures of nasa picture of the day what i found challenging was getting the date and image to load up as it was only showing the link but soon i found out the problem long story short its finally fixed
i made a nasa pulse web that shows nasa picture of the day and updates...
|
1793569938.1490753
|
1793656338.1490753
|
|
19287
|
My very own WebOS by @maxoliver | Stardance
|
maxoliver
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @maxoliver | Stardance
|
1793569937.272587
|
1794174737.272587
|
|
26673
|
Frictionless by @MaximusVortex | Stardance
|
MaximusVortex
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @MaximusVortex | Stardance
|
1793569936.3659003
|
1794174736.3659003
|
|
13239
|
My first slack bot! by @alikitsirigoti | Stardance
|
alikitsirigoti
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @alikitsirigoti | St Title: My first slack bot! by @alikitsirigoti | Stardance...
|
1793569935.4745364
|
1794174735.4745364
|
|
11050
|
My first slack bot! by @yt320210 | Stardance
|
yt320210
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @yt320210 | Stardanc Title: My first slack bot! by @yt320210 | Stardance...
|
1793569934.5679064
|
1794174734.5679064
|
|
41740
|
meloop - watch your video multiply by @sahilaw | S meloop - watch your video multiply by @sahilaw | Stardance...
|
sahilaw
|
1
|
9.0
|
130
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T17:37:08Z", "hours": 9.0, "multiplier": 14.55, "payout": 130, "blessing": "neutral", "text": "I spent the last few days on meloop, a tool that turns any short clip into an endlessly multiplying grid. Everything runs on your device, nothing gets uploaded. The hardest part was frame extraction. Sampling too slowly made the loops choppy, sampling too fast made the browser lag. Settling on 24 fps and a 60-second limit fixed most of it. I’m happiest with how the grid grows while staying perfectly in sync with the original audio. Also added a recent-clips list with IndexedDB so you can replay videos without uploading them again. To try it just go to meloop.vercel.app, drop any short video under 60 seconds, and watch it multiply. There’s a demo button if you don’t feel like uploading anything.", "repo": "https://github.com/sahilaw22/meloop", "demo": "https://meloop.vercel.app/"}]...
|
[{"post_id": 44105, "ts": "202 [{"post_id": 44105, "ts": "2026-08-09T17:28:27Z", "hours": 2.0944, "text": "second devlog I built a thing that takes a short video and turns it into a growing grid of the same clip looping forever. One tile, then four, then nine, and so on until the whole screen is just the same meme repeating itself. The idea The whole point was that nothing leaves the browser. No uploads, no servers. You drop a video, the browser rips the frames out with canvas, and then it just starts multiplying them. Audio stays from the original file so it doesn’t sound like garbage. Frame extraction Getting this part right took longer than I expected. At first I was sampling too slowly and the loops looked choppy. Then I was sampling too fast and the browser would choke on longer clips. Settled on: 24 fps Max video length: 60 seconds Max file size: 15 MB Frames scaled down to 480px Still not perfect, but it works for most meme-length clips. The multiplying grid This was the fun part. I started with a simple canvas renderer that just kept adding more of the same frame. Watching a single sad cat video slowly take over the entire screen is weirdly satisfying. Had to add a couple of limits though: Hard cap at 1024 tiles Auto-pause every couple of minutes Otherwise Chrome starts melting. Extra stuff Recent clips saved with IndexedDB so you can re-run the last few videos without uploading again Drag and drop + a demo video button Basic play/pause/mute controls Try it Live version is up at meloop.vercel.app What’s still rough Performance on older phones isn’t great The pause modal feels a bit abrupt Some longer clips still struggle during frame extraction The core idea works though, and everything stays private, which was the main goal."}, {"post_id": 37338, "ts": "2026-07-30T00:03:19Z", "hours": 6.8697, "text": "Hey everyone! this is my first devlog Here what i did today: I spent some time polishing meloop today. i refined the ui, improved animations, and optimized the frame processing pipeline to make everything feel smoother. the biggest goal is still the same: keeping all video processing fast, private, and entirely inside the browser without relying on servers or uploads. it’s starting to feel much more like a finished product with every iteration. Check out live demo here! https://meloop.vercel.app/"}]...
|
Title: meloop - watch your video multiply by @sahi Title: meloop - watch your video multiply by @sahilaw | Stardance
Devlogs:
Hey everyone! this is my first devlog Here what i did today: I spent some time polishing meloop today. i refined the ui, improved animations, and optimized the frame processing pipeline to make everything feel smoother. the biggest goal is still the same: keeping all video processing fast, private, and entirely inside the browser without relying on servers or uploads. it’s starting to feel much more like a finished product with every iteration. Check out live demo here! https://meloop.vercel.app/
second devlog I built a thing that takes a short video and turns it into a growing grid of the same clip looping forever. One tile, then four, then nine, and so on until the whole screen is just the same meme repeating itself. The idea The whole point was that nothing leaves the browser. No uploads, no servers. You drop a video, the browser rips the frames out with canvas, and then it just starts multiplying them. Audio stays from the original file so it doesn’t sound like garbage. Frame extraction Getting this part right took longer than I expected. At first I was sampling too slowly and the loops looked choppy. Then I was sampling too fast and the browser would choke on longer clips. Settled on: 24 fps Max video length: 60 seconds Max file size: 15 MB Frames scaled down to 480px Still not perfect, but it works for most meme-length clips. The multiplying grid This was the fun part. I started with a simple canvas renderer that just kept adding more of the same frame. Watching a single sad cat video slowly take over the entire screen is weirdly satisfying. Had to add a couple of limits though: Hard cap at 1024 tiles Auto-pause every couple of minutes Otherwise Chrome starts melting. Extra stuff Recent clips saved with IndexedDB so you can re-run the last few videos without uploading again Drag and drop + a demo video button Basic play/pause/mute controls Try it Live version is up at meloop.vercel.app What’s still rough Performance on older phones isn’t great The pause modal feels a bit abrupt Some longer clips still struggle during frame extraction The core idea works though, and everything stays private, which was the main goal.
Ships:
I spent the last few days on meloop, a tool that turns any short clip into an endlessly multiplying grid. Everything runs on your device, nothing gets uploaded. The hardest part was frame extraction. Sampling too slowly made the loops choppy, sampling too fast made the browser lag. Settling on 24 fps and a 60-second limit fixed most of it. I’m happiest with how the grid grows while staying perfectly in sync with the original audio. Also added a recent-clips list with IndexedDB so you can replay videos without uploading them again. To try it just go to meloop.vercel.app, drop any short video under 60 seconds, and watch it multiply. There’s a demo button if you don’t feel like uploading anything....
|
1793569933.4075592
|
1793656333.4075592
|
|
4965
|
Something by @pramod_pranav26 | Stardance
|
pramod_pranav26
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Something by @pramod_pranav26 | Stardance
|
1793569932.5178237
|
1794174732.5178237
|
|
16257
|
Frictionless by @mrinmoyk95 | Stardance
|
mrinmoyk95
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @mrinmoyk95 | Stardance
|
1793569931.6494613
|
1794174731.6494613
|
|
5853
|
My awesome macropad! by @Anirudh_K | Stardance
|
Anirudh_K
|
0
|
1.65
|
0
|
[]
|
[{"post_id": 28543, "ts": "202 [{"post_id": 28543, "ts": "2026-07-14T21:15:20Z", "hours": 1.6483, "text": "Completely forgot to record me making the PCB, but I’ve finished the case in TinkerCAD! Next up I’m going to work on the QMK Firmware and adding any finishing touches. I decided not to go with any LEDs since I’m maxing out the pins (8 keys, rotary encoder, and the screen), though the model for the switches has it included. While trying to figure out how routing works, I found this neat software called Freerouting which lets you automatically do it (rest assured that I checked to make sure there were no mistakes). Overall I’m extremely proud of my design so far (haven’t thought of a proper name for it yet), especially since this is my first ever proper hardware project!"}]...
|
Title: My awesome macropad! by @Anirudh_K | Starda Title: My awesome macropad! by @Anirudh_K | Stardance
Devlogs:
Completely forgot to record me making the PCB, but I’ve finished the case in TinkerCAD! Next up I’m going to work on the QMK Firmware and adding any finishing touches. I decided not to go with any LEDs since I’m maxing out the pins (8 keys, rotary encoder, and the screen), though the model for the switches has it included. While trying to figure out how routing works, I found this neat software called Freerouting which lets you automatically do it (rest assured that I checked to make sure there were no mistakes). Overall I’m extremely proud of my design so far (haven’t thought of a proper name for it yet), especially since this is my first ever proper hardware project!...
|
1793569930.7277193
|
1794174730.7277193
|