|
24963
|
My awesome macropad! by @makinatapwsh | Stardance
|
makinatapwsh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @makinatapwsh | Sta Title: My awesome macropad! by @makinatapwsh | Stardance...
|
1792547304.2591856
|
1793152104.2591856
|
|
32563
|
The Lazy One by @nokira | Stardance
|
nokira
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-08T21:01:05Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "The Lazy One Slack Bot I created a Slack Bot which is Live 24/7 and replies to the commands specified in the screenshot. It was quite easy to understand how to create commands and how to use APIs to get data from other applications. I tried to organize the code as much as possible and added the features that I would have liked on a Slack Bot. The custom commands added without using the guide are: /lazy-exchange - This requires 3 arguments (see the screenshot) and can convert any given amount of money from one currency to another. /lazy-reminder - This requires 2 arguments and can set a reminder, pretty simple. /lazy-astronomy - This command gets NASA’s APOD and shows the title, explanation and image (or video link) /lazy-verse - Get a random Bible verse", "repo": "https://github.com/n0kira/TheLazyOne", "demo": "https://hackclub.slack.com/app_redirect?app=A0BFUR20QH3"}]...
|
[{"post_id": 24955, "ts": "202 [{"post_id": 24955, "ts": "2026-07-08T20:46:10Z", "hours": 1.7214, "text": "Devlog 2 New commands! Finally got the Bot to work with some more commands. The new commands are: /lazy-reminder [minutes] [reason] - Sets a reminder for a given amount of minutes and pings you back once the time has run out. /lazy-verse - Gives you a random Bible verse I also formatted the help command to look a little prettier and updated the GitHub repo with a list of all available commands and the steps to run the bot locally. I found this project quite easy, but it was fun! I learned how to manage API responses and obviously how to create a Slack bot. Also I got my Nest Account accepted, so now the Bot runs 24/7!! :)"}, {"post_id": 24730, "ts": "2026-07-08T14:36:19Z", "hours": 1.5242, "text": "Devlog 1 My first bot!! After more than 1 hour I managed to get my Bot running on my machine (Still waiting for Nest approval) and the 2 custom commands I added are: /lazy-exchange [OriginalCurrency] [TargetCurrency] [Amount] - This command lets you convert currency using the Frankfurter public API, just type the currency you want to convert, e.g. “USD”, then type the target currency, e.g. “EUR”, and finally the amount to convert, e.g. “1000”. /lazy-astronomy - to get NASA’s APOD As of now it only does these 2 pretty easy functions, but I’ll work on more commands soon! Fortunately, the code isn’t hard to understand and using APIs is pretty easy :)"}]...
|
Title: The Lazy One by @nokira | Stardance
Devlog Title: The Lazy One by @nokira | Stardance
Devlogs:
Devlog 1 My first bot!! After more than 1 hour I managed to get my Bot running on my machine (Still waiting for Nest approval) and the 2 custom commands I added are: /lazy-exchange [OriginalCurrency] [TargetCurrency] [Amount] - This command lets you convert currency using the Frankfurter public API, just type the currency you want to convert, e.g. “USD”, then type the target currency, e.g. “EUR”, and finally the amount to convert, e.g. “1000”. /lazy-astronomy - to get NASA’s APOD As of now it only does these 2 pretty easy functions, but I’ll work on more commands soon! Fortunately, the code isn’t hard to understand and using APIs is pretty easy :)
Devlog 2 New commands! Finally got the Bot to work with some more commands. The new commands are: /lazy-reminder [minutes] [reason] - Sets a reminder for a given amount of minutes and pings you back once the time has run out. /lazy-verse - Gives you a random Bible verse I also formatted the help command to look a little prettier and updated the GitHub repo with a list of all available commands and the steps to run the bot locally. I found this project quite easy, but it was fun! I learned how to manage API responses and obviously how to create a Slack bot. Also I got my Nest Account accepted, so now the Bot runs 24/7!! :)
Ships:
The Lazy One Slack Bot I created a Slack Bot which is Live 24/7 and replies to the commands specified in the screenshot. It was quite easy to understand how to create commands and how to use APIs to get data from other applications. I tried to organize the code as much as possible and added the features that I would have liked on a Slack Bot. The custom commands added without using the guide are: /lazy-exchange - This requires 3 arguments (see the screenshot) and can convert any given amount of money from one currency to another. /lazy-reminder - This requires 2 arguments and can set a reminder, pretty simple. /lazy-astronomy - This command gets NASA’s APOD and shows the title, explanation and image (or video link) /lazy-verse - Get a random Bible verse...
|
1793065702.37038
|
1793152102.37038
|
|
28747
|
BlackHole Simulation by @dionysus | Stardance
|
dionysus
|
1
|
7.0
|
105
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-26T13:34:35Z", "hours": 7.0, "multiplier": 15.67, "payout": 105, "blessing": "neutral", "text": "I built an interactive 3D black hole simulation using pure python using matplotlib, scipy, numba, and numpy! It simulations gravitational lensing, light bending, and accretion disk Doppler beaming, inspired by Jean-Pierre Luminet’s simulation of a black hole in a 1979 IBM computer The hardest part about the project was figuring out the math, the equations and the geometry of a black hole; as well as solving the lag problems and figuring out how to make this thing work without needing WebGL shaders and heavy engines. And that brings me to the part that makes me the most proud about this project, mostly people make a project like this in python using shaders and heavy engines but i didnt, i made it all in a standard window!", "repo": "https://github.com/dionysus887/BlackHoleSimulation", "demo": "https://github.com/dionysus887/BlackHoleSimulation/releases/tag/v.0.0.2"}]...
|
[{"post_id": 35181, "ts": "202 [{"post_id": 35181, "ts": "2026-07-26T13:17:54Z", "hours": 2.3072, "text": "BLACKHOLE SIMULATION #Devlog-5 Howdy everyonee! This afternoon i decided to SCRAP EVERYTHING AND START OVER AND FINISH THIS MUEHEHEHE, with the help of some prior research and experimenting I FINALLY CREATED THE BLACKHOLE SIMULATION. I completely scrapped the stippled IBM 1979 idea instead i used a different method! Enhancements in Visual and Post-Processing High-Energy Glow & Bloom: I added a delicate Gaussian makeup of bloom to the accretion disk for it to appear as though it were made of high-energy plasma, which also emits light. Tone Mapping: The high-contrast areas now remain visible as details rather than turning into glowing blobs. Relativistic Asymmetry: The side of the disk facing the observer emits brighter light while the side moving away appears dimmed. Dynamic Accretion Disk: The radial bands of plasma are animated now and flow smoothly around the horizon instead of appearing as an immovable ring. Smooth Camera Movements The interactive camera movement allows to move it around incidentally without impacting on performance."}, {"post_id": 32997, "ts": "2026-07-22T15:01:17Z", "hours": 1.2183, "text": "BLACKHOLE SIMULATION #Devlog-4 Hii everyone im back with more updates mueheheh! now this looks much more cooler than before ikik im so amazing and… nvm im being weird again lol! anywho! sooo i am using the ray tracer engine like before and i added some changes to the code to make it look even better like promised! Photon ring I added a glowing ring right around the event horizon, so the black hole pops even more! Gradient update Earlier in the code the whole colors looked blotchy but this time i made it look more seamless and better! Cleaner Silhouette you have to admit, this looks WAYYY cleaner than before and more cooler and yayyyy! im so hepy!! Conclusion So in the end we are getting more closer to the agenda of the IBM 1979 Luminet simulation, tho i would not wanna copy it whole since yk i wanna make this a bit of my own! Agenda for next time Make this look even more accurate since the physics engine is working phew"}, {"post_id": 31797, "ts": "2026-07-20T14:02:04Z", "hours": 1.4283, "text": "BLACKHOLE SIMULATION #Devlog-3 Alrighty everyone!sorry didnt post a devlog sooner, yk exams happened. ANYWAYS! i decided that the cereal looking wtv that was really pissing me off and besides looking at that thing was making me really demotivated so today i decided to change everything and instead of that weird thing i changed it to a ray tracer! PHYSICS ENGINE UPDATE the code previously only produced a flat ring, but now it looks like its bending light in the gravitational field. that means that its better than that cereal thing (yes i hated that with my whole heart, idk what made me think it looked cool). COOL RETRO LOOK it looks retro (inspired by luminets IBM supercomputer 1979 simulation yess) i know ball ikik. conclusion i fixed it a bit agenda honestly idk atp lets see what happens (yes i discovered emojis on here js now dont judge me) P.S this thing actually like “rotates” meaning that the dots you see move so like it looks sickk muehehe"}, {"post_id": 22906, "ts": "2026-07-05T15:28:36Z", "hours": 1.0728, "text": "BLACKHOLE SIMULATION #Devlog-2 Today I spent the day learning about the basic maths and fundamentals that i would need to understand how to simulate a black hole since i realized that my simulation rn doesnt look like a blackhole, and instead looks like im playing with cereal ngl. Todays agenda was to understand the geometry and physics behind Black Holes and the math on a high school level understanding, enough to code a bit more accurately, i made a txt file in the Project Folder too so that i could keep track of all the things i understood. THE MEANING BEHIND THE EQUATION I used the Schwarzschild Metric equaiton (yes the brian greene one, i know its inaccurate) in this case, and understood basically how we measure intervals in 4D space, and understanding the coefficients in the equation, although its inaccurate considering black hole actually spins and the equation that Brian Greene had upoladed assumed it as a non spinning and uncharged sphere in space, but all i needed was to know the coefficients so that i could understand the Matrix THE GEOMETRY So basically in this part, in the video i watched, we used Metric Tensors to actually ploth the graph and to define the space-time warping, so that i could simulate the effects on the simulation when im coding INTERSTELLAR CALCULATIONS I used this too muehehe it was a ScienceClic video, couldnt understand much, thought about noting some equations down in my notebook but oh well, i dont think ill be using them, tho to approach the black hole and the simulation of it, i would need to ask AI since again im not a PhD level student and im dumbo too, but oh well im very ambitious so yeahh. my next agenda would be to figure how to incorporate these infos and maths parts into the code to make it look more realistic and accurate, so probably ill be using books and AI to understand that! Conclusion Learnt about the Schwarschild Equation Learnt about how we use the equation as a metric tensor to polt the space-time warping Learnt a bit about the calculations for the black hole in the movie Interstellar Made a txt file about it so that i could keep referencing it as i work"}, {"post_id": 19156, "ts": "2026-06-30T12:26:51Z", "hours": 0.6578, "text": "BLACKHOLE SIMULATION #Devlog-1 Decided to start this project to appear cool, added the main physics part in the code, and had some progress :P will make it look more realistic next time for sure!"}]...
|
Title: BlackHole Simulation by @dionysus | Stardan Title: BlackHole Simulation by @dionysus | Stardance
Devlogs:
BLACKHOLE SIMULATION #Devlog-1 Decided to start this project to appear cool, added the main physics part in the code, and had some progress :P will make it look more realistic next time for sure!
BLACKHOLE SIMULATION #Devlog-2 Today I spent the day learning about the basic maths and fundamentals that i would need to understand how to simulate a black hole since i realized that my simulation rn doesnt look like a blackhole, and instead looks like im playing with cereal ngl. Todays agenda was to understand the geometry and physics behind Black Holes and the math on a high school level understanding, enough to code a bit more accurately, i made a txt file in the Project Folder too so that i could keep track of all the things i understood. THE MEANING BEHIND THE EQUATION I used the Schwarzschild Metric equaiton (yes the brian greene one, i know its inaccurate) in this case, and understood basically how we measure intervals in 4D space, and understanding the coefficients in the equation, although its inaccurate considering black hole actually spins and the equation that Brian Greene had upoladed assumed it as a non spinning and uncharged sphere in space, but all i needed was to know the coefficients so that i could understand the Matrix THE GEOMETRY So basically in this part, in the video i watched, we used Metric Tensors to actually ploth the graph and to define the space-time warping, so that i could simulate the effects on the simulation when im coding INTERSTELLAR CALCULATIONS I used this too muehehe it was a ScienceClic video, couldnt understand much, thought about noting some equations down in my notebook but oh well, i dont think ill be using them, tho to approach the black hole and the simulation of it, i would need to ask AI since again im not a PhD level student and im dumbo too, but oh well im very ambitious so yeahh. my next agenda would be to figure how to incorporate these infos and maths parts into the code to make it look more realistic and accurate, so probably ill be using books and AI to understand that! Conclusion Learnt about the Schwarschild Equation Learnt about how we use the equation as a metric tensor to polt the space-time warping Learnt a bit about the calculations for the black hole in the movie Interstellar Made a txt file about it so that i could keep referencing it as i work
BLACKHOLE SIMULATION #Devlog-3 Alrighty everyone!sorry didnt post a devlog sooner, yk exams happened. ANYWAYS! i decided that the cereal looking wtv that was really pissing me off and besides looking at that thing was making me really demotivated so today i decided to change everything and instead of that weird thing i changed it to a ray tracer! PHYSICS ENGINE UPDATE the code previously only produced a flat ring, but now it looks like its bending light in the gravitational field. that means that its better than that cereal thing (yes i hated that with my whole heart, idk what made me think it looked cool). COOL RETRO LOOK it looks retro (inspired by luminets IBM supercomputer 1979 simulation yess) i know ball ikik. conclusion i fixed it a bit agenda honestly idk atp lets see what happens (yes i discovered emojis on here js now dont judge me) P.S this thing actually like “rotates” meaning that the dots you see move so like it looks sickk muehehe
BLACKHOLE SIMULATION #Devlog-4 Hii everyone im back with more updates mueheheh! now this looks much more cooler than before ikik im so amazing and… nvm im being weird again lol! anywho! sooo i am using the ray tracer engine like before and i added some changes to the code to make it look even better like promised! Photon ring I added a glowing ring right around the event horizon, so the black hole pops even more! Gradient update Earlier in the code the whole colors looked blotchy but this time i made it look more seamless and better! Cleaner Silhouette you have to admit, this looks WAYYY cleaner than before and more cooler and yayyyy! im so hepy!! Conclusion So in the end we are getting more closer to the agenda of the IBM 1979 Luminet simulation, tho i would not wanna copy it whole since yk i wanna make this a bit of my own! Agenda for next time Make this look even more accurate since the physics engine is working phew
BLACKHOLE SIMULATION #Devlog-5 Howdy everyonee! This afternoon i decided to SCRAP EVERYTHING AND START OVER AND FINISH THIS MUEHEHEHE, with the help of some prior research and experimenting I FINALLY CREATED THE BLACKHOLE SIMULATION. I completely scrapped the stippled IBM 1979 idea instead i used a different method! Enhancements in Visual and Post-Processing High-Energy Glow & Bloom: I added a delicate Gaussian makeup of bloom to the accretion disk for it to appear as though it were made of high-energy plasma, which also emits light. Tone Mapping: The high-contrast areas now remain visible as details rather than turning into glowing blobs. Relativistic Asymmetry: The side of the disk facing the observer emits brighter light while the side moving away appears dimmed. Dynamic Accretion Disk: The radial bands of plasma are animated now and flow smoothly around the horizon instead of appearing as an immovable ring. Smooth Camera Movements The interactive camera movement allows to move it around incidentally without impacting on performance.
Ships:
I built an interactive 3D black hole simulation using pure python using matplotlib, scipy, numba, and numpy! It simulations gravitational lensing, light bending, and accretion disk Doppler beaming, inspired by Jean-Pierre Luminet’s simulation of a black hole in a 1979 IBM computer The hardest part about the project was figuring out the math, the equations and the geometry of a black hole; as well as solving the lag problems and figuring out how to make this thing work without needing WebGL shaders and heavy engines. And that brings me to the part that makes me the most proud about this project, mostly people make a project like this in python using shaders and heavy engines but i didnt, i made it all in a standard window!...
|
1793065700.3605506
|
1793152100.3605506
|
|
12299
|
Untitled project by @earth | Stardance
|
earth
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @earth | Stardance
|
1792547298.5315528
|
1793152098.5315528
|
|
7247
|
Blitz by @abhinavpv | Stardance
|
abhinavpv
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-04T17:10:27Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Blitz Type is a NASA-inspired typing speed trainer built with pure HTML, CSS, and JavaScript. The project features a real-time typing test with live WPM and accuracy tracking, animated starfield backgrounds, ambient space-themed music, mission-based progression, and a celebration screen with confetti after completing three passages. Users can practice on multiple unique passages while tracking their performance throughout the session. One challenge was implementing accurate typing statistics that count mistakes even if users later correct them. I also spent time refining the UI to create a polished “mission control” experience with smooth animations and responsive interactions. I’m proud of the overall user experience, especially the space-themed design, animated background, mission completion system, and the fact that everything was built without frameworks. To test: • Click “Try Project” • Click anywhere and start typing • Complete 3 passages to see the mission completion screen • Use Tab to skip passages and Esc to restart • Hover over the volume icon to adjust background music volume", "repo": "https://github.com/iamabhinavpv/blitz", "demo": "https://iamabhinavpv.github.io/blitz/"}]...
|
[{"post_id": 2239, "ts": "2026 [{"post_id": 2239, "ts": "2026-06-04T16:59:11Z", "hours": 1.2619, "text": "got the UI"}, {"post_id": 2152, "ts": "2026-06-04T14:22:17Z", "hours": 0.7933, "text": "just started working on UI"}]...
|
Title: Blitz by @abhinavpv | Stardance
Devlogs:
j Title: Blitz by @abhinavpv | Stardance
Devlogs:
just started working on UI
got the UI
Ships:
Blitz Type is a NASA-inspired typing speed trainer built with pure HTML, CSS, and JavaScript. The project features a real-time typing test with live WPM and accuracy tracking, animated starfield backgrounds, ambient space-themed music, mission-based progression, and a celebration screen with confetti after completing three passages. Users can practice on multiple unique passages while tracking their performance throughout the session. One challenge was implementing accurate typing statistics that count mistakes even if users later correct them. I also spent time refining the UI to create a polished “mission control” experience with smooth animations and responsive interactions. I’m proud of the overall user experience, especially the space-themed design, animated background, mission completion system, and the fact that everything was built without frameworks. To test: • Click “Try Project” • Click anywhere and start typing • Complete 3 passages to see the mission completion screen • Use Tab to skip passages and Esc to restart • Hover over the volume icon to adjust background music volume...
|
1793065698.121489
|
1793152098.121489
|
|
3497
|
My awesome macropad! by @FlyingCube | Stardance
|
FlyingCube
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @FlyingCube | Stard Title: My awesome macropad! by @FlyingCube | Stardance...
|
1792547297.674971
|
1793152097.674971
|
|
35732
|
Sprintbrary by @nextwatch | Stardance
|
nextwatch
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Sprintbrary by @nextwatch | Stardance
|
1792547296.8188856
|
1793152096.8188856
|
|
26610
|
MoSimulator Auto System by @sircheetodust | Starda MoSimulator Auto System by @sircheetodust | Stardance...
|
sircheetodust
|
1
|
5.12
|
39
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T20:54:12Z", "hours": 3.0, "multiplier": 11.56, "payout": 39, "blessing": "neutral", "text": "This is my MoSimulator Auto System. It allows user’s to create their own FRC Auto path in MoSimulator via logging key presses and assigning time stamps. User’s can save these Auto paths and even share them with others. Feedback is welcome!", "repo": "https://github.com/word9317/mosimulatorAutos", "demo": "https://github.com/word9317/mosimulatorAutos/releases/tag/Latest"}]...
|
[{"post_id": 27338, "ts": "202 [{"post_id": 27338, "ts": "2026-07-12T20:33:22Z", "hours": 0.3781, "text": "Started working on a method to get controller support working. This works by using hidHide, and adding the program as an exception, and then creating a virtual game pad and relaying inputs from the controller to the fake gamepad."}, {"post_id": 25637, "ts": "2026-07-10T01:28:52Z", "hours": 1.7436, "text": "Minor update with tkinter ui and ability to change keybinds"}, {"post_id": 17819, "ts": "2026-06-28T19:09:51Z", "hours": 1.5533, "text": "I added saving and loading! Auto’s can be shared now but there are a few requirements to run and share your auto’s such as stable framerate and consistent robot positioning. I also updated the readme. All that is left is improving the GitHub repo’s usability"}, {"post_id": 17357, "ts": "2026-06-28T03:22:33Z", "hours": 1.3317, "text": "Added UI and now playback semi-works UI has some broken parts. First run is my play. The second and third are the program’s. The OBS overlay thinks that im pressing the keys since the python program uses keyboard =D https://youtu.be/uFGnG4JAFzI <-testing video"}, {"post_id": 16579, "ts": "2026-06-26T23:30:42Z", "hours": 0.5053, "text": "I just started I made a basic key logger that tracks the keys used on rebuilt 2026 mosimulator. Currently it gives a bunch of detailed info on what keys you pressed"}]...
|
Title: MoSimulator Auto System by @sircheetodust | Title: MoSimulator Auto System by @sircheetodust | Stardance
Devlogs:
I just started I made a basic key logger that tracks the keys used on rebuilt 2026 mosimulator. Currently it gives a bunch of detailed info on what keys you pressed
Added UI and now playback semi-works UI has some broken parts. First run is my play. The second and third are the program’s. The OBS overlay thinks that im pressing the keys since the python program uses keyboard =D https://youtu.be/uFGnG4JAFzI <-testing video
I added saving and loading! Auto’s can be shared now but there are a few requirements to run and share your auto’s such as stable framerate and consistent robot positioning. I also updated the readme. All that is left is improving the GitHub repo’s usability
Minor update with tkinter ui and ability to change keybinds
Started working on a method to get controller support working. This works by using hidHide, and adding the program as an exception, and then creating a virtual game pad and relaying inputs from the controller to the fake gamepad.
Ships:
This is my MoSimulator Auto System. It allows user’s to create their own FRC Auto path in MoSimulator via logging key presses and assigning time stamps. User’s can save these Auto paths and even share them with others. Feedback is welcome!...
|
1793065696.1054482
|
1793152096.1054482
|
|
17955
|
Nexi Bot by @Kian_Sequeira | Stardance
|
Kian_Sequeira
|
0
|
1.17
|
0
|
[]
|
[{"post_id": 8339, "ts": "2026 [{"post_id": 8339, "ts": "2026-06-13T21:12:04Z", "hours": 1.1697, "text": "Nexi Devlog — 13/06/2026 Progress Update Began moving from concept into actual schematic and system design Focused on turning the idea of Nexi into something physically buildable What’s Been Done Defined Nexi as a rover-style companion bot Confirmed use of a 4 wheel independent drive system Each wheel will have its own motor for precise control Started building and wiring internal modules within the schematic Established basic signal flow between components Design Decisions Chose independent wheel drive instead of traditional steering This allows: Turning on the spot Better movement in tight spaces Easier recovery from difficult positions This approach makes Nexi more flexible for exploration Current State Core modules are now placed and wired in the schematic Overall system structure is beginning to take shape Ready to move into control and logic implementation Next Steps Add control signals such as clock and enable Implement output handling and selection logic Begin integrating sensors for environmental scanning Start designing the display system for Nexi’s face Test basic movement logic Notes The project is becoming more complex than originally planned, but this is intentional Nexi is designed to be both functional and expressive, not just a simple robot Long term goals still include interaction with the environment and basic object manipulation https://github.com/TheDevKing6/Nexi/blob/87b86cd2bc1cd5a623889c02fab7e5258aeb7dab/README.md"}]...
|
Title: Nexi Bot by @Kian_Sequeira | Stardance
Dev Title: Nexi Bot by @Kian_Sequeira | Stardance
Devlogs:
Nexi Devlog — 13/06/2026 Progress Update Began moving from concept into actual schematic and system design Focused on turning the idea of Nexi into something physically buildable What’s Been Done Defined Nexi as a rover-style companion bot Confirmed use of a 4 wheel independent drive system Each wheel will have its own motor for precise control Started building and wiring internal modules within the schematic Established basic signal flow between components Design Decisions Chose independent wheel drive instead of traditional steering This allows: Turning on the spot Better movement in tight spaces Easier recovery from difficult positions This approach makes Nexi more flexible for exploration Current State Core modules are now placed and wired in the schematic Overall system structure is beginning to take shape Ready to move into control and logic implementation Next Steps Add control signals such as clock and enable Implement output handling and selection logic Begin integrating sensors for environmental scanning Start designing the display system for Nexi’s face Test basic movement logic Notes The project is becoming more complex than originally planned, but this is intentional Nexi is designed to be both functional and expressive, not just a simple robot Long term goals still include interaction with the environment and basic object manipulation https://github.com/TheDevKing6/Nexi/blob/87b86cd2bc1cd5a623889c02fab7e5258aeb7dab/README.md...
|
1792547295.8943868
|
1793152095.8943868
|
|
2256
|
My awesome macropad! by @DPAK | Stardance
|
DPAK
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @DPAK | Stardance
|
1792547295.0479448
|
1793152095.0479448
|
|
28406
|
Frictionless by @aramb-dev | Stardance
|
aramb-dev
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @aramb-dev | Stardance
|
1792547294.2072284
|
1793152094.2072284
|
|
27704
|
Mirroring Arm by @santi_s | Stardance
|
santi_s
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Mirroring Arm by @santi_s | Stardance
|
1792547293.3804677
|
1793152093.3804677
|
|
31098
|
egraich_dev by @egraich | Stardance
|
egraich
|
1
|
30.95
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-12T00:23:09Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my first website ever! It was so hard to understand the tag structure in html after the familiar function structure in my stack: Python & C++. I dreamed of having a personal website for a beautiful email address :) I made my site in a neon style and I like it. I googled some SVG icons for contact links and they look cool with the custom color style of my website.", "repo": "https://github.com/egraich/egraich_dev", "demo": "https://egraich.dev"}]...
|
[{"post_id": 40613, "ts": "202 [{"post_id": 40613, "ts": "2026-08-04T08:34:59Z", "hours": 5.9519, "text": "Haven’t dropped a devlog in a minute since I was taking a break, but I spent the last few days quietly cleaning up my backend setup. My website is now completely on Cloudflare Pages, hooked right into my DNS management. It’s way more convenient to have everything managed in a single place. Also set up a _redirects file. Now, instead of throwing around ugly, long links like: discord.com/users/1024683767488585819 I can literally just type egraich.dev/ds (or /discord ). Same goes for GitHub, Telegram, ORCID and the rest. To top it off, I enabled Cloudflare email forwarding. Any random mail sent to [email protected] goes straight to my personal Gmail. Boom, free professional email!"}, {"post_id": 26930, "ts": "2026-07-12T00:22:48Z", "hours": 0.5589, "text": "I’ve added my avatar as a favicon, but creating a custom vector logo sounds like a cool project for the future 🤔"}, {"post_id": 26915, "ts": "2026-07-11T23:45:10Z", "hours": 0.7536, "text": "I reworked README and add script fo automatic year-updates in copyright-footer. Now deployed! https://egraich.github.io/egraich_dev/"}, {"post_id": 26896, "ts": "2026-07-11T23:00:07Z", "hours": 23.3711, "text": "I Spent a lot of time to understand web sites structure after Python and C++ 😑"}]...
|
Title: egraich_dev by @egraich | Stardance
Devlog Title: egraich_dev by @egraich | Stardance
Devlogs:
I Spent a lot of time to understand web sites structure after Python and C++ 😑
I reworked README and add script fo automatic year-updates in copyright-footer. Now deployed! https://egraich.github.io/egraich_dev/
I’ve added my avatar as a favicon, but creating a custom vector logo sounds like a cool project for the future 🤔
Haven’t dropped a devlog in a minute since I was taking a break, but I spent the last few days quietly cleaning up my backend setup. My website is now completely on Cloudflare Pages, hooked right into my DNS management. It’s way more convenient to have everything managed in a single place. Also set up a _redirects file. Now, instead of throwing around ugly, long links like: discord.com/users/1024683767488585819 I can literally just type egraich.dev/ds (or /discord ). Same goes for GitHub, Telegram, ORCID and the rest. To top it off, I enabled Cloudflare email forwarding. Any random mail sent to [email protected] goes straight to my personal Gmail. Boom, free professional email!
Ships:
I made my first website ever! It was so hard to understand the tag structure in html after the familiar function structure in my stack: Python & C++. I dreamed of having a personal website for a beautiful email address :) I made my site in a neon style and I like it. I googled some SVG icons for contact links and they look cool with the custom color style of my website....
|
1793065693.2831216
|
1793152093.2831216
|
|
30951
|
My first slack bot! by @kushparmar1029 | Stardance
|
kushparmar1029
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @kushparmar1029 | St Title: My first slack bot! by @kushparmar1029 | Stardance...
|
1792547292.510382
|
1793152092.510382
|
|
28632
|
My awesome macropad! by @Armbidoof | Stardance
|
Armbidoof
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Armbidoof | Starda Title: My awesome macropad! by @Armbidoof | Stardance...
|
1792547291.6573431
|
1793152091.6573431
|
|
9443
|
Better Music by @muntean_andrew | Stardance
|
muntean_andrew
|
2
|
33.0
|
323
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-27T09:14:00Z", "hours": 20.0, "multiplier": 8.54, "payout": 202, "blessing": "neutral", "text": "I built Better Music, a lightweight music player designed for seamless audio playback and intuitive library management. It features an instant search-as-you-type engine, interactive queue management, customizable playlist/album details, detailed listening activity tracking, can read synced/unsynced lyrics tags from the music files and show them like Spotify, a “Permanent Queue” (PQ) feature for when you want listen to a list of particular songs for just that one moment and don’t want to create a whole new playlist for it and you can customize it’s color palette and even the base border radius to your liking in the settings. To bring this to life, I combined the desktop application capabilities of Electron with a robust local relational database powered by SQLite 3, all wrapped in a sleek, responsive frontend built using HTML5, CSS, SCSS and JavaScript. This is just an update and the majority of the time spent on the project was used to make improvements in the backend management of the song objects and to make the UI better reflect and update according to the data in the backend. But also I’ve added lyrics support and if your music files have lyrics tags embedded in them the app will take full advantage of them by enabling you to see each verse when it is singed and also skip to that one part you like the most just by clicking on your favorite line in the track. Testing the app is incredibly simple—there is no need to clone deep source code dependencies or set up a complex development build environment. Where to get it: Head straight over to the Releases section of this repository. How to run it: Download the compiled .zip file for your platform, extract its contents into any folder on your computer, and double-click the main application executable (e.g., Better-Music.exe). Note on Updates: If you are testing store-packaged builds or encountered deployment errors (like MSIX package revision conflicts in the Partner Center), utilizing the raw ZIP release is the fastest, cleanest way to experience the app right now.", "repo": "https://github.com/AliendsOG/Better-Music", "demo": "https://github.com/AliendsOG/Better-Music/releases/tag/better-music"}, {"ship_num": 2, "ts": "2026-06-15T15:17:37Z", "hours": 13.0, "multiplier": 9.67, "payout": 121, "blessing": "neutral", "text": "I built Better Music, a lightweight music player designed for seamless audio playback and intuitive library management. It features an instant search-as-you-type engine, interactive queue management, customizable playlist/album details, detailed listening activity tracking, a “Permanent Queue” (PQ) feature for when you want listen to a list of particular songs for just that one moment and don’t want to create a whole new playlist for it and you can customize it’s color palette to your liking in the settings. To bring this to life, I combined the desktop application capabilities of Electron with a robust local relational database powered by SQLite 3, all wrapped in a sleek, responsive frontend built using HTML5, CSS, SCSS and JavaScript. The challenging part was the steep learning curve as I hadn’t done anything on this scale before. I had to learn to connect the 2 Electron processes together seamlessly. Furthermore I had to dive into the world of databases with SQLite 3, which was uncharted territory for me. I had to use AI to help me learn these things and also to brainstorm ideas about hoe to optimize the app. For instance, when the idea of the search-as-you-type feature came up to me I envisioned a kind of tree structure with letters and that for every song, album, playlist name the app would create the branches in the tree so it would be a very fast and efficient search algorithm, and when I talked to the AI about it I found out that this kind of structure is called a trie. I am really proud that I’ve managed to build a clean, responsive and fast music player that tracks the user’s listening activity and stores it on device. Also it was very exciting when I tested the search feature and it worked perfectly. I’m also proud of the engineering journey itself. I utilized Gemini as an active learning collaborator to help me unpack the architectural patterns of Electron and master data persistence with SQLite 3. Turning that complex technical guidance into a functional, polished desktop product was incredibly rewarding. Testing the app is incredibly simple—there is no need to clone deep source code dependencies or set up a complex development build environment. Where to get it: Head straight over to the Releases section of this repository. How to run it: Download the compiled .zip file for your platform, extract its contents into any folder on your computer, and double-click the main application executable (e.g., Better-Music.exe). Note on Updates: If you are testing store-packaged builds or encountered deployment errors (like MSIX package revision conflicts in the Partner Center), utilizing the raw ZIP release is the fastest, cleanest way to experience the app right now.", "repo": "https://github.com/AliendsOG/Better-Music", "demo": "https://github.com/AliendsOG/Better-Music/releases/tag/better-music"}]...
|
[{"post_id": 74382, "ts": "202 [{"post_id": 74382, "ts": "2026-09-27T09:04:01Z", "hours": 1.0467, "text": "This is the last devlog before shipping the project update. This has been an exciting journey and I am very satisfied with the result! I do wish there would be a bit more time left for the event to continue so I could ship even more things but all good things must come to an end, and this one is a happy ending. I’ve made the necessary last minute touches to make sure that everything works as it should."}, {"post_id": 74114, "ts": "2026-09-26T18:26:03Z", "hours": 1.6697, "text": "Added new ways to customize the player to the user’s liking and fixed that prevented the app from reading the user_version of the database which in return made the app “update” the DB everytime it started."}, {"post_id": 73281, "ts": "2026-09-24T18:58:58Z", "hours": 0.4853, "text": "YEEEEEESS, FINALLLYYYYYY, we have synced lyrics in the app. I know it’s not the most glamorous UI at the moment, but it is still something, and the other music players don’t even do this, like at most they show the lyrics with the timestamps and that’s it, no scaling of the verse, nothing. In future updates certainly I’ll make the UI more polished because it need a lot of it. Still I am happy that I’ve made it this far and after a bit of clean up and maybe some optimizations I’ll ship the project."}, {"post_id": 73261, "ts": "2026-09-24T18:10:26Z", "hours": 1.5067, "text": "I’ve finally found the culprit that prevented me from getting the synced lyrics, now the app can read the synced lyrics from music filed. YEEEEEEE Now the “only” thing is to make the UI for them, which I hope would be easy and fast. 😅"}, {"post_id": 73191, "ts": "2026-09-24T15:40:21Z", "hours": 2.4517, "text": "Trying to add lyrics to the app. But it is a bit of a mess cause in the Samsung Music and Apple Music apps these files contain time stamps for each verse and so I was thinking to read those time stamps and to highlight the verse that is played at that time, but my app doesn’t read those things and I don’t know why. An explanation might be that those apps ping free open source databases of lyrics based on the song details, but I am not really sure."}, {"post_id": 69252, "ts": "2026-09-16T17:55:55Z", "hours": 4.7486, "text": "Another day, another restructuring I guess. 😅 I’ve decided to give each album an id instead of relying on it’s name as the identifier as I did previously. Also I’ve changed the Play function to work with song ids and album ids instead of names. This is because if the name of the song or the album had any of these 2 characters: ’ or “ it would mess up with the HTML structure and the song would not play if the user clicked on it. Not gonna lie, I think that my code now is a little spaghetti and for sure someone with more experience and knowledge on how to structure a music player would have done a much better job than me at this, but still. The main caveat that I think could appear in the future is that the Play function can’t take numbered ids for playlists and I have to rely in the playlist’s name because the function would have no way to distinguish between them at the moment and I don’t want to make another spaghetti to fix this. 😅 In other news, I have successfully changed the backend to update the DB version for the user of the older version of the app and to add the new “lyrics” column and also the app can read the embedded lyrics from the music files. Now the “only” thing remaining is to add the lyrics to the UI and to parse the strings and make the verses synchronize with the song and this feature would be fully implemented."}, {"post_id": 57422, "ts": "2026-08-29T15:54:13Z", "hours": 2.9864, "text": "After successfully changing the song objects management under the hood from the previous devlog I now added an indicator for which song is currently playing. For now I’ve just set the background of the song to be the primary color selected by the user. Also I’ve changed the border radius for everything to be based on one variable so that the user could change it in the settings (but didn’t yet implement the UI for that) cause everyone has their own preference for these things. The first screenshot is with the border radius set a bit higher (30px) than my default one (23px), and the second one is with the border radius set to 0. Additionally I am changing the SQLite db in the backend to support lyrics because I want to add them to the app."}, {"post_id": 56489, "ts": "2026-08-28T08:43:54Z", "hours": 4.7514, "text": "I am currently working on optimizing the code so that changes like adding songs to a playlist or liking a song update instantly across all pages because this was a flaw of my old architecture of the app cause I didn’t just have 1 list of song objects that every album and artist referenced to but instead every album and artist had their own song objects and the list of favorite songs was also composed of song object. So it was a mess of duplicate song objects. Now I am changing things so that there is only one list of song object and albums have just a list of song ids in them so they reference the song object list, this way each change is global. This would hopefully fix the current synchronization issues that sometimes occur in the current version. This change would also allow me to add an indicator that a song is playing when the user looks at an album from which a song plays currently. Additionally I want to add a listening history page where the user can see their listening activity on the app and also maybe add some rewards depending on how much time they spent listening to an artist or album to gamify the experience a little."}, {"post_id": 8658, "ts": "2026-06-14T11:47:22Z", "hours": 0.4289, "text": "Solving some App Manifest problems"}, {"post_id": 8040, "ts": "2026-06-13T12:20:46Z", "hours": 1.7347, "text": "Updating the package on the Microsoft Store"}, {"post_id": 7956, "ts": "2026-06-13T08:50:15Z", "hours": 1.2564, "text": "Added some customization options and a settings menu"}, {"post_id": 7328, "ts": "2026-06-12T06:33:15Z", "hours": 1.7297, "text": "Updating the interface a little"}, {"post_id": 4874, "ts": "2026-06-08T13:08:06Z", "hours": 3.1572, "text": "Implemented search functionality"}, {"post_id": 3541, "ts": "2026-06-06T15:01:03Z", "hours": 2.7919, "text": "Adding clear queue button and a Permanent Queue or Temporary Playlist feature that saves the songs that you add to the queue even after you listen to them so you can set it to repeat all and still have the songs that you wanted"}, {"post_id": 3394, "ts": "2026-06-06T09:28:56Z", "hours": 1.4672, "text": "I implemented the function of changing the name and cover of a playlist"}]...
|
Title: Better Music by @muntean_andrew | Stardance Title: Better Music by @muntean_andrew | Stardance
Devlogs:
I implemented the function of changing the name and cover of a playlist
Adding clear queue button and a Permanent Queue or Temporary Playlist feature that saves the songs that you add to the queue even after you listen to them so you can set it to repeat all and still have the songs that you wanted
Implemented search functionality
Updating the interface a little
Added some customization options and a settings menu
Updating the package on the Microsoft Store
Solving some App Manifest problems
I am currently working on optimizing the code so that changes like adding songs to a playlist or liking a song update instantly across all pages because this was a flaw of my old architecture of the app cause I didn’t just have 1 list of song objects that every album and artist referenced to but instead every album and artist had their own song objects and the list of favorite songs was also composed of song object. So it was a mess of duplicate song objects. Now I am changing things so that there is only one list of song object and albums have just a list of song ids in them so they reference the song object list, this way each change is global. This would hopefully fix the current synchronization issues that sometimes occur in the current version. This change would also allow me to add an indicator that a song is playing when the user looks at an album from which a song plays currently. Additionally I want to add a listening history page where the user can see their listening activity on the app and also maybe add some rewards depending on how much time they spent listening to an artist or album to gamify the experience a little.
After successfully changing the song objects management under the hood from the previous devlog I now added an indicator for which song is currently playing. For now I’ve just set the background of the song to be the primary color selected by the user. Also I’ve changed the border radius for everything to be based on one variable so that the user could change it in the settings (but didn’t yet implement the UI for that) cause everyone has their own preference for these things. The first screenshot is with the border radius set a bit higher (30px) than my default one (23px), and the second one is with the border radius set to 0. Additionally I am changing the SQLite db in the backend to support lyrics because I want to add them to the app.
Another day, another restructuring I guess. 😅 I’ve decided to give each album an id instead of relying on it’s name as the identifier as I did previously. Also I’ve changed the Play function to work with song ids and album ids instead of names. This is because if the name of the song or the album had any of these 2 characters: ’ or “ it would mess up with the HTML structure and the song would not play if the user clicked on it. Not gonna lie, I think that my code now is a little spaghetti and for sure someone with more experience and knowledge on how to structure a music player would have done a much better job than me at this, but still. The main caveat that I think could appear in the future is that the Play function can’t take numbered ids for playlists and I have to rely in the playlist’s name because the function would have no way to distinguish between them at the moment and I don’t want to make another spaghetti to fix this. 😅 In other news, I have successfully changed the backend to update the DB version for the user of the older version of the app and to add the new “lyrics” column and also the app can read the embedded lyrics from the music files. Now the “only” thing remaining is to add the lyrics to the UI and to parse the strings and make the verses synchronize with the song and this feature would be fully implemented.
Trying to add lyrics to the app. But it is a bit of a mess cause in the Samsung Music and Apple Music apps these files contain time stamps for each verse and so I was thinking to read those time stamps and to highlight the verse that is played at that time, but my app doesn’t read those things and I don’t know why. An explanation might be that those apps ping free open source databases of lyrics based on the song details, but I am not really sure.
I’ve finally found the culprit that prevented me from getting the synced lyrics, now the app can read the synced lyrics from music filed. YEEEEEEE Now the “only” thing is to make the UI for them, which I hope would be easy and fast. 😅
YEEEEEESS, FINALLLYYYYYY, we have synced lyrics in the app. I know it’s not the most glamorous UI at the moment, but it is still something, and the other music players don’t even do this, like at most they show the lyrics with the timestamps and that’s it, no scaling of the verse, nothing. In future updates certainly I’ll make the UI more polished because it need a lot of it. Still I am happy that I’ve made it this far and after a bit of clean up and maybe some optimizations I’ll ship the project.
Added new ways to customize the player to the user’s liking and fixed that prevented the app from reading the user_version of the database which in return made the app “update” the DB everytime it started.
This is the last devlog before shipping the project update. This has been an exciting journey and I am very satisfied with the result! I do wish there would be a bit more time left for the event to continue so I could ship even more things but all good things must come to an end, and this one is a happy ending. I’ve made the necessary last minute touches to make sure that everything works as it should.
Ships:
I built Better Music, a lightweight music player designed for seamless audio playback and intuitive library management. It features an instant search-as-you-type engine, interactive queue management, customizable playlist/album details, detailed listening activity tracking, a “Permanent Queue” (PQ) feature for when you want listen to a list of particular songs for just that one moment and don’t want to create a whole new playlist for it and you can customize it’s color palette to your liking in the settings. To bring this to life, I combined the desktop application capabilities of Electron with a robust local relational database powered by SQLite 3, all wrapped in a sleek, responsive frontend built using HTML5, CSS, SCSS and JavaScript. The challenging part was the steep learning curve as I hadn’t done anything on this scale before. I had to learn to connect the 2 Electron processes together seamlessly. Furthermore I had to dive into the world of databases with SQLite 3, which was uncharted territory for me. I had to use AI to help me learn these things and also to brainstorm ideas about hoe to optimize the app. For instance, when the idea of the search-as-you-type feature came up to me I envisioned a kind of tree structure with letters and that for every song, album, playlist name the app would create the branches in the tree so it would be a very fast and efficient search algorithm, and when I talked to the AI about it I found out that this kind of structure is called a trie. I am really proud that I’ve managed to build a clean, responsive and fast music player that tracks the user’s listening activity and stores it on device. Also it was very exciting when I tested the search feature and it worked perfectly. I’m also proud of the engineering journey itself. I utilized Gemini as an active learning collaborator to help me unpack the architectural patterns of Electron and master data persistence with SQLite 3. Turning that complex technical guidance into a functional, polished desktop product was incredibly rewarding. Testing the app is incredibly simple—there is no need to clone deep source code dependencies or set up a complex development build environment. Where to get it: Head straight over to the Releases section of this repository. How to run it: Download the compiled .zip file for your platform, extract its contents into any folder on your computer, and double-click the main application executable (e.g., Better-Music.exe). Note on Updates: If you are testing store-packaged builds or encountered deployment errors (like MSIX package revision conflicts in the Partner Center), utilizing the raw ZIP release is the fastest, cleanest way to experience the app right now.
I built Better Music, a lightweight music player designed for seamless audio playback and intuitive library management. It features an instant search-as-you-type engine, interactive queue management, customizable playlist/album details, detailed listening activity tracking, can read synced/unsynced lyrics tags from the music files and show them like Spotify, a “Permanent Queue” (PQ) feature for when you want listen to a list of particular songs for just that one moment and don’t want to create a whole new playlist for it and you can customize it’s color palette and even the base border radius to your liking in the settings. To bring this to life, I combined the desktop application capabilities of Electron with a robust local relational database powered by SQLite 3, all wrapped in a sleek, responsive frontend built using HTML5, CSS, SCSS and JavaScript. This is just an update and the majority of the time spent on the project was used to make improvements in the backend management of the song objects and to make the UI better reflect and update according to the data in the backend. But also I’ve added lyrics support and if your music files have lyrics tags embedded in them the app will take full advantage of them by enabling you to see each verse when it is singed and also skip to that one part you like the most just by clicking on your favorite line in the track. Testing the app is incredibly simple—there is no need to clone deep source code dependencies or set up a complex development build environment. Where to get it: Head straight over to the Releases section of this repository. How to run it: Download the compiled .zip file for your platform, extract its contents into any folder on your computer, and double-click the main application executable (e.g., Better-Music.exe). Note on Updates: If you are testing store-packaged builds or encountered deployment errors (like MSIX package revision conflicts in the Partner Center), utilizing the raw ZIP release is the fastest, cleanest way to experience the app right now....
|
1793065691.2060225
|
1793152091.2060225
|
|
2142
|
My first slack bot! by @Aubrey | Stardance
|
Aubrey
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Aubrey | Stardance
|
1792547290.784953
|
1793152090.784953
|
|
2813
|
Butterfly Wall Display by @kdhriti15 | Stardance
|
kdhriti15
|
0
|
0.67
|
0
|
[]
|
[{"post_id": 506, "ts": "2026- [{"post_id": 506, "ts": "2026-06-01T23:57:30Z", "hours": 0.6703, "text": "Wrote Code for the Servos and Touch Module"}]...
|
Title: Butterfly Wall Display by @kdhriti15 | Star Title: Butterfly Wall Display by @kdhriti15 | Stardance
Devlogs:
Wrote Code for the Servos and Touch Module...
|
1792547289.9412513
|
1793152089.9412513
|
|
22847
|
Text Based RPG Game by @Riptide | Stardance
|
Riptide
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Text Based RPG Game by @Riptide | Stardance
|
1792547289.0913277
|
1793152089.0913277
|
|
16140
|
My very own WebOS by @sircheetodust | Stardance
|
sircheetodust
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-12T22:20:05Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is unnamed OS. Feature list: Custom window system Allows window resizing Easier app creation(one JavaScript command) Completely custom notepad app(No Pad - -) Saving to browser’s localstorage so that notes are saved even through reloads and closing and reopening the website Loading screen simulator Game of the year, source code in its folder This is my first project for hack club so any feedback is appreciated", "repo": "https://github.com/word9317/webOs", "demo": "https://word9317.github.io/webOs/"}]...
|
[{"post_id": 7727, "ts": "2026 [{"post_id": 7727, "ts": "2026-06-12T21:55:44Z", "hours": 0.54, "text": "Updated the readme to be more comprehensive"}, {"post_id": 7697, "ts": "2026-06-12T21:05:35Z", "hours": 1.0128, "text": "Added a notepad app I added NoPad –, it has saving that persists through reloads and text that tells you if its saved or not!"}, {"post_id": 7559, "ts": "2026-06-12T17:14:15Z", "hours": 1.1333, "text": "Added a new app! Ever since i migrated to a new window system, adding apps is so much easier. You create your app as an html file and just add a shortcut to the desktop to open it. I added a very fun game called loading screen simulator. I am going to make some more apps soon!"}, {"post_id": 7204, "ts": "2026-06-12T00:58:04Z", "hours": 1.5847, "text": "Lots of work was done! I redid the background and also completely revised the window system. Now the window has maximizing. Window system is polished so that apps can be launched via a javascript command(scripts are revised versions of scripts i used in a previous project)"}, {"post_id": 7078, "ts": "2026-06-11T21:07:39Z", "hours": 1.6397, "text": "Created a basic window system. Added widgets. Going to continue with the tutorial and then customize it"}]...
|
Title: My very own WebOS by @sircheetodust | Stard Title: My very own WebOS by @sircheetodust | Stardance
Devlogs:
Created a basic window system. Added widgets. Going to continue with the tutorial and then customize it
Lots of work was done! I redid the background and also completely revised the window system. Now the window has maximizing. Window system is polished so that apps can be launched via a javascript command(scripts are revised versions of scripts i used in a previous project)
Added a new app! Ever since i migrated to a new window system, adding apps is so much easier. You create your app as an html file and just add a shortcut to the desktop to open it. I added a very fun game called loading screen simulator. I am going to make some more apps soon!
Added a notepad app I added NoPad –, it has saving that persists through reloads and text that tells you if its saved or not!
Updated the readme to be more comprehensive
Ships:
This is unnamed OS. Feature list: Custom window system Allows window resizing Easier app creation(one JavaScript command) Completely custom notepad app(No Pad - -) Saving to browser’s localstorage so that notes are saved even through reloads and closing and reopening the website Loading screen simulator Game of the year, source code in its folder This is my first project for hack club so any feedback is appreciated...
|
1793065688.2670016
|
1793152088.2670016
|
|
8652
|
Market Regime Dashboard + Backtester by @jacksalee Market Regime Dashboard + Backtester by @jacksaleeby | Stardance...
|
jacksaleeby
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Market Regime Dashboard + Backtester by @ja Title: Market Regime Dashboard + Backtester by @jacksaleeby | Stardance...
|
1792547288.237052
|
1793152088.237052
|
|
36900
|
My own site! by @pratyushshandilya | Stardance
|
pratyushshandilya
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @pratyushshandilya | Starda Title: My own site! by @pratyushshandilya | Stardance...
|
1792547287.3609607
|
1793152087.3609607
|
|
17660
|
My awesome macropad! by @levifrederickharper | Sta My awesome macropad! by @levifrederickharper | Stardance...
|
levifrederickharper
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @levifrederickharpe Title: My awesome macropad! by @levifrederickharper | Stardance...
|
1792547286.5037653
|
1793152086.5037653
|
|
21740
|
Cosmic Bounce by @kk_vun | Stardance
|
kk_vun
|
1
|
1.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T20:58:50Z", "hours": 1.0, "multiplier": 1.19, "payout": 1, "blessing": "neutral", "text": "I made a flappy bird clone but you are a star with fuel", "repo": "https://github.com/kkv-lang/cosmic-bounce", "demo": "https://kkv-lang.github.io/cosmic-bounce/"}]...
|
[{"post_id": 11445, "ts": "202 [{"post_id": 11445, "ts": "2026-06-18T18:30:36Z", "hours": 0.5228, "text": "Finished the core features for Cosmic Bounce! What I did:Built the layout using HTML and styled the space canvas background with CSS.Wrote the game logic in JavaScript, including gravity physics so the star falls.Added features like player lives, XP, an energy fuel gauge, and custom sound effects for jumping and collecting items.Next steps: Testing the game loop and polishing the mechanics!"}]...
|
Title: Cosmic Bounce by @kk_vun | Stardance
Devlo Title: Cosmic Bounce by @kk_vun | Stardance
Devlogs:
Finished the core features for Cosmic Bounce! What I did:Built the layout using HTML and styled the space canvas background with CSS.Wrote the game logic in JavaScript, including gravity physics so the star falls.Added features like player lives, XP, an energy fuel gauge, and custom sound effects for jumping and collecting items.Next steps: Testing the game loop and polishing the mechanics!
Ships:
I made a flappy bird clone but you are a star with fuel...
|
1793065686.433505
|
1793152086.433505
|
|
33156
|
Fighter Jet game by @ap7 | Stardance
|
ap7
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Fighter Jet game by @ap7 | Stardance
|
1792547285.6715207
|
1793152085.6715207
|
|
23509
|
Untitled by @takshsrivastava12345 | Stardance
|
takshsrivastava12345
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @takshsrivastava12345 | Stardan Title: Untitled by @takshsrivastava12345 | Stardance...
|
1792547284.8205137
|
1793152084.8205137
|
|
24884
|
Art Swap Website by @PEPERI | Stardance
|
PEPERI
|
1
|
12.02
|
69
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-15T15:44:15Z", "hours": 11.0, "multiplier": 6.5, "payout": 69, "blessing": "neutral", "text": "I made a website about a community art swap I want to start! Challenges were getting it to be accessible for smaller screens and I enjoyed seeing it come from design to life.", "repo": "https://github.com/peppapigX10/ArtSwap", "demo": "https://peppapigx10.github.io/ArtSwap/"}]...
|
[{"post_id": 29889, "ts": "202 [{"post_id": 29889, "ts": "2026-07-17T01:36:23Z", "hours": 0.5747, "text": "Fixed a gap between how to join section and made edits to page2 (home) photo"}, {"post_id": 29678, "ts": "2026-07-16T19:02:20Z", "hours": 0.4453, "text": "Just fixed the menu rect to match the background (added gradient)"}, {"post_id": 28927, "ts": "2026-07-15T15:15:54Z", "hours": 5.7322, "text": "Basically finished the website made it accessible for smaller screens, also the menu rect used to be an image (cause I didn’t know there is a blur function in css) so I changed that, couldn’t fit it all in the screenshot but its a whole website not just this page"}, {"post_id": 16036, "ts": "2026-06-26T01:31:16Z", "hours": 4.8975, "text": "Working on a community art swap! Made the overall website, buttons are functionable! Will work on replacing placeholder imgs in the how to join section"}]...
|
Title: Art Swap Website by @PEPERI | Stardance
De Title: Art Swap Website by @PEPERI | Stardance
Devlogs:
Working on a community art swap! Made the overall website, buttons are functionable! Will work on replacing placeholder imgs in the how to join section
Basically finished the website made it accessible for smaller screens, also the menu rect used to be an image (cause I didn’t know there is a blur function in css) so I changed that, couldn’t fit it all in the screenshot but its a whole website not just this page
Just fixed the menu rect to match the background (added gradient)
Fixed a gap between how to join section and made edits to page2 (home) photo
Ships:
I made a website about a community art swap I want to start! Challenges were getting it to be accessible for smaller screens and I enjoyed seeing it come from design to life....
|
1793065684.6726246
|
1793152084.6726246
|
|
24002
|
Esp 32 wifi and blutooth jammer by @Taseen | Stard Esp 32 wifi and blutooth jammer by @Taseen | Stardance...
|
Taseen
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Esp 32 wifi and blutooth jammer by @Taseen Title: Esp 32 wifi and blutooth jammer by @Taseen | Stardance...
|
1792547283.9676962
|
1793152083.9676962
|
|
93
|
FolderHarbor by @Nova | Stardance
|
Nova
|
0
|
3.3
|
0
|
[]
|
[{"post_id": 9176, "ts": "2026 [{"post_id": 9176, "ts": "2026-06-15T11:56:50Z", "hours": 1.6044, "text": "Web - Finished SDK Migration More of what I was doing in my last devlog! I updated to @folderharbor/ [email protected] , and implemented it across the rest of the panel. Specifically, in this time, I added it to: all admin routes (users, roles, acls, permissions, config, logs) user settings Web - Consolidation I also removed all of the web panel’s types that overlapped with the SDK’s ones, such as getting rid of the ClientConfig type and using FHClientConfig from the SDK instead. Notes I’m just about to merge this code into the main branch! :3"}, {"post_id": 9131, "ts": "2026-06-15T08:47:30Z", "hours": 1.6997, "text": "Web - SDK Migration I recently made an SDK for FolderHarbor (as a different project)! I’m now rewriting parts of the web panel to use it instead of direct API calls, as the SDK provides better type-safety. This isn’t done yet, but I’ve gotten the migration done in a few places. I’m doing this on a branch since it’s very breaking (most pages are broken on the branch during this rewrite, but the main branch’s version is still operational with the old code). Server - Fixes I fixed some things with the server, namely: Making a locked account return an error in checkPath() calls (this is to stop in-progress transfers on lock). Fixing the PNPM configuration, making it work properly with PNPM v11 (including on the CI/CD)."}]...
|
Title: FolderHarbor by @Nova | Stardance
Devlogs: Title: FolderHarbor by @Nova | Stardance
Devlogs:
Web - SDK Migration I recently made an SDK for FolderHarbor (as a different project)! I’m now rewriting parts of the web panel to use it instead of direct API calls, as the SDK provides better type-safety. This isn’t done yet, but I’ve gotten the migration done in a few places. I’m doing this on a branch since it’s very breaking (most pages are broken on the branch during this rewrite, but the main branch’s version is still operational with the old code). Server - Fixes I fixed some things with the server, namely: Making a locked account return an error in checkPath() calls (this is to stop in-progress transfers on lock). Fixing the PNPM configuration, making it work properly with PNPM v11 (including on the CI/CD).
Web - Finished SDK Migration More of what I was doing in my last devlog! I updated to @folderharbor/ [email protected] , and implemented it across the rest of the panel. Specifically, in this time, I added it to: all admin routes (users, roles, acls, permissions, config, logs) user settings Web - Consolidation I also removed all of the web panel’s types that overlapped with the SDK’s ones, such as getting rid of the ClientConfig type and using FHClientConfig from the SDK instead. Notes I’m just about to merge this code into the main branch! :3...
|
1792547283.113734
|
1793152083.113734
|
|
29036
|
My very own WebOS by @benny | Stardance
|
benny
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-04T23:02:53Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A made a personalized web OS called Weby and it includes a couple of apps that allows everyone to have some insights onto who I am! This is the first time I’ve actively used HTML, CSS, and Java in order to make something of this scale so I’m pretty happy how far I was able to go. It does feature a click to enter loading screen that is paired with a startup sound (pretty dope ik). It has 3 apps that will show a variety of things about me ranging from hobbies to projects done. I won’t say anything more so please check it out if you would like! Thank you!", "repo": "https://github.com/bangzishu-huang/Weby", "demo": "https://bangzishu-huang.github.io/Weby/"}]...
|
[{"post_id": 22467, "ts": "202 [{"post_id": 22467, "ts": "2026-07-04T22:52:21Z", "hours": 3.1153, "text": "So today I was able to grind out and basically finish everything I wanted. I started off with making a projects app that was like a little carousel with arrows that showed some of my projects, then I was also able to make a Songs app, where I used spotify embedded to include 9 songs (in a 3x3 grid). I thought everything was going very well and I had to do some research for all the special functions of course. Then, I also added a loading screen where you had to click to enter and made a startup sound that would play. Pretty happy with my progress and loved how it came out!"}, {"post_id": 21911, "ts": "2026-07-04T02:45:22Z", "hours": 0.6467, "text": "Today it was pretty simple as I just worked on the my first app window and it was suppose to be a simple about me page. I had to fix a problem with the text not aligning to the middle at first for some reason and it was because I forgot to add flex into the window. I was also able to figure out how to add my socials along with their respective logos side by side with it all linked up. Next, I will be working on implementing probably more apps on my os!"}, {"post_id": 21237, "ts": "2026-07-03T02:16:54Z", "hours": 1.3383, "text": "I spent a bunch of time just working on creating an app icon inside Weby and I was just trying to figure out once again how html worked. I am not going to lie I did get lost in the sauce with the code when I first opened it up today because I had a mini brain fart, but then I was able to pick up from where I left off yesterday. Making the windows and new classes took me a while to figure out. Then, I had to also work on the orientation of the windows, basically meaning trying to bring the recently clicked window to the top of the section. Lastly, I worked a lot on just making all the code readable by leaving comments so that when other people, including myself, read the code I can follow through pretty easily. I also made sure to put everything to more condensed and simpler versions so I don’t have chunks of code when I can have lines."}, {"post_id": 20441, "ts": "2026-07-02T01:09:26Z", "hours": 1.9119, "text": "Today, I first started to work on the window outline and making the welcome screen pop up thing look good. I was just playing around with a lot of the code because this was my 2nd day actively using html to code an interface. After a while I was also able to get a background and a header up and running. There were a lot of times I had to go google issues; for example, when I was working on the headers the “Weby” was suppose to be directly in the center of the webpage but for some reason it was a little offsetted. After getting all the basic screen set up done I was able to move and do more detailed work for the screen. I made a close and open button, and also blurred the background of my welcome screen to make everything look more pleasing and function better. I’m looking forward to making apps on the OS next!"}, {"post_id": 19590, "ts": "2026-06-30T22:50:41Z", "hours": 0.6792, "text": "Soooo I started the new webos project that I happened to find under the missions tab. I think that it’s such a cool project that I will be able to do. This will also be the first time for me to code in HTML and also CSS so it would be a really good learning experience for me. At first you can see I was just messing around with the fonts and also the possibilities of what you can do with HTML. I imported a shrimp dish on as a computer so I could see how the import picture worked. Then after a bit of figuring out how html functioned I was able to make kind of a basic intro/welcome screen that would include my socials and just a quick introduction to weby (you can see on the blue background pic on the right)."}]...
|
Title: My very own WebOS by @benny | Stardance
De Title: My very own WebOS by @benny | Stardance
Devlogs:
Soooo I started the new webos project that I happened to find under the missions tab. I think that it’s such a cool project that I will be able to do. This will also be the first time for me to code in HTML and also CSS so it would be a really good learning experience for me. At first you can see I was just messing around with the fonts and also the possibilities of what you can do with HTML. I imported a shrimp dish on as a computer so I could see how the import picture worked. Then after a bit of figuring out how html functioned I was able to make kind of a basic intro/welcome screen that would include my socials and just a quick introduction to weby (you can see on the blue background pic on the right).
Today, I first started to work on the window outline and making the welcome screen pop up thing look good. I was just playing around with a lot of the code because this was my 2nd day actively using html to code an interface. After a while I was also able to get a background and a header up and running. There were a lot of times I had to go google issues; for example, when I was working on the headers the “Weby” was suppose to be directly in the center of the webpage but for some reason it was a little offsetted. After getting all the basic screen set up done I was able to move and do more detailed work for the screen. I made a close and open button, and also blurred the background of my welcome screen to make everything look more pleasing and function better. I’m looking forward to making apps on the OS next!
I spent a bunch of time just working on creating an app icon inside Weby and I was just trying to figure out once again how html worked. I am not going to lie I did get lost in the sauce with the code when I first opened it up today because I had a mini brain fart, but then I was able to pick up from where I left off yesterday. Making the windows and new classes took me a while to figure out. Then, I had to also work on the orientation of the windows, basically meaning trying to bring the recently clicked window to the top of the section. Lastly, I worked a lot on just making all the code readable by leaving comments so that when other people, including myself, read the code I can follow through pretty easily. I also made sure to put everything to more condensed and simpler versions so I don’t have chunks of code when I can have lines.
Today it was pretty simple as I just worked on the my first app window and it was suppose to be a simple about me page. I had to fix a problem with the text not aligning to the middle at first for some reason and it was because I forgot to add flex into the window. I was also able to figure out how to add my socials along with their respective logos side by side with it all linked up. Next, I will be working on implementing probably more apps on my os!
So today I was able to grind out and basically finish everything I wanted. I started off with making a projects app that was like a little carousel with arrows that showed some of my projects, then I was also able to make a Songs app, where I used spotify embedded to include 9 songs (in a 3x3 grid). I thought everything was going very well and I had to do some research for all the special functions of course. Then, I also added a loading screen where you had to click to enter and made a startup sound that would play. Pretty happy with my progress and loved how it came out!
Ships:
A made a personalized web OS called Weby and it includes a couple of apps that allows everyone to have some insights onto who I am! This is the first time I’ve actively used HTML, CSS, and Java in order to make something of this scale so I’m pretty happy how far I was able to go. It does feature a click to enter loading screen that is paired with a startup sound (pretty dope ik). It has 3 apps that will show a variety of things about me ranging from hobbies to projects done. I won’t say anything more so please check it out if you would like! Thank you!...
|
1793065682.6313803
|
1793152082.6313803
|
|
27317
|
My awesome macropad! by @tylerb | Stardance
|
tylerb
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @tylerb | Stardance
|
1792547282.2417636
|
1793152082.2417636
|
|
27738
|
Untitled by @dylz | Stardance
|
dylz
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @dylz | Stardance
|
1792547281.4035633
|
1793152081.4035633
|
|
26816
|
My first slack bot! by @Sair | Stardance
|
Sair
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-27T19:04:40Z", "hours": 0.0, "multiplier": 1.01, "payout": 0, "blessing": "neutral", "text": "My own first slack bot Commands: /sairbot-ping - checks bots latency /sairbot-catfact - Cat fact /sairbot-rps + Rock; Paper; Scissors (Example: /sairbot-rps rock) - Rock Paper Scissors game Deployed on Nest", "repo": "https://github.com/Sairsides/Sair-Slack-Bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0BDPJN8ZMF"}]...
|
[{"post_id": 17079, "ts": "202 [{"post_id": 17079, "ts": "2026-06-27T18:47:38Z", "hours": 0.3231, "text": "Added ping, cat fact command. Also added a RPS game. Didn’t log 23min because I forgot to setup Wakatime. Deployed on Nest."}]...
|
Title: My first slack bot! by @Sair | Stardance
D Title: My first slack bot! by @Sair | Stardance
Devlogs:
Added ping, cat fact command. Also added a RPS game. Didn’t log 23min because I forgot to setup Wakatime. Deployed on Nest.
Ships:
My own first slack bot Commands: /sairbot-ping - checks bots latency /sairbot-catfact - Cat fact /sairbot-rps + Rock; Paper; Scissors (Example: /sairbot-rps rock) - Rock Paper Scissors game Deployed on Nest...
|
1793065680.857975
|
1793152080.857975
|
|
30337
|
WarioWare Game by @Mapplect | Stardance
|
Mapplect
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @Mapplect | Stardance
|
1792547280.5416424
|
1793152080.5416424
|
|
5138
|
ShadowMed by @shanmukha | Stardance
|
shanmukha
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ShadowMed by @shanmukha | Stardance
|
1792547279.6993897
|
1793152079.6993897
|
|
31633
|
GRBSani by @xek1923x | Stardance
|
xek1923x
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: GRBSani by @xek1923x | Stardance
|
1792547278.848657
|
1793152078.848657
|
|
25277
|
Jet Engine by @GregorySem | Stardance
|
GregorySem
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Jet Engine by @GregorySem | Stardance
|
1792547277.9902322
|
1793152077.9902322
|
|
4951
|
Untitled by @exotic | Stardance
|
exotic
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @exotic | Stardance
|
1792547277.1541858
|
1793152077.1541858
|
|
27595
|
first slack bot! by @Akriti_67 | Stardance
|
Akriti_67
|
0
|
1.75
|
0
|
[]
|
[{"post_id": 55537, "ts": "202 [{"post_id": 55537, "ts": "2026-08-27T13:33:27Z", "hours": 0.4289, "text": "Workin on the code and creating slash commands"}, {"post_id": 54614, "ts": "2026-08-25T17:12:31Z", "hours": 0.7667, "text": "Workin on api commands fixed some bugs"}, {"post_id": 50964, "ts": "2026-08-20T13:11:15Z", "hours": 0.5561, "text": "Starting wih my slackbot , just putting some extra slash commands to save for later, i was realy messed up with api keys here"}]...
|
Title: first slack bot! by @Akriti_67 | Stardance
Title: first slack bot! by @Akriti_67 | Stardance
Devlogs:
Starting wih my slackbot , just putting some extra slash commands to save for later, i was realy messed up with api keys here
Workin on api commands fixed some bugs
Workin on the code and creating slash commands...
|
1792547276.2629228
|
1793152076.2629228
|
|
4353
|
InviteHub by @Mrithul_E | Stardance
|
Mrithul_E
|
2
|
85.0
|
1614
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T15:04:05Z", "hours": 4.0, "multiplier": 12.49, "payout": 49, "blessing": "neutral", "text": "I made a website for creating digital invitation webpages by simply selecting a template and filling out a form. This can help reduce paper usage by decreasing printed inviation lol .. I faced many challenges during the development: Building the logic for creating different different forms for each and every templates Limiting the total file size in http request Building a UI for creating forms by Drag-and-Droping Couldn’t host in vercel because vercel blocks requests more that ~4 MB Admin centralized working (only admin can create templates, this ensures security) I am proud of dedecating 3 months to complete this project, without doing any other project. To run my project my project you will need firebase api key, and hackclub cdn api. But you can’t get the already created templates because those are stored in firebase. what’s new in this ship 2 fixed some security vulnerability as per github code scan Added assets completely handmade with canva replaced many fonts in home page with cursive fonts added our mission section in the home page", "repo": "https://github.com/Mrithul-E/InviteHub", "demo": "https://invitehub.mrithul.in/"}, {"ship_num": 2, "ts": "2026-09-06T13:06:11Z", "hours": 81.0, "multiplier": 19.23, "payout": 1565, "blessing": "neutral", "text": "I made a website for creating digital invitation webpages by simply selecting a template and filling out a form. This can help reduce paper usage by decreasing printed inviation lol .. I faced many challenges during the development: Building the logic for creating different different forms for each and every templates Limiting the total file size in http request Building a UI for creating forms by Drag-and-Droping Couldn’t host in vercel because vercel blocks requests more that ~4 MB Admin centralized working (only admin can create templates, this ensures security) I am proud of dedecating 3 months to complete this project, without doing any other project. To run my project my project you will need firebase api key, and hackclub cdn api. But you can’t get the already created templates because those are stored in firebase.", "repo": "https://github.com/Mrithul-E/InviteHub", "demo": "https://invitehub.mrithul.in/"}]...
|
[{"post_id": 66105, "ts": "202 [{"post_id": 66105, "ts": "2026-09-11T18:10:15Z", "hours": 0.3892, "text": "Minor security fixes as per GitHub security scan Inclusion of functionality from an untrusted source Client-side URL redirect using query in URL"}, {"post_id": 66022, "ts": "2026-09-11T15:47:24Z", "hours": 1.2178, "text": "Some reworks readme updated added more gap in between the template card added the github link to the navbar changed some fonts in homepage and added some paragraph sections there"}, {"post_id": 64908, "ts": "2026-09-09T16:58:28Z", "hours": 1.6047, "text": "full css and ui rework: Changed the background image Made the design and animation minimalistic updated the navbar and footer removed unwanted styling in css removed unwanted gradient from text made minimal footer"}, {"post_id": 63600, "ts": "2026-09-07T14:55:46Z", "hours": 0.7089, "text": "Minor css fix removed many useless css code. Made it more good. not that the gradients are not generated by AI, instead it is generated by online CSS gradient maker. Don’t this that this is a AI generated/AI styled project. This site doesn’t have that much huge css to use AI. The Login with Google button is copied by some article in Medium. The gradient used in the home page Get Started button is custom made using CSS gradient generator The background image and the animated phone image is generated by Chatgpt. I don’t know whether this is contributing to the AI feel 🥲🥲😭😭 UPDATE: : By asking to shipwrights, they say that it was flagged and AI because it used AI generated images, which is not allowed. So i made it my self using canva, here it is:"}, {"post_id": 62873, "ts": "2026-09-06T12:22:58Z", "hours": 0.3833, "text": "Fix: Chrome media hub staying active even when video stops fixed this by removing the src and loading the video again into chrome’s memory, this solves the problem ."}, {"post_id": 62835, "ts": "2026-09-06T11:22:25Z", "hours": 1.3864, "text": "Added demo video to the home page Updated README.md and also fixed many minor css and html issues"}, {"post_id": 62397, "ts": "2026-09-05T18:51:00Z", "hours": 1.4019, "text": "Added README.md !! *Not comleted yet, no images and videos are added yet"}, {"post_id": 62092, "ts": "2026-09-05T10:41:55Z", "hours": 1.1986, "text": "Added the pages such as About, privacy-policies etc… Added About, Privacy policies , Terms of service page in hbs and added the corresponding routers for it"}, {"post_id": 62018, "ts": "2026-09-05T07:10:46Z", "hours": 0.5586, "text": "Added confirmation for logout and Added redirect to the last visited URL in login Added redirect to the last visited URL in login Added confirmation for logout, and made the logout route a long random string"}, {"post_id": 61684, "ts": "2026-09-04T18:32:50Z", "hours": 3.3572, "text": "Added ‘My invitations’ section in website Added My invitations section that shows the invitations created by that user. From here user can see the invitation, creation date, and user can also delete the invitation. Delete option will delete all files that are part of that invitation from the cdn, then delete the complete invitation from the db. And also added some minor fixes such as: webpage title issues added favicon etc…"}, {"post_id": 61049, "ts": "2026-09-03T19:19:07Z", "hours": 1.6256, "text": "User experience improvement implemented: made the created invitation url return fron server to frontend removed unwanted console.log used for debugging made the “Get started” button in frontend functional Added: invitation link and copy button in invitation creation form submission page"}, {"post_id": 60427, "ts": "2026-09-02T18:50:07Z", "hours": 1.5317, "text": "Added search option in templates Implemented using Fuse.js *images are placeholders"}, {"post_id": 60264, "ts": "2026-09-02T15:01:57Z", "hours": 1.1522, "text": "Reached initial working stage First working template added Added: render of hbs from cdn rendering of custom form from database"}, {"post_id": 59313, "ts": "2026-09-01T01:12:28Z", "hours": 2.1864, "text": "added template and form rendering from Database"}, {"post_id": 58317, "ts": "2026-08-30T18:12:36Z", "hours": 4.9681, "text": "Added a option to write the template(HBS) and the form from frontend implemented: option to write the template(HBS) and the form from frontend hbs to CDN script 10 MB fields limit in template creation router (multer) Invitation total file size limit 50 MB (formidable) Invitation data processing and cleanup"}, {"post_id": 56814, "ts": "2026-08-28T18:55:14Z", "hours": 1.57, "text": "Connected the form created using jquery forms to HackClub CDN My website is basically a site that have many templates for different kind of event. A user can select a template , this will redirect to a form. Each template have entirely different forms , each form is created by the Admin using a jquery form builder ui. Because these form structures are unknow to the server, the server dont know how much file input fields are there. so we cant set a limit on number of file input fields and per input size. So I set a 50 MB total upload limit using formidable before sending files to hackclub cdn. This makes the usage fair."}, {"post_id": 56609, "ts": "2026-08-28T13:05:06Z", "hours": 1.4072, "text": "Handle multipart uploads with file size limits using busboy formidable ✓ In the last devlog I shared a very large code to limit max total requiest size using busboy. Yesterday , In a simple google search , the Google AI mode suggested me of Formidable previously idk formidable … So I learned about that , it made my code so tiny frontend logic was already there"}, {"post_id": 54984, "ts": "2026-08-26T12:38:33Z", "hours": 2.4072, "text": "Handle multipart uploads with file size limits using busboy i want to limit the max total file upload to 50 MB, multer cant have this feature so I use busboy and wrote long long code to solve this problem code :"}, {"post_id": 54621, "ts": "2026-08-25T17:23:09Z", "hours": 0.6072, "text": "Research: How to limit the total file size in a multipart/formData (Express.js) After many searches I found out that multer don’t support this I am planning to use Busboy directly"}, {"post_id": 54387, "ts": "2026-08-25T11:35:57Z", "hours": 2.1842, "text": "Added error messages in data submissions in rendered template form Added a 50 MB file size limit in file upload (for now only frontend checks are implemented, backend check is TODO)."}, {"post_id": 51711, "ts": "2026-08-21T15:19:40Z", "hours": 2.8461, "text": "Added delete template option for admin The delete option will delete the template from the database and also delete the thumbnail image stored in hackclub CDN"}, {"post_id": 34488, "ts": "2026-07-25T07:52:12Z", "hours": 4.4856, "text": "Switched from formeo to jquery form builder formeo doesn’t support many input types"}, {"post_id": 30066, "ts": "2026-07-17T10:51:07Z", "hours": 1.1742, "text": "Researching on custom form builder On deep research on making a custom form builder form my each templates , I found : formeo, jquery form builder and survayJS"}, {"post_id": 28398, "ts": "2026-07-14T17:08:38Z", "hours": 4.6656, "text": "connected the admin only template creation form to the firestore AND also made the template cards load dynamically currently provided image is a placeholder This is admin page , only admin page have create template button"}, {"post_id": 25450, "ts": "2026-07-09T18:43:35Z", "hours": 1.7492, "text": "Added hackclub cdn to the project !!! At first it didn’t worked because of compatibly issue of new nodejs’s fetch and npm form-data module fixed using new build-in formData()"}, {"post_id": 23622, "ts": "2026-07-06T18:04:21Z", "hours": 2.0433, "text": "new knoledge unlocked: I can use : app . use ( ' /admin ' , requireAdmin , adminRouter ) instead of : app . use ( requireAdmin ) app . use ( ' /admin ' , adminRouter ) I know everybody knows this, but this is a knowledge to me"}, {"post_id": 21534, "ts": "2026-07-03T15:40:01Z", "hours": 1.2683, "text": "added a very very cool text area for entering description for each field completely build on bootstrap accordion check it out !!!"}, {"post_id": 20136, "ts": "2026-07-01T17:55:02Z", "hours": 1.2319, "text": "First template design completed !!! fully using Bootstrap , and some css"}, {"post_id": 19898, "ts": "2026-07-01T10:16:49Z", "hours": 1.5828, "text": "Continuing the writting of the first template for the site !!! basically my project is a invitation page builder, it needs a lot of custom template. | ▽ not complete yet"}, {"post_id": 18554, "ts": "2026-06-29T18:58:19Z", "hours": 6.7694, "text": "Devlog 6 - Template creation form In this 6h 44m, I made a lot of features but the main highlight was the work on the template creation form ( continuation of previous devlog) Story Time: Basically my project is a wedding invitation page generator. My website will have a lot of prebuild invitation template(HBS) for different different events So the point is different templates require different forms should be filled by the user. Therefore when the admin create different template, the admin should list the require fields for the form of the specific template. Problems faced: My thoughts was to make a prebuild list of fields, from that the admin should list them in specific order. Problem - 1 The first problem was there is no form element to do these. So i used a select element with a ‘Add’ btn. For the sorting, at first i used up/down button, but that wasn’t smooth. After researching I found sortable js. At first sortable js also was not smooth, I fixed that by removing some bootstrap classes from the tag. Problem - 2 The next problem I faced was I cant use required in the custom fields list maker, So I can’t make that field mandatory. Solution (simple) The solution was simple, I made a invisible <textarea required .....> , and add the list of fields to that in json string when the admin edited the list. Thank you for reading ❤️, Mrithul."}, {"post_id": 15040, "ts": "2026-06-24T12:54:36Z", "hours": 4.9608, "text": "Devlog 5 - Templates Page Spent 4 hours and 52 minutes working on the templates page today. This page is going to be the main place where all invitation templates are managed, so I wanted to get the basic structure done before moving on to creating more templates. Templates Grid The first thing I worked on was the layout. I switched the page to a responsive grid system and started building the actual templates page. I also added a Create Template card that is only visible to admins. Clicking the card opens a modal for creating new templates. Template Creation Modal The modal is still incomplete, but the basic flow is now working. Currently it has fields for: Template name HTML file name Preview image Template category Template fields There’s still quite a bit of work left to do here, but at least the structure is finally in place. Template Categories & Fields One thing I didn’t want to do was create a completely separate form for every invitation type. Instead, I’m building a system where templates can be configured using categories and predefined fields. const templateCategories = [ { id : \" wedding \" , name : \" Wedding \" }, { id : \" engagement \" , name : \" Engagement \" }, { id : \" birthday \" , name : \" Birthday \" } .... ] const templateFields = [ { id : \" eventTitle \" , label : \" Event Title \" , type : \" text \" , category : \" common \" }, { id : \" groomName \" , label : \" Groom Name \" , type : \" text \" , category : \" wedding \" } .... ] Right now I’ve added categories for weddings, birthdays, engagements, housewarmings, baby showers and several other event types. The field system should make adding future templates a lot easier. Small UI Improvements I also spent some time cleaning up the page and added a footer. The site is slowly starting to look more like an actual product instead of a collection of pages. Next The next step is finishing the template creation page and making the field selection system fully functional. Once that’s done, adding new templates should be much faster than it is right now."}, {"post_id": 8246, "ts": "2026-06-13T18:26:46Z", "hours": 1.1044, "text": "Devlog - 4 Today I connected my website to firestore for database I have implemented the saving of login information of user to user collection of firestore database This is the implementation code: service\\userService.js : async function saveUserLogin ( userRecord ) { return db . collection ( \" users \" ) . doc ( userRecord . uid ) . set ( { displayName : userRecord . displayName || null , email : userRecord . email , photoURL : userRecord . photoURL || null , lastLoginAt : new Date ( userRecord . metadata . lastSignInTime ) }, { merge : true } ) } service\\userService.js : router . post ( \" /sessionLogin \" , async ( req , res ) => { const idToken = req . body . idToken ; const expiresIn = 60 * 60 * 24 * 13 * 1000 ; try { const sessionCookie = await admin . auth (). createSessionCookie ( idToken , { expiresIn : expiresIn }); const options = { maxAge : expiresIn , httpOnly : true , secure : false }; const decodedClaims = await admin . auth (). verifySessionCookie ( sessionCookie , true ); const userRecord = await admin . auth (). getUser ( decodedClaims . uid ); await saveUserLogin ( userRecord ) res . cookie ( ' session ' , sessionCookie , options ) res . status ( 200 ). send ({ status : \" success \" }) } catch ( err ) { console . error ( err ) res . status ( 401 ). send ( ' Unauthorized request! ' ); } }) I also created the redirect from login page if login successful / refresh in login fail (these things where previously missing) Also there are many UI improvements made, that’s not written in this Devlog (●’◡’●)"}, {"post_id": 7934, "ts": "2026-06-13T07:31:13Z", "hours": 8.3672, "text": "Devlog Time spent: 8 hours 15 minutes across ~6 days This week I mostly worked on security-related improvements and continued work on the invitation template system. Security Fixes When I opened GitHub, I got a security notification. After checking it, I found that a Firebase client-side API key was present in the repository. I know Firebase client API keys are not secret credentials by themselves, but leaving them exposed can still make abuse easier, especially if other protections are missing. Since the project is still in development, I decided to clean it up now rather than later. What I did: Revoked the old API key Generated a new one Moved the configuration into environment variables Made sure sensitive files are not pushed to GitHub res . locals . firebaseClientCred = Buffer . from ( process . env . firebaseClientCred , \" base64 \" ) . toString ( \" utf-8 \" ); The long-term plan is to separate development and production configurations. Right now localhost access is required for development, so strict domain restrictions are not practical yet. Once the project is deployed, I plan to have: A development API configuration that allows localhost A production API configuration that only allows requests from the final website domain The developer configuration will stay out of production deployments. Even if development code is accidentally pushed, it should fail instead of exposing access that was never intended for production. The backend Firebase SDK setup was already safe, so most of this work was focused on the client-side configuration. Navbar Improvements I also implemented automatic navbar link highlighting. Instead of manually setting the active page for every route, the navbar now checks the current URL and highlights the correct link automatically. function highlightCurrentPageLink () { const currentPageUrl = window . location . pathname ; const links = document . querySelectorAll ( \" #navbar-ul li a \" ); links . forEach (( link ) => { const href = link . getAttribute ( \" href \" ); if ( href . split ( \" / \" )[ 1 ] === currentPageUrl . split ( \" / \" )[ 1 ]) { link . classList . add ( \" active \" ); } else { link . classList . remove ( \" active \" ); } }); } Small change, but it makes maintaining the navigation much easier. User Menu Worked on the user menu and logout functionality. Nothing huge here, but it is another piece of the authentication flow that is now coming together. Template System I created the HBS file structure for the template page and spent a lot of time thinking about how templates should actually be implemented. This is currently the biggest blocker. There are several ways to handle template rendering and customization, and I don’t want to lock myself into a design that becomes difficult to maintain later. A lot of the development time this week went into planning, experimenting, and changing approaches rather than writing large amounts of code. Next Create separate Firebase development and production configurations Add domain restrictions after deployment Continue work on the invitation template system Finish the template rendering workflow Improve user account features There is still a lot to do, but the project is becoming more stable and secure before moving further into feature development."}, {"post_id": 3693, "ts": "2026-06-06T18:57:54Z", "hours": 2.5967, "text": "Devlog-2: Today , I added a beautiful animation to the home page made the home page overall beautiful Also fixed a authentication error : the fix was simple - I accidently wrote (res, req) instead of (req, res) in express router Also completed the login page design What’s next : Surely build a footer tomorrow 😁 Also planning to create a template creation tool for Admin Note: the PHONE image have a cool animation effect. completely done by hands , no AI only used AI for clearing doubt"}, {"post_id": 2855, "ts": "2026-06-05T18:18:17Z", "hours": 8.5736, "text": "Login Page within 8h 33m , I made the home page, firebase auth, designed logo etc.. currently I am working on designing the ‘Login with google’ page I thought I should only submit and link the project after completing the full project … 😟 but I didn’t forget to connect hackatime 😁🥳"}]...
|
Title: InviteHub by @Mrithul_E | Stardance
Devlog Title: InviteHub by @Mrithul_E | Stardance
Devlogs:
Login Page within 8h 33m , I made the home page, firebase auth, designed logo etc.. currently I am working on designing the ‘Login with google’ page I thought I should only submit and link the project after completing the full project … 😟 but I didn’t forget to connect hackatime 😁🥳
Devlog-2: Today , I added a beautiful animation to the home page made the home page overall beautiful Also fixed a authentication error : the fix was simple - I accidently wrote (res, req) instead of (req, res) in express router Also completed the login page design What’s next : Surely build a footer tomorrow 😁 Also planning to create a template creation tool for Admin Note: the PHONE image have a cool animation effect. completely done by hands , no AI only used AI for clearing doubt
Devlog Time spent: 8 hours 15 minutes across ~6 days This week I mostly worked on security-related improvements and continued work on the invitation template system. Security Fixes When I opened GitHub, I got a security notification. After checking it, I found that a Firebase client-side API key was present in the repository. I know Firebase client API keys are not secret credentials by themselves, but leaving them exposed can still make abuse easier, especially if other protections are missing. Since the project is still in development, I decided to clean it up now rather than later. What I did: Revoked the old API key Generated a new one Moved the configuration into environment variables Made sure sensitive files are not pushed to GitHub res . locals . firebaseClientCred = Buffer . from ( process . env . firebaseClientCred , " base64 " ) . toString ( " utf-8 " ); The long-term plan is to separate development and production configurations. Right now localhost access is required for development, so strict domain restrictions are not practical yet. Once the project is deployed, I plan to have: A development API configuration that allows localhost A production API configuration that only allows requests from the final website domain The developer configuration will stay out of production deployments. Even if development code is accidentally pushed, it should fail instead of exposing access that was never intended for production. The backend Firebase SDK setup was already safe, so most of this work was focused on the client-side configuration. Navbar Improvements I also implemented automatic navbar link highlighting. Instead of manually setting the active page for every route, the navbar now checks the current URL and highlights the correct link automatically. function highlightCurrentPageLink () { const currentPageUrl = window . location . pathname ; const links = document . querySelectorAll ( " #navbar-ul li a " ); links . forEach (( link ) => { const href = link . getAttribute ( " href " ); if ( href . split ( " / " )[ 1 ] === currentPageUrl . split ( " / " )[ 1 ]) { link . classList . add ( " active " ); } else { link . classList . remove ( " active " ); } }); } Small change, but it makes maintaining the navigation much easier. User Menu Worked on the user menu and logout functionality. Nothing huge here, but it is another piece of the authentication flow that is now coming together. Template System I created the HBS file structure for the template page and spent a lot of time thinking about how templates should actually be implemented. This is currently the biggest blocker. There are several ways to handle template rendering and customization, and I don’t want to lock myself into a design that becomes difficult to maintain later. A lot of the development time this week went into planning, experimenting, and changing approaches rather than writing large amounts of code. Next Create separate Firebase development and production configurations Add domain restrictions after deployment Continue work on the invitation template system Finish the template rendering workflow Improve user account features There is still a lot to do, but the project is becoming more stable and secure before moving further into feature development.
Devlog - 4 Today I connected my website to firestore for database I have implemented the saving of login information of user to user collection of firestore database This is the implementation code: service\userService.js : async function saveUserLogin ( userRecord ) { return db . collection ( " users " ) . doc ( userRecord . uid ) . set ( { displayName : userRecord . displayName || null , email : userRecord . email , photoURL : userRecord . photoURL || null , lastLoginAt : new Date ( userRecord . metadata . lastSignInTime ) }, { merge : true } ) } service\userService.js : router . post ( " /sessionLogin " , async ( req , res ) => { const idToken = req . body . idToken ; const expiresIn = 60 * 60 * 24 * 13 * 1000 ; try { const sessionCookie = await admin . auth (). createSessionCookie ( idToken , { expiresIn : expiresIn }); const options = { maxAge : expiresIn , httpOnly : true , secure : false }; const decodedClaims = await admin . auth (). verifySessionCookie ( sessionCookie , true ); const userRecord = await admin . auth (). getUser ( decodedClaims . uid ); await saveUserLogin ( userRecord ) res . cookie ( ' session ' , sessionCookie , options ) res . status ( 200 ). send ({ status : " success " }) } catch ( err ) { console . error ( err ) res . status ( 401 ). send ( ' Unauthorized request! ' ); } }) I also created the redirect from login page if login successful / refresh in login fail (these things where previously missing) Also there are many UI improvements made, that’s not written in this Devlog (●’◡’●)
Devlog 5 - Templates Page Spent 4 hours and 52 minutes working on the templates page today. This page is going to be the main place where all invitation templates are managed, so I wanted to get the basic structure done before moving on to creating more templates. Templates Grid The first thing I worked on was the layout. I switched the page to a responsive grid system and started building the actual templates page. I also added a Create Template card that is only visible to admins. Clicking the card opens a modal for creating new templates. Template Creation Modal The modal is still incomplete, but the basic flow is now working. Currently it has fields for: Template name HTML file name Preview image Template category Template fields There’s still quite a bit of work left to do here, but at least the structure is finally in place. Template Categories & Fields One thing I didn’t want to do was create a completely separate form for every invitation type. Instead, I’m building a system where templates can be configured using categories and predefined fields. const templateCategories = [ { id : " wedding " , name : " Wedding " }, { id : " engagement " , name : " Engagement " }, { id : " birthday " , name : " Birthday " } .... ] const templateFields = [ { id : " eventTitle " , label : " Event Title " , type : " text " , category : " common " }, { id : " groomName " , label : " Groom Name " , type : " text " , category : " wedding " } .... ] Right now I’ve added categories for weddings, birthdays, engagements, housewarmings, baby showers and several other event types. The field system should make adding future templates a lot easier. Small UI Improvements I also spent some time cleaning up the page and added a footer. The site is slowly starting to look more like an actual product instead of a collection of pages. Next The next step is finishing the template creation page and making the field selection system fully functional. Once that’s done, adding new templates should be much faster than it is right now.
Devlog 6 - Template creation form In this 6h 44m, I made a lot of features but the main highlight was the work on the template creation form ( continuation of previous devlog) Story Time: Basically my project is a wedding invitation page generator. My website will have a lot of prebuild invitation template(HBS) for different different events So the point is different templates require different forms should be filled by the user. Therefore when the admin create different template, the admin should list the require fields for the form of the specific template. Problems faced: My thoughts was to make a prebuild list of fields, from that the admin should list them in specific order. Problem - 1 The first problem was there is no form element to do these. So i used a select element with a ‘Add’ btn. For the sorting, at first i used up/down button, but that wasn’t smooth. After researching I found sortable js. At first sortable js also was not smooth, I fixed that by removing some bootstrap classes from the tag. Problem - 2 The next problem I faced was I cant use required in the custom fields list maker, So I can’t make that field mandatory. Solution (simple) The solution was simple, I made a invisible <textarea required .....> , and add the list of fields to that in json string when the admin edited the list. Thank you for reading ❤️, Mrithul.
Continuing the writting of the first template for the site !!! basically my project is a invitation page builder, it needs a lot of custom template. | ▽ not complete yet
First template design completed !!! fully using Bootstrap , and some css
added a very very cool text area for entering description for each field completely build on bootstrap accordion check it out !!!
new knoledge unlocked: I can use : app . use ( ' /admin ' , requireAdmin , adminRouter ) instead of : app . use ( requireAdmin ) app . use ( ' /admin ' , adminRouter ) I know everybody knows this, but this is a knowledge to me
Added hackclub cdn to the project !!! At first it didn’t worked because of compatibly issue of new nodejs’s fetch and npm form-data module fixed using new build-in formData()
connected the admin only template creation form to the firestore AND also made the template cards load dynamically currently provided image is a placeholder This is admin page , only admin page have create template button
Researching on custom form builder On deep research on making a custom form builder form my each templates , I found : formeo, jquery form builder and survayJS
Switched from formeo to jquery form builder formeo doesn’t support many input types
Added delete template option for admin The delete option will delete the template from the database and also delete the thumbnail image stored in hackclub CDN
Added error messages in data submissions in rendered template form Added a 50 MB file size limit in file upload (for now only frontend checks are implemented, backend check is TODO).
Research: How to limit the total file size in a multipart/formData (Express.js) After many searches I found out that multer don’t support this I am planning to use Busboy directly
Handle multipart uploads with file size limits using busboy i want to limit the max total file upload to 50 MB, multer cant have this feature so I use busboy and wrote long long code to solve this problem code :
Handle multipart uploads with file size limits using busboy formidable ✓ In the last devlog I shared a very large code to limit max total requiest size using busboy. Yesterday , In a simple google search , the Google AI mode suggested me of Formidable previously idk formidable … So I learned about that , it made my code so tiny frontend logic was already there
Connected the form created using jquery forms to HackClub CDN My website is basically a site that have many templates for different kind of event. A user can select a template , this will redirect to a form. Each template have entirely different forms , each form is created by the Admin using a jquery form builder ui. Because these form structures are unknow to the server, the server dont know how much file input fields are there. so we cant set a limit on number of file input fields and per input size. So I set a 50 MB total upload limit using formidable before sending files to hackclub cdn. This makes the usage fair.
Added a option to write the template(HBS) and the form from frontend implemented: option to write the template(HBS) and the form from frontend hbs to CDN script 10 MB fields limit in template creation router (multer) Invitation total file size limit 50 MB (formidable) Invitation data processing and cleanup
added template and form rendering from Database
Reached initial working stage First working template added Added: render of hbs from cdn rendering of custom form from database
Added search option in templates Implemented using Fuse.js *images are placeholders
User experience improvement implemented: made the created invitation url return fron server to frontend removed unwanted console.log used for debugging made the “Get started” button in frontend functional Added: invitation link and copy button in invitation creation form submission page
Added ‘My invitations’ section in website Added My invitations section that shows the invitations created by that user. From here user can see the invitation, creation date, and user can also delete the invitation. Delete option will delete all files that are part of that invitation from the cdn, then delete the complete invitation from the db. And also added some minor fixes such as: webpage title issues added favicon etc…
Added confirmation for logout and Added redirect to the last visited URL in login Added redirect to the last visited URL in login Added confirmation for logout, and made the logout route a long random string
Added the pages such as About, privacy-policies etc… Added About, Privacy policies , Terms of service page in hbs and added the corresponding routers for it
Added README.md !! *Not comleted yet, no images and videos are added yet
Added demo video to the home page Updated README.md and also fixed many minor css and html issues
Fix: Chrome media hub staying active even when video stops fixed this by removing the src and loading the video again into chrome’s memory, this solves the problem .
Minor css fix removed many useless css code. Made it more good. not that the gradients are not generated by AI, instead it is generated by online CSS gradient maker. Don’t this that this is a AI generated/AI styled project. This site doesn’t have that much huge css to use AI. The Login with Google button is copied by some article in Medium. The gradient used in the home page Get Started button is custom made using CSS gradient generator The background image and the animated phone image is generated by Chatgpt. I don’t know whether this is contributing to the AI feel 🥲🥲😭😭 UPDATE: : By asking to shipwrights, they say that it was flagged and AI because it used AI generated images, which is not allowed. So i made it my self using canva, here it is:
full css and ui rework: Changed the background image Made the design and animation minimalistic updated the navbar and footer removed unwanted styling in css removed unwanted gradient from text made minimal footer
Some reworks readme updated added more gap in between the template card added the github link to the navbar changed some fonts in homepage and added some paragraph sections there
Minor security fixes as per GitHub security scan Inclusion of functionality from an untrusted source Client-side URL redirect using query in URL
Ships:
I made a website for creating digital invitation webpages by simply selecting a template and filling out a form. This can help reduce paper usage by decreasing printed inviation lol .. I faced many challenges during the development: Building the logic for creating different different forms for each and every templates Limiting the total file size in http request Building a UI for creating forms by Drag-and-Droping Couldn’t host in vercel because vercel blocks requests more that ~4 MB Admin centralized working (only admin can create templates, this ensures security) I am proud of dedecating 3 months to complete this project, without doing any other project. To run my project my project you will need firebase api key, and hackclub cdn api. But you can’t get the already created templates because those are stored in firebase.
I made a website for creating digital invitation webpages by simply selecting a template and filling out a form. This can help reduce paper usage by decreasing printed inviation lol .. I faced many challenges during the development: Building the logic for creating different different forms for each and every templates Limiting the total file size in http request Building a UI for creating forms by Drag-and-Droping Couldn’t host in vercel because vercel blocks requests more that ~4 MB Admin centralized working (only admin can create templates, this ensures security) I am proud of dedecating 3 months to complete this project, without doing any other project. To run my project my project you will need firebase api key, and hackclub cdn api. But you can’t get the already created templates because those are stored in firebase. what’s new in this ship 2 fixed some security vulnerability as per github code scan Added assets completely handmade with canva replaced many fonts in home page with cursive fonts added our mission section in the home page...
|
1793065675.9670563
|
1793152075.9670563
|
|
38575
|
My own site! by @Zulayho | Stardance
|
Zulayho
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @Zulayho | Stardance
|
1792547275.3910751
|
1793152075.3910751
|
|
15626
|
My awesome macropad! by @Jsimmons | Stardance
|
Jsimmons
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Jsimmons | Stardan Title: My awesome macropad! by @Jsimmons | Stardance...
|
1792547274.549345
|
1793152074.549345
|
|
5816
|
AI Code "Checker" by @Da_BFBM_show | Stard AI Code "Checker" by @Da_BFBM_show | Stardance...
|
Da_BFBM_show
|
0
|
0.41
|
0
|
[]
|
[{"post_id": 5230, "ts": "2026 [{"post_id": 5230, "ts": "2026-06-08T22:49:01Z", "hours": 0.4111, "text": "This session was hard. I feel a bit frustrated. It’s not like I want it to. I can fix it later, though."}]...
|
Title: AI Code "Checker" by @Da_BFBM_show Title: AI Code "Checker" by @Da_BFBM_show | Stardance
Devlogs:
This session was hard. I feel a bit frustrated. It’s not like I want it to. I can fix it later, though....
|
1792547273.6974392
|
1793152073.6974392
|
|
13409
|
AtomOS by @cyvexx | Stardance
|
cyvexx
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: AtomOS by @cyvexx | Stardance
|
1792547272.6600459
|
1793152072.6600459
|
|
4022
|
TAR Macropad by @Hridum | Stardance
|
Hridum
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-25T19:51:26Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a macropad with a 9x9 switch matrix, 1 rotary encoder, a 0.91” OLED screen as well as LEDs. I found the hardest part of this project to be designing the PCB, as I had never done that before. On the other hand, the CAD was fairly simple and I just had to remember to space everything properly so that components such as the microcontroller and diodes could fit in the case.", "repo": "https://github.com/HridumD/TAR-Macropad", "demo": ""}]...
|
[{"post_id": 15846, "ts": "202 [{"post_id": 15846, "ts": "2026-06-25T19:25:55Z", "hours": 3.2153, "text": "Finished CAD for Casing Cad was pretty simple, added a bottom body, middle plate and top plate to cover everything up Forgot about the required spacing for components such as diodes and the controller board so I added those as well."}, {"post_id": 2317, "ts": "2026-06-04T19:04:49Z", "hours": 3.01, "text": "Since last devlog, Added rotary encoder, OLED screen, LEDs and re-designed layout to follow scanning matrix layout rather than direct connections for each switches Because of added complexity as well as additional components, PCB was much more complex and a lot of time was used to make sure no traces were overlapping or spacing issues between components. LEDs were not through-hole so they could only use one trace side, which made process also much more complex."}, {"post_id": 1169, "ts": "2026-06-03T00:43:58Z", "hours": 1.2161, "text": "Finished basic design for Hackpad PCB I have never designed a PCB before so it was a challenge, especially routing the PCB and making sure no connections shorted, but the hackpad guide helped a lot."}]...
|
Title: TAR Macropad by @Hridum | Stardance
Devlog Title: TAR Macropad by @Hridum | Stardance
Devlogs:
Finished basic design for Hackpad PCB I have never designed a PCB before so it was a challenge, especially routing the PCB and making sure no connections shorted, but the hackpad guide helped a lot.
Since last devlog, Added rotary encoder, OLED screen, LEDs and re-designed layout to follow scanning matrix layout rather than direct connections for each switches Because of added complexity as well as additional components, PCB was much more complex and a lot of time was used to make sure no traces were overlapping or spacing issues between components. LEDs were not through-hole so they could only use one trace side, which made process also much more complex.
Finished CAD for Casing Cad was pretty simple, added a bottom body, middle plate and top plate to cover everything up Forgot about the required spacing for components such as diodes and the controller board so I added those as well.
Ships:
I made a macropad with a 9x9 switch matrix, 1 rotary encoder, a 0.91” OLED screen as well as LEDs. I found the hardest part of this project to be designing the PCB, as I had never done that before. On the other hand, the CAD was fairly simple and I just had to remember to space everything properly so that components such as the microcontroller and diodes could fit in the case....
|
1793065671.775304
|
1793152071.775304
|
|
34674
|
Frictionless by @avi_malhotra853 | Stardance
|
avi_malhotra853
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @avi_malhotra853 | Stardanc Title: Frictionless by @avi_malhotra853 | Stardance...
|
1792547271.6671708
|
1793152071.6671708
|
|
35327
|
Dollar Store Desmos by @josht8160 | Stardance
|
josht8160
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Dollar Store Desmos by @josht8160 | Stardan Title: Dollar Store Desmos by @josht8160 | Stardance...
|
1792547270.8188658
|
1793152070.8188658
|
|
36685
|
My own site! by @alinanoman | Stardance
|
alinanoman
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-24T03:38:09Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created a personal portfolio using HTML and CSS in Visual Studio. The goal of my website was to create a place where people can learn more about me, my interests, my activities, my projects and my future goals. I built it from scratch using an index.html file for the structure and content and a style.css file for the appearance. For the design I created a soft pastel lilac theme because lilac is my favorite color. One of the biggest challenges was learning how HTML and CSS work together. I had to trouble shoot my problems in VS Code. Such as figuring out why certain files were not operating correctly, understand files types and learn how to properly formate my code. I experimented with different color, spacingd and fonts. I am most proud that I was able to create my first and very own website from the ground up. I was also proud that I was able to apply my css and html skills. When testing my site people should know that they can explore each section using the navigation bar at top. they can click different links to jump between the about me, activities, projects and goals section. The website is made to be viewed on a computer browser through the index.html file. users should make sure that both index.html and style.css are kept in the same folder.", "repo": "https://github.com/tommorrownoon/personal-site", "demo": "https://tommorrownoon.github.io/personal-site/#activities"}]...
|
[{"post_id": 33833, "ts": "202 [{"post_id": 33833, "ts": "2026-07-24T02:15:30Z", "hours": 0.8981, "text": "Coded my Site! Today I made significant progress on my personal website using Visual Studio Code. I began by setting up the project structure and creating the two main files required for the website: index.html and style.css. While working on the setup, I learned the difference between HTML and CSS and how they work together to create a functional and visually appealing website. I spent time troubleshooting file organization issues, ensuring that both files were located in the same project folder and correctly linked using the stylesheet reference in the HTML file.After completing the basic setup, I developed the structure of my website in HTML. I created a header section that introduces me and includes navigation links to different parts of the site. I then added several sections containing information about myself, including an About Me section, activities and extracurricular involvement, engineering projects, and future goals. This allowed me to organize my content into a clear and professional layout while practicing the use of HTML elements such as headings, paragraphs, navigation bars, sections, and div containers.Once the content was in place, I focused on the visual design of the website by working extensively with CSS. I customized the appearance of the page by creating a lilac and pastel color scheme that matched the aesthetic I wanted. I adjusted the background colors, text colors, spacing, borders, and corner radii to create a softer and more welcoming design. I also added rounded cards for project information, styled navigation buttons, and implemented a gradient header to improve the overall appearance of the site. Throughout this process, I learned how CSS properties such as background-color, padding, margin, border-radius, font-family, and box-shadow affect the user interface.In addition to improving the visual design, I spent time troubleshooting coding errors and learning how to navigate Visual Studio Code more effectively. I learned how to create and rename files, distinguish between HTML and CSS files, interpret file icons, and resolve warnings related to empty CSS rule sets. These challenges helped me gain a stronger understanding of how web development projects are organized and how different technologies interact within a website.By the end of today’s work session, I successfully created a functional personal portfolio website with multiple sections, custom styling, and a cohesive visual theme. The website now highlights my interests, activities, engineering projects, and future aspirations in an organized and professional format. This progress provided valuable experience in both HTML and CSS while helping me build confidence in web development and problem-solving skills."}]...
|
Title: My own site! by @alinanoman | Stardance
De Title: My own site! by @alinanoman | Stardance
Devlogs:
Coded my Site! Today I made significant progress on my personal website using Visual Studio Code. I began by setting up the project structure and creating the two main files required for the website: index.html and style.css. While working on the setup, I learned the difference between HTML and CSS and how they work together to create a functional and visually appealing website. I spent time troubleshooting file organization issues, ensuring that both files were located in the same project folder and correctly linked using the stylesheet reference in the HTML file.After completing the basic setup, I developed the structure of my website in HTML. I created a header section that introduces me and includes navigation links to different parts of the site. I then added several sections containing information about myself, including an About Me section, activities and extracurricular involvement, engineering projects, and future goals. This allowed me to organize my content into a clear and professional layout while practicing the use of HTML elements such as headings, paragraphs, navigation bars, sections, and div containers.Once the content was in place, I focused on the visual design of the website by working extensively with CSS. I customized the appearance of the page by creating a lilac and pastel color scheme that matched the aesthetic I wanted. I adjusted the background colors, text colors, spacing, borders, and corner radii to create a softer and more welcoming design. I also added rounded cards for project information, styled navigation buttons, and implemented a gradient header to improve the overall appearance of the site. Throughout this process, I learned how CSS properties such as background-color, padding, margin, border-radius, font-family, and box-shadow affect the user interface.In addition to improving the visual design, I spent time troubleshooting coding errors and learning how to navigate Visual Studio Code more effectively. I learned how to create and rename files, distinguish between HTML and CSS files, interpret file icons, and resolve warnings related to empty CSS rule sets. These challenges helped me gain a stronger understanding of how web development projects are organized and how different technologies interact within a website.By the end of today’s work session, I successfully created a functional personal portfolio website with multiple sections, custom styling, and a cohesive visual theme. The website now highlights my interests, activities, engineering projects, and future aspirations in an organized and professional format. This progress provided valuable experience in both HTML and CSS while helping me build confidence in web development and problem-solving skills.
Ships:
I created a personal portfolio using HTML and CSS in Visual Studio. The goal of my website was to create a place where people can learn more about me, my interests, my activities, my projects and my future goals. I built it from scratch using an index.html file for the structure and content and a style.css file for the appearance. For the design I created a soft pastel lilac theme because lilac is my favorite color. One of the biggest challenges was learning how HTML and CSS work together. I had to trouble shoot my problems in VS Code. Such as figuring out why certain files were not operating correctly, understand files types and learn how to properly formate my code. I experimented with different color, spacingd and fonts. I am most proud that I was able to create my first and very own website from the ground up. I was also proud that I was able to apply my css and html skills. When testing my site people should know that they can explore each section using the navigation bar at top. they can click different links to jump between the about me, activities, projects and goals section. The website is made to be viewed on a computer browser through the index.html file. users should make sure that both index.html and style.css are kept in the same folder....
|
1793065670.624086
|
1793152070.624086
|
|
13943
|
My very own WebOS by @Davod | Stardance
|
Davod
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Davod | Stardance
|
1792547269.9527118
|
1793152069.9527118
|
|
8920
|
GLSL converter by @kuba_ch101 | Stardance
|
kuba_ch101
|
1
|
8.0
|
96
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-17T20:44:58Z", "hours": 7.0, "multiplier": 14.37, "payout": 96, "blessing": "neutral", "text": "I made a program and a website based on it that converts shaders written in GLSL into a C string that is easier to use in a program with OpenGL, becaose you have everything in one file. For me the most challenging thing was to make the the website look good, also working with more complicated paths to input and output files was a new thing for me. My program saves me time when writing all the quotation marks which also reduces a probability of errors. The website was designed to use when you need shaders up and running fast.", "repo": "https://github.com/kubach101/GLSL-converter", "demo": "https://kubach101.github.io/GLSL-to-C/"}]...
|
[{"post_id": 29120, "ts": "202 [{"post_id": 29120, "ts": "2026-07-15T19:44:59Z", "hours": 0.9953, "text": "I added this thing in the top-right corner which indicates you how your camera is orinted."}, {"post_id": 10816, "ts": "2026-06-17T19:10:15Z", "hours": 0.6567, "text": "Website deployed and my project is ready for shipping. I added an information panel and checked everything."}, {"post_id": 9460, "ts": "2026-06-15T20:24:06Z", "hours": 2.0611, "text": "I made a website from my previous code. I spend a lot of time on the design but I think it was worth it. If I don’t find any bugs, I think this will be my last devlog before shipping."}, {"post_id": 9178, "ts": "2026-06-15T12:18:16Z", "hours": 1.345, "text": "I made a rework and added few features. What I changed: Program checks when file ends(beafore i needed to type “///” and didn’t know this was possible). Improved the files menagment: now there is a folder called “io”, makes program cleaner i think. Now works both: in bash and as an app on windows."}, {"post_id": 5609, "ts": "2026-06-09T14:00:51Z", "hours": 2.7506, "text": "I added a coments ignoring, now the comment will no longer be written in the final string."}]...
|
Title: GLSL converter by @kuba_ch101 | Stardance
Title: GLSL converter by @kuba_ch101 | Stardance
Devlogs:
I added a coments ignoring, now the comment will no longer be written in the final string.
I made a rework and added few features. What I changed: Program checks when file ends(beafore i needed to type “///” and didn’t know this was possible). Improved the files menagment: now there is a folder called “io”, makes program cleaner i think. Now works both: in bash and as an app on windows.
I made a website from my previous code. I spend a lot of time on the design but I think it was worth it. If I don’t find any bugs, I think this will be my last devlog before shipping.
Website deployed and my project is ready for shipping. I added an information panel and checked everything.
I added this thing in the top-right corner which indicates you how your camera is orinted.
Ships:
I made a program and a website based on it that converts shaders written in GLSL into a C string that is easier to use in a program with OpenGL, becaose you have everything in one file. For me the most challenging thing was to make the the website look good, also working with more complicated paths to input and output files was a new thing for me. My program saves me time when writing all the quotation marks which also reduces a probability of errors. The website was designed to use when you need shaders up and running fast....
|
1793065669.4880881
|
1793152069.4880881
|