|
43486
|
Go-Kart! by @remo_ | Stardance
|
remo_
|
0
|
2.5
|
0
|
[]
|
[{"post_id": 42179, "ts": "202 [{"post_id": 42179, "ts": "2026-08-06T19:55:40Z", "hours": 0.3744, "text": "Researched the Electrical Components Needed for The Project I did some research on the parts I need for the go-kart. The parts may change but this is what I found for now. I will put the speed controller and the battery to the backside, the motors will control the big wheels on the back. These are the parts that I selected: Motor: https://bikestore.com.tr/stmax-elit-940-motor-st13324?srsltid=AfmBOopAScwvQHXM_uSbEvQSqvEu1wmUvxL-6qmOSSeptbrYhcYGza9LNYo Speed Control: https://bikestore.com.tr/stmax-elit-940-hiz-kontrol-cihazi-st13326?srsltid=AfmBOorsTm40XdsP-zZU_ivgzg-_FeuHv9TkiMUwmSCL4PFWg8aQG-0iR2w Pedal: https://www.amazon.com.tr/VOBOR-hızlandırıcı-pedalı-bisiklet-Go-Kart/dp/B0BJ6M6RX8 Insurance: https://www.hepsiburada.com/viko-1x2-amper-1-fazli-b-tipi-4-5-ka-otomatik-sigorta-4vtb-1b02-p-HBCV0000739AEN?magaza=Hepsiburada LiPo Battery: https://www.kadrobisiklet.com/60-volt-20-amper-lifepo4-batarya"}, {"post_id": 40756, "ts": "2026-08-04T14:28:01Z", "hours": 0.4669, "text": "Made The Steering-System Work So the steering system was really bad and I looked up some go-kart steering-systems and found this. I think it will work but this design doesnt matter that much because I’ll probably laser cut the pieces and assemble it irl instead of 3d printing. this is the video I found it from : https://www.youtube.com/watch?v=u4h8nWkKU80"}, {"post_id": 40689, "ts": "2026-08-04T11:42:11Z", "hours": 0.62, "text": "Added the front wheels and started the steering stuff I want to use SPR150 wheels on the front, I dont know exactly how steering works, I wanted to do a steering system like a bicycle but I dont know if that would work, Im gonna do some research about it. I hope it works I also want to add some sort of seat belt thing so the driver wont fly if they slam the brakes :]"}, {"post_id": 40633, "ts": "2026-08-04T09:45:16Z", "hours": 0.7344, "text": "Added Motor Mounts and Made It Longer I realized that it was a bit small so I made it longer, and added the motor mounts, I was normally gonna put them under the go-kart but if I did that the driver would be like 30cm’s high so I put them on top, I’m might do the front-wheels next devlog but I think I’ll do it from wood I want to use motors and wheels from the Stmax Elit 940 Moped :D"}, {"post_id": 40409, "ts": "2026-08-03T21:45:18Z", "hours": 0.3003, "text": "Starting on the Go-Kart: I’ve started on building a Go-Kart, this is only a start everything might change but what I’d like to do is use e-bike motors on the back motors and put the battery, motherboard etc. on the spot behind the go-kart. I want to build the body myself and not print it out (maybe from wood?) so this wont matter that much still a good start I think. :)"}]...
|
Title: Go-Kart! by @remo_ | Stardance
Devlogs:
St Title: Go-Kart! by @remo_ | Stardance
Devlogs:
Starting on the Go-Kart: I’ve started on building a Go-Kart, this is only a start everything might change but what I’d like to do is use e-bike motors on the back motors and put the battery, motherboard etc. on the spot behind the go-kart. I want to build the body myself and not print it out (maybe from wood?) so this wont matter that much still a good start I think. :)
Added Motor Mounts and Made It Longer I realized that it was a bit small so I made it longer, and added the motor mounts, I was normally gonna put them under the go-kart but if I did that the driver would be like 30cm’s high so I put them on top, I’m might do the front-wheels next devlog but I think I’ll do it from wood I want to use motors and wheels from the Stmax Elit 940 Moped :D
Added the front wheels and started the steering stuff I want to use SPR150 wheels on the front, I dont know exactly how steering works, I wanted to do a steering system like a bicycle but I dont know if that would work, Im gonna do some research about it. I hope it works I also want to add some sort of seat belt thing so the driver wont fly if they slam the brakes :]
Made The Steering-System Work So the steering system was really bad and I looked up some go-kart steering-systems and found this. I think it will work but this design doesnt matter that much because I’ll probably laser cut the pieces and assemble it irl instead of 3d printing. this is the video I found it from : https://www.youtube.com/watch?v=u4h8nWkKU80
Researched the Electrical Components Needed for The Project I did some research on the parts I need for the go-kart. The parts may change but this is what I found for now. I will put the speed controller and the battery to the backside, the motors will control the big wheels on the back. These are the parts that I selected: Motor: https://bikestore.com.tr/stmax-elit-940-motor-st13324?srsltid=AfmBOopAScwvQHXM_uSbEvQSqvEu1wmUvxL-6qmOSSeptbrYhcYGza9LNYo Speed Control: https://bikestore.com.tr/stmax-elit-940-hiz-kontrol-cihazi-st13326?srsltid=AfmBOorsTm40XdsP-zZU_ivgzg-_FeuHv9TkiMUwmSCL4PFWg8aQG-0iR2w Pedal: https://www.amazon.com.tr/VOBOR-hızlandırıcı-pedalı-bisiklet-Go-Kart/dp/B0BJ6M6RX8 Insurance: https://www.hepsiburada.com/viko-1x2-amper-1-fazli-b-tipi-4-5-ka-otomatik-sigorta-4vtb-1b02-p-HBCV0000739AEN?magaza=Hepsiburada LiPo Battery: https://www.kadrobisiklet.com/60-volt-20-amper-lifepo4-batarya...
|
1793224442.6088064
|
1793829242.6088064
|
|
58341
|
NerdyItachi Pulse by @NerdyItachi | Stardance
|
NerdyItachi
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-04T22:01:00Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website that fetches real nasa’s data using nasa’s free api hehe the hardest part was basically adding that image i’m new to html and css and java script so it might not be as good as other participants but i tried my best", "repo": "https://github.com/Ayaan-dev21/Pulse-mission", "demo": "https://pulse-mission.netlify.app"}]...
|
[{"post_id": 61800, "ts": "202 [{"post_id": 61800, "ts": "2026-09-04T21:39:23Z", "hours": 0.3628, "text": "working on the skeleton xD"}]...
|
Title: NerdyItachi Pulse by @NerdyItachi | Stardan Title: NerdyItachi Pulse by @NerdyItachi | Stardance
Devlogs:
working on the skeleton xD
Ships:
I made a website that fetches real nasa’s data using nasa’s free api hehe the hardest part was basically adding that image i’m new to html and css and java script so it might not be as good as other participants but i tried my best...
|
1793224441.7042751
|
1793310841.7042751
|
|
43485
|
glass by @chiltonqiu | Stardance
|
chiltonqiu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: glass by @chiltonqiu | Stardance
|
1793224440.805053
|
1793829240.805053
|
|
43484
|
VolumeIQ by @ItsTann | Stardance
|
ItsTann
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: VolumeIQ by @ItsTann | Stardance
|
1793224439.941841
|
1793829239.941841
|
|
43483
|
My first slack bot! by @anshumanghoshbarman | Star My first slack bot! by @anshumanghoshbarman | Stardance...
|
anshumanghoshbarman
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @anshumanghoshbarman Title: My first slack bot! by @anshumanghoshbarman | Stardance...
|
1793224439.0334215
|
1793829239.0334215
|
|
43482
|
My own site! by @Spiteful | Stardance
|
Spiteful
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @Spiteful | Stardance
|
1793224438.1421423
|
1793829238.1421423
|
|
39880
|
FHTML (Frog Hypertext Markup Language) by @Im_awar FHTML (Frog Hypertext Markup Language) by @Im_aware | Stardance...
|
Im_aware
|
1
|
3.0
|
16
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-26T18:24:03Z", "hours": 3.0, "multiplier": 5.06, "payout": 16, "blessing": "neutral", "text": "Created a website telling the world about some cool frogs. All images lead to links with legit facts about the frogs. I hope whomever this encounters finds at least a little joy in my newest creation. :)", "repo": "https://github.com/Im-Aware/Im-Aware", "demo": "https://im-aware.github.io/Im-Aware/"}]...
|
[{"post_id": 35029, "ts": "202 [{"post_id": 35029, "ts": "2026-07-26T05:59:38Z", "hours": 0.5192, "text": "It’s 1am. I’m done… I have work at 8am. Wish me luck."}, {"post_id": 35018, "ts": "2026-07-26T05:21:07Z", "hours": 0.3764, "text": "I’m on frog seven and going a bit insane. Here’s a frog near and dear to my heart to make your day/nigh/secret-third-option a little better."}, {"post_id": 35004, "ts": "2026-07-26T04:47:25Z", "hours": 1.9592, "text": "Should I go to bed? Yes. Am I far too invested in this? Also yes. I’m 4 frogs in and gave up on making it ugly in favor of being iconic."}, {"post_id": 34935, "ts": "2026-07-26T01:39:54Z", "hours": 0.3289, "text": "Creating a website as bad as the heavens gate one"}]...
|
Title: FHTML (Frog Hypertext Markup Language) by @ Title: FHTML (Frog Hypertext Markup Language) by @Im_aware | Stardance
Devlogs:
Creating a website as bad as the heavens gate one
Should I go to bed? Yes. Am I far too invested in this? Also yes. I’m 4 frogs in and gave up on making it ugly in favor of being iconic.
I’m on frog seven and going a bit insane. Here’s a frog near and dear to my heart to make your day/nigh/secret-third-option a little better.
It’s 1am. I’m done… I have work at 8am. Wish me luck.
Ships:
Created a website telling the world about some cool frogs. All images lead to links with legit facts about the frogs. I hope whomever this encounters finds at least a little joy in my newest creation. :)...
|
1793224437.2343514
|
1793310837.2343514
|
|
43479
|
Carouly - AI Marketing by @yursen_nezzari | Starda Carouly - AI Marketing by @yursen_nezzari | Stardance...
|
yursen_nezzari
|
0
|
24.27
|
0
|
[]
|
[{"post_id": 46240, "ts": "202 [{"post_id": 46240, "ts": "2026-08-13T10:45:35Z", "hours": 13.6703, "text": "Is it normal my project has been pending review for weeks ?"}, {"post_id": 40170, "ts": "2026-08-03T16:00:57Z", "hours": 10.5986, "text": "Finally shipped the MVP"}]...
|
Title: Carouly - AI Marketing by @yursen_nezzari | Title: Carouly - AI Marketing by @yursen_nezzari | Stardance
Devlogs:
Finally shipped the MVP
Is it normal my project has been pending review for weeks ?...
|
1793224436.3404431
|
1793829236.3404431
|
|
43478
|
My very own WebOS by @Schimonomo | Stardance
|
Schimonomo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Schimonomo | Stardanc Title: My very own WebOS by @Schimonomo | Stardance...
|
1793224435.4339502
|
1793829235.4339502
|
|
1748
|
Cyber Trident by @Nipun_Dhawan | Stardance
|
Nipun_Dhawan
|
2
|
3.0
|
9
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-05T06:42:45Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Added the APK analyser (checks for sus perms in that the apk file takes) Added OSINT Portal (Allows you to compile all information and get the tools needed)", "repo": "https://github.com/NipunD58/OSINT", "demo": "https://cybertrident.streamlit.app/"}, {"ship_num": 2, "ts": "2026-06-06T18:27:19Z", "hours": 1.0, "multiplier": 9.45, "payout": 9, "blessing": "neutral", "text": "Cyber Trident Platform is a Streamlit application that unifies metadata extraction, QR fraud detection, and social media intelligence into a single investigative dashboard. It is designed for cybersecurity analysts and OSINT practitioners who need fast, repeatable workflows and structured reporting. The most challenging part was to get the AI models working with the app and Streamlit. The fun part was getting to see where the emails were sent from using Email parser", "repo": "https://github.com/NipunD58/OSINT", "demo": "https://cybertrident.streamlit.app/"}]...
|
[{"post_id": 20106, "ts": "202 [{"post_id": 20106, "ts": "2026-07-01T17:02:57Z", "hours": 1.9575, "text": "Added the APK analyser that looks for certain permissions that a suspicious app would require. It analyses the APK to find these patterns and flags it. Also added an OSINT tools portal where the user can make a case and see the OSINT tools that he can use to get the details."}, {"post_id": 3664, "ts": "2026-06-06T18:21:08Z", "hours": 1.2742, "text": "Worked on all the various features like password generator, email parser, QR code fraud detector (using VirusTotal for checking), social media searcher (using Sherlock for searching)"}]...
|
Title: Cyber Trident by @Nipun_Dhawan | Stardance
Title: Cyber Trident by @Nipun_Dhawan | Stardance
Devlogs:
Worked on all the various features like password generator, email parser, QR code fraud detector (using VirusTotal for checking), social media searcher (using Sherlock for searching)
Added the APK analyser that looks for certain permissions that a suspicious app would require. It analyses the APK to find these patterns and flags it. Also added an OSINT tools portal where the user can make a case and see the OSINT tools that he can use to get the details.
Ships:
Cyber Trident Platform is a Streamlit application that unifies metadata extraction, QR fraud detection, and social media intelligence into a single investigative dashboard. It is designed for cybersecurity analysts and OSINT practitioners who need fast, repeatable workflows and structured reporting. The most challenging part was to get the AI models working with the app and Streamlit. The fun part was getting to see where the emails were sent from using Email parser
Added the APK analyser (checks for sus perms in that the apk file takes) Added OSINT Portal (Allows you to compile all information and get the tools needed)...
|
1793224434.4849842
|
1793310834.4849842
|
|
43477
|
My Portfolio by @amrjawamc | Stardance
|
amrjawamc
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My Portfolio by @amrjawamc | Stardance
|
1793224433.587576
|
1793829233.587576
|
|
43475
|
My awesome macropad! by @jonne-goudberg | Stardanc My awesome macropad! by @jonne-goudberg | Stardance...
|
jonne-goudberg
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @jonne-goudberg | S Title: My awesome macropad! by @jonne-goudberg | Stardance...
|
1793224432.666439
|
1793829232.666439
|
|
12614
|
My first slack bot! by @Nebula | Stardance
|
Nebula
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-11T17:31:50Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a simple bot for sending your messages as a proxy. I learnt how to use slack API and the hardest thing was to figure out how to send in channel messages after changing the username for a message.", "repo": "https://github.com/NebulaDev09/Plurabot", "demo": "https://hackclub.enterprise.slack.com/archives/C0B9HF17A95"}]...
|
[{"post_id": 6937, "ts": "2026 [{"post_id": 6937, "ts": "2026-06-11T17:02:24Z", "hours": 4.255, "text": "Completed my first slack bot. Basically a utility for people with plurality. You can create proxies and use them to message. Some commands are, /plb-ping - to check status and latency /plb-help - to check all commands and usage /plb-member add <member_name> /plb-member remove <member_name> /plb-member list /plb-proxy <member_name> |"}]...
|
Title: My first slack bot! by @Nebula | Stardance
Title: My first slack bot! by @Nebula | Stardance
Devlogs:
Completed my first slack bot. Basically a utility for people with plurality. You can create proxies and use them to message. Some commands are, /plb-ping - to check status and latency /plb-help - to check all commands and usage /plb-member add <member_name> /plb-member remove <member_name> /plb-member list /plb-proxy <member_name> |
Ships:
I made a simple bot for sending your messages as a proxy. I learnt how to use slack API and the hardest thing was to figure out how to send in channel messages after changing the username for a message....
|
1793224431.7504733
|
1793310831.7504733
|
|
43474
|
My own site! by @Tasfi | Stardance
|
Tasfi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @Tasfi | Stardance
|
1793224430.8477263
|
1793829230.8477263
|
|
43473
|
All About Me by @rohit-krish | Stardance
|
rohit-krish
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: All About Me by @rohit-krish | Stardance
|
1793224429.9449508
|
1793829229.9449508
|
|
43472
|
My awesome macropad! by @rohit-krish | Stardance
|
rohit-krish
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @rohit-krish | Star Title: My awesome macropad! by @rohit-krish | Stardance...
|
1793224429.0269375
|
1793829229.0269375
|
|
43465
|
bot by @neb | Stardance
|
neb
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: bot by @neb | Stardance
|
1793224428.1404645
|
1793829228.1404645
|
|
20321
|
Fork() by @Mokila | Stardance
|
Mokila
|
1
|
11.0
|
153
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-21T08:05:30Z", "hours": 11.0, "multiplier": 15.16, "payout": 153, "blessing": "neutral", "text": "I built Fork(), a spatial text editor for mapping out logic trees, user flows, and branching thoughts on an infinite canvas. It is designed around a “zero-mouse” flow, allowing users to rapidly brainstorm complex architectures using only keyboard shortcuts without breaking their flow state. What did you find challenging? Exporting an infinite, DOM-based canvas into an image file was a massive pain. Browsers lack a native DOM-to-image API, and standard libraries couldnt handle modern Flexbox math. Furthermore, when trying to export massive trees, Chrome’s memory limits would silently cut the XML data, causing the exports to crash. I had to build a custom “Shrinkwrap” staging area and utilize RAM-based Binary Blobs to bypass browser string limits entirely. What are you proud of? I am proud of the bulletproof export engine that can instantly generate infinite-resolution SVGs, but I’m equally proud of the UI polish. I am also proud of the idea itself because i personally think the idea is very unique. What should people know so they can test your project? No login required: Just open the link and start typing. Use the keyboard: Press Cmd + Enter to spawn a child branch, and Cmd + B for a sibling. Try “Focus Mode” (Cmd + Shift + F) once you have a large tree. And there are more keyboard shortcuts in the Keyboard Shortcuts screen on the website. SVG Testing: Because Chrome flags local SVGs containing tags as a security risk, double-clicking the exported SVG on your desktop might show a blank screen. Drag that exact file into Figma or Illustrator to see the proper image.", "repo": "https://github.com/Moksha-0102/fork", "demo": "https://fork-self.vercel.app/"}]...
|
[{"post_id": 12998, "ts": "202 [{"post_id": 12998, "ts": "2026-06-21T07:51:47Z", "hours": 0.3172, "text": "Readme.md finalized and the project is ready to ship"}, {"post_id": 12977, "ts": "2026-06-21T07:18:52Z", "hours": 3.7025, "text": "Devlog #4: Onboarding and Revised Export Engine + Other improvements. This is probably the final devlog before i ship my project. Here are the changes i made: Onboarding screen : To introduce the user to what Fork() is, i designed and onboarding screen. The screen features a typewriter animation and some bento boxes explaining the usefulness of the app. It introduces the user to the core concepts of the app without overwhelming them. Once dismissed (via a custom checkbox), it saves a flag to localStorage so it never interrupts returning users. The Shortcuts screen: I also added a small section on the bottom left that shows some of the useful keyboard shortcuts. It breaks down the entire zero-mouse flow (like Cmd + ↵ for child branches and Cmd + B for siblings) so users can reference the hotkeys instantly. By pressing on a Show more shortcuts button, another screen pops up with all of the shortcuts SVG & PNG Exports: This was the hardest engineering challenge of the project and took me the longes. Because Fork() uses standard HTML elements ( and ) instead of a raw , exporting it meant reverse-engineering the DOM into an image. Here is what i had to face to perfect these two engines The Outdated Engine: Initially, I used html2canvas, but it couldn’t understand modern Flexbox math or connecting branch lines, resulting in empty, broken files. I completely swapped the engine to the modern html-to-image library. The large canvas: Browsers panic when trying to capture a 100,000-pixel infinite canvas. To fix this, I built an invisible staging area. When you click export, the app clones the tree, strips away the UI buttons, removes all absolute coordinates, and uses native CSS to tightly “shrinkwrap” the bounding box around your exact nodes. The 2MB Chrome Limit: When generating the SVG, Google Chrome kept throwing an XML error. This was because I was putting the raw image data into a URL string, and Chrome silently chops off strings larger than 2 Megabytes. The Blob Fix: To bypass the browser’s memory limits, I converted the raw data into a Binary Blob stored securely in RAM. By using URL.createObjectURL(blob), the app generates a tiny pointer URL that allows users to instantly download massive, infinite-resolution vector trees without the browser crashing. Note on SVGs: Because Chrome flags local SVGs containing tags as a security risk, double-clicking the exported file on a desktop shows a blank screen or a cutoff svg file. But if you drag that exact same file into Figma, Illustrator, or Miro, It renders the vector math flawlessly. Better UX: I entirely stripped out native browser alert() boxes—which are terrible for UX because they freeze the main browser thread—and built a custom Alert System. The Loader: Exports now trigger a Loading Screen with three spinning rings. It features a text element that actively cycles through statuses (“Freezing DOM…”, “Processing spatial math…” and some other stuff). That was my final changes to the website. I just need to write the README.md and then i can officially ship this project"}, {"post_id": 12532, "ts": "2026-06-20T13:51:16Z", "hours": 1.3097, "text": "Devlog #4: Focus Mode + Branching + Recenter The product is almost coming to an end and here are some final features i added: Branch Folding: I added a tiny dropdown button to the bottom of each of the nodes that allows the user to collapse their branches. How it works: Instead of writing complex JavaScript to check if a node has children, I used the modern CSS :has() selector (.node:has(> .children > .node)). The browser automatically figures out if a branch has children and fades the button in for me. Clicking it toggles a .collapsed class that hides the tree below. I also wired the Fork() button and Ctrl+Enter shortcuts to automatically unfold a branch if you try to add a new child to a collapsed node, so you never spawn invisible data. There was a probem however. Everytime i delete or add a branch, the screen jerks and moves somewhere else. This was the hardest technical hurdle. Because the canvas is massive, whenever I used JavaScript to .focus() a new text box, the browser’s native engine would mess up everything. It tried to auto-scroll to center the text box, which contradicted my pan engine, causing the screen to jerk wildly. How I fixed it: I disabled the native and scrollbars (overflow: hidden; overscroll-behavior: none), intercepted any native window.scrollTo events to force them to 0, and applied {preventScroll: true} to every text box. Once I disabled the browser’s native scrolling, the “camera” wouldn’t follow me when I navigated off-screen. I had to build a custom “camera”: Flexbox centering breaks when elements resize (like when collapsing a branch), causing the whole tree to shift. I fixed this by making the canvas 100,000px wide container and locking the transform origin to 0,0. The root node sits permanently at exactly 50,000 pixels. It never moves.Smart Panning: I wrote a math function that calculates the exact pixel center of the active text box, compares it to the physical center of the user’s monitor, and glides the canvas coordinates (panX, panY) to align them perfectly. Zoom-to-Center: I upgraded the mouse-wheel math to calculate where your cursor is relative to the screen, adjusting the pan coordinates while scaling so it zooms smoothly into your target instead of shooting off Focus Mode: I also added a Focus Mode (Cmd+Shift+F). When you are deep in work, the sheer number of boxes is overwhelming. How it works: It strips away the background grid and dims every single node and connecting line to 15% opacity. Using JavaScript’s focusin event, it tracks exactly which box you are typing in and fully illuminates it. Using CSS :has(), I tell the browser to look up the DOM tree and keep the parent nodes semi-illuminated at 60% opacity, creating a “trail” leading back to your root thought. The focus mode is shown in the picture attached below:"}, {"post_id": 12011, "ts": "2026-06-19T16:27:23Z", "hours": 0.9083, "text": "Devlog #3: Undo Redo Engine and Dark Mode The aim was first to create an undo redo option where the user can revert back to the previous change if they made a mistake or sth. To do this i made the following changes: I created two arrays, one for undoHistory and one for redoHistory. They work in such a way that every time you fork or delete a branch, the app takes a snapshot of the DOM and pushes it to the stack. The app only takes a snapshot of the canvas right before you make a structural change (like forking or deleting a branch). If you hit Ctrl+Z, it pops that HTML snapshot back onto the screen. Keystroke typos are still handled by the browser’s native undo. The next change is the dark mode. This is quite self explanatory. I added a dark mode to the website to offer customization options for the user. The preference is also saved to localStorage so the website remembers what theme the user was on."}, {"post_id": 11495, "ts": "2026-06-18T19:44:37Z", "hours": 1.8611, "text": "Devlog #3: localStorage sync + export functoin I realised one of the features missing is the export function where the user can export their tree as many things, so i started coding that. At first, I tried to make the app export to a standard text file or a CSV for Excel. But as soon as I tested it, I realized that a tree/mindmap just doesn’t fit into a flat spreadsheet or as plain text. It was completely illegible. So, I scrapped that and built three new export options: Markdown (Clipboard): I wrote a custom function that takes the tree and converts it into an indented Markdown list. You can click ‘Copy’ and paste it anywhere and it formats it instantly. JSON Data: you can also export the entire tree as a nested JSON file and literally drop it straight into your codebase. PNG Image: to also make exporting it in a visually pleasing way, i coded this option. I integrated html2canvas so you can download a high-res image. To make the UI more like professional, i wrote a script that temporarily hides the UI buttons, resets the zoom/pan, takes the picture, and puts you right back where you were after the export. The second thing i built is the localStorage. I didnt want users refreshing the website and losing all the stuff that they inputted so this is very essential. Fortunately, since i attached the fork button eventListener to the document itself and not only the individual buttons, i could just add a simple localStorage.setItem for each of the events and save it in localStorage. This was quite simple and wasnt too hard to do."}, {"post_id": 10638, "ts": "2026-06-17T14:29:05Z", "hours": 0.6964, "text": "Devlog #2: Infinite Canvas + Keyboard shortcuts. Since this mission is about making life easier, i realised that always switching between mouse and keyboard to just move around and stuff is a bit ironic. So, I rewrote how the entire workspace behaves. Changes: Drag & Pan: I threw out standard scrollbars entirely. Now, the background is like an infinite canvas. You can click and drag anywhere to pan around, or use your trackpad to move in any direction. Keyboard Shortcuts: I wanted to make it possible to map out an entire codebase without ever touching the mouse. I split the branching logic into two intuitive shortcuts: Ctrl + Enter drops down to create a child branch (diving deeper into an idea). Ctrl + B creates a parallel sibling branch right next to you (exploring an alternative idea). Arrow Key Navigation: You can now move through the branches tree using Ctrl + Arrow Keys. Heading Up takes you to the parent thought, Down dives into the branches, and Left/Right hops between parallel options. Ctrl + delete/backspace deletes the current branch/texarea that you are on. If you delete a branch, the cursor shifts focus to the parent node so your typing flow never breaks. Some problems: Fixed a frustrating bug where the connecting lines were off by a single pixel on the outermost branches. Using a calc(), the layout is now completely locked in and perfectly aligned. Next up, I’m diving into LocalStorage so the canvas automatically saves your notes in the background."}, {"post_id": 10604, "ts": "2026-06-17T13:16:03Z", "hours": 1.7267, "text": "Devlog #1: Building Fork() Fork() is a branching notepad for the Frictionless mission. I decided to tackle a massive personal pain point: linear note-taking. Whenever I’m mapping out complex logic or trying to write a function, I always hit a point where I want to try two different approaches. Usually, that means either deleting my past context, or scrolling endlessly up and down a huge document. It completely breaks my flow. So, I started building Fork(). Here’s what I managed to get working for the core engine so far: Branching: I set up the JavaScript so that the moment you click Fork(), a new parallel text box pops up and automatically grabs your cursor. You don’t even have to click into it to start typing. Branchign tree lines: This is the part I’m most proud of. I originally thought I’d have to write a bunch of heavy JavaScript math or use a HTML Canvas to draw the connecting lines between the thoughts. Instead, I figured out how to draw the entire tree using pure CSS. As you spawn new branches, the browser instantly redraws the geometry. Zooming: Since the canvas grows infinitely left, right, and down, I added a custom zoom controller (and also included Ctrl + Scroll). When your logic tree gets massive, you can zoom out to get a bird’s-eye view of your whole thought process. The text boxes also automatically resize and push the rest of the tree down as you type, so nothing gets cut off."}]...
|
Title: Fork() by @Mokila | Stardance
Devlogs:
Dev Title: Fork() by @Mokila | Stardance
Devlogs:
Devlog #1: Building Fork() Fork() is a branching notepad for the Frictionless mission. I decided to tackle a massive personal pain point: linear note-taking. Whenever I’m mapping out complex logic or trying to write a function, I always hit a point where I want to try two different approaches. Usually, that means either deleting my past context, or scrolling endlessly up and down a huge document. It completely breaks my flow. So, I started building Fork(). Here’s what I managed to get working for the core engine so far: Branching: I set up the JavaScript so that the moment you click Fork(), a new parallel text box pops up and automatically grabs your cursor. You don’t even have to click into it to start typing. Branchign tree lines: This is the part I’m most proud of. I originally thought I’d have to write a bunch of heavy JavaScript math or use a HTML Canvas to draw the connecting lines between the thoughts. Instead, I figured out how to draw the entire tree using pure CSS. As you spawn new branches, the browser instantly redraws the geometry. Zooming: Since the canvas grows infinitely left, right, and down, I added a custom zoom controller (and also included Ctrl + Scroll). When your logic tree gets massive, you can zoom out to get a bird’s-eye view of your whole thought process. The text boxes also automatically resize and push the rest of the tree down as you type, so nothing gets cut off.
Devlog #2: Infinite Canvas + Keyboard shortcuts. Since this mission is about making life easier, i realised that always switching between mouse and keyboard to just move around and stuff is a bit ironic. So, I rewrote how the entire workspace behaves. Changes: Drag & Pan: I threw out standard scrollbars entirely. Now, the background is like an infinite canvas. You can click and drag anywhere to pan around, or use your trackpad to move in any direction. Keyboard Shortcuts: I wanted to make it possible to map out an entire codebase without ever touching the mouse. I split the branching logic into two intuitive shortcuts: Ctrl + Enter drops down to create a child branch (diving deeper into an idea). Ctrl + B creates a parallel sibling branch right next to you (exploring an alternative idea). Arrow Key Navigation: You can now move through the branches tree using Ctrl + Arrow Keys. Heading Up takes you to the parent thought, Down dives into the branches, and Left/Right hops between parallel options. Ctrl + delete/backspace deletes the current branch/texarea that you are on. If you delete a branch, the cursor shifts focus to the parent node so your typing flow never breaks. Some problems: Fixed a frustrating bug where the connecting lines were off by a single pixel on the outermost branches. Using a calc(), the layout is now completely locked in and perfectly aligned. Next up, I’m diving into LocalStorage so the canvas automatically saves your notes in the background.
Devlog #3: localStorage sync + export functoin I realised one of the features missing is the export function where the user can export their tree as many things, so i started coding that. At first, I tried to make the app export to a standard text file or a CSV for Excel. But as soon as I tested it, I realized that a tree/mindmap just doesn’t fit into a flat spreadsheet or as plain text. It was completely illegible. So, I scrapped that and built three new export options: Markdown (Clipboard): I wrote a custom function that takes the tree and converts it into an indented Markdown list. You can click ‘Copy’ and paste it anywhere and it formats it instantly. JSON Data: you can also export the entire tree as a nested JSON file and literally drop it straight into your codebase. PNG Image: to also make exporting it in a visually pleasing way, i coded this option. I integrated html2canvas so you can download a high-res image. To make the UI more like professional, i wrote a script that temporarily hides the UI buttons, resets the zoom/pan, takes the picture, and puts you right back where you were after the export. The second thing i built is the localStorage. I didnt want users refreshing the website and losing all the stuff that they inputted so this is very essential. Fortunately, since i attached the fork button eventListener to the document itself and not only the individual buttons, i could just add a simple localStorage.setItem for each of the events and save it in localStorage. This was quite simple and wasnt too hard to do.
Devlog #3: Undo Redo Engine and Dark Mode The aim was first to create an undo redo option where the user can revert back to the previous change if they made a mistake or sth. To do this i made the following changes: I created two arrays, one for undoHistory and one for redoHistory. They work in such a way that every time you fork or delete a branch, the app takes a snapshot of the DOM and pushes it to the stack. The app only takes a snapshot of the canvas right before you make a structural change (like forking or deleting a branch). If you hit Ctrl+Z, it pops that HTML snapshot back onto the screen. Keystroke typos are still handled by the browser’s native undo. The next change is the dark mode. This is quite self explanatory. I added a dark mode to the website to offer customization options for the user. The preference is also saved to localStorage so the website remembers what theme the user was on.
Devlog #4: Focus Mode + Branching + Recenter The product is almost coming to an end and here are some final features i added: Branch Folding: I added a tiny dropdown button to the bottom of each of the nodes that allows the user to collapse their branches. How it works: Instead of writing complex JavaScript to check if a node has children, I used the modern CSS :has() selector (.node:has(> .children > .node)). The browser automatically figures out if a branch has children and fades the button in for me. Clicking it toggles a .collapsed class that hides the tree below. I also wired the Fork() button and Ctrl+Enter shortcuts to automatically unfold a branch if you try to add a new child to a collapsed node, so you never spawn invisible data. There was a probem however. Everytime i delete or add a branch, the screen jerks and moves somewhere else. This was the hardest technical hurdle. Because the canvas is massive, whenever I used JavaScript to .focus() a new text box, the browser’s native engine would mess up everything. It tried to auto-scroll to center the text box, which contradicted my pan engine, causing the screen to jerk wildly. How I fixed it: I disabled the native and scrollbars (overflow: hidden; overscroll-behavior: none), intercepted any native window.scrollTo events to force them to 0, and applied {preventScroll: true} to every text box. Once I disabled the browser’s native scrolling, the “camera” wouldn’t follow me when I navigated off-screen. I had to build a custom “camera”: Flexbox centering breaks when elements resize (like when collapsing a branch), causing the whole tree to shift. I fixed this by making the canvas 100,000px wide container and locking the transform origin to 0,0. The root node sits permanently at exactly 50,000 pixels. It never moves.Smart Panning: I wrote a math function that calculates the exact pixel center of the active text box, compares it to the physical center of the user’s monitor, and glides the canvas coordinates (panX, panY) to align them perfectly. Zoom-to-Center: I upgraded the mouse-wheel math to calculate where your cursor is relative to the screen, adjusting the pan coordinates while scaling so it zooms smoothly into your target instead of shooting off Focus Mode: I also added a Focus Mode (Cmd+Shift+F). When you are deep in work, the sheer number of boxes is overwhelming. How it works: It strips away the background grid and dims every single node and connecting line to 15% opacity. Using JavaScript’s focusin event, it tracks exactly which box you are typing in and fully illuminates it. Using CSS :has(), I tell the browser to look up the DOM tree and keep the parent nodes semi-illuminated at 60% opacity, creating a “trail” leading back to your root thought. The focus mode is shown in the picture attached below:
Devlog #4: Onboarding and Revised Export Engine + Other improvements. This is probably the final devlog before i ship my project. Here are the changes i made: Onboarding screen : To introduce the user to what Fork() is, i designed and onboarding screen. The screen features a typewriter animation and some bento boxes explaining the usefulness of the app. It introduces the user to the core concepts of the app without overwhelming them. Once dismissed (via a custom checkbox), it saves a flag to localStorage so it never interrupts returning users. The Shortcuts screen: I also added a small section on the bottom left that shows some of the useful keyboard shortcuts. It breaks down the entire zero-mouse flow (like Cmd + ↵ for child branches and Cmd + B for siblings) so users can reference the hotkeys instantly. By pressing on a Show more shortcuts button, another screen pops up with all of the shortcuts SVG & PNG Exports: This was the hardest engineering challenge of the project and took me the longes. Because Fork() uses standard HTML elements ( and ) instead of a raw , exporting it meant reverse-engineering the DOM into an image. Here is what i had to face to perfect these two engines The Outdated Engine: Initially, I used html2canvas, but it couldn’t understand modern Flexbox math or connecting branch lines, resulting in empty, broken files. I completely swapped the engine to the modern html-to-image library. The large canvas: Browsers panic when trying to capture a 100,000-pixel infinite canvas. To fix this, I built an invisible staging area. When you click export, the app clones the tree, strips away the UI buttons, removes all absolute coordinates, and uses native CSS to tightly “shrinkwrap” the bounding box around your exact nodes. The 2MB Chrome Limit: When generating the SVG, Google Chrome kept throwing an XML error. This was because I was putting the raw image data into a URL string, and Chrome silently chops off strings larger than 2 Megabytes. The Blob Fix: To bypass the browser’s memory limits, I converted the raw data into a Binary Blob stored securely in RAM. By using URL.createObjectURL(blob), the app generates a tiny pointer URL that allows users to instantly download massive, infinite-resolution vector trees without the browser crashing. Note on SVGs: Because Chrome flags local SVGs containing tags as a security risk, double-clicking the exported file on a desktop shows a blank screen or a cutoff svg file. But if you drag that exact same file into Figma, Illustrator, or Miro, It renders the vector math flawlessly. Better UX: I entirely stripped out native browser alert() boxes—which are terrible for UX because they freeze the main browser thread—and built a custom Alert System. The Loader: Exports now trigger a Loading Screen with three spinning rings. It features a text element that actively cycles through statuses (“Freezing DOM…”, “Processing spatial math…” and some other stuff). That was my final changes to the website. I just need to write the README.md and then i can officially ship this project
Readme.md finalized and the project is ready to ship
Ships:
I built Fork(), a spatial text editor for mapping out logic trees, user flows, and branching thoughts on an infinite canvas. It is designed around a “zero-mouse” flow, allowing users to rapidly brainstorm complex architectures using only keyboard shortcuts without breaking their flow state. What did you find challenging? Exporting an infinite, DOM-based canvas into an image file was a massive pain. Browsers lack a native DOM-to-image API, and standard libraries couldnt handle modern Flexbox math. Furthermore, when trying to export massive trees, Chrome’s memory limits would silently cut the XML data, causing the exports to crash. I had to build a custom “Shrinkwrap” staging area and utilize RAM-based Binary Blobs to bypass browser string limits entirely. What are you proud of? I am proud of the bulletproof export engine that can instantly generate infinite-resolution SVGs, but I’m equally proud of the UI polish. I am also proud of the idea itself because i personally think the idea is very unique. What should people know so they can test your project? No login required: Just open the link and start typing. Use the keyboard: Press Cmd + Enter to spawn a child branch, and Cmd + B for a sibling. Try “Focus Mode” (Cmd + Shift + F) once you have a large tree. And there are more keyboard shortcuts in the Keyboard Shortcuts screen on the website. SVG Testing: Because Chrome flags local SVGs containing tags as a security risk, double-clicking the exported SVG on your desktop might show a blank screen. Drag that exact file into Figma or Illustrator to see the proper image....
|
1793224426.911932
|
1793310826.911932
|
|
43464
|
game by @neb | Stardance
|
neb
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: game by @neb | Stardance
|
1793224426.0202684
|
1793829226.0202684
|
|
43463
|
new site by @IHeartCats13 | Stardance
|
IHeartCats13
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: new site by @IHeartCats13 | Stardance
|
1793224425.1369352
|
1793829225.1369352
|
|
43461
|
os by @neb | Stardance
|
neb
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: os by @neb | Stardance
|
1793224424.264909
|
1793829224.264909
|
|
489
|
Sander's Portfolio by @Sander | Stardance
|
Sander
|
1
|
8.0
|
31
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-19T18:52:46Z", "hours": 8.0, "multiplier": 4.1, "payout": 31, "blessing": "neutral", "text": "I’ve build a new portfolio, with next.js and added some animations with framer motion. Im the most proud of the status page, it monitors some of my public sites, and also the contact form, where i get a notification in discord, and the person that tries to contact me a mail via resend.", "repo": "https://github.com/sanderhd/sanders-portfolio", "demo": "https://sander.tf/"}]...
|
[{"post_id": 2318, "ts": "2026 [{"post_id": 2318, "ts": "2026-06-04T19:05:32Z", "hours": 0.3594, "text": "I’ve added Umami Analytics (very cool), its a self hosted analytics system. I’m hosting it on my Nest Server :D"}, {"post_id": 1629, "ts": "2026-06-03T19:17:24Z", "hours": 1.5408, "text": "I have added a Status page to monitor some of my public projects, for now, only 1 is added because the other ones that were added are giving status down, when they are up."}, {"post_id": 987, "ts": "2026-06-02T19:24:47Z", "hours": 1.7064, "text": "I’ve added a contact form, that sends a mail to the person who contacts me, and a discord message in my private server. I’ve also styled the projects page :D"}, {"post_id": 835, "ts": "2026-06-02T15:04:22Z", "hours": 1.5878, "text": "I’ve replaced the comming soon with some info about me, socials, and skills. I’ve also added featured projects, that will be shown when “featured: true” is set in the .md file."}, {"post_id": 349, "ts": "2026-06-01T17:34:33Z", "hours": 1.3647, "text": "I have added a project system, I can write projects in markdown, and they will get shown here. The detail page is not finished!"}, {"post_id": 108, "ts": "2026-05-31T19:30:59Z", "hours": 0.9703, "text": "I’ve been working on the fundamentals: fonts, folders, colors."}]...
|
Title: Sander's Portfolio by @Sander | Stardan Title: Sander's Portfolio by @Sander | Stardance
Devlogs:
I’ve been working on the fundamentals: fonts, folders, colors.
I have added a project system, I can write projects in markdown, and they will get shown here. The detail page is not finished!
I’ve replaced the comming soon with some info about me, socials, and skills. I’ve also added featured projects, that will be shown when “featured: true” is set in the .md file.
I’ve added a contact form, that sends a mail to the person who contacts me, and a discord message in my private server. I’ve also styled the projects page :D
I have added a Status page to monitor some of my public projects, for now, only 1 is added because the other ones that were added are giving status down, when they are up.
I’ve added Umami Analytics (very cool), its a self hosted analytics system. I’m hosting it on my Nest Server :D
Ships:
I’ve build a new portfolio, with next.js and added some animations with framer motion. Im the most proud of the status page, it monitors some of my public sites, and also the contact form, where i get a notification in discord, and the person that tries to contact me a mail via resend....
|
1793224423.1046524
|
1793310823.1046524
|
|
43460
|
WarioWare Game by @IHeartCats13 | Stardance
|
IHeartCats13
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @IHeartCats13 | Stardance
|
1793224422.187827
|
1793829222.187827
|
|
43458
|
Z Slide by @bryanyap0318 | Stardance
|
bryanyap0318
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Z Slide by @bryanyap0318 | Stardance
|
1793224421.3160665
|
1793829221.3160665
|
|
30611
|
cookie bott by @snowwy | Stardance
|
snowwy
|
2
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-05T11:17:19Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "2nd time lol wt changed?? fixed give command i was making it like discord handle, I WAS DUM AND FORGOT TO GIVE BOT TO READ THE REACTIONS :CRY: soo now it fixed and alsooo dont forget i fixed the demo link", "repo": "https://gitlab.com/snowwysillycat/hackclub-cookiebot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0BF9V58H7T"}, {"ship_num": 2, "ts": "2026-07-04T20:11:54Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "and weeeeeeeee 28min later on this random code and we back lol ma first project on hackclub that isk if it work or no loool :3 its dum bot that read reactions and give cookies and database in .json file looll and im not even sure if reacting work….", "repo": "https://gitlab.com/snowwysillycat/hackclub-cookiebot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0BF9V58H7T"}]...
|
[{"post_id": 22776, "ts": "202 [{"post_id": 22776, "ts": "2026-07-05T11:14:54Z", "hours": 0.385, "text": "and wee backk 😭 there was sm bugs needed fix like give cookies and reaction sooo i fixeddd it lol and fixed the demo link to the channel name ooooOOOOooOOO sooo after this dev post i will post as it finished AGAINN but ig this time it actually working lol"}, {"post_id": 22184, "ts": "2026-07-04T14:47:48Z", "hours": 0.4753, "text": "i made a dum bot for cookies idea came from my old project but i said why not make it into slack bot and only for cookies i made da bot and its on gitlab going to nest soon. if anyone have time to test if bot read the reaction and give cookies pls dm me on slack"}]...
|
Title: cookie bott by @snowwy | Stardance
Devlogs Title: cookie bott by @snowwy | Stardance
Devlogs:
i made a dum bot for cookies idea came from my old project but i said why not make it into slack bot and only for cookies i made da bot and its on gitlab going to nest soon. if anyone have time to test if bot read the reaction and give cookies pls dm me on slack
and wee backk 😭 there was sm bugs needed fix like give cookies and reaction sooo i fixeddd it lol and fixed the demo link to the channel name ooooOOOOooOOO sooo after this dev post i will post as it finished AGAINN but ig this time it actually working lol
Ships:
and weeeeeeeee 28min later on this random code and we back lol ma first project on hackclub that isk if it work or no loool :3 its dum bot that read reactions and give cookies and database in .json file looll and im not even sure if reacting work….
2nd time lol wt changed?? fixed give command i was making it like discord handle, I WAS DUM AND FORGOT TO GIVE BOT TO READ THE REACTIONS :CRY: soo now it fixed and alsooo dont forget i fixed the demo link...
|
1793224420.1198804
|
1793310820.1198804
|
|
43457
|
My very own WebOS by @dasarirkh | Stardance
|
dasarirkh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @dasarirkh | Stardance
|
1793224419.2174351
|
1793829219.2174351
|
|
43456
|
do it by @naksu | Stardance
|
naksu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: do it by @naksu | Stardance
|
1793224418.0449827
|
1793829218.0449827
|
|
43454
|
GeoVaz09's Portofolio by @GeoVaz09 | Stardance
|
GeoVaz09
|
0
|
3.02
|
0
|
[]
|
[{"post_id": 40831, "ts": "202 [{"post_id": 40831, "ts": "2026-08-04T16:31:15Z", "hours": 1.0311, "text": "I think i made a good progress on learning CSS. I have to think and add more content ( like paragraphs, images and more). I think I will add and some other interesting features with JS."}, {"post_id": 40705, "ts": "2026-08-04T12:12:25Z", "hours": 1.3053, "text": "After many changes of the UI, i think I will make my portfolio minimal in dark theme and it will probably have some ASCII art. If you have any suggestions, please write them. I am new to front end development and need a bit of help."}, {"post_id": 40195, "ts": "2026-08-03T16:26:59Z", "hours": 0.6875, "text": "Just finished the personal site guide and made some small changes."}]...
|
Title: GeoVaz09's Portofolio by @GeoVaz09 | St Title: GeoVaz09's Portofolio by @GeoVaz09 | Stardance
Devlogs:
Just finished the personal site guide and made some small changes.
After many changes of the UI, i think I will make my portfolio minimal in dark theme and it will probably have some ASCII art. If you have any suggestions, please write them. I am new to front end development and need a bit of help.
I think i made a good progress on learning CSS. I have to think and add more content ( like paragraphs, images and more). I think I will add and some other interesting features with JS....
|
1793224417.1376195
|
1793829217.1376195
|
|
7338
|
PC Stats by @dubbyy | Stardance
|
dubbyy
|
1
|
38.0
|
349
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T00:15:30Z", "hours": 38.0, "multiplier": 10.53, "payout": 349, "blessing": "neutral", "text": "Taken from my last devlog: … I’ve been making an app to track information about how I use my computer, and a companion website to display the data. Right now, it logs every click, as well as the positions and dimensions of apps every 5 minutes. The dashboard website then displays that data in a variety of interesting ways. The collection takes a long time and only works on Linux, so I’m using the dashboard as the demo. You can find the collector on the GithTub. The most challenging part was figuring out how to collect the data, especially the clicks, however I think I spent the most time on the dashboard. It was my first time using Javascript for something complex, so I’m pretty happy with how it turned out I hope you enjoy :)", "repo": "https://github.com/dubbyy1/pc-stats", "demo": "https://pc-stats.dubbyy.com/?db=https%3A%2F%2Fraw.githubusercontent.com%2Fdubbyy1%2Fpc-stats%2Fmain%2Fexamples%2Fstats.db"}]...
|
[{"post_id": 17266, "ts": "202 [{"post_id": 17266, "ts": "2026-06-28T00:01:16Z", "hours": 2.095, "text": "FINISHED Its finally finished! If you don’t know, I’ve been making an app to track information about how I use my computer, and a companion website to display the data. Right now, it logs every click, as well as the positions and dimensions of apps every 5 minutes. The dashboard website then displays that data in a variety of interesting ways. The collector is now (in theory) compatible with the majority of Linux desktops (sorry Windows users, maybe next year). I also added a small config file. Right now this only stores the window-snapshot interval, which you can change through the UI. I originally planned on adding a list of apps to ignore, but there were too many problems. Primarily, I wasn’t sure how to reliably handle the focused app being blocked without making it null, which is very messy, and the whole thing seemed too complicated for a feature I’m don’t really plan on using. I also considered making it a frontend filter, but chose not to for a similar reason. Once again, you can try it yourself here with my data. If you want to collect your own data, you can download the collector here (note: you need to give your user input permissions for this to detect clicks, more details in the README). I’ve only tested this on my machine (KDE Wayland) so if you have a different setup, tell me how it goes! Afterword I had a lot of fun making this. This was my deepest dive into web development yet and I learned so much. This is also the first time I’ve shipped a project for public use, which was a has been a valuable experience. I could definitely do more with this (more config, more charts, more data), and I do plan on revisiting it in the future, but I think this is a good place to leave it for now. Thanks for reading, see you next project :)"}, {"post_id": 17047, "ts": "2026-06-27T17:53:20Z", "hours": 15.2803, "text": "Day ?? - New Features! After 15 hours (got a bit carried away) the next feature is (mostly) finished! You can now monitor and display window data. Every 5 minutes, the collector logs what apps are open and their positions on screen, which you can then visualize on the dashboard. I thought it would be interesting to combine the click data and the window data in some way, but I decided against it. The reason being that I technically don’t know what app the user clicked since it could have changed in the 5 minutes. To collect the data I had to run a separate KWin script to get around the restrictions, same as with the clicks. This script gave me the windows as JSON, which I then stored in 2 SQLite tables. One containing general info (one entry per snapshot), and the other containing info about specific windows. The second major change is the collector’s new UI. It was a relatively small addition, but it makes the whole experience a lot smoother. It also uses the same UI library I was already using to get the monitor configuration which was nice. Finally, the dashboard now stores the database in cache so everything is preserved when you reload. This change was mostly for me, because having to re-upload the file every time I changed the code got really annoying. What’s Next There’s a few finishing touches I need to add before shipping, Specifically: Compatibility (KDE only right now) Config options (Snapshot frequency, apps to ignore, etc) Possibly more window features yap I definitely could have done all this way faster but I spent a lot of time fiddling, trying to fully understand everything. Now between the KWin scripts and the dashboard I have a much deeper understanding of Javascript than before which will help in the future. Hopefully I can ship this today or tomorrow so I can start working on my next project"}, {"post_id": 10289, "ts": "2026-06-16T22:34:09Z", "hours": 6.7747, "text": "Days 5 + 6? Changes I added filters for time and button type to make it more interactive. I also added new charts, specifically pie charts for button and monitor usage, and bar charts for hourly and daily activity. I used chart.js to make the charts, because it makes the programming way simpler while still giving me full control. The final change was reworking the heatmap again. instead of each click being an individual element, they’re now drawn on a canvas which boosts performance significantly. Try it! What’s Next Now that the dashboard is mostly finished. I want to add some quality of life things (namely caching the database so I don’t have to reupload it every time) before adding the next feature. Speaking of, the next feature is going to track what applications are open at what times, which I think will make for some really interesting data."}, {"post_id": 4535, "ts": "2026-06-07T21:35:10Z", "hours": 5.6419, "text": "Day 4 - Cleanup Changes Cleaned up the UI a lot. I like the new heatmap visualization a lot, but it’s a bit slow so I’ll continue to experiment with it. I optimized the backend a lot, it used to block a full CPU core but now it sleeps properly when idling. I also expanded compatibility to other Linux environments. This was actually way simpler than I expected, I just happened to start with KDE which is really complex for some reason. Notes The dashboard is now live on my website , which you can test with this sample data . My aim right now is to get the project ship-ready, and then add features one by one."}, {"post_id": 3823, "ts": "2026-06-06T21:37:25Z", "hours": 3.3017, "text": "Day 3 - Dashboard Today I started making the dashboard, to present the data. I decided to make it a website and have the user upload their data. This makes demoing a lot easier, as well as being good for compatibility. Right now it’s a very bare bones prototype with only a heatmap, but all the set up for reading the data should be finished, which means I can focus on polishing the UI and adding features. I also fixed some bugs in the backend. Previously the code would fail if your mouse disconnected, but now it can handle disconnects and reconnects, as well as detect multiple mice at the same time."}, {"post_id": 2918, "ts": "2026-06-05T20:23:31Z", "hours": 3.0511, "text": "Day 2 Continuing work on my data collection project. Yesterday finished the core of the first feature — a click heatmap. Today was mostly polish and fixing the structure to make shipping easier when the time comes. Changes Organisation Instead of having everything in one big ugly python file, I created a module and separated all each part into it’s own file. This will make things much easier as I continue to add new features. As well as organising the python code, the project uses a JavaScript script to get the position of the mouse, and a bash script to run it. Neither of these can be packaged, so I updated the code to generate the JS file in the user’s share directory and run it directly from python. Compatibility The original code was highly specific to my setup, and couldn’t be shipped. The fix came in two parts. I previously had my exact model of mouse hard-coded, so I added the ability to detect what mouse the user has The code only worked for my specific Window Manager. This is still the case, but I added the structure to detect the WM and adjust for it. I plan on adding support for other’s in the coming days Storage All data is now stored persistently in an SQLite database. In the future this will be read and displayed by the dashboard program. What’s Next Create the dashboard to start displaying data Expand compatibility to other Linux systems (might take a while)"}, {"post_id": 2454, "ts": "2026-06-04T23:05:57Z", "hours": 2.2456, "text": "Day 1 Making an app to track a bunch of data about how i use my computer. Currently trying to make a heatmap of where i click the most. No UI yet because getting the mouse position on Wayland took wayyy too long to figure out"}]...
|
Title: PC Stats by @dubbyy | Stardance
Devlogs:
D Title: PC Stats by @dubbyy | Stardance
Devlogs:
Day 1 Making an app to track a bunch of data about how i use my computer. Currently trying to make a heatmap of where i click the most. No UI yet because getting the mouse position on Wayland took wayyy too long to figure out
Day 2 Continuing work on my data collection project. Yesterday finished the core of the first feature — a click heatmap. Today was mostly polish and fixing the structure to make shipping easier when the time comes. Changes Organisation Instead of having everything in one big ugly python file, I created a module and separated all each part into it’s own file. This will make things much easier as I continue to add new features. As well as organising the python code, the project uses a JavaScript script to get the position of the mouse, and a bash script to run it. Neither of these can be packaged, so I updated the code to generate the JS file in the user’s share directory and run it directly from python. Compatibility The original code was highly specific to my setup, and couldn’t be shipped. The fix came in two parts. I previously had my exact model of mouse hard-coded, so I added the ability to detect what mouse the user has The code only worked for my specific Window Manager. This is still the case, but I added the structure to detect the WM and adjust for it. I plan on adding support for other’s in the coming days Storage All data is now stored persistently in an SQLite database. In the future this will be read and displayed by the dashboard program. What’s Next Create the dashboard to start displaying data Expand compatibility to other Linux systems (might take a while)
Day 3 - Dashboard Today I started making the dashboard, to present the data. I decided to make it a website and have the user upload their data. This makes demoing a lot easier, as well as being good for compatibility. Right now it’s a very bare bones prototype with only a heatmap, but all the set up for reading the data should be finished, which means I can focus on polishing the UI and adding features. I also fixed some bugs in the backend. Previously the code would fail if your mouse disconnected, but now it can handle disconnects and reconnects, as well as detect multiple mice at the same time.
Day 4 - Cleanup Changes Cleaned up the UI a lot. I like the new heatmap visualization a lot, but it’s a bit slow so I’ll continue to experiment with it. I optimized the backend a lot, it used to block a full CPU core but now it sleeps properly when idling. I also expanded compatibility to other Linux environments. This was actually way simpler than I expected, I just happened to start with KDE which is really complex for some reason. Notes The dashboard is now live on my website , which you can test with this sample data . My aim right now is to get the project ship-ready, and then add features one by one.
Days 5 + 6? Changes I added filters for time and button type to make it more interactive. I also added new charts, specifically pie charts for button and monitor usage, and bar charts for hourly and daily activity. I used chart.js to make the charts, because it makes the programming way simpler while still giving me full control. The final change was reworking the heatmap again. instead of each click being an individual element, they’re now drawn on a canvas which boosts performance significantly. Try it! What’s Next Now that the dashboard is mostly finished. I want to add some quality of life things (namely caching the database so I don’t have to reupload it every time) before adding the next feature. Speaking of, the next feature is going to track what applications are open at what times, which I think will make for some really interesting data.
Day ?? - New Features! After 15 hours (got a bit carried away) the next feature is (mostly) finished! You can now monitor and display window data. Every 5 minutes, the collector logs what apps are open and their positions on screen, which you can then visualize on the dashboard. I thought it would be interesting to combine the click data and the window data in some way, but I decided against it. The reason being that I technically don’t know what app the user clicked since it could have changed in the 5 minutes. To collect the data I had to run a separate KWin script to get around the restrictions, same as with the clicks. This script gave me the windows as JSON, which I then stored in 2 SQLite tables. One containing general info (one entry per snapshot), and the other containing info about specific windows. The second major change is the collector’s new UI. It was a relatively small addition, but it makes the whole experience a lot smoother. It also uses the same UI library I was already using to get the monitor configuration which was nice. Finally, the dashboard now stores the database in cache so everything is preserved when you reload. This change was mostly for me, because having to re-upload the file every time I changed the code got really annoying. What’s Next There’s a few finishing touches I need to add before shipping, Specifically: Compatibility (KDE only right now) Config options (Snapshot frequency, apps to ignore, etc) Possibly more window features yap I definitely could have done all this way faster but I spent a lot of time fiddling, trying to fully understand everything. Now between the KWin scripts and the dashboard I have a much deeper understanding of Javascript than before which will help in the future. Hopefully I can ship this today or tomorrow so I can start working on my next project
FINISHED Its finally finished! If you don’t know, I’ve been making an app to track information about how I use my computer, and a companion website to display the data. Right now, it logs every click, as well as the positions and dimensions of apps every 5 minutes. The dashboard website then displays that data in a variety of interesting ways. The collector is now (in theory) compatible with the majority of Linux desktops (sorry Windows users, maybe next year). I also added a small config file. Right now this only stores the window-snapshot interval, which you can change through the UI. I originally planned on adding a list of apps to ignore, but there were too many problems. Primarily, I wasn’t sure how to reliably handle the focused app being blocked without making it null, which is very messy, and the whole thing seemed too complicated for a feature I’m don’t really plan on using. I also considered making it a frontend filter, but chose not to for a similar reason. Once again, you can try it yourself here with my data. If you want to collect your own data, you can download the collector here (note: you need to give your user input permissions for this to detect clicks, more details in the README). I’ve only tested this on my machine (KDE Wayland) so if you have a different setup, tell me how it goes! Afterword I had a lot of fun making this. This was my deepest dive into web development yet and I learned so much. This is also the first time I’ve shipped a project for public use, which was a has been a valuable experience. I could definitely do more with this (more config, more charts, more data), and I do plan on revisiting it in the future, but I think this is a good place to leave it for now. Thanks for reading, see you next project :)
Ships:
Taken from my last devlog: … I’ve been making an app to track information about how I use my computer, and a companion website to display the data. Right now, it logs every click, as well as the positions and dimensions of apps every 5 minutes. The dashboard website then displays that data in a variety of interesting ways. The collection takes a long time and only works on Linux, so I’m using the dashboard as the demo. You can find the collector on the GithTub. The most challenging part was figuring out how to collect the data, especially the clicks, however I think I spent the most time on the dashboard. It was my first time using Javascript for something complex, so I’m pretty happy with how it turned out I hope you enjoy :)...
|
1793224415.9524486
|
1793310815.9524486
|
|
43452
|
My first slack bot! by @Niru04 | Stardance
|
Niru04
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Niru04 | Stardance
|
1793224415.0548093
|
1793829215.0548093
|
|
43451
|
AeroSpace PathFinder: Smart Drone Tracking via ML AeroSpace PathFinder: Smart Drone Tracking via ML by @AlanoudAlassaf | Stardance...
|
AlanoudAlassaf
|
0
|
3.66
|
0
|
[]
|
[{"post_id": 40149, "ts": "202 [{"post_id": 40149, "ts": "2026-08-03T15:33:36Z", "hours": 3.6617, "text": "Devlog Update:I am at the very beginning of my journey learning Python and general programming! In this session, I created my first Python script (nasaproject.py) to practice the fundamentals.Here is what I covered in this code:Variables & Multiple Assignment: Learning how to declare multiple variables in a single line (e.g., name, age).Data Structures (Lists): Defining lists ([]) to store sequence data like names, and understanding how they can hold multiple elements.Data Types & Indexing: Checking variable data types using type() and accessing specific list items using zero-based index numbers (e.g., names[3])."}]...
|
Title: AeroSpace PathFinder: Smart Drone Tracking Title: AeroSpace PathFinder: Smart Drone Tracking via ML by @AlanoudAlassaf | Stardance
Devlogs:
Devlog Update:I am at the very beginning of my journey learning Python and general programming! In this session, I created my first Python script (nasaproject.py) to practice the fundamentals.Here is what I covered in this code:Variables & Multiple Assignment: Learning how to declare multiple variables in a single line (e.g., name, age).Data Structures (Lists): Defining lists ([]) to store sequence data like names, and understanding how they can hold multiple elements.Data Types & Indexing: Checking variable data types using type() and accessing specific list items using zero-based index numbers (e.g., names[3])....
|
1793224414.1745462
|
1793829214.1745462
|
|
43450
|
Mobile Industrial Arm by @Misu31 | Stardance
|
Misu31
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Mobile Industrial Arm by @Misu31 | Stardanc Title: Mobile Industrial Arm by @Misu31 | Stardance...
|
1793224412.9107437
|
1793829212.9107437
|
|
28340
|
Untitled by @Aiman | Stardance
|
Aiman
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-01T10:07:18Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a simple program in Python as my first official project. What it basically does is just ask you what degree it is outside, and based on that information, it determines whether it’s cold, hot, or moderate :)", "repo": "https://github.com/aiman8916730-ui/temp-indicator", "demo": "https://trinket.io/library/trinkets/create?lang=python"}]...
|
[{"post_id": 19252, "ts": "202 [{"post_id": 19252, "ts": "2026-06-30T14:46:32Z", "hours": 0.5111, "text": "hiiii so this is just smthng i made that asks you what the weather is outside and acc to th info it tells u if its cold,hot or moderate :)"}]...
|
Title: Untitled by @Aiman | Stardance
Devlogs:
hi Title: Untitled by @Aiman | Stardance
Devlogs:
hiiii so this is just smthng i made that asks you what the weather is outside and acc to th info it tells u if its cold,hot or moderate :)
Ships:
I made a simple program in Python as my first official project. What it basically does is just ask you what degree it is outside, and based on that information, it determines whether it’s cold, hot, or moderate :)...
|
1793224409.4118536
|
1793310809.4118536
|
|
32913
|
Untitled project by @heilak_astro | Stardance
|
heilak_astro
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @heilak_astro | Stardan Title: Untitled project by @heilak_astro | Stardance...
|
1793224408.1397665
|
1793829208.1397665
|
|
6023
|
Grade Calculator Extension by @Vineeth | Stardance
|
Vineeth
|
0
|
0.86
|
0
|
[]
|
[{"post_id": 1268, "ts": "2026 [{"post_id": 1268, "ts": "2026-06-03T04:42:23Z", "hours": 0.8564, "text": "The extension now looks through all the html of the website for weightage and averages for each grade category. Here is what is being extracted so far, I need to work on implementing arrays for the weights and the averages as well as actually getting the real number values for weights and averages to populate said arrays."}]...
|
Title: Grade Calculator Extension by @Vineeth | St Title: Grade Calculator Extension by @Vineeth | Stardance
Devlogs:
The extension now looks through all the html of the website for weightage and averages for each grade category. Here is what is being extracted so far, I need to work on implementing arrays for the weights and the averages as well as actually getting the real number values for weights and averages to populate said arrays....
|
1793224405.9342318
|
1793829205.9342318
|
|
5033
|
jcd by @moriaan | Stardance
|
moriaan
|
1
|
13.49
|
116
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-10T18:55:24Z", "hours": 9.0, "multiplier": 13.37, "payout": 116, "blessing": "neutral", "text": "I made a cd alternative. The most challenging part was the memory management and all the segfaults. I’m proud that it is now a robust project with a lot of configuration options, and it’s very easy to set up. To install it, you just have to put the binary in your PATH (or use the aur, .deb, .rpm or .tar.gz version) and add this to .zshrc or .bashrc: eval “$(jcd init)” (optionally with config options). More info in the README.md.", "repo": "https://github.com/MnM72809/jcd", "demo": "https://github.com/MnM72809/jcd/releases"}]...
|
[{"post_id": 69384, "ts": "202 [{"post_id": 69384, "ts": "2026-09-16T23:05:50Z", "hours": 3.6139, "text": "The project was kinda messy, so I solved it. I removed a segfault when trying to navigate empty directories, made the error message have cleaner paths when the directory was not found, added malloc checking and clarified an error message further."}, {"post_id": 21099, "ts": "2026-07-02T21:54:45Z", "hours": 0.8761, "text": "I added support for symlinks that point to directories and updated compatibility so jcd now works with filesystems that don’t support d_type (like XFS) by using c stat as a fallback"}, {"post_id": 6319, "ts": "2026-06-10T17:09:33Z", "hours": 0.8847, "text": "Added a custom matching strictness config option for people who make a lot of typos, readme overhaul"}, {"post_id": 6272, "ts": "2026-06-10T15:24:08Z", "hours": 1.7286, "text": "Added a custom alias and a custom back string so you can enter “,” for example to go one directory up instead of “..”"}, {"post_id": 5792, "ts": "2026-06-09T18:26:45Z", "hours": 0.6622, "text": "Add little functions like absolute paths, “-” to go to previous directory, a help message, …"}, {"post_id": 5725, "ts": "2026-06-09T17:00:00Z", "hours": 0.8253, "text": "Added backwards movement with “..”, fixed the init so you can just add ‘eval “$(jcd init)”’ to .zshrc or .bashrc"}, {"post_id": 5594, "ts": "2026-06-09T13:25:43Z", "hours": 0.7103, "text": "Added subcommands"}, {"post_id": 5035, "ts": "2026-06-08T18:11:35Z", "hours": 3.8728, "text": "Implemented basic functionality (no gui so i just screenshotted the code)"}]...
|
Title: jcd by @moriaan | Stardance
Devlogs:
Imple Title: jcd by @moriaan | Stardance
Devlogs:
Implemented basic functionality (no gui so i just screenshotted the code)
Added subcommands
Added backwards movement with “..”, fixed the init so you can just add ‘eval “$(jcd init)”’ to .zshrc or .bashrc
Add little functions like absolute paths, “-” to go to previous directory, a help message, …
Added a custom alias and a custom back string so you can enter “,” for example to go one directory up instead of “..”
Added a custom matching strictness config option for people who make a lot of typos, readme overhaul
I added support for symlinks that point to directories and updated compatibility so jcd now works with filesystems that don’t support d_type (like XFS) by using c stat as a fallback
The project was kinda messy, so I solved it. I removed a segfault when trying to navigate empty directories, made the error message have cleaner paths when the directory was not found, added malloc checking and clarified an error message further.
Ships:
I made a cd alternative. The most challenging part was the memory management and all the segfaults. I’m proud that it is now a robust project with a lot of configuration options, and it’s very easy to set up. To install it, you just have to put the binary in your PATH (or use the aur, .deb, .rpm or .tar.gz version) and add this to .zshrc or .bashrc: eval “$(jcd init)” (optionally with config options). More info in the README.md....
|
1793224404.7591305
|
1793310804.7591305
|
|
24498
|
My very own WebOS by @deloujet | Stardance
|
deloujet
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @deloujet | Stardance
|
1793224403.8907385
|
1793829203.8907385
|
|
7062
|
Personal Website by @mdpham | Stardance
|
mdpham
|
1
|
1.43
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-04T08:46:45Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a personal website showcasing all my contacts, projects and skills. Before making this, I set time restrictions on myself to see what I could do in a short time and now that I have finished it, I am really proud of how nice my website turned out!", "repo": "https://github.com/mdpham412/personal-website", "demo": "https://mdpham.pages.dev/"}]...
|
[{"post_id": 2022, "ts": "2026 [{"post_id": 2022, "ts": "2026-06-04T09:33:28Z", "hours": 0.4281, "text": "took me some time to figure out the css but i got a pretty nice looking moving background going"}, {"post_id": 2002, "ts": "2026-06-04T08:28:50Z", "hours": 0.6283, "text": "css is nicer than i thought"}]...
|
Title: Personal Website by @mdpham | Stardance
De Title: Personal Website by @mdpham | Stardance
Devlogs:
css is nicer than i thought
took me some time to figure out the css but i got a pretty nice looking moving background going
Ships:
I made a personal website showcasing all my contacts, projects and skills. Before making this, I set time restrictions on myself to see what I could do in a short time and now that I have finished it, I am really proud of how nice my website turned out!...
|
1793224402.9755821
|
1793310802.9755821
|
|
48348
|
My own site! by @CapSre | Stardance
|
CapSre
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @CapSre | Stardance
|
1793224402.0873702
|
1793829202.0873702
|
|
28448
|
RoboForge by @Tejas | Stardance
|
Tejas
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-29T21:16:54Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is my fun little project i made it in 2 days for my project explore it give me some tips were i can improve it and yes i used little bit too much ai but its looks good", "repo": "https://github.com/tejasmmali/RoboForge", "demo": "https://roboforge1.vercel.app/"}]...
|
[{"post_id": 18670, "ts": "202 [{"post_id": 18670, "ts": "2026-06-29T21:12:24Z", "hours": 5.9256, "text": "Roboforge This my quick and little college submission project which i built in 2 days with the help of AI ofc i just putting this project here because i dont have to put something , not have time to make new fun project because of exams and all So this is project is for providing you guidance for building your first robotics projects its very beginner friendly Feature AI Chatbot for quick reply’s AI Assistant for making full projects rom scratch have project guides (very ew for now) Component listing (very few or now) It have data saving feature also so when you ask something to ai chatbot it will saved in history so after coming back later you can start were you left it have chat limit per user ofc its just little project for college dont take it that serious"}]...
|
Title: RoboForge by @Tejas | Stardance
Devlogs:
R Title: RoboForge by @Tejas | Stardance
Devlogs:
Roboforge This my quick and little college submission project which i built in 2 days with the help of AI ofc i just putting this project here because i dont have to put something , not have time to make new fun project because of exams and all So this is project is for providing you guidance for building your first robotics projects its very beginner friendly Feature AI Chatbot for quick reply’s AI Assistant for making full projects rom scratch have project guides (very ew for now) Component listing (very few or now) It have data saving feature also so when you ask something to ai chatbot it will saved in history so after coming back later you can start were you left it have chat limit per user ofc its just little project for college dont take it that serious
Ships:
This is my fun little project i made it in 2 days for my project explore it give me some tips were i can improve it and yes i used little bit too much ai but its looks good...
|
1793224401.1716378
|
1793310801.1716378
|
|
48347
|
My own site! by @aarav_sahu5623 | Stardance
|
aarav_sahu5623
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @aarav_sahu5623 | Stardance
|
1793224400.281209
|
1793829200.281209
|
|
16671
|
My very own WebOS by @zimamakmal17 | Stardance
|
zimamakmal17
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @zimamakmal17 | Starda Title: My very own WebOS by @zimamakmal17 | Stardance...
|
1793224399.3890646
|
1793829199.3890646
|
|
9559
|
My awesome macropad! by @Dasher2801 | Stardance
|
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T18:51:16Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I developed a “hackpad” featuring four buttons (like keyboard arrow keys), a rotary encoder, and an OLED display, all connected via a XIAO RP2040. The buttons are designed for Discord—specifically for hanging up calls or using the soundboard.", "repo": "https://github.com/Dasher2801/Hackpad", "demo": ""}]...
|
[{"post_id": 11454, "ts": "202 [{"post_id": 11454, "ts": "2026-06-18T18:44:46Z", "hours": 0.0, "text": "I’m working on my Hackpad, which is for Discord (mute, disconnect, etc.)"}]...
|
Title: My awesome macropad! by @Dasher2801 | Stard Title: My awesome macropad! by @Dasher2801 | Stardance
Devlogs:
I’m working on my Hackpad, which is for Discord (mute, disconnect, etc.)
Ships:
I developed a “hackpad” featuring four buttons (like keyboard arrow keys), a rotary encoder, and an OLED display, all connected via a XIAO RP2040. The buttons are designed for Discord—specifically for hanging up calls or using the soundboard....
|
1793224398.5041144
|
1793310798.5041144
|
|
48346
|
sss by @radheya | Stardance
|
radheya
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: sss by @radheya | Stardance
|
1793224397.6356668
|
1793829197.6356668
|
|
27556
|
Skysync by @bartoszkasyna | Stardance
|
bartoszkasyna
|
1
|
96.0
|
880
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T20:21:44Z", "hours": 96.0, "multiplier": 18.26, "payout": 880, "blessing": "neutral", "text": "Privacy-first encrypted cloud storage for securely uploading, organizing, previewing, and sharing files. Built with React, TypeScript, and Rust. Desktop view recommended :)", "repo": "https://github.com/B4rtekk1/SkysyncR", "demo": "https://skysync.dev"}]...
|
[{"post_id": 40286, "ts": "202 [{"post_id": 40286, "ts": "2026-08-03T18:30:52Z", "hours": 2.0733, "text": "Updated mobile UI. cant update demo link so here: https://skysync.dev"}, {"post_id": 39470, "ts": "2026-08-02T13:15:45Z", "hours": 5.5069, "text": "Made skysync work with custom domain and SSL certificate. Updated security and UI a little. Updated docker files. Now ready to ship!"}, {"post_id": 38963, "ts": "2026-08-01T16:13:13Z", "hours": 3.6919, "text": "Added Recent and important page. Added folder soft deletion. Added ransomware detector(I hope). Added word files preview. Added sounds files preview."}, {"post_id": 38423, "ts": "2026-07-31T19:44:14Z", "hours": 5.8661, "text": "I didnt focus on UI as I said in previous devlog, I decided to add all functionalities first and then adjust UI. So I improved security page. I also updated backend to be more secure. Two or three devlogs more and I finish functionalities, then i am going on one week holiday. I’m targeting at 15-18 August to deploy"}, {"post_id": 37863, "ts": "2026-07-30T20:46:10Z", "hours": 6.7542, "text": "Improved main page UI. Added security page. Added limits while creating ZIP. Updated settings page. Fixed UI bugs.Now I will focus on mobile view"}, {"post_id": 37213, "ts": "2026-07-29T19:17:10Z", "hours": 5.9672, "text": "Updated dashboard UI a little. Updated settings page. Added download checksum, session managment resumable file upload. Added Typescript syntax. Added c/c++/cuda hihjlighter and syntax."}, {"post_id": 35937, "ts": "2026-07-27T18:20:32Z", "hours": 4.0675, "text": "Successfully dockerized whole aplication"}, {"post_id": 33039, "ts": "2026-07-22T16:26:58Z", "hours": 5.0569, "text": "Updated typescript highlighter. Added better files mobility - folder tree view. Drag & drop files into folders. Pausable/Resumable file upload."}, {"post_id": 32418, "ts": "2026-07-21T16:22:56Z", "hours": 4.7278, "text": "Added typescript highlight support. Now insted of loading placeholder images are blured. Improved UI/UX. Updated mobile support. Fixed bug and vulnelabirity"}, {"post_id": 30875, "ts": "2026-07-18T20:36:51Z", "hours": 4.3769, "text": "Added python highlighter with keyword and variables syntax suggestion. Added more tests."}, {"post_id": 30346, "ts": "2026-07-17T20:23:02Z", "hours": 5.5833, "text": "Added custom nof found page. Updated security settings. Added tests. Added OpenAPI specs."}, {"post_id": 29144, "ts": "2026-07-15T20:33:40Z", "hours": 2.5011, "text": "Added create file modal with extension based editor. Added backend support for some features. Added calendar."}, {"post_id": 28969, "ts": "2026-07-15T16:19:07Z", "hours": 2.3747, "text": "Added link expiration date, added file download limit. Added folder description. Improved user privacy"}, {"post_id": 28784, "ts": "2026-07-15T09:02:28Z", "hours": 2.2144, "text": "Added file deletion with retention. Updated security and privacy"}, {"post_id": 28375, "ts": "2026-07-14T16:27:05Z", "hours": 3.1672, "text": "Added custom PDF preview with basic function - in file search. Next pdf features in next update"}, {"post_id": 27858, "ts": "2026-07-13T19:12:01Z", "hours": 0.4897, "text": "Added notes attached to files"}, {"post_id": 27819, "ts": "2026-07-13T18:20:22Z", "hours": 2.3033, "text": "Added custom video preview with prebked volume chart. Added info card in file tile."}, {"post_id": 27556, "ts": "2026-07-13T07:42:50Z", "hours": 1.9786, "text": "Added Sort and filter options. IMproved text files preview. Added missing animations."}, {"post_id": 27236, "ts": "2026-07-12T16:56:22Z", "hours": 1.3906, "text": "Added sharing file feature with custom qr code."}, {"post_id": 27191, "ts": "2026-07-12T15:04:17Z", "hours": 2.4408, "text": "Added markdown editing with live preview, added text files edit. Added photos preview, Updated CORS."}, {"post_id": 26818, "ts": "2026-07-11T20:35:00Z", "hours": 2.075, "text": "Added settings page. added photos preview. Fixed depracted features from react. Deleted duplicated lines of code"}, {"post_id": 26691, "ts": "2026-07-11T17:01:30Z", "hours": 4.1953, "text": "Enhanced visuals. Added more animations. Added Groups pagenot yet finished). Added file type icons, memory usgae by file types. Added files upload."}, {"post_id": 25198, "ts": "2026-07-09T08:46:30Z", "hours": 1.0972, "text": "Added favourites tile in nav. Tiles are now draggable."}, {"post_id": 22905, "ts": "2026-07-05T15:26:37Z", "hours": 4.0747, "text": "Added main page placeholder. Security update - resistant to most attacks"}, {"post_id": 20170, "ts": "2026-07-01T18:33:23Z", "hours": 5.2494, "text": "Enhanced signing up and loging in flow. Added verification link sent via email. Added utils files. Added config files. Better files organization."}, {"post_id": 17525, "ts": "2026-06-28T10:44:57Z", "hours": 7.0594, "text": "I added simple welcome page and some rust backend"}]...
|
Title: Skysync by @bartoszkasyna | Stardance
Devl Title: Skysync by @bartoszkasyna | Stardance
Devlogs:
I added simple welcome page and some rust backend
Enhanced signing up and loging in flow. Added verification link sent via email. Added utils files. Added config files. Better files organization.
Added main page placeholder. Security update - resistant to most attacks
Added favourites tile in nav. Tiles are now draggable.
Enhanced visuals. Added more animations. Added Groups pagenot yet finished). Added file type icons, memory usgae by file types. Added files upload.
Added settings page. added photos preview. Fixed depracted features from react. Deleted duplicated lines of code
Added markdown editing with live preview, added text files edit. Added photos preview, Updated CORS.
Added sharing file feature with custom qr code.
Added Sort and filter options. IMproved text files preview. Added missing animations.
Added custom video preview with prebked volume chart. Added info card in file tile.
Added notes attached to files
Added custom PDF preview with basic function - in file search. Next pdf features in next update
Added file deletion with retention. Updated security and privacy
Added link expiration date, added file download limit. Added folder description. Improved user privacy
Added create file modal with extension based editor. Added backend support for some features. Added calendar.
Added custom nof found page. Updated security settings. Added tests. Added OpenAPI specs.
Added python highlighter with keyword and variables syntax suggestion. Added more tests.
Added typescript highlight support. Now insted of loading placeholder images are blured. Improved UI/UX. Updated mobile support. Fixed bug and vulnelabirity
Updated typescript highlighter. Added better files mobility - folder tree view. Drag & drop files into folders. Pausable/Resumable file upload.
Successfully dockerized whole aplication
Updated dashboard UI a little. Updated settings page. Added download checksum, session managment resumable file upload. Added Typescript syntax. Added c/c++/cuda hihjlighter and syntax.
Improved main page UI. Added security page. Added limits while creating ZIP. Updated settings page. Fixed UI bugs.Now I will focus on mobile view
I didnt focus on UI as I said in previous devlog, I decided to add all functionalities first and then adjust UI. So I improved security page. I also updated backend to be more secure. Two or three devlogs more and I finish functionalities, then i am going on one week holiday. I’m targeting at 15-18 August to deploy
Added Recent and important page. Added folder soft deletion. Added ransomware detector(I hope). Added word files preview. Added sounds files preview.
Made skysync work with custom domain and SSL certificate. Updated security and UI a little. Updated docker files. Now ready to ship!
Updated mobile UI. cant update demo link so here: https://skysync.dev
Ships:
Privacy-first encrypted cloud storage for securely uploading, organizing, previewing, and sharing files. Built with React, TypeScript, and Rust. Desktop view recommended :)...
|
1793224396.3082833
|
1793310796.3082833
|
|
21418
|
My awesome macropad! by @yuzuki | Stardance
|
yuzuki
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @yuzuki | Stardance
|
1793224395.4138134
|
1793829195.4138134
|
|
48344
|
My own site! by @honeygupta2456 | Stardance
|
honeygupta2456
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @honeygupta2456 | Stardance
|
1793224394.5242867
|
1793829194.5242867
|
|
14906
|
Unfathomablepad by @jphwb | Stardance
|
jphwb
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-19T18:41:07Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Made an unfathomably bad macropad to use for my audio management.", "repo": "https://github.com/jphwba/unfathomablepad", "demo": ""}]...
|
[{"post_id": 12082, "ts": "202 [{"post_id": 12082, "ts": "2026-06-19T18:34:25Z", "hours": 1.0, "text": "made the firmware and updated the CAD to the Xiao can be accessed from outside, added labels to buttons, rounded corners and made a render with the parts."}, {"post_id": 7904, "ts": "2026-06-13T05:55:14Z", "hours": 3.0, "text": "Finished the CAD (im absolutely horrid at it) took me way too long to figure it out. Anyways I hope my screws were correct."}, {"post_id": 7531, "ts": "2026-06-12T16:03:07Z", "hours": 0.0, "text": "Created the PCB, I had somehting with more switches but it got too complex and I couldnt figure out how to do the tracing. I lost about 6ish hours bc the kicad wakatime app wasnt working."}]...
|
Title: Unfathomablepad by @jphwb | Stardance
Devl Title: Unfathomablepad by @jphwb | Stardance
Devlogs:
Created the PCB, I had somehting with more switches but it got too complex and I couldnt figure out how to do the tracing. I lost about 6ish hours bc the kicad wakatime app wasnt working.
Finished the CAD (im absolutely horrid at it) took me way too long to figure it out. Anyways I hope my screws were correct.
made the firmware and updated the CAD to the Xiao can be accessed from outside, added labels to buttons, rounded corners and made a render with the parts.
Ships:
Made an unfathomably bad macropad to use for my audio management....
|
1793224393.5854666
|
1793310793.5854666
|
|
18308
|
servo-like-arduino by @vihaanvp | Stardance
|
vihaanvp
|
0
|
1.14
|
0
|
[]
|
[{"post_id": 8456, "ts": "2026 [{"post_id": 8456, "ts": "2026-06-14T01:58:55Z", "hours": 1.1442, "text": "DevLog #1 – servo-like-arduino Time Logged: 1h 8m Today I began development of servo-like-arduino, a Python library designed to provide Arduino-style servo control syntax while using PyFirmata2 and StandardFirmata behind the scenes. The project started from a desire to control servos connected to an Arduino Nano from a Raspberry Pi while maintaining a familiar Arduino programming experience. After evaluating both PyFirmata and PyFirmata2, I chose PyFirmata2 due to better compatibility with modern Python versions and because it worked without requiring users to manually modify library source files. The first milestone was creating a simple wrapper around PyFirmata2. This wrapper hides Firmata-specific syntax and instead exposes a cleaner Arduino-inspired API. The goal was to make servo control feel similar to programming directly on an Arduino (which is very simple as compared to the default PyFirmata and PyFirmata2 syntax) while still running Python code on a Raspberry Pi. Once the basic functionality was working, I implemented a global board system so that users would not need to repeatedly pass board objects into every function call. This made the library feel much closer to Arduino’s native Servo library and simplified the user experience. After the initial release (v0.1.0), I expanded the functionality for v0.2.0 by adding several new features: Servo.read() Servo.detach() Servo.move_smooth() Servo.sweep() Improved error handling Servo angle validation and clamping Internal servo position tracking A significant portion of the development process involved testing on real hardware. The library was validated using a Raspberry Pi 4 connected to an Arduino Nano running StandardFirmata, with a servo motor attached for testing. This ensured that the library worked correctly in a practical robotics environment rather than only in theory. Following successful testing, I packaged the project using modern Python packaging standards with pyproject.toml, created a GitHub repository, and configured automated publishing to PyPI using GitHub Actions. The most exciting milestone of the session was successfully publishing the library to PyPI. By creating a GitHub Release, the workflow automatically built and uploaded the package, making it publicly installable through pip. This established a complete development, testing, and deployment pipeline for future releases. This session transformed the project from a simple idea into a functional, publicly available Python package with real hardware validation and automated deployment. Future development will focus on improving the servo control experience by adding more advanced servo-related features, refining the API, improving reliability, and expanding the library while maintaining its simple Arduino-inspired programming style. The goal is to provide the easiest and most intuitive way to control servos from Python using Arduino boards flashed with StandardFirmata program. (The Image shows Servo motor and N20 motors (via the TB6612FNG motor driver) connected to an Arduino Nano, which is then connected to a Raspberry Pi, and this was the setup I used to test this wrapper)"}]...
|
Title: servo-like-arduino by @vihaanvp | Stardance Title: servo-like-arduino by @vihaanvp | Stardance
Devlogs:
DevLog #1 – servo-like-arduino Time Logged: 1h 8m Today I began development of servo-like-arduino, a Python library designed to provide Arduino-style servo control syntax while using PyFirmata2 and StandardFirmata behind the scenes. The project started from a desire to control servos connected to an Arduino Nano from a Raspberry Pi while maintaining a familiar Arduino programming experience. After evaluating both PyFirmata and PyFirmata2, I chose PyFirmata2 due to better compatibility with modern Python versions and because it worked without requiring users to manually modify library source files. The first milestone was creating a simple wrapper around PyFirmata2. This wrapper hides Firmata-specific syntax and instead exposes a cleaner Arduino-inspired API. The goal was to make servo control feel similar to programming directly on an Arduino (which is very simple as compared to the default PyFirmata and PyFirmata2 syntax) while still running Python code on a Raspberry Pi. Once the basic functionality was working, I implemented a global board system so that users would not need to repeatedly pass board objects into every function call. This made the library feel much closer to Arduino’s native Servo library and simplified the user experience. After the initial release (v0.1.0), I expanded the functionality for v0.2.0 by adding several new features: Servo.read() Servo.detach() Servo.move_smooth() Servo.sweep() Improved error handling Servo angle validation and clamping Internal servo position tracking A significant portion of the development process involved testing on real hardware. The library was validated using a Raspberry Pi 4 connected to an Arduino Nano running StandardFirmata, with a servo motor attached for testing. This ensured that the library worked correctly in a practical robotics environment rather than only in theory. Following successful testing, I packaged the project using modern Python packaging standards with pyproject.toml, created a GitHub repository, and configured automated publishing to PyPI using GitHub Actions. The most exciting milestone of the session was successfully publishing the library to PyPI. By creating a GitHub Release, the workflow automatically built and uploaded the package, making it publicly installable through pip. This established a complete development, testing, and deployment pipeline for future releases. This session transformed the project from a simple idea into a functional, publicly available Python package with real hardware validation and automated deployment. Future development will focus on improving the servo control experience by adding more advanced servo-related features, refining the API, improving reliability, and expanding the library while maintaining its simple Arduino-inspired programming style. The goal is to provide the easiest and most intuitive way to control servos from Python using Arduino boards flashed with StandardFirmata program. (The Image shows Servo motor and N20 motors (via the TB6612FNG motor driver) connected to an Arduino Nano, which is then connected to a Raspberry Pi, and this was the setup I used to test this wrapper)...
|
1793224392.6747801
|
1793829192.6747801
|
|
48343
|
WebOS by @sribalajid | Stardance
|
sribalajid
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WebOS by @sribalajid | Stardance
|
1793224391.7806797
|
1793829191.7806797
|