|
20301
|
My awesome macropad! by @Zoey_Hoper | Stardance
|
Zoey_Hoper
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Zoey_Hoper | Stard Title: My awesome macropad! by @Zoey_Hoper | Stardance...
|
1793864981.8239198
|
1794469781.8239198
|
|
20302
|
2d platformer game by @c0d3r_ | Stardance
|
c0d3r_
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: 2d platformer game by @c0d3r_ | Stardance
|
1793562987.6590514
|
1794167787.6590514
|
|
20303
|
My awesome macropad! by @Hagler16 | Stardance
|
Hagler16
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Hagler16 | Stardan Title: My awesome macropad! by @Hagler16 | Stardance...
|
1794044913.3670013
|
1794649713.3670013
|
|
20304
|
The explorer's guide to adventuring by @Raiden The explorer's guide to adventuring by @RaidenH | Stardance...
|
RaidenH
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: The explorer's guide to adventuring by Title: The explorer's guide to adventuring by @RaidenH | Stardance...
|
1793379161.197662
|
1793983961.197662
|
|
20305
|
Frictionless by @sel | Stardance
|
sel
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @sel | Stardance
|
1793490565.1847312
|
1794095365.1847312
|
|
20306
|
Untitled by @kalpesh | Stardance
|
kalpesh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @kalpesh | Stardance
|
1794062932.5694845
|
1794667732.5694845
|
|
20307
|
My very own WebOS by @sarayu_muthyala | Stardance
|
sarayu_muthyala
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @sarayu_muthyala | Sta Title: My very own WebOS by @sarayu_muthyala | Stardance...
|
1793483627.0449126
|
1794088427.0449126
|
|
20308
|
My very own WebOS by @anwesha_joshi31 | Stardance
|
anwesha_joshi31
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @anwesha_joshi31 | Sta Title: My very own WebOS by @anwesha_joshi31 | Stardance...
|
1794077589.4885983
|
1794682389.4885983
|
|
20309
|
My awesome macropad! by @Vedant_k | Stardance
|
Vedant_k
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Vedant_k | Stardan Title: My awesome macropad! by @Vedant_k | Stardance...
|
1793404318.446923
|
1794009118.446923
|
|
20310
|
Frictionless by @QuantumHex | Stardance
|
QuantumHex
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @QuantumHex | Stardance
|
1793512233.8145294
|
1794117033.8145294
|
|
20311
|
Untitled project by @ayaerray00 | Stardance
|
ayaerray00
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @ayaerray00 | Stardance
|
1793379101.7007322
|
1793983901.7007322
|
|
20312
|
My very own WebOS by @Hagler16 | Stardance
|
Hagler16
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Hagler16 | Stardance
|
1793487262.4555235
|
1794092062.4555235
|
|
20313
|
SatTrack by @OmSheladia | Stardance
|
OmSheladia
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: SatTrack by @OmSheladia | Stardance
|
1793829059.3860705
|
1794433859.3860705
|
|
20314
|
My very own WebOS by @Atharva85 | Stardance
|
Atharva85
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Atharva85 | Stardance
|
1793872340.0726707
|
1794477140.0726707
|
|
20315
|
My awesome macropad! by @gem1214 | Stardance
|
gem1214
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @gem1214 | Stardanc Title: My awesome macropad! by @gem1214 | Stardance...
|
1793375430.3817892
|
1793980230.3817892
|
|
20316
|
House Point System by @JosephK | Stardance
|
JosephK
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: House Point System by @JosephK | Stardance
|
1793962080.5761328
|
1794566880.5761328
|
|
20317
|
hardware example by @swn | Stardance
|
swn
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: hardware example by @swn | Stardance
|
1793940834.6518462
|
1794545634.6518462
|
|
20318
|
My awesome macropad! by @eliwitha3 | Stardance
|
eliwitha3
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @eliwitha3 | Starda Title: My awesome macropad! by @eliwitha3 | Stardance...
|
1794102487.55721
|
1794707287.55721
|
|
20319
|
My awesome macropad! by @arjundakshin | Stardance
|
arjundakshin
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @arjundakshin | Sta Title: My awesome macropad! by @arjundakshin | Stardance...
|
1794037728.869124
|
1794642528.869124
|
|
20320
|
FLAPPY NYAN CAT by @abhinavP | Stardance
|
abhinavP
|
1
|
9.0
|
48
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-22T07:24:05Z", "hours": 9.0, "multiplier": 5.18, "payout": 48, "blessing": "neutral", "text": "I made a Flappy Bird clone where you play as Nyan Cat flying through Mario-style pipes. The whole game runs in the browser as a single HTML file with no installs or dependencies, and everything including Nyan Cat, the rainbow trail, the pipes, and the boosters are drawn from scratch every frame using the HTML5 Canvas API. The hardest part was getting it to actually run in the browser. I originally built it in Python with Pygame but Codespaces has no display so I had to learn how to convert the whole thing to JavaScript using the Canvas API and rewrite all the drawing logic from scratch. I am most proud of the rainbow trail and the procedural Nyan Cat animation. The legs, tail, and body all animate using sine waves so there are zero image files in the entire project. To test it just open the link, press SPACE or tap the screen to flap, and try to collect the boosters. The star makes you invincible, the mushroom makes you giant, the lightning bolt slows the pipes down, and the coins give you +5 points.", "repo": "https://github.com/Mysterio122/NYAN-BIRD", "demo": "https://mysterio122.github.io/NYAN-BIRD/"}]...
|
[{"post_id": 32835, "ts": "202 [{"post_id": 32835, "ts": "2026-07-22T07:22:18Z", "hours": 1.7508, "text": "Fixing Small Bugs and Issues in final code. ALL DONE!! ENJOY!"}, {"post_id": 23854, "ts": "2026-07-07T01:23:19Z", "hours": 1.8333, "text": "Game start instructions: Creation of frames and layering the background: Making an RGB color-shifting background: Making score, best score, and active booster timers. : Making the starting scene"}, {"post_id": 23339, "ts": "2026-07-06T07:06:51Z", "hours": 1.6, "text": "Making the invincible boundary for the cat : Making the pipe spawning system: Making pipe movement and scoring : Booster and pipe Collision : and pipe cleanup after it leaves the screen."}, {"post_id": 22446, "ts": "2026-07-04T22:21:32Z", "hours": 0.6053, "text": "I was making the pipe and live update system. I noticed that I made a huge error in the code by forgetting to name a variable, and that led to quite a bit of debugging."}, {"post_id": 21965, "ts": "2026-07-04T05:40:56Z", "hours": 1.385, "text": "I was finishing the booster system and started on the particles, but I ran into a few errors while debugging, and I fixed those too."}, {"post_id": 21344, "ts": "2026-07-03T07:16:08Z", "hours": 0.3333, "text": "Getting the code for the boosters finished up: Will most likely come back and add more boosters: The stars in the back are going to come out very nice"}, {"post_id": 21330, "ts": "2026-07-03T06:45:15Z", "hours": 1.7386, "text": "This code handles all the basic setup and visual building blocks of the entire game. The draw_nyan_cat function makes the character form very simple shapes every frame. It also scales up and turns yellow when interacting with power-ups. Rainbow_Trail stores the cat’s last 30 positions and draws the layered color ribbon behind it. The Stars function scrolls 60 twinkling dots across the background of the parallax effect. The Pipe function draws the classic green obstacle pairs and has collision rectangles. The booster is a scrolling collectible that bobs and changes the cat’s visual structure when collected."}]...
|
Title: FLAPPY NYAN CAT by @abhinavP | Stardance
D Title: FLAPPY NYAN CAT by @abhinavP | Stardance
Devlogs:
This code handles all the basic setup and visual building blocks of the entire game. The draw_nyan_cat function makes the character form very simple shapes every frame. It also scales up and turns yellow when interacting with power-ups. Rainbow_Trail stores the cat’s last 30 positions and draws the layered color ribbon behind it. The Stars function scrolls 60 twinkling dots across the background of the parallax effect. The Pipe function draws the classic green obstacle pairs and has collision rectangles. The booster is a scrolling collectible that bobs and changes the cat’s visual structure when collected.
Getting the code for the boosters finished up: Will most likely come back and add more boosters: The stars in the back are going to come out very nice
I was finishing the booster system and started on the particles, but I ran into a few errors while debugging, and I fixed those too.
I was making the pipe and live update system. I noticed that I made a huge error in the code by forgetting to name a variable, and that led to quite a bit of debugging.
Making the invincible boundary for the cat : Making the pipe spawning system: Making pipe movement and scoring : Booster and pipe Collision : and pipe cleanup after it leaves the screen.
Game start instructions: Creation of frames and layering the background: Making an RGB color-shifting background: Making score, best score, and active booster timers. : Making the starting scene
Fixing Small Bugs and Issues in final code. ALL DONE!! ENJOY!
Ships:
I made a Flappy Bird clone where you play as Nyan Cat flying through Mario-style pipes. The whole game runs in the browser as a single HTML file with no installs or dependencies, and everything including Nyan Cat, the rainbow trail, the pipes, and the boosters are drawn from scratch every frame using the HTML5 Canvas API. The hardest part was getting it to actually run in the browser. I originally built it in Python with Pygame but Codespaces has no display so I had to learn how to convert the whole thing to JavaScript using the Canvas API and rewrite all the drawing logic from scratch. I am most proud of the rainbow trail and the procedural Nyan Cat animation. The legs, tail, and body all animate using sine waves so there are zero image files in the entire project. To test it just open the link, press SPACE or tap the screen to flap, and try to collect the boosters. The star makes you invincible, the mushroom makes you giant, the lightning bolt slows the pipes down, and the coins give you +5 points....
|
1794041525.9274952
|
1794127925.9274952
|
|
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....
|
1794066791.1094737
|
1794153191.1094737
|
|
20322
|
My very own WebOS by @anisia_maria | Stardance
|
anisia_maria
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @anisia_maria | Starda Title: My very own WebOS by @anisia_maria | Stardance...
|
1794073795.6725156
|
1794678595.6725156
|
|
20323
|
Untitled by @jayvenandrews13 | Stardance
|
jayvenandrews13
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @jayvenandrews13 | Stardance
|
1793397303.640808
|
1794002103.640808
|
|
20324
|
Frictionless by @manuel | Stardance
|
manuel
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @manuel | Stardance
|
1793465424.019194
|
1794070224.019194
|
|
20325
|
My very own WebOS by @arjundakshin | Stardance
|
arjundakshin
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @arjundakshin | Starda Title: My very own WebOS by @arjundakshin | Stardance...
|
1793854233.537382
|
1794718233.537382
|
|
20326
|
Untitled by @jayvenandrews13 | Stardance
|
jayvenandrews13
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @jayvenandrews13 | Stardance
|
1793890289.3197792
|
1794495089.3197792
|
|
20327
|
My awesome macropad! by @niyah | Stardance
|
niyah
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @niyah | Stardance
|
1793389786.498751
|
1793994586.498751
|
|
20328
|
My awesome macropad! by @SRI_312 | Stardance
|
SRI_312
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @SRI_312 | Stardanc Title: My awesome macropad! by @SRI_312 | Stardance...
|
1794106149.094272
|
1794710949.094272
|
|
20329
|
Pokemon Quiz by @abigail_L | Stardance
|
abigail_L
|
1
|
4.0
|
45
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-22T02:38:19Z", "hours": 4.0, "multiplier": 10.72, "payout": 45, "blessing": "neutral", "text": "Hello I made a Pokemon Quiz using the PokiAPI. Within the quiz users can go through a 10 question where they must identify a pokemon’s name or type. While making this project I wanted to learn about how to use APIs. When watching one tutorial I found my self needing to watch other tutorials in order to understand different parts. I enjoyed working with an API and I for sure plan on making more projects involving API’s", "repo": "https://github.com/Abbby1007/PokemonAPI", "demo": "https://abbby1007.github.io/PokemonAPI/"}]...
|
[{"post_id": 13478, "ts": "202 [{"post_id": 13478, "ts": "2026-06-22T02:20:07Z", "hours": 0.6717, "text": "Okay I have done the finishing touches. I have added some style to the website. While also making two types of quiz either involving the user guessing a Pokémon’s name or type."}, {"post_id": 11666, "ts": "2026-06-19T00:32:36Z", "hours": 1.4364, "text": "Hello I a want to learn how to use APIs So I am using the PokiApi to make a pokemon quiz. I am almost done with the name quiz, here I have added color and a tryagain and home button while having my sister test the website. I thought it would also be fun to have users be quized on a pokemon’s type. So I will work on that next Then I will work on making the website look better"}, {"post_id": 10328, "ts": "2026-06-17T00:08:59Z", "hours": 1.3619, "text": "I am Working on Making 10 Question Pokemon Quiz with the Poki API In this devlog I have created the main mechanic where the user will be provided 10 questions/Pokemon. If the user is correct they get one point. If they are wrong they get no points. I also added to where it stops once they reach 10 questions. Next I will work on the design and look of the quiz. While also of course removing the pokemon’s name appearing before the user answers"}, {"post_id": 10245, "ts": "2026-06-16T21:33:30Z", "hours": 0.7594, "text": "This will be my first time working with an API. SO i followed a Pokémon API. From this I plan on making a Pokémon quiz"}]...
|
Title: Pokemon Quiz by @abigail_L | Stardance
Dev Title: Pokemon Quiz by @abigail_L | Stardance
Devlogs:
This will be my first time working with an API. SO i followed a Pokémon API. From this I plan on making a Pokémon quiz
I am Working on Making 10 Question Pokemon Quiz with the Poki API In this devlog I have created the main mechanic where the user will be provided 10 questions/Pokemon. If the user is correct they get one point. If they are wrong they get no points. I also added to where it stops once they reach 10 questions. Next I will work on the design and look of the quiz. While also of course removing the pokemon’s name appearing before the user answers
Hello I a want to learn how to use APIs So I am using the PokiApi to make a pokemon quiz. I am almost done with the name quiz, here I have added color and a tryagain and home button while having my sister test the website. I thought it would also be fun to have users be quized on a pokemon’s type. So I will work on that next Then I will work on making the website look better
Okay I have done the finishing touches. I have added some style to the website. While also making two types of quiz either involving the user guessing a Pokémon’s name or type.
Ships:
Hello I made a Pokemon Quiz using the PokiAPI. Within the quiz users can go through a 10 question where they must identify a pokemon’s name or type. While making this project I wanted to learn about how to use APIs. When watching one tutorial I found my self needing to watch other tutorials in order to understand different parts. I enjoyed working with an API and I for sure plan on making more projects involving API’s...
|
1793944210.0241888
|
1794030610.0241888
|
|
20330
|
My very own WebOS by @ArylesMedjebar | Stardance
|
ArylesMedjebar
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @ArylesMedjebar | Star Title: My very own WebOS by @ArylesMedjebar | Stardance...
|
1793465605.78682
|
1794070405.78682
|
|
20331
|
Mind refresher by @Likhith_Siripurapu | Stardance
|
Likhith_Siripurapu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Mind refresher by @Likhith_Siripurapu | Sta Title: Mind refresher by @Likhith_Siripurapu | Stardance...
|
1793497648.5783052
|
1794102448.5783052
|
|
20332
|
Pronoun Palace Modding famework by @xanderath | St Pronoun Palace Modding famework by @xanderath | Stardance...
|
xanderath
|
1
|
37.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-05T03:50:46Z", "hours": 37.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a mod for Pronoun Palace which allows other mods to add spells, enemies, characters, tile effects, and a mod settings menu. I also created a demonstration mod which adds one of all of these. Enemy: Aqua from Deltarune Character: Dew Jubilist Spell: Inverter, alternates between making tiles negative and crit Tile Effect: Negative, tile is worth negative value In the mod settings menu you can make Aqua small, or guarantee that she appears The project demo is a showcase video so you can see the mod without having to own the game.", "repo": "https://github.com/Emarald64/pronoun-palace-framework", "demo": "https://youtu.be/Dea4LgKEAN8"}]...
|
[{"post_id": 22540, "ts": "202 [{"post_id": 22540, "ts": "2026-07-05T01:59:58Z", "hours": 1.2689, "text": "Its very hard to see, but the shadow of the text can now also have it’s color changed. The second picture has a more visible shadow color"}, {"post_id": 20500, "ts": "2026-07-02T03:18:11Z", "hours": 6.5267, "text": "Added a tile effect loader to add new tile affects. To the example mod, added the tile effect negative, which multiplies tile value by -1 and the spell Inverter which alternates between making a tile negative and crit."}, {"post_id": 18064, "ts": "2026-06-29T01:39:57Z", "hours": 5.4106, "text": "Make knife throwing animation faster and made the wooden slash attack into a chain knife attack that hits all the top and bottom tiles. Released version 1.4.2 on github. (cut out the parts of the video where it took me a while to find a good word to play)"}, {"post_id": 17219, "ts": "2026-06-27T22:38:46Z", "hours": 8.1186, "text": "Added custom intents, put custom enemies in phonebook, added mod settings menu. Replaced the paparazzi with aqua who has uses the custom intents and has her own unique projectile physics and sounds"}, {"post_id": 13414, "ts": "2026-06-21T23:27:43Z", "hours": 15.4203, "text": "Created scripts to add spells, enemies, and characters. Modified character select screen to support more characters. Made example mod to showcase framework features."}]...
|
Title: Pronoun Palace Modding famework by @xandera Title: Pronoun Palace Modding famework by @xanderath | Stardance
Devlogs:
Created scripts to add spells, enemies, and characters. Modified character select screen to support more characters. Made example mod to showcase framework features.
Added custom intents, put custom enemies in phonebook, added mod settings menu. Replaced the paparazzi with aqua who has uses the custom intents and has her own unique projectile physics and sounds
Make knife throwing animation faster and made the wooden slash attack into a chain knife attack that hits all the top and bottom tiles. Released version 1.4.2 on github. (cut out the parts of the video where it took me a while to find a good word to play)
Added a tile effect loader to add new tile affects. To the example mod, added the tile effect negative, which multiplies tile value by -1 and the spell Inverter which alternates between making a tile negative and crit.
Its very hard to see, but the shadow of the text can now also have it’s color changed. The second picture has a more visible shadow color
Ships:
I made a mod for Pronoun Palace which allows other mods to add spells, enemies, characters, tile effects, and a mod settings menu. I also created a demonstration mod which adds one of all of these. Enemy: Aqua from Deltarune Character: Dew Jubilist Spell: Inverter, alternates between making tiles negative and crit Tile Effect: Negative, tile is worth negative value In the mod settings menu you can make Aqua small, or guarantee that she appears The project demo is a showcase video so you can see the mod without having to own the game....
|
1794084633.037219
|
1794171033.037219
|
|
20333
|
iPhone 5s Repair by @bala1073 | Stardance
|
bala1073
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: iPhone 5s Repair by @bala1073 | Stardance
|
1793900904.395136
|
1794505704.395136
|
|
20334
|
Untitled by @Jaxxson99 | Stardance
|
Jaxxson99
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @Jaxxson99 | Stardance
|
1793962520.8979852
|
1794567320.8979852
|
|
20335
|
HydroFlow by @TheAbsoluteMin | Stardance
|
TheAbsoluteMin
|
0
|
13.03
|
0
|
[]
|
[{"post_id": 12560, "ts": "202 [{"post_id": 12560, "ts": "2026-06-20T14:51:00Z", "hours": 2.1678, "text": "Log 3: June 19, 2026 - CAD Design Completion - 2 hours Timelapse: https://lapse.hackclub.com/timelapse/JToWWzL-IyvG . With two more hours, I integrated the PCB board into my design for scaling, and I carved out some more holes for the wiring of the sensors throughout HydroFlow’s case. Finally, after so much time struggling with learning how to use Autodesk Fusion, the model was completed! I even figured out how to add color to my 3D design! Struggles: It was difficult trying to control exterior components, like the PCB step file, as I had to configure it so that I could actually edit it and move it to the correct location in the model. Furthermore, ensuring that all the parts were in the right place with accurate and precise dimensions was a nightmare! Future work: After this milestone, I will begin to work on the code that brings my smart custom AC fan to life!"}, {"post_id": 11704, "ts": "2026-06-19T02:08:09Z", "hours": 4.0831, "text": "Log 2: June 18, 2026 - CAD Design - 3.5 hours Timelapse link: https://lapse.hackclub.com/timelapse/BJVgF5JaslK2 . After making a minor update to my PCB board regarding some GND routing, I began to work on the CAD design for HydroFlow’s case. What started as a simple box frame quickly became a test of patience and critical thinking! I had to triple check all the measurements for all my parts again and then work on the details. Struggles: The most difficult part was designing the snap fits for my copper tubing in the back! I really want to loop each row of tubing in the back as close together as possible, but I am not sure how strong the copper tubing is… I will design with theoretical numbers for now, and when I get the actual parts, I know that I will have to go through all the CAD design measurements again!!! Oh, the many hours of repetitive tasks! Yet, they teach me so much. Future work: Next time, I will continue to design the case and its interior, including holes for all the wiring and components for HydroFlow."}, {"post_id": 11062, "ts": "2026-06-18T03:02:28Z", "hours": 6.7822, "text": "Log 1: June 17, 2026 - Schematics and PCB - 6.5 hours Timelapse link: https://lapse.hackclub.com/timelapse/Oom849_IEaSS . Welcome! The story of HydroFlow begins three years ago… ever since the central AC system of my house broke down. For three summers, I had to lie in bed in the smothering heat. For three summers, I had to rely on cheap fans with ice. For three summers, I had to think of some way to stay cool without spending too much money nor electricity… That all changed this summer when I figured out that I could reverse engineer those cheap fans. Knowing the potential funding by the Hack Club organization, I decided it was time HydroFlow was born. Specifically, today, I designed the schematics and custom PCB board for my desktop cooler project. Soon, I would make a compact smart fan system that saves ice and electricity by efficiently dry cooling by blowing on copper tubes filled with pumped ice water! This would remove the swampy humid chill of ice water fans while replacing it with the cool, dry feel of an air conditioning unit! Struggles: My biggest roadblock was managing the physical space and the power constraints on a small, horizontal board without causing a system failure. I was scared of experiencing another system brownout like my past stepper motor project, especially while trying to fit a bulky, huge screen backing plate with an oversized voltage booster module and Raspberry Pi Pico 2. On top of that, KiCad kept throwing me critical design errors! Future work: With some simple math, I made sure that my 5 volt power source had enough headroom, and I finally fit everything in the PCB! I look forward to adding mounting screw holes and exporting my PCB so that I can begin to work on the CAD for the case design!"}]...
|
Title: HydroFlow by @TheAbsoluteMin | Stardance
D Title: HydroFlow by @TheAbsoluteMin | Stardance
Devlogs:
Log 1: June 17, 2026 - Schematics and PCB - 6.5 hours Timelapse link: https://lapse.hackclub.com/timelapse/Oom849_IEaSS . Welcome! The story of HydroFlow begins three years ago… ever since the central AC system of my house broke down. For three summers, I had to lie in bed in the smothering heat. For three summers, I had to rely on cheap fans with ice. For three summers, I had to think of some way to stay cool without spending too much money nor electricity… That all changed this summer when I figured out that I could reverse engineer those cheap fans. Knowing the potential funding by the Hack Club organization, I decided it was time HydroFlow was born. Specifically, today, I designed the schematics and custom PCB board for my desktop cooler project. Soon, I would make a compact smart fan system that saves ice and electricity by efficiently dry cooling by blowing on copper tubes filled with pumped ice water! This would remove the swampy humid chill of ice water fans while replacing it with the cool, dry feel of an air conditioning unit! Struggles: My biggest roadblock was managing the physical space and the power constraints on a small, horizontal board without causing a system failure. I was scared of experiencing another system brownout like my past stepper motor project, especially while trying to fit a bulky, huge screen backing plate with an oversized voltage booster module and Raspberry Pi Pico 2. On top of that, KiCad kept throwing me critical design errors! Future work: With some simple math, I made sure that my 5 volt power source had enough headroom, and I finally fit everything in the PCB! I look forward to adding mounting screw holes and exporting my PCB so that I can begin to work on the CAD for the case design!
Log 2: June 18, 2026 - CAD Design - 3.5 hours Timelapse link: https://lapse.hackclub.com/timelapse/BJVgF5JaslK2 . After making a minor update to my PCB board regarding some GND routing, I began to work on the CAD design for HydroFlow’s case. What started as a simple box frame quickly became a test of patience and critical thinking! I had to triple check all the measurements for all my parts again and then work on the details. Struggles: The most difficult part was designing the snap fits for my copper tubing in the back! I really want to loop each row of tubing in the back as close together as possible, but I am not sure how strong the copper tubing is… I will design with theoretical numbers for now, and when I get the actual parts, I know that I will have to go through all the CAD design measurements again!!! Oh, the many hours of repetitive tasks! Yet, they teach me so much. Future work: Next time, I will continue to design the case and its interior, including holes for all the wiring and components for HydroFlow.
Log 3: June 19, 2026 - CAD Design Completion - 2 hours Timelapse: https://lapse.hackclub.com/timelapse/JToWWzL-IyvG . With two more hours, I integrated the PCB board into my design for scaling, and I carved out some more holes for the wiring of the sensors throughout HydroFlow’s case. Finally, after so much time struggling with learning how to use Autodesk Fusion, the model was completed! I even figured out how to add color to my 3D design! Struggles: It was difficult trying to control exterior components, like the PCB step file, as I had to configure it so that I could actually edit it and move it to the correct location in the model. Furthermore, ensuring that all the parts were in the right place with accurate and precise dimensions was a nightmare! Future work: After this milestone, I will begin to work on the code that brings my smart custom AC fan to life!...
|
1793501694.6362634
|
1794106494.6362634
|
|
20336
|
bigbot by @arjundakshin | Stardance
|
arjundakshin
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-29T13:23:39Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a slack bot named big bot that has some useful features but mostly just pure fun. But one is extremely dangerous do not do the forbidden command.", "repo": "https://github.com/DrivingStork3952/bigbot_slack/", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354"}]...
|
[{"post_id": 11027, "ts": "202 [{"post_id": 11027, "ts": "2026-06-18T01:49:20Z", "hours": 0.3392, "text": "My first ever DevLog I built my Slack bot. I used Node.js for the first time,e and it was really interesting using APIs with JavaScript. For reference,e my main language is Python, that’s what I usually code everything in. The project started as just a ping and joke, and cat fact, but I started looking into more APIs and kept adding. Bigbott isn’t live is because I still have to apply for a nest container. Hackatime is also being weird and said I only worked on it for 20 minutes, but it was actually a lot more, at least 1 hour. As soon as my Nest Container gets approved, Bigbot will be available for everyone to use (if you want to)."}]...
|
Title: bigbot by @arjundakshin | Stardance
Devlog Title: bigbot by @arjundakshin | Stardance
Devlogs:
My first ever DevLog I built my Slack bot. I used Node.js for the first time,e and it was really interesting using APIs with JavaScript. For reference,e my main language is Python, that’s what I usually code everything in. The project started as just a ping and joke, and cat fact, but I started looking into more APIs and kept adding. Bigbott isn’t live is because I still have to apply for a nest container. Hackatime is also being weird and said I only worked on it for 20 minutes, but it was actually a lot more, at least 1 hour. As soon as my Nest Container gets approved, Bigbot will be available for everyone to use (if you want to).
Ships:
I made a slack bot named big bot that has some useful features but mostly just pure fun. But one is extremely dangerous do not do the forbidden command....
|
1794063264.1353092
|
1794149664.1353092
|
|
20337
|
AURORA-Neuro by @murariambofficial | Stardance
|
murariambofficial
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: AURORA-Neuro by @murariambofficial | Starda Title: AURORA-Neuro by @murariambofficial | Stardance...
|
1793919222.8393533
|
1794524022.8393533
|
|
20338
|
TesSaRes by @Kyurei | Stardance
|
Kyurei
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: TesSaRes by @Kyurei | Stardance
|
1793789737.0257304
|
1794394537.0257304
|
|
20339
|
A Record Label by @tmxninja | Stardance
|
tmxninja
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: A Record Label by @tmxninja | Stardance
|
1793800408.9728777
|
1794405208.9728777
|
|
20340
|
Audio Codec Module by @pui4 | Stardance
|
pui4
|
0
|
7.87
|
0
|
[]
|
[{"post_id": 81127, "ts": "202 [{"post_id": 81127, "ts": "2026-10-20T00:07:01Z", "hours": 1.2197, "text": "I finally got it working. This is a shot devlog just before I ship. I have found an issue with the design (that I have now fixed), I forgot to breakout the output pin on the chip meaning that the mic input doesn’t work. However speaker output works! Here I have attached a video of it hooked up to a pi pico acting as a usb audio device (ignore the messy desk)"}, {"post_id": 63906, "ts": "2026-09-07T22:54:44Z", "hours": 1.4167, "text": "THE BOARDS HAVE ARRIVED!!! JLC has finally delivered the boards and they look fantastic. But do they work? I will get to that shortly. Ordering the boards was a pain in the ass. When I added the boards to my cart and filled everything in, I got a price of 60 USD. I made my application for a grant for 60 USD and got accepted. Then when I later went to purchase the boards, I got hit with 11 USD of hidden taxes that JLC doesn’t show you until after you have already put you card information in and are ready to buy it. So I was 11 USD short to order my boards; so I made a support ticket on the slack to get my grant increased - just for it to get a couple (honestly useless) replies. So in desperation I looked to see if I could decrease the price to fit inside my grant budget and I was able to using a JLC coupon. So I purchased the boards and received an email asking me the orientation of the single IC that is on the board. They had the dot in the top right when it needed to be in the top left. I corrected them and even attached a screenshot from KiCad to further illustrate my point. They thanked me for correcting them and that was the end of it. Fast forward to yesterday and the boards arrived. I was filled with excitement and I hastily soldered on the headers to the board. I then went to test it with an esp32 and a simple vibe-coded (calm down it’s just for testing) esphome app. I wired everything up correctly and saw nothing on the I2C bus. I was scared I made a mistake but all the voltages and pins were where they were supposed to be. Then I noticed it, the IC was rotated 90 degrees from where it should have been; on all of the boards. It was in the original orientation that JLC sent me and not the corrected one that they confirmed. Even though I don’t have the correct tools for the job I attempted at fixing one. The one with the header already on it would have been annoying as I would have had to remove the headers which is a major pain in the ass. So I stuck another board on top of the hotplate that I got from hackclub blueprint and tried. The first attempt ended in destruction as I was using the wrong type of tweezers and so when I went to place the chip down it pinged off and knocked a capacitor and resistor off the board; and I chose to use absolutely tiny passives as the footprints in KiCad are incomprehensible and trying to compare them to LCSC parts was hard. On the third board and attempt I did (or at least I think I did as I don’t have a microscope to properly check it). I ran over to my computer to test it and I saw it on the I2C bus. Then esphome wasn’t letting me use it as a WiFi speaker so I played some rttti sounds on it and it worked! Of course all of this time was not logged (4-5~ hours of work) so what was the 1 hour and 25 mins. Well the original purpose for this board was to be used with Linux SBCs and so I tried to get it to work with the pi zero 2w. I picked the 2w to test with as it has 6.18 kernel which includes a driver for the es8311. However I know next to nothing about Linux embedded development, even though I’ve dail drove Linux on my pc for almost 2 years now - I know it more as a user than a developer. In other words, I couldn’t figure out how to properly write the device trees to get it to work and I couldn’t vibe-code it either as that didn’t work. Now I have to try and get this working on the pi before the end of Star dance so I can ship it. If you are reading this and have any experience in embedded Linux or device trees, please message me on slack: @pui4 . Thanks for reading, I hope to get this done soon. Also I have sent an email complaining about the boards to JLC and I will report when I have any news."}, {"post_id": 26093, "ts": "2026-07-10T17:57:38Z", "hours": 1.7836, "text": "Finally going to submit!! I’ve finished the PCB and the readme (for now). I made blender renders of the PCB. I used a random HDRI I found online and hit render. Also I had to change the PCB as the footprint I was using for the resistors and capacitors were too small for the ones that I actually wanted to use. In fairness to me; it’s difficult to pick the right one when all the footprint names are “R_0201_0603Metric”. It’s so confusing that even claude got it wrong. It said that the second number was metric and the first was imperial and that LCSC has there components listed in metric. That’s wrong, I’m not sure what part of it is wrong - all I know is that the number I wanted for LCSC was the first one. I also changed the footprints so they aren’t the hand-solder ones. This is after @heki told me that it may cause issues, yesterday. This will not be my final post on this design as I guarantee that there will be some issue with the design or repo that requires me to re-submit but we’ll see. I also updated the readme to a some-what final state (until I actually get the boards). It has more info if you want to check it out. The repo is a bit messy at the minute so I need to tidy that up at a later date. Now I just need to wait to get it rejected to do any more work on it. Until then, thanks for reading !!"}, {"post_id": 25557, "ts": "2026-07-09T21:33:20Z", "hours": 0.9833, "text": "I think I’m done. I finished the PCB and fixed some things with the help of @heki (thanks). I did a BOM with the help of the JLC kicad extension and uploaded it to JLC and got a price of $40! I still need to do a render and submit it but I think I’m done for today. Thank you for reading. (I spent a lot longer on this but forgot to record it)"}, {"post_id": 25420, "ts": "2026-07-09T18:06:17Z", "hours": 1.7333, "text": "Hopefully finished routing the PCB. As I said in my last post; I’m not entirely sure on if I have picked the correct footprints for my resistors and capacitors. I picked small ones as it won’t draw much power and is 3.3 volts anyway. Also I ended up keeping the aux jacks and fit them in as shown in the screenshot. Next I need to make a BOM for JLC to assemble it as I currently don’t have the capabilities or expertise to solder SMD components. I have never made a BOM before and I don’t really know how to start - if anyone can help me, please comment on this post or reach out to me on slack. After the BOM is complete, then I will need to see the cost of producing these modules and submit the project for funding. Also excuse the poor quality of my routing and the large amount of Vias, as this is my second PCB ever and I’m just learning by trial and error. I mean my last PCB worked (with some bodges) so surely this vastly more complex one will work too; right? I also need to add some art to the PCB as currently it is very bland (yes the text is in comic sans). I will also do a render in blender and properly add the models for components in a future devlog. I’m also going to post the PCB and the schematic into the slack to see if their is any obvious issues that I have overlooked. If you (the person reading this) spots any issues - comment them or reach me on slack. Thanks for reading and hopefully I’ll get this done soon. :))"}, {"post_id": 24959, "ts": "2026-07-08T20:59:19Z", "hours": 0.7328, "text": "(little annoyed as I am having to re-write this entire thing again as stardance refused to accept my last one) I have just finished the schematic for the module. It is copied from an implementation by waveshare in one of their ESP32 boards here. I’m not 100% sure that it is correct as I’m not good enough at electronics yet to read and understand datasheets. I haven’t yet assigned the footprints to the symbols yet as I need to do more research into the different sizes of SMD resistors and caps. It has 2 aux jacks - one for input and one for output, I’m not fully sure whether or not I’m going to keep these in the final design as they are already broken out to the pin headers; but they are there for now. They are also TRS jacks even though they are both mono, this is due to me requiring a TRS jack for the mic I plan to use for my other project (a Rode videomic shotgun mic). I know that a mono jack would work too, but I’ve chosen to use TRS jacks also because they are easier to obtain. The pin headers are separated into 2 groups of 6 as to keep it small and bread-board compatible - so I can use this module for prototyping other projects more easily. Right now I’m going to submit this schematic into the outpost and stardance slacks to ask for others opinions. I have no intention to go to open sauce as it is too expensive for me to go as I am in the UK; so I’m hoping for as much star dust as possible :) If you have any questions (or you spotted an issue in the design) feel free to reach out to me on slack @pui4 . Thank you for reading and being interested in my project :))"}]...
|
Title: Audio Codec Module by @pui4 | Stardance
De Title: Audio Codec Module by @pui4 | Stardance
Devlogs:
(little annoyed as I am having to re-write this entire thing again as stardance refused to accept my last one) I have just finished the schematic for the module. It is copied from an implementation by waveshare in one of their ESP32 boards here. I’m not 100% sure that it is correct as I’m not good enough at electronics yet to read and understand datasheets. I haven’t yet assigned the footprints to the symbols yet as I need to do more research into the different sizes of SMD resistors and caps. It has 2 aux jacks - one for input and one for output, I’m not fully sure whether or not I’m going to keep these in the final design as they are already broken out to the pin headers; but they are there for now. They are also TRS jacks even though they are both mono, this is due to me requiring a TRS jack for the mic I plan to use for my other project (a Rode videomic shotgun mic). I know that a mono jack would work too, but I’ve chosen to use TRS jacks also because they are easier to obtain. The pin headers are separated into 2 groups of 6 as to keep it small and bread-board compatible - so I can use this module for prototyping other projects more easily. Right now I’m going to submit this schematic into the outpost and stardance slacks to ask for others opinions. I have no intention to go to open sauce as it is too expensive for me to go as I am in the UK; so I’m hoping for as much star dust as possible :) If you have any questions (or you spotted an issue in the design) feel free to reach out to me on slack @pui4 . Thank you for reading and being interested in my project :))
Hopefully finished routing the PCB. As I said in my last post; I’m not entirely sure on if I have picked the correct footprints for my resistors and capacitors. I picked small ones as it won’t draw much power and is 3.3 volts anyway. Also I ended up keeping the aux jacks and fit them in as shown in the screenshot. Next I need to make a BOM for JLC to assemble it as I currently don’t have the capabilities or expertise to solder SMD components. I have never made a BOM before and I don’t really know how to start - if anyone can help me, please comment on this post or reach out to me on slack. After the BOM is complete, then I will need to see the cost of producing these modules and submit the project for funding. Also excuse the poor quality of my routing and the large amount of Vias, as this is my second PCB ever and I’m just learning by trial and error. I mean my last PCB worked (with some bodges) so surely this vastly more complex one will work too; right? I also need to add some art to the PCB as currently it is very bland (yes the text is in comic sans). I will also do a render in blender and properly add the models for components in a future devlog. I’m also going to post the PCB and the schematic into the slack to see if their is any obvious issues that I have overlooked. If you (the person reading this) spots any issues - comment them or reach me on slack. Thanks for reading and hopefully I’ll get this done soon. :))
I think I’m done. I finished the PCB and fixed some things with the help of @heki (thanks). I did a BOM with the help of the JLC kicad extension and uploaded it to JLC and got a price of $40! I still need to do a render and submit it but I think I’m done for today. Thank you for reading. (I spent a lot longer on this but forgot to record it)
Finally going to submit!! I’ve finished the PCB and the readme (for now). I made blender renders of the PCB. I used a random HDRI I found online and hit render. Also I had to change the PCB as the footprint I was using for the resistors and capacitors were too small for the ones that I actually wanted to use. In fairness to me; it’s difficult to pick the right one when all the footprint names are “R_0201_0603Metric”. It’s so confusing that even claude got it wrong. It said that the second number was metric and the first was imperial and that LCSC has there components listed in metric. That’s wrong, I’m not sure what part of it is wrong - all I know is that the number I wanted for LCSC was the first one. I also changed the footprints so they aren’t the hand-solder ones. This is after @heki told me that it may cause issues, yesterday. This will not be my final post on this design as I guarantee that there will be some issue with the design or repo that requires me to re-submit but we’ll see. I also updated the readme to a some-what final state (until I actually get the boards). It has more info if you want to check it out. The repo is a bit messy at the minute so I need to tidy that up at a later date. Now I just need to wait to get it rejected to do any more work on it. Until then, thanks for reading !!
THE BOARDS HAVE ARRIVED!!! JLC has finally delivered the boards and they look fantastic. But do they work? I will get to that shortly. Ordering the boards was a pain in the ass. When I added the boards to my cart and filled everything in, I got a price of 60 USD. I made my application for a grant for 60 USD and got accepted. Then when I later went to purchase the boards, I got hit with 11 USD of hidden taxes that JLC doesn’t show you until after you have already put you card information in and are ready to buy it. So I was 11 USD short to order my boards; so I made a support ticket on the slack to get my grant increased - just for it to get a couple (honestly useless) replies. So in desperation I looked to see if I could decrease the price to fit inside my grant budget and I was able to using a JLC coupon. So I purchased the boards and received an email asking me the orientation of the single IC that is on the board. They had the dot in the top right when it needed to be in the top left. I corrected them and even attached a screenshot from KiCad to further illustrate my point. They thanked me for correcting them and that was the end of it. Fast forward to yesterday and the boards arrived. I was filled with excitement and I hastily soldered on the headers to the board. I then went to test it with an esp32 and a simple vibe-coded (calm down it’s just for testing) esphome app. I wired everything up correctly and saw nothing on the I2C bus. I was scared I made a mistake but all the voltages and pins were where they were supposed to be. Then I noticed it, the IC was rotated 90 degrees from where it should have been; on all of the boards. It was in the original orientation that JLC sent me and not the corrected one that they confirmed. Even though I don’t have the correct tools for the job I attempted at fixing one. The one with the header already on it would have been annoying as I would have had to remove the headers which is a major pain in the ass. So I stuck another board on top of the hotplate that I got from hackclub blueprint and tried. The first attempt ended in destruction as I was using the wrong type of tweezers and so when I went to place the chip down it pinged off and knocked a capacitor and resistor off the board; and I chose to use absolutely tiny passives as the footprints in KiCad are incomprehensible and trying to compare them to LCSC parts was hard. On the third board and attempt I did (or at least I think I did as I don’t have a microscope to properly check it). I ran over to my computer to test it and I saw it on the I2C bus. Then esphome wasn’t letting me use it as a WiFi speaker so I played some rttti sounds on it and it worked! Of course all of this time was not logged (4-5~ hours of work) so what was the 1 hour and 25 mins. Well the original purpose for this board was to be used with Linux SBCs and so I tried to get it to work with the pi zero 2w. I picked the 2w to test with as it has 6.18 kernel which includes a driver for the es8311. However I know next to nothing about Linux embedded development, even though I’ve dail drove Linux on my pc for almost 2 years now - I know it more as a user than a developer. In other words, I couldn’t figure out how to properly write the device trees to get it to work and I couldn’t vibe-code it either as that didn’t work. Now I have to try and get this working on the pi before the end of Star dance so I can ship it. If you are reading this and have any experience in embedded Linux or device trees, please message me on slack: @pui4 . Thanks for reading, I hope to get this done soon. Also I have sent an email complaining about the boards to JLC and I will report when I have any news.
I finally got it working. This is a shot devlog just before I ship. I have found an issue with the design (that I have now fixed), I forgot to breakout the output pin on the chip meaning that the mic input doesn’t work. However speaker output works! Here I have attached a video of it hooked up to a pi pico acting as a usb audio device (ignore the messy desk)...
|
1793425739.7805629
|
1794030539.7805629
|
|
20341
|
Hello-Laravel by @cauadev | Stardance
|
cauadev
|
1
|
17.0
|
88
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-15T00:18:57Z", "hours": 17.0, "multiplier": 6.86, "payout": 88, "blessing": "neutral", "text": "Hello-Laravel Hello-Laravel is a Laravel based (duh) unhinged excuses generator, where you can get excuses to bring you out of the blunders created by yourself (or make everything worse, effectivity is not granted). With it, users can add, edit, delete and get custom excuses, defined by: Category -> Work, School, etc. Risk -> Has a severity score (1-10) and a risk tag (like “moderate”, “nuclear” or “you’ll get fired soon”) Believability rate -> How believable is the excuse (from 0 to 100%) Chaos score -> A server-side calculated mathematical formula to get how bad the situation is (bigger is worse), defined as: 100 + Severity score - Believability rate Excuse -> The excuse itself (like “My dog ate the database) Challenges: Tom-Select -> It was hard to figure out how to set it up properly Laravel and PHP -> It was my first dive into PHP and at Laravel. Before that, my only experience with backend web frameworks were Flask and a bit of Django Deploying -> It was my first time ever deploying a website What I’m proud of: Overcame challenges -> Now I know how to setup Tom-Select or write PHP code Learned tools -> Now I know how to write pages using Tailwind CSS, for example, or use ssh to access a remote terminal session Availability -> I can send the link to anyone and proudly announce “I built this all” How to test Open the website: https://brzueira.hackclub.app/ Log in with dummy account: Email: [email protected] Password: admin Know the rules: 1. No NSFW 2. No prejudice, hating speech or offensive content 3. No doxing, harmful or personal info 4. No trolling, griefing or spam, like creating dozens of identical categories or deleting other people’s models 5. No sensitive topics, such as politics or religion 6. If a post breaks one of those rules, feel free to edit or remove it. Have fun (inside the rules)! Remember: be careful about what you post - other people will see it", "repo": "https://github.com/Br-Zueira/Hello-Laravel", "demo": "https://brzueira.hackclub.app/"}]...
|
[{"post_id": 46639, "ts": "202 [{"post_id": 46639, "ts": "2026-08-14T01:14:58Z", "hours": 2.8192, "text": "Hello guys! Today I was finally able of deploying this little silly website, so you all can generate chaos and unhinged excuses without further setup! I used Hackclub’s Nest platform, and found it way more intuitive and easy than other platforms, and is also 100% free, so thank you guys! The only issue was setting the setup.sh file (the code on picture), but after a brave battle against root user, daemons, .env files, ports, hosts, and Vite, I announce I came victorious! Info to access website: URL: https://brzueira.hackclub.app/ Email: [email protected] Password: admin You guys can all use this dummy account to log in into the website and do whatever you want. Just follow the rules, that are: No NSFW No prejudice, hating speech or offensive content No doxing, harmful or personal info No trolling, griefing or spam, like creating dozens of identical categories or deleting other people’s models No sensitive topics, such as politics or religion If a post breaks one of those rules, feel free to edit or remove it. Have fun (inside the rules) Remember: be careful about what you post - other people will see it."}, {"post_id": 10266, "ts": "2026-06-16T22:09:33Z", "hours": 14.2411, "text": "Recently, I’m miserably failing to deploy Hello-Laravel website. Why are there no more devlogs? Simply: I created the Stardance project page just now and just now discovered that devlog meant posting here. I was doing a whole DEVLOG.md thinking it was enough. Here’s a piece of it: Project Context & Progression I started brainstorming and prototyping the initial core engine of this project shortly before discovering Stardance and creating the GitHub repository. At that stage, the project was completely raw and missing the vast majority of its current features. Approximately 50% to 70% of the entire project - Including the terminal style, the finished CRUD operations, TomSelect integrations, mobile optimization, and overall production polishment - was built entirely from scratch during my hours logged for Stardance. […] GitHub History bf4a2a7 (HEAD -> main, origin/main) Remove automatic database creation at docker 3b70ef5 Changed run command in Dockerfile 33493f9 Completely stripped FrankenPHP out because it didn’t work in Render 3158734 Fixed typo in seeder (. to ->) 5510537 Changed User Seeder so it works without factory 939e88a Corrected Dockerfile frankenPHP not having Composer binary 065523a Corrected Dockerfile frankenPHP version d91bde0 Added settings for deploying + included Octane at Composer requirements 9e1facc Corrected PHP version info in README a77e3ca Updated DEVLOG 941b1ec Updated PHP requirement to 8.4 7a3ecc5 Improved DEVLOG.md, specially by adding screenshots 51c3a5f Small tweak in DEVLOG (commiting only to be able to do checkout) be8ed5a Improved DEVLOG 391d482 Moved markdown assets into new assets folder d232336 Created devlog 389bf18 Improved README.md to fit the Stardance README standard 8403d85 Added hero image to be used in README.md 4b87821 Added favicons (bash logo) 4fe3919 Added seeder for user to make creating admin account easier 1f94518 Moved tomSelect scripts out of blade files to organize the code fcc1543 Made tomSelect a local package to make the app more self contained ad911da Updated README 0397bcd Added title to website a5a7632 Added csrf token to logout button 3fb766f Added navbar, admin panel and mobile support 276f3a6 Added terminal style and edit route cc5068c Added admin category editing option 2cc4618 Pushing the already existing files"}]...
|
Title: Hello-Laravel by @cauadev | Stardance
Devl Title: Hello-Laravel by @cauadev | Stardance
Devlogs:
Recently, I’m miserably failing to deploy Hello-Laravel website. Why are there no more devlogs? Simply: I created the Stardance project page just now and just now discovered that devlog meant posting here. I was doing a whole DEVLOG.md thinking it was enough. Here’s a piece of it: Project Context & Progression I started brainstorming and prototyping the initial core engine of this project shortly before discovering Stardance and creating the GitHub repository. At that stage, the project was completely raw and missing the vast majority of its current features. Approximately 50% to 70% of the entire project - Including the terminal style, the finished CRUD operations, TomSelect integrations, mobile optimization, and overall production polishment - was built entirely from scratch during my hours logged for Stardance. […] GitHub History bf4a2a7 (HEAD -> main, origin/main) Remove automatic database creation at docker 3b70ef5 Changed run command in Dockerfile 33493f9 Completely stripped FrankenPHP out because it didn’t work in Render 3158734 Fixed typo in seeder (. to ->) 5510537 Changed User Seeder so it works without factory 939e88a Corrected Dockerfile frankenPHP not having Composer binary 065523a Corrected Dockerfile frankenPHP version d91bde0 Added settings for deploying + included Octane at Composer requirements 9e1facc Corrected PHP version info in README a77e3ca Updated DEVLOG 941b1ec Updated PHP requirement to 8.4 7a3ecc5 Improved DEVLOG.md, specially by adding screenshots 51c3a5f Small tweak in DEVLOG (commiting only to be able to do checkout) be8ed5a Improved DEVLOG 391d482 Moved markdown assets into new assets folder d232336 Created devlog 389bf18 Improved README.md to fit the Stardance README standard 8403d85 Added hero image to be used in README.md 4b87821 Added favicons (bash logo) 4fe3919 Added seeder for user to make creating admin account easier 1f94518 Moved tomSelect scripts out of blade files to organize the code fcc1543 Made tomSelect a local package to make the app more self contained ad911da Updated README 0397bcd Added title to website a5a7632 Added csrf token to logout button 3fb766f Added navbar, admin panel and mobile support 276f3a6 Added terminal style and edit route cc5068c Added admin category editing option 2cc4618 Pushing the already existing files
Hello guys! Today I was finally able of deploying this little silly website, so you all can generate chaos and unhinged excuses without further setup! I used Hackclub’s Nest platform, and found it way more intuitive and easy than other platforms, and is also 100% free, so thank you guys! The only issue was setting the setup.sh file (the code on picture), but after a brave battle against root user, daemons, .env files, ports, hosts, and Vite, I announce I came victorious! Info to access website: URL: https://brzueira.hackclub.app/ Email: [email protected] Password: admin You guys can all use this dummy account to log in into the website and do whatever you want. Just follow the rules, that are: No NSFW No prejudice, hating speech or offensive content No doxing, harmful or personal info No trolling, griefing or spam, like creating dozens of identical categories or deleting other people’s models No sensitive topics, such as politics or religion If a post breaks one of those rules, feel free to edit or remove it. Have fun (inside the rules) Remember: be careful about what you post - other people will see it.
Ships:
Hello-Laravel Hello-Laravel is a Laravel based (duh) unhinged excuses generator, where you can get excuses to bring you out of the blunders created by yourself (or make everything worse, effectivity is not granted). With it, users can add, edit, delete and get custom excuses, defined by: Category -> Work, School, etc. Risk -> Has a severity score (1-10) and a risk tag (like “moderate”, “nuclear” or “you’ll get fired soon”) Believability rate -> How believable is the excuse (from 0 to 100%) Chaos score -> A server-side calculated mathematical formula to get how bad the situation is (bigger is worse), defined as: 100 + Severity score - Believability rate Excuse -> The excuse itself (like “My dog ate the database) Challenges: Tom-Select -> It was hard to figure out how to set it up properly Laravel and PHP -> It was my first dive into PHP and at Laravel. Before that, my only experience with backend web frameworks were Flask and a bit of Django Deploying -> It was my first time ever deploying a website What I’m proud of: Overcame challenges -> Now I know how to setup Tom-Select or write PHP code Learned tools -> Now I know how to write pages using Tailwind CSS, for example, or use ssh to access a remote terminal session Availability -> I can send the link to anyone and proudly announce “I built this all” How to test Open the website: https://brzueira.hackclub.app/ Log in with dummy account: Email: [email protected] Password: admin Know the rules: 1. No NSFW 2. No prejudice, hating speech or offensive content 3. No doxing, harmful or personal info 4. No trolling, griefing or spam, like creating dozens of identical categories or deleting other people’s models 5. No sensitive topics, such as politics or religion 6. If a post breaks one of those rules, feel free to edit or remove it. Have fun (inside the rules)! Remember: be careful about what you post - other people will see it...
|
1793919142.1257677
|
1794005542.1257677
|
|
20342
|
My very own WebOS by @PratDaGreat | Stardance
|
PratDaGreat
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @PratDaGreat | Stardan Title: My very own WebOS by @PratDaGreat | Stardance...
|
1794092015.1711562
|
1794696815.1711562
|
|
20343
|
Go Kart Build by @abhinavP | Stardance
|
abhinavP
|
0
|
5.02
|
0
|
[]
|
[{"post_id": 20168, "ts": "202 [{"post_id": 20168, "ts": "2026-07-01T18:27:08Z", "hours": 0.2503, "text": "Completely changed the code and system design, also added a HUD simulator to let people try."}, {"post_id": 20129, "ts": "2026-07-01T17:38:31Z", "hours": 0.2836, "text": "Code for the Raspberry Pi controller. There are glitches that I think will be resolved when input into the Raspberry Pi, because the Pi can download modules from the internet. However, all the code was done using AI, and i just did a few fixes to improve it."}, {"post_id": 19791, "ts": "2026-07-01T05:34:09Z", "hours": 0.9669, "text": "Finished the go-kart. Made the Steering rack and assembly; added a steering wheel from an external website. I also added the electrical systems and decided to use a Raspberry Pi with a large LCD heads-up display to act as a speedometer and also control the motor inputs from the accelerator pedal to the motor."}, {"post_id": 18519, "ts": "2026-06-29T18:17:09Z", "hours": 0.3336, "text": "Made a Steering Rack Assembly that connects to the front wheels."}, {"post_id": 18164, "ts": "2026-06-29T05:56:04Z", "hours": 0.7836, "text": "Making Wheels, Seat, Axles, and starting Steering Mount"}, {"post_id": 10694, "ts": "2026-06-17T15:42:33Z", "hours": 0.4333, "text": "Making Wheels And Doing the Rear Axle Assembly"}, {"post_id": 10499, "ts": "2026-06-17T07:45:13Z", "hours": 1.4669, "text": "Doing the Go-Kart Side Assembly and Rear Wing"}, {"post_id": 10433, "ts": "2026-06-17T04:35:07Z", "hours": 0.5003, "text": "CAD of a GOKART still in Progress"}]...
|
Title: Go Kart Build by @abhinavP | Stardance
Dev Title: Go Kart Build by @abhinavP | Stardance
Devlogs:
CAD of a GOKART still in Progress
Doing the Go-Kart Side Assembly and Rear Wing
Making Wheels And Doing the Rear Axle Assembly
Making Wheels, Seat, Axles, and starting Steering Mount
Made a Steering Rack Assembly that connects to the front wheels.
Finished the go-kart. Made the Steering rack and assembly; added a steering wheel from an external website. I also added the electrical systems and decided to use a Raspberry Pi with a large LCD heads-up display to act as a speedometer and also control the motor inputs from the accelerator pedal to the motor.
Code for the Raspberry Pi controller. There are glitches that I think will be resolved when input into the Raspberry Pi, because the Pi can download modules from the internet. However, all the code was done using AI, and i just did a few fixes to improve it.
Completely changed the code and system design, also added a HUD simulator to let people try....
|
1793919170.198532
|
1794523970.198532
|
|
20344
|
My very own WebOS by @yaboyjeffthegoat | Stardance
|
yaboyjeffthegoat
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @yaboyjeffthegoat | St Title: My very own WebOS by @yaboyjeffthegoat | Stardance...
|
1793469029.448983
|
1794073829.448983
|
|
20345
|
Boilerplater by @cauadev | Stardance
|
cauadev
|
1
|
72.0
|
922
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T00:03:39Z", "hours": 72.0, "multiplier": 12.85, "payout": 922, "blessing": "neutral", "text": "Hello guys! Today, I celebrate the shipping of Br-Zueira’s Boilerplater! It serves for saving (ctrl+u, mac: cmd+u) and pasting code snippets (ctrl+alt+u, mac: cmd+alt+u). It also supports categorizing them by tags and languages, giving descriptions and titles to them and even supports macros: [%%] -> Supports variables such as BP_FILENAME, some sandboxed JavaScript evaluation and even macros (variables defined by yourself using JavaScript code) [#n#] -> Tabstops, where n is an index (they’re standard Vscode tabstops: evaluated from 1 to infinity and beyond, 0 at last and can be grouped like in the example) [#n|fallback#] -> Tabstops but with a placeholder/fallback if user chooses to ignore the tabstop. Also, you can change the snippets by the extension itself (supports basic coding editor features, such as tab indenting or auto closing quotes). For all this. it uses an in-build webview (ctrl+alt+u, mac: cmd+alt+u). You can easily download it at Microsoft Extension Marketplace (just search by “Br-Zueira’s Boilerplater”). If you want, you can also get the VSIX file at GitHub Releases (then open it with Vscode and click “Download VSIX extension”). It’s plug and enjoy! Hope it really lets your workflow more frictionless!", "repo": "https://github.com/Br-Zueira/Boilerplater", "demo": "https://github.com/Br-Zueira/Boilerplater/releases"}]...
|
[{"post_id": 51978, "ts": "202 [{"post_id": 51978, "ts": "2026-08-21T23:45:24Z", "hours": 0.3475, "text": "Bug patching and extension updating"}, {"post_id": 30442, "ts": "2026-07-18T00:04:29Z", "hours": 4.9075, "text": "Hello, fellow devs! Today, I added this gorgeous gif into the readme. Also, I had to escape the content to be shown in list view (I discovered it the worst way: completely breaking the layout while playing around with HTML and PHP snippets) and added aliases for languages, which makes searching them easier. I removed frontend JS and CSS into actual files (they were string literals before) and, finally, moved some files around."}, {"post_id": 30107, "ts": "2026-07-17T12:50:50Z", "hours": 5.6953, "text": "Hello, fellow devs! Yesterday, I completed the CRUD for languages! You can now create, edit or even delete them. The internal name is searched in Vscode language IDs. To delete one, if you have snippets assigned to them, you can either reassign all of them to another language or delete them along with the language, both automatically made."}, {"post_id": 29226, "ts": "2026-07-16T00:24:16Z", "hours": 5.0817, "text": "Hello, fellow devs! Today, I solved the issues related to macros. Also, letting it in configs.json made it messy, counterintuitive and less integrated with the rest of the extension, so I moved it to the webviews, together with the snippets, tags and languages you’re all already familiar with. The evaluation order is very important, as this is what grants macros can be access by other macros, only needing to come before in the order. I’m really excited to see what will people come up with this."}, {"post_id": 28638, "ts": "2026-07-15T00:35:52Z", "hours": 5.8692, "text": "Hello. I started preparing extension for release, so I changed compiler to esbuild and added the GSL3 license to my project. I also started trying to implement the option to add custom variables for templating to the extension, but it’s all broken."}, {"post_id": 28259, "ts": "2026-07-14T12:35:30Z", "hours": 3.7383, "text": "Hello, fellow devs! I just wrote this info at index about the extension and about the templates. I also made the snippet typing more similar to Vscode coding, so now it has tab indentation, and auto closes quotes, parenthesis, brackets, curly braces and the extension templating “[%” and “[#”. TODO: Fix the frontend script that is now half broken."}, {"post_id": 27340, "ts": "2026-07-12T20:37:25Z", "hours": 5.8317, "text": "Hello guys! Now we can paste the snippets directly from the webview! Also, it has dynamic templates: [%%] executes simple JavaScript and can access variables such as BP_FILENAME or BP_YEAR [##] turns into tabstops: can be either [# index #] or [# index | default value #] where index is an integer, and optional default value can be used when user just skips the tabstop However, as a safety measure, the templates can’t directly access vscode, node.js or other possibly sensible variables, methods or functions."}, {"post_id": 26564, "ts": "2026-07-11T13:44:20Z", "hours": 9.9067, "text": "Hey guys! I did a search engine for the list view! It was kind of complex, as I had to deal with SQL joins (INNER JOIN for NOT NULL fields and LEFT JOIN for optional fields), a bridge table, JSON_GROUP_ARRAY, etc, but in the end, it worked. Just have to test a bit more the search bar as it sometimes have some glitches (every time a search is fired, the whole DOM is reloaded)."}, {"post_id": 22458, "ts": "2026-07-04T22:35:41Z", "hours": 6.6092, "text": "Hey guys! Today, I officially finished CRUD! For all models! I also made tag assignment work 100% fine. Besides that, I improved a bit on code modularity and organization and did small patches. TODO: Improve the “R” and maybe the “D” of CRUD; Add the snippet pasting part (the app focus)."}, {"post_id": 19611, "ts": "2026-06-30T23:46:55Z", "hours": 7.6217, "text": "Hey guys! Now tom-select is 100% working and model editing works… at least 50%? Well, and we also have this gorgeous CSS styling that matches with Vscode styles!"}, {"post_id": 17274, "ts": "2026-06-28T00:14:13Z", "hours": 3.0789, "text": "Today, the edit view successfully shows the right values, but the tomSelect dropdowns I tried to add were a complete failure. TODO: Fix tomSelect."}, {"post_id": 16846, "ts": "2026-06-27T10:53:15Z", "hours": 3.0275, "text": "Hey guys! Yesterday, I tried to make this generic model editor, and I have the layout, but the functionality is… well… broke for now. Also, to correct a bug, I had to rewrite the whole functionality of the database. Now I have a proper class wrapper instead of passing the raw database object around."}, {"post_id": 16008, "ts": "2026-06-26T00:05:24Z", "hours": 2.3042, "text": "Hello, programmers! Today, I improved more the webview, this time focusing on the list view. It successfully shows a list of one of the valid models (snippets, tags, languages) and information about it. TODO: Model creation page, editing page, ensure paginate works 100% fine and add searchbar functionality. Struggles: SQL (I’m having to work with raw SQL as sql.js doesn’t have ORM) and avoiding spaghetti code (trust me: It’s hard when you have to write HTML and frontend JavaScript in string literal templates)"}, {"post_id": 15366, "ts": "2026-06-24T23:50:43Z", "hours": 2.5772, "text": "Hey guys! Today, I worked in the webwiew. For now, we have this index page and the start of the list page. Other improvements were more docs focused, such as improving README.db and code commenting, and enforcing code structure with new ‘helpers’ folder and ‘html’ TypeScript file."}, {"post_id": 14726, "ts": "2026-06-23T22:43:44Z", "hours": 2.8136, "text": "Hey guys. After fighting against compilation errors, caused by libs and shx, and errors in database managing, caused by thread throttling by setup-ing db, that were solved using asynchronous tasks instead, now I’ve finally done the snippet creation part! The extension successfully saves the snippet, along with its title, description (can be empty) and language (in another table, as the snippet itself only carries the language id, in a one-to-many relationship, as a snippet have only one language, while a language can have lots of snippets). Next step is continuing the CRUD part, probably by including a web view."}, {"post_id": 13993, "ts": "2026-06-22T23:22:23Z", "hours": 2.3778, "text": "For now, Boilerplater has just a function to copy a highlighted section (still does nothing with it) and a database loader/initializer. Most of the concepts are still just ideas. Next step is to program the snippet saving part in database."}]...
|
Title: Boilerplater by @cauadev | Stardance
Devlo Title: Boilerplater by @cauadev | Stardance
Devlogs:
For now, Boilerplater has just a function to copy a highlighted section (still does nothing with it) and a database loader/initializer. Most of the concepts are still just ideas. Next step is to program the snippet saving part in database.
Hey guys. After fighting against compilation errors, caused by libs and shx, and errors in database managing, caused by thread throttling by setup-ing db, that were solved using asynchronous tasks instead, now I’ve finally done the snippet creation part! The extension successfully saves the snippet, along with its title, description (can be empty) and language (in another table, as the snippet itself only carries the language id, in a one-to-many relationship, as a snippet have only one language, while a language can have lots of snippets). Next step is continuing the CRUD part, probably by including a web view.
Hey guys! Today, I worked in the webwiew. For now, we have this index page and the start of the list page. Other improvements were more docs focused, such as improving README.db and code commenting, and enforcing code structure with new ‘helpers’ folder and ‘html’ TypeScript file.
Hello, programmers! Today, I improved more the webview, this time focusing on the list view. It successfully shows a list of one of the valid models (snippets, tags, languages) and information about it. TODO: Model creation page, editing page, ensure paginate works 100% fine and add searchbar functionality. Struggles: SQL (I’m having to work with raw SQL as sql.js doesn’t have ORM) and avoiding spaghetti code (trust me: It’s hard when you have to write HTML and frontend JavaScript in string literal templates)
Hey guys! Yesterday, I tried to make this generic model editor, and I have the layout, but the functionality is… well… broke for now. Also, to correct a bug, I had to rewrite the whole functionality of the database. Now I have a proper class wrapper instead of passing the raw database object around.
Today, the edit view successfully shows the right values, but the tomSelect dropdowns I tried to add were a complete failure. TODO: Fix tomSelect.
Hey guys! Now tom-select is 100% working and model editing works… at least 50%? Well, and we also have this gorgeous CSS styling that matches with Vscode styles!
Hey guys! Today, I officially finished CRUD! For all models! I also made tag assignment work 100% fine. Besides that, I improved a bit on code modularity and organization and did small patches. TODO: Improve the “R” and maybe the “D” of CRUD; Add the snippet pasting part (the app focus).
Hey guys! I did a search engine for the list view! It was kind of complex, as I had to deal with SQL joins (INNER JOIN for NOT NULL fields and LEFT JOIN for optional fields), a bridge table, JSON_GROUP_ARRAY, etc, but in the end, it worked. Just have to test a bit more the search bar as it sometimes have some glitches (every time a search is fired, the whole DOM is reloaded).
Hello guys! Now we can paste the snippets directly from the webview! Also, it has dynamic templates: [%%] executes simple JavaScript and can access variables such as BP_FILENAME or BP_YEAR [##] turns into tabstops: can be either [# index #] or [# index | default value #] where index is an integer, and optional default value can be used when user just skips the tabstop However, as a safety measure, the templates can’t directly access vscode, node.js or other possibly sensible variables, methods or functions.
Hello, fellow devs! I just wrote this info at index about the extension and about the templates. I also made the snippet typing more similar to Vscode coding, so now it has tab indentation, and auto closes quotes, parenthesis, brackets, curly braces and the extension templating “[%” and “[#”. TODO: Fix the frontend script that is now half broken.
Hello. I started preparing extension for release, so I changed compiler to esbuild and added the GSL3 license to my project. I also started trying to implement the option to add custom variables for templating to the extension, but it’s all broken.
Hello, fellow devs! Today, I solved the issues related to macros. Also, letting it in configs.json made it messy, counterintuitive and less integrated with the rest of the extension, so I moved it to the webviews, together with the snippets, tags and languages you’re all already familiar with. The evaluation order is very important, as this is what grants macros can be access by other macros, only needing to come before in the order. I’m really excited to see what will people come up with this.
Hello, fellow devs! Yesterday, I completed the CRUD for languages! You can now create, edit or even delete them. The internal name is searched in Vscode language IDs. To delete one, if you have snippets assigned to them, you can either reassign all of them to another language or delete them along with the language, both automatically made.
Hello, fellow devs! Today, I added this gorgeous gif into the readme. Also, I had to escape the content to be shown in list view (I discovered it the worst way: completely breaking the layout while playing around with HTML and PHP snippets) and added aliases for languages, which makes searching them easier. I removed frontend JS and CSS into actual files (they were string literals before) and, finally, moved some files around.
Bug patching and extension updating
Ships:
Hello guys! Today, I celebrate the shipping of Br-Zueira’s Boilerplater! It serves for saving (ctrl+u, mac: cmd+u) and pasting code snippets (ctrl+alt+u, mac: cmd+alt+u). It also supports categorizing them by tags and languages, giving descriptions and titles to them and even supports macros: [%%] -> Supports variables such as BP_FILENAME, some sandboxed JavaScript evaluation and even macros (variables defined by yourself using JavaScript code) [#n#] -> Tabstops, where n is an index (they’re standard Vscode tabstops: evaluated from 1 to infinity and beyond, 0 at last and can be grouped like in the example) [#n|fallback#] -> Tabstops but with a placeholder/fallback if user chooses to ignore the tabstop. Also, you can change the snippets by the extension itself (supports basic coding editor features, such as tab indenting or auto closing quotes). For all this. it uses an in-build webview (ctrl+alt+u, mac: cmd+alt+u). You can easily download it at Microsoft Extension Marketplace (just search by “Br-Zueira’s Boilerplater”). If you want, you can also get the VSIX file at GitHub Releases (then open it with Vscode and click “Download VSIX extension”). It’s plug and enjoy! Hope it really lets your workflow more frictionless!...
|
1794041354.0286558
|
1794127754.0286558
|
|
20346
|
AstroPad by @mostaphainouzam | Stardance
|
mostaphainouzam
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: AstroPad by @mostaphainouzam | Stardance
|
1793469221.4994626
|
1794074021.4994626
|
|
20347
|
My Guide to a Great Summer by @ednag | Stardance
|
ednag
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My Guide to a Great Summer by @ednag | Star Title: My Guide to a Great Summer by @ednag | Stardance...
|
1794048915.349634
|
1794653715.349634
|
|
20348
|
My very own WebOS by @natesachs | Stardance
|
natesachs
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @natesachs | Stardance
|
1793933563.0608137
|
1794538363.0608137
|
|
20349
|
Untitled project by @dart | Stardance
|
dart
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @dart | Stardance
|
1794052295.26743
|
1794657095.26743
|
|
20350
|
My awesome macropad! by @Seamus_h | Stardance
|
Seamus_h
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Seamus_h | Stardan Title: My awesome macropad! by @Seamus_h | Stardance...
|
1794063179.203059
|
1794667979.203059
|