|
14566
|
My first slack bot! by @viviennem | Stardance
|
viviennem
|
0
|
0.42
|
0
|
[]
|
[{"post_id": 9510, "ts": "2026 [{"post_id": 9510, "ts": "2026-06-15T21:31:48Z", "hours": 0.4178, "text": "My First Slackbot!"}]...
|
Title: My first slack bot! by @viviennem | Stardan Title: My first slack bot! by @viviennem | Stardance
Devlogs:
My First Slackbot!...
|
1792615955.9498749
|
1793220755.9498749
|
|
1953
|
Virtual Rubix cube by @claysonV | Stardance
|
claysonV
|
0
|
4.38
|
0
|
[]
|
[{"post_id": 951, "ts": "2026- [{"post_id": 951, "ts": "2026-06-02T18:32:37Z", "hours": 1.9317, "text": "Setting up the input framework for RubixC! Wrote a custom useKeyboard React hook to map standard virtual cubing keys (I, J, K, L, F, H) to U, D, L, R, F, B faces. Also wired up Shift for prime moves and Alt for double moves. The keys are successfully registering in the console, but they don’t actually turn the 3D model yet. That will come next"}, {"post_id": 602, "ts": "2026-06-02T03:08:21Z", "hours": 1.2256, "text": "“Wired up the generateWcaScramble function in TypeScript today for the Rubix Cube. Implemented the logic to check against the previous move and opposite faces, ensuring every 20-move sequence is fully WCA-compliant (no redundant moves like U U’ or R L R). Linked it straight to the frontend UI."}, {"post_id": 521, "ts": "2026-06-02T00:11:54Z", "hours": 1.2194, "text": "First session down for the Speedcubing Algorithm Trainer. Spent the hour drafting the 3x3x3 model geometry and getting the individual cubies locked in before I start wiring up the rotation logic."}]...
|
Title: Virtual Rubix cube by @claysonV | Stardance Title: Virtual Rubix cube by @claysonV | Stardance
Devlogs:
First session down for the Speedcubing Algorithm Trainer. Spent the hour drafting the 3x3x3 model geometry and getting the individual cubies locked in before I start wiring up the rotation logic.
“Wired up the generateWcaScramble function in TypeScript today for the Rubix Cube. Implemented the logic to check against the previous move and opposite faces, ensuring every 20-move sequence is fully WCA-compliant (no redundant moves like U U’ or R L R). Linked it straight to the frontend UI.
Setting up the input framework for RubixC! Wrote a custom useKeyboard React hook to map standard virtual cubing keys (I, J, K, L, F, H) to U, D, L, R, F, B faces. Also wired up Shift for prime moves and Alt for double moves. The keys are successfully registering in the console, but they don’t actually turn the 3D model yet. That will come next...
|
1792666087.419535
|
1793270887.419535
|
|
18663
|
Fusion 360 Macro by @suhaasvishnubhatla | Stardanc Fusion 360 Macro by @suhaasvishnubhatla | Stardance...
|
suhaasvishnubhatla
|
0
|
2.52
|
0
|
[]
|
[{"post_id": 9503, "ts": "2026 [{"post_id": 9503, "ts": "2026-06-15T21:08:44Z", "hours": 2.52, "text": "Devlog #1 (6/15/2026 @ 5:02 PM EST): Finished Up my schematic, and assigned footprints to my Macro360 Macropad on KiCad for Fusion360 3d modeling. I am deciding whether or not I should remove one of my rows of keys (4 keys per row) to make room on my RP2040 Seeeduino for a display AND rotary encoder (ec11 one included in kit.) I will most likely proceed with the 3 row version with a screen and encoder since these features will make the experience cooler and much more fun for me (yes, I know it will be a pain in the butt when I get to firmware because I have never made a firmware before.) but thats part of the fun of designing it! I have linked 3 pictures below. One is my schematic another of the footprints I used for my Xiao, I also added the alternative footprint for my switches I found (actually Reid on the slack told me. THX reid:)) Thanks for reading this is Suhaas, Signing off."}]...
|
Title: Fusion 360 Macro by @suhaasvishnubhatla | S Title: Fusion 360 Macro by @suhaasvishnubhatla | Stardance
Devlogs:
Devlog #1 (6/15/2026 @ 5:02 PM EST): Finished Up my schematic, and assigned footprints to my Macro360 Macropad on KiCad for Fusion360 3d modeling. I am deciding whether or not I should remove one of my rows of keys (4 keys per row) to make room on my RP2040 Seeeduino for a display AND rotary encoder (ec11 one included in kit.) I will most likely proceed with the 3 row version with a screen and encoder since these features will make the experience cooler and much more fun for me (yes, I know it will be a pain in the butt when I get to firmware because I have never made a firmware before.) but thats part of the fun of designing it! I have linked 3 pictures below. One is my schematic another of the footprints I used for my Xiao, I also added the alternative footprint for my switches I found (actually Reid on the slack told me. THX reid:)) Thanks for reading this is Suhaas, Signing off....
|
1792536669.9155378
|
1793141469.9155378
|
|
17882
|
0xKit by @ghita | Stardance
|
ghita
|
1
|
3.0
|
42
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T20:48:57Z", "hours": 3.0, "multiplier": 13.37, "payout": 42, "blessing": "neutral", "text": "0xKit | an offline CTF field kit that runs entirely in your browser What I made 0xKit is a toolkit for Capture The Flag: recon, classical and modern crypto, encodings, and file forensics, all in one page, all client-side. It started life as DevBox, a drawer of generic dev converters, and I reprofiled the whole thing around one user, a CTF player, instead of bolting more tools onto a pile. The centerpiece is a chainable pipeline. Instead of one tool per page, you stack operations into a recipe and each step feeds the next: From Base64, then From Hex, then XOR. Underneath, every operation speaks one language, raw bytes, so a gzip blob survives the chain instead of getting mangled. And there’s a Magic button: paste a blob you don’t understand, and it tries a pile of decodes, scores each result on how much it looks like real data, and hands you the ranked chains to click into. Around that sit a Cipher Solver, an XOR brute-forcer, a File Inspector, a Hash Identifier, and the usual recon suspects (JWT, regex, diff, timestamp). What was challenging Writing by hand the things you’d normally just install. MD5, SHA-1 and SHA-256 from scratch, with all the 32-bit integer and padding fiddliness. A base58 codec that shipped with a sneaky all-zeros bug a test caught. The Magic detector was the hardest part conceptually: scoring “does this look like real data” using printable ratio, entropy, dictionary words, file magic bytes and flag markers, then recursing through candidate decodes without blowing up. Keeping the whole thing byte-accurate end to end so binary data never gets corrupted mid-pipeline took real care. What I’m proud of That it has a point of view now. It’s for someone, instead of being odds and ends. It runs with zero runtime dependencies, no UI library, no router, no crypto packages, just React, Vite and plain CSS, and it’s all backed by a real test suite (68 tests). I committed to the bet hard enough to delete the old generic tools, rebuild the look as a clean monochrome shell with hand-drawn line icons, and ship it as an installable, fully offline PWA. Nothing you paste ever leaves your machine, which for competition data actually matters. How to test it Open the Pipeline tool, paste SGVsbG8gMHhLaXQ=, click Magic, and watch it suggest From Base64 and decode to “Hello 0xKit”. Click the suggestion to load it. Try XOR Brute-Force: set format to hex, paste 2e2225236d3a3631386f6738273f, and the top candidate reveals flag{xor_me} with its key. Cipher Solver brute-forces all 26 Caesar shifts at once; the default text decodes at ROT23. Drop any PNG, PDF or ZIP into File Inspector to see magic-byte detection, a hex dump and extracted strings, all without uploading the file. Paste an MD5 into Hash Identifier to see it guess the algorithm from the digest’s shape. Hit Ctrl+K to jump between tools. Install it as an app and turn off your wifi: it still works.", "repo": "https://github.com/AndreiRazvanGhita/0xKit", "demo": "https://andreirazvanghita.github.io/0xKit/"}]...
|
[{"post_id": 9501, "ts": "2026 [{"post_id": 9501, "ts": "2026-06-15T21:05:15Z", "hours": 1.5628, "text": "Devlog 3 - DevBox becomes 0xKit Big pivot. DevBox is turning into 0xKit, a toolkit for CTF recon, crypto and forensics. Same offline browser app, sharper focus. The honest reason: DevBox worked, but it was a pile of converters you could find in ten other places. No reason to reach for it. So instead of bolting on more generic tools, I pointed the whole thing at one user, a CTF player, and built the harder tools that crowd actually needs. What sold me on the pivot was realising DevBox’s “nice to have” is a real selling point here. Everything runs in your browser and never leaves your machine. For a dev formatting JSON, who cares. For someone poking at competition data they shouldn’t paste into a random website, that matters. The centerpiece is a pipeline. Instead of one tool per page, you stack operations and each feeds the next: From Base64, then From Hex, then XOR. It’s the CyberChef idea, rebuilt small and dependency-free. Underneath, every operation speaks one language, raw bytes, so a gzip blob survives the chain instead of getting mangled. Building it meant writing things by hand you’d normally install: MD5, SHA-1, a base58 codec with a sneaky all-zeros bug a test caught. So was it worth it? Yes. 0xKit has a point of view now, it’s for someone instead of being a drawer of odds and ends. And it forced real work: a composable engine, hand-rolled crypto, a pile of tests. I even cut JSON, color and cron to commit to the bet. Felt scary, then immediately right. Next up: the Magic button, which guesses the decode chain for a blob you don’t understand, then the crypto and forensics tools, and getting 0xKit live."}, {"post_id": 8338, "ts": "2026-06-13T21:09:06Z", "hours": 0.58, "text": "Devlog 2 - Four more tools and search DevBox grew up a bit this round. It went from three tools to seven, and the sidebar finally got a search box. The new ones: Regex tester, Timestamp converter, Color converter, and Text Case. The Regex one is my favorite - it highlights matches live as you type and counts them, with the g/i/m flags as little checkboxes. Timestamp figures out on its own whether you handed it seconds or milliseconds. Color swaps between HEX, RGB and HSL and shows a swatch. Text Case turns whatever you type into camelCase, snake_case, kebab-case and the rest. Now that the list was getting longer, I added a search box up top - just start typing to filter, or hit Ctrl+K to jump straight to it. The fiddly bits were the small edge cases. Regex with something like \\d* used to duplicate the text in the preview, and the case converter choked on acronyms like parseHTTPRequest. Both fixed now. Boring stuff, but it’s the difference between a toy and something you actually trust. Next up: a hash generator, and making the whole thing work offline as an installable app."}, {"post_id": 8270, "ts": "2026-06-13T19:19:48Z", "hours": 1.0867, "text": "Devlog 1 - Getting started My first devlog! DevBox just went from an empty folder to something I can actually use, with three working tools. The idea: one page with all the little tools devs keep googling - JSON, Base64, URL encoding - running right in your browser. No submit buttons, works offline, nothing you type ever leaves your machine. I started with the shell, so adding a tool is dead easy: one folder plus one line in a config file gets it into the sidebar, routing, and search. Then the first three tools - JSON Formatter, Base64, and URL, the last two auto-detecting whether to encode or decode. The tricky part was that auto-detect: it only treats input as Base64 if it survives a clean round-trip, otherwise plain text turns to garbage. Next up: four more tools (Regex, Timestamp, Color, Text Case)."}]...
|
Title: 0xKit by @ghita | Stardance
Devlogs:
Devlo Title: 0xKit by @ghita | Stardance
Devlogs:
Devlog 1 - Getting started My first devlog! DevBox just went from an empty folder to something I can actually use, with three working tools. The idea: one page with all the little tools devs keep googling - JSON, Base64, URL encoding - running right in your browser. No submit buttons, works offline, nothing you type ever leaves your machine. I started with the shell, so adding a tool is dead easy: one folder plus one line in a config file gets it into the sidebar, routing, and search. Then the first three tools - JSON Formatter, Base64, and URL, the last two auto-detecting whether to encode or decode. The tricky part was that auto-detect: it only treats input as Base64 if it survives a clean round-trip, otherwise plain text turns to garbage. Next up: four more tools (Regex, Timestamp, Color, Text Case).
Devlog 2 - Four more tools and search DevBox grew up a bit this round. It went from three tools to seven, and the sidebar finally got a search box. The new ones: Regex tester, Timestamp converter, Color converter, and Text Case. The Regex one is my favorite - it highlights matches live as you type and counts them, with the g/i/m flags as little checkboxes. Timestamp figures out on its own whether you handed it seconds or milliseconds. Color swaps between HEX, RGB and HSL and shows a swatch. Text Case turns whatever you type into camelCase, snake_case, kebab-case and the rest. Now that the list was getting longer, I added a search box up top - just start typing to filter, or hit Ctrl+K to jump straight to it. The fiddly bits were the small edge cases. Regex with something like \d* used to duplicate the text in the preview, and the case converter choked on acronyms like parseHTTPRequest. Both fixed now. Boring stuff, but it’s the difference between a toy and something you actually trust. Next up: a hash generator, and making the whole thing work offline as an installable app.
Devlog 3 - DevBox becomes 0xKit Big pivot. DevBox is turning into 0xKit, a toolkit for CTF recon, crypto and forensics. Same offline browser app, sharper focus. The honest reason: DevBox worked, but it was a pile of converters you could find in ten other places. No reason to reach for it. So instead of bolting on more generic tools, I pointed the whole thing at one user, a CTF player, and built the harder tools that crowd actually needs. What sold me on the pivot was realising DevBox’s “nice to have” is a real selling point here. Everything runs in your browser and never leaves your machine. For a dev formatting JSON, who cares. For someone poking at competition data they shouldn’t paste into a random website, that matters. The centerpiece is a pipeline. Instead of one tool per page, you stack operations and each feeds the next: From Base64, then From Hex, then XOR. It’s the CyberChef idea, rebuilt small and dependency-free. Underneath, every operation speaks one language, raw bytes, so a gzip blob survives the chain instead of getting mangled. Building it meant writing things by hand you’d normally install: MD5, SHA-1, a base58 codec with a sneaky all-zeros bug a test caught. So was it worth it? Yes. 0xKit has a point of view now, it’s for someone instead of being a drawer of odds and ends. And it forced real work: a composable engine, hand-rolled crypto, a pile of tests. I even cut JSON, color and cron to commit to the bet. Felt scary, then immediately right. Next up: the Magic button, which guesses the decode chain for a blob you don’t understand, then the crypto and forensics tools, and getting 0xKit live.
Ships:
0xKit | an offline CTF field kit that runs entirely in your browser What I made 0xKit is a toolkit for Capture The Flag: recon, classical and modern crypto, encodings, and file forensics, all in one page, all client-side. It started life as DevBox, a drawer of generic dev converters, and I reprofiled the whole thing around one user, a CTF player, instead of bolting more tools onto a pile. The centerpiece is a chainable pipeline. Instead of one tool per page, you stack operations into a recipe and each step feeds the next: From Base64, then From Hex, then XOR. Underneath, every operation speaks one language, raw bytes, so a gzip blob survives the chain instead of getting mangled. And there’s a Magic button: paste a blob you don’t understand, and it tries a pile of decodes, scores each result on how much it looks like real data, and hands you the ranked chains to click into. Around that sit a Cipher Solver, an XOR brute-forcer, a File Inspector, a Hash Identifier, and the usual recon suspects (JWT, regex, diff, timestamp). What was challenging Writing by hand the things you’d normally just install. MD5, SHA-1 and SHA-256 from scratch, with all the 32-bit integer and padding fiddliness. A base58 codec that shipped with a sneaky all-zeros bug a test caught. The Magic detector was the hardest part conceptually: scoring “does this look like real data” using printable ratio, entropy, dictionary words, file magic bytes and flag markers, then recursing through candidate decodes without blowing up. Keeping the whole thing byte-accurate end to end so binary data never gets corrupted mid-pipeline took real care. What I’m proud of That it has a point of view now. It’s for someone, instead of being odds and ends. It runs with zero runtime dependencies, no UI library, no router, no crypto packages, just React, Vite and plain CSS, and it’s all backed by a real test suite (68 tests). I committed to the bet hard enough to delete the old generic tools, rebuild the look as a clean monochrome shell with hand-drawn line icons, and ship it as an installable, fully offline PWA. Nothing you paste ever leaves your machine, which for competition data actually matters. How to test it Open the Pipeline tool, paste SGVsbG8gMHhLaXQ=, click Magic, and watch it suggest From Base64 and decode to “Hello 0xKit”. Click the suggestion to load it. Try XOR Brute-Force: set format to hex, paste 2e2225236d3a3631386f6738273f, and the top candidate reveals flag{xor_me} with its key. Cipher Solver brute-forces all 26 Caesar shifts at once; the default text decodes at ROT23. Drop any PNG, PDF or ZIP into File Inspector to see magic-byte detection, a hex dump and extracted strings, all without uploading the file. Paste an MD5 into Hash Identifier to see it guess the algorithm from the digest’s shape. Hit Ctrl+K to jump between tools. Install it as an app and turn off your wifi: it still works....
|
1792990180.9823012
|
1793076580.9823012
|
|
1389
|
Pixel Art Maker by @alexdougherty | Stardance
|
alexdougherty
|
0
|
3.48
|
0
|
[]
|
[{"post_id": 950, "ts": "2026- [{"post_id": 950, "ts": "2026-06-02T18:31:16Z", "hours": 1.3447, "text": "Python Pixel Art Maker Devlog #2: Added functionality to some buttons Added an adjustable grid (able to have dimensions changed) Added Asyncio Tried Pygbag to add Web Functionality (struggling…) Any suggestions? Thanks!"}, {"post_id": 364, "ts": "2026-06-01T18:15:45Z", "hours": 2.1344, "text": "I’ve finally created a base UI to surround my custom Pixel Art creation program!"}]...
|
Title: Pixel Art Maker by @alexdougherty | Stardan Title: Pixel Art Maker by @alexdougherty | Stardance
Devlogs:
I’ve finally created a base UI to surround my custom Pixel Art creation program!
Python Pixel Art Maker Devlog #2: Added functionality to some buttons Added an adjustable grid (able to have dimensions changed) Added Asyncio Tried Pygbag to add Web Functionality (struggling…) Any suggestions? Thanks!...
|
1792691497.214663
|
1793296297.214663
|
|
19309
|
K-Bot by @angledangel | Stardance
|
angledangel
|
0
|
0.97
|
0
|
[]
|
[{"post_id": 9487, "ts": "2026 [{"post_id": 9487, "ts": "2026-06-15T20:46:54Z", "hours": 0.9742, "text": "For some reason my code glitched so I couldn’t get the bot to say the latency + push to github. But I did it!"}]...
|
Title: K-Bot by @angledangel | Stardance
Devlogs: Title: K-Bot by @angledangel | Stardance
Devlogs:
For some reason my code glitched so I couldn’t get the bot to say the latency + push to github. But I did it!...
|
1792601542.0552647
|
1793206342.0552647
|
|
19143
|
WaterMelon OS by @Tanish1 | Stardance
|
Tanish1
|
0
|
0.32
|
0
|
[]
|
[{"post_id": 9485, "ts": "2026 [{"post_id": 9485, "ts": "2026-06-15T20:45:21Z", "hours": 0.3175, "text": "Got a lot of the intro screen ready, but almost done with it. Looks very polished"}]...
|
Title: WaterMelon OS by @Tanish1 | Stardance
Devl Title: WaterMelon OS by @Tanish1 | Stardance
Devlogs:
Got a lot of the intro screen ready, but almost done with it. Looks very polished...
|
1792504283.1859741
|
1793109083.1859741
|
|
15351
|
My awesome macropad! by @MattyO | Stardance
|
MattyO
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T20:00:39Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created my first Macropad and learned how to use Kicad along with how to code in python. I also used CAD which I have used in the past. I am hoping the parts will be shipped out soon so I can build this!", "repo": "https://github.com/Matty-0/Macropad-MattyO", "demo": ""}]...
|
[{"post_id": 9483, "ts": "2026 [{"post_id": 9483, "ts": "2026-06-15T20:43:56Z", "hours": 0.3922, "text": "I just finished creating the firmware for my Macropad"}]...
|
Title: My awesome macropad! by @MattyO | Stardance Title: My awesome macropad! by @MattyO | Stardance
Devlogs:
I just finished creating the firmware for my Macropad
Ships:
I created my first Macropad and learned how to use Kicad along with how to code in python. I also used CAD which I have used in the past. I am hoping the parts will be shipped out soon so I can build this!...
|
1792979647.3093376
|
1793066047.3093376
|
|
6289
|
Gravity Simulator by @lyra_stiglitz | Stardance
|
lyra_stiglitz
|
0
|
1.25
|
0
|
[]
|
[{"post_id": 9475, "ts": "2026 [{"post_id": 9475, "ts": "2026-06-15T20:36:46Z", "hours": 1.25, "text": "Hi! Welcome to my project GravitySimulator and my first devlog. Right now the project will likely be a little boring to watch since I’m working on stage 1 (learning basic 2D graphics in java). Learned how to create a java canvas, draw basic shapes, text, and import images."}]...
|
Title: Gravity Simulator by @lyra_stiglitz | Stard Title: Gravity Simulator by @lyra_stiglitz | Stardance
Devlogs:
Hi! Welcome to my project GravitySimulator and my first devlog. Right now the project will likely be a little boring to watch since I’m working on stage 1 (learning basic 2D graphics in java). Learned how to create a java canvas, draw basic shapes, text, and import images....
|
1792810178.6120698
|
1793414978.6120698
|
|
11699
|
albumFinder by @maruscarebecca | Stardance
|
maruscarebecca
|
1
|
2.29
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-09T17:39:46Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Today I’ve worked on my first ever website! After following some really entertaining, interactive (and sometimes hard) lessons and tutorials from CodeDex, I’ve finally put my (beginner) web dev skills to use and made a website. Of course, out of my own stubborness, I jumped into a harder tutorial than needed, and just slightly lost my mind a couple of times from confusion, but I made it nevertheless. It was fun working with the Spotify Web API, and it was a really special and unique experience for me to use it for my first ever website, since music is such a big part of my life and identity:)) My final goal is building a more complex and interactive app with music using Spotify’s APIs, so stay tuned for that, but this was certainly a fun stepping stone :)", "repo": "https://github.com/rebecca-marusca/albumFinder", "demo": "https://album-finder-ten.vercel.app/"}]...
|
[{"post_id": 9471, "ts": "2026 [{"post_id": 9471, "ts": "2026-06-15T20:31:20Z", "hours": 0.2897, "text": "Changed parts of the UI so my eyes stopped hurting from the white album covers:))"}, {"post_id": 5757, "ts": "2026-06-09T17:35:06Z", "hours": 2.4564, "text": "🎵 Wrapped up work on my first ever web project!! It was a fun and rewarding (and frustrating) experience, as it always is with coding, and I enjoyed (and hated) every second:) Still looooots to improve, and will surely do so :))"}]...
|
Title: albumFinder by @maruscarebecca | Stardance
Title: albumFinder by @maruscarebecca | Stardance
Devlogs:
🎵 Wrapped up work on my first ever web project!! It was a fun and rewarding (and frustrating) experience, as it always is with coding, and I enjoyed (and hated) every second:) Still looooots to improve, and will surely do so :))
Changed parts of the UI so my eyes stopped hurting from the white album covers:))
Ships:
Today I’ve worked on my first ever website! After following some really entertaining, interactive (and sometimes hard) lessons and tutorials from CodeDex, I’ve finally put my (beginner) web dev skills to use and made a website. Of course, out of my own stubborness, I jumped into a harder tutorial than needed, and just slightly lost my mind a couple of times from confusion, but I made it nevertheless. It was fun working with the Spotify Web API, and it was a really special and unique experience for me to use it for my first ever website, since music is such a big part of my life and identity:)) My final goal is building a more complex and interactive app with music using Spotify’s APIs, so stay tuned for that, but this was certainly a fun stepping stone :)...
|
1792997471.570134
|
1793083871.570134
|
|
19342
|
Pulse VR by @rylvion | Stardance
|
rylvion
|
1
|
31.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T21:46:08Z", "hours": 31.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i created a web app for Unit 15: Website Development as part of my coursework, hosted on GitHub Pages, with multiple pages and a 4-step booking flow. a major challenge was working under time constraints while fixing bugs, improving the website, documenting, writing up the report and way way more than i expected. I am most proud of the booking system, advanced GitHub Actions, and achieving 90+ on PageSpeed Insights. To test the project, users should explore different pages and try the full booking flow (bookings tab) on both mobile and desktop. also there is 1 devlog and im shipping it rn to gather end user feedback for the next stage of u15 (review + refinement + documenting + bug fixing + more )", "repo": "https://github.com/rylvion/pulse-vr/", "demo": "https://rylvion.github.io/pulse-vr/"}]...
|
[{"post_id": 9467, "ts": "2026 [{"post_id": 9467, "ts": "2026-06-15T20:29:21Z", "hours": 30.7233, "text": "booking flow (4 steps process) home/pricing/loads of other pages rlly advanced github actions more stuff that i cant remember wireframes: https://app.moqups.com/7pztHxaFX9Yz5oI0v58osy9wUSSnmtnt/view/page/aaef4bdbf"}]...
|
Title: Pulse VR by @rylvion | Stardance
Devlogs:
Title: Pulse VR by @rylvion | Stardance
Devlogs:
booking flow (4 steps process) home/pricing/loads of other pages rlly advanced github actions more stuff that i cant remember wireframes: https://app.moqups.com/7pztHxaFX9Yz5oI0v58osy9wUSSnmtnt/view/page/aaef4bdbf
Ships:
i created a web app for Unit 15: Website Development as part of my coursework, hosted on GitHub Pages, with multiple pages and a 4-step booking flow. a major challenge was working under time constraints while fixing bugs, improving the website, documenting, writing up the report and way way more than i expected. I am most proud of the booking system, advanced GitHub Actions, and achieving 90+ on PageSpeed Insights. To test the project, users should explore different pages and try the full booking flow (bookings tab) on both mobile and desktop. also there is 1 devlog and im shipping it rn to gather end user feedback for the next stage of u15 (review + refinement + documenting + bug fixing + more )...
|
1792986527.7012672
|
1793072927.7012672
|
|
14549
|
brainrotOS by @franco | Stardance
|
franco
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T20:29:25Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hey, i’ve made an operating system called BrainrotOS yeah…. It has 4 main apps: Welcome Weather Zero Paloma Clicker I am not proud of the project idea but ive advanced way to much. sorry for making you review this. 🥀", "repo": "https://github.com/Franco-Senes/BrainrotOS", "demo": "https://franco-senes.github.io/BrainrotOS/"}]...
|
[{"post_id": 9461, "ts": "2026 [{"post_id": 9461, "ts": "2026-06-15T20:24:57Z", "hours": 0.3458, "text": "Made the windows smoother and also fixed some bugs"}, {"post_id": 9438, "ts": "2026-06-15T19:57:14Z", "hours": 0.4631, "text": "finished the os add weather and my personal portfolio i hate this project 🥀😭"}, {"post_id": 5953, "ts": "2026-06-09T23:33:03Z", "hours": 0.3744, "text": "what is this 😭🥀"}]...
|
Title: brainrotOS by @franco | Stardance
Devlogs: Title: brainrotOS by @franco | Stardance
Devlogs:
what is this 😭🥀
finished the os add weather and my personal portfolio i hate this project 🥀😭
Made the windows smoother and also fixed some bugs
Ships:
Hey, i’ve made an operating system called BrainrotOS yeah…. It has 4 main apps: Welcome Weather Zero Paloma Clicker I am not proud of the project idea but ive advanced way to much. sorry for making you review this. 🥀...
|
1792997648.6555953
|
1793084048.6555953
|
|
15853
|
Python Quiz by @Mymy | Stardance
|
Mymy
|
0
|
1.91
|
0
|
[]
|
[{"post_id": 9459, "ts": "2026 [{"post_id": 9459, "ts": "2026-06-15T20:23:12Z", "hours": 0.9556, "text": "Today i worked on more questions and more logical stuff! I will share all of my code when i am done. Look at these drawings i made. Its a pirate and wizard if you couldnt tell."}, {"post_id": 6499, "ts": "2026-06-10T22:25:00Z", "hours": 0.9517, "text": "Hey I am making a pirate quiz game! It will be interesting because right now they are the best i can do"}]...
|
Title: Python Quiz by @Mymy | Stardance
Devlogs:
Title: Python Quiz by @Mymy | Stardance
Devlogs:
Hey I am making a pirate quiz game! It will be interesting because right now they are the best i can do
Today i worked on more questions and more logical stuff! I will share all of my code when i am done. Look at these drawings i made. Its a pirate and wizard if you couldnt tell....
|
1792666196.858894
|
1793270996.858894
|
|
5347
|
Equiplane by @qqxzew | Stardance
|
qqxzew
|
1
|
14.0
|
217
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T20:28:36Z", "hours": 14.0, "multiplier": 15.16, "payout": 217, "blessing": "neutral", "text": "I made EquipLane, an industrial maintenance ticketing system where clients can report equipment problems, engineers can manage assigned repair tasks, and admins can control the whole maintenance workflow. The hardest part was coming up with the idea and building the project from scratch without much previous experience. I had to figure out the structure, database, roles, authentication, and the whole workflow step by step. I’m most proud that I was able to finish a working project and also make the GitHub repository look organized and well documented. This is my first major portfolio project, so I’m proud that it turned into something complete. To test it, just open the project link and log in using the demo credentials from the README.", "repo": "https://github.com/qqxzew/equiplane", "demo": "https://klidnapraha.fun/login.php"}]...
|
[{"post_id": 9458, "ts": "2026 [{"post_id": 9458, "ts": "2026-06-15T20:22:33Z", "hours": 0.5267, "text": "have add deployment😀"}, {"post_id": 9388, "ts": "2026-06-15T18:47:23Z", "hours": 1.4058, "text": "What I did: Wrapped up the EquipLane project and prepared it for my portfolio. I containerized the entire application using Docker and Docker Compose, linking a PHP 8.2 server with a MariaDB database so the whole environment can be spun up with a single command. I also set up a CI pipeline using GitHub Actions to automatically lint and check PHP syntax on every push. Finally, I generated a complete Entity-Relationship Diagram (ERD) to visualize the database architecture and wrote a comprehensive README explaining the core mechanics, security features, and the PRG pattern I implemented. The struggles: I definitely reached the limit of what makes sense to build with pure procedural PHP. Refactoring and maintaining this architecture showed me exactly why OOP and modern frameworks exist. It was a great learning experience for understanding the fundamentals, but I am definitely ready to move on to Nette for my next hackathon projects."}, {"post_id": 8946, "ts": "2026-06-14T21:29:13Z", "hours": 3.6275, "text": "What I did: Massive architectural and security overhaul today. I completely rewrote the form submission logic to follow the Post-Redirect-Get (PRG) pattern, integrating session-based Flash messages and strict CSRF token validation across all endpoints. I also implemented “Sticky Forms” so users never lose their detailed text inputs if a validation error occurs. For the administration side, I built full CRUD interfaces to manage personnel roles, corporate clients, and the equipment registry without needing direct database access. Finally, I wrote SQL-level pagination for the main tickets table to keep the application fast and scalable as data grows. The struggles: I finally switched from VS Code to PhpStorm today and I am just in shock at how insanely cool and powerful it is. It instantly highlighted database schema mismatches I missed and forced me to write much cleaner code, though getting used to its strict warnings definitely took some time."}, {"post_id": 6933, "ts": "2026-06-11T16:52:18Z", "hours": 2.3361, "text": "What I did: Expanded the engineer’s resource reporting logic. When resolving a ticket, engineers are now required to input the exact hours spent and the cost of replacement parts. Built a financial calculation module on the backend that automatically aggregates these costs, applies the Czech 21% VAT (DPH), and displays a detailed invoice summary to admins and clients. Also implemented a critical backup request feature: engineers can now submit a “Request Backup” flag along with a specific text reason if they encounter blocking issues on-site. Admins immediately see an approval panel to either accept the request (and assign additional help) or reject it. The struggles: I had no idea for frontend"}, {"post_id": 5086, "ts": "2026-06-08T19:30:11Z", "hours": 1.7997, "text": "Built the ticket creation page with role protection. Clients can now select their equipment, set priorities, and safely submit maintenance requests to the database via PDO prepared statements. The struggles: Broken the SQL query and html :>"}, {"post_id": 4452, "ts": "2026-06-07T19:34:13Z", "hours": 2.2319, "text": "Milestone: From Static UI to Secure Multi-User App What I did: Since the last update on the UI dashboard, I have completely transformed the project from a static frontend into a secure, functional multi-user system using native PHP and MariaDB. Authentication & Session Management: Built a backend login system from scratch. Implemented secure password hashing using bcrypt. Set up native PHP sessions to track users across pages. Security Guards & Logout: Created a centralized guard script to prevent unauthorized URI access. If a user isn’t logged in, they are killed and redirected to the login page. Added a full session-destroying logout mechanism. Role-Based Access Control (RBAC): Differentiated the system for Admins, Engineers, and Clients. The UI now dynamically hides navigation links based on roles, and the backend explicitly throws a 403 Forbidden error if a non-admin tries to access the core control panel. Profile & Password Updates: Built a personal profile page that fetches current user details and handles password modification with server-side validation. The struggles: Ran into multiple syntax walls, including incorrect sql, forgotten POST block brackets, and a lot of typo mismatches. Also had to deal with MariaDB unique constraint violations during database seed testing, which I resolved by writing a structured TRUNCATE routine to clear tables before fresh seeding. Now the app actually feels like a secure industrial tool rather than just a Tailwind template."}, {"post_id": 1647, "ts": "2026-06-03T19:33:34Z", "hours": 0.3758, "text": "After getting the database connected, I built the main dashboard U, also I dont have any idea for design after hard day so I asked AI about help…"}, {"post_id": 1619, "ts": "2026-06-03T19:08:20Z", "hours": 1.1228, "text": "Honestly, it is my first time building a real website in PHP, and I realized I had completely forgotten most of my HTML and CSS. Today I successfully parsed the environment variables, securely connected the MariaDB database via PDO, and built a clean industrial dashboard layout using Tailwind CSS. EquipLane is finally coming to life."}, {"post_id": 1002, "ts": "2026-06-02T19:45:55Z", "hours": 0.9236, "text": "Today I set up the initial structure for Equiplane, an industrial equipment maintenance workflow system I prepared the first part of the database schema for the project, including the base tables for users and companies. The goal is to build a system where clients can report equipment failures, admins can assign engineers, and engineers can manage repair tickets."}]...
|
Title: Equiplane by @qqxzew | Stardance
Devlogs:
Title: Equiplane by @qqxzew | Stardance
Devlogs:
Today I set up the initial structure for Equiplane, an industrial equipment maintenance workflow system I prepared the first part of the database schema for the project, including the base tables for users and companies. The goal is to build a system where clients can report equipment failures, admins can assign engineers, and engineers can manage repair tickets.
Honestly, it is my first time building a real website in PHP, and I realized I had completely forgotten most of my HTML and CSS. Today I successfully parsed the environment variables, securely connected the MariaDB database via PDO, and built a clean industrial dashboard layout using Tailwind CSS. EquipLane is finally coming to life.
After getting the database connected, I built the main dashboard U, also I dont have any idea for design after hard day so I asked AI about help…
Milestone: From Static UI to Secure Multi-User App What I did: Since the last update on the UI dashboard, I have completely transformed the project from a static frontend into a secure, functional multi-user system using native PHP and MariaDB. Authentication & Session Management: Built a backend login system from scratch. Implemented secure password hashing using bcrypt. Set up native PHP sessions to track users across pages. Security Guards & Logout: Created a centralized guard script to prevent unauthorized URI access. If a user isn’t logged in, they are killed and redirected to the login page. Added a full session-destroying logout mechanism. Role-Based Access Control (RBAC): Differentiated the system for Admins, Engineers, and Clients. The UI now dynamically hides navigation links based on roles, and the backend explicitly throws a 403 Forbidden error if a non-admin tries to access the core control panel. Profile & Password Updates: Built a personal profile page that fetches current user details and handles password modification with server-side validation. The struggles: Ran into multiple syntax walls, including incorrect sql, forgotten POST block brackets, and a lot of typo mismatches. Also had to deal with MariaDB unique constraint violations during database seed testing, which I resolved by writing a structured TRUNCATE routine to clear tables before fresh seeding. Now the app actually feels like a secure industrial tool rather than just a Tailwind template.
Built the ticket creation page with role protection. Clients can now select their equipment, set priorities, and safely submit maintenance requests to the database via PDO prepared statements. The struggles: Broken the SQL query and html :>
What I did: Expanded the engineer’s resource reporting logic. When resolving a ticket, engineers are now required to input the exact hours spent and the cost of replacement parts. Built a financial calculation module on the backend that automatically aggregates these costs, applies the Czech 21% VAT (DPH), and displays a detailed invoice summary to admins and clients. Also implemented a critical backup request feature: engineers can now submit a “Request Backup” flag along with a specific text reason if they encounter blocking issues on-site. Admins immediately see an approval panel to either accept the request (and assign additional help) or reject it. The struggles: I had no idea for frontend
What I did: Massive architectural and security overhaul today. I completely rewrote the form submission logic to follow the Post-Redirect-Get (PRG) pattern, integrating session-based Flash messages and strict CSRF token validation across all endpoints. I also implemented “Sticky Forms” so users never lose their detailed text inputs if a validation error occurs. For the administration side, I built full CRUD interfaces to manage personnel roles, corporate clients, and the equipment registry without needing direct database access. Finally, I wrote SQL-level pagination for the main tickets table to keep the application fast and scalable as data grows. The struggles: I finally switched from VS Code to PhpStorm today and I am just in shock at how insanely cool and powerful it is. It instantly highlighted database schema mismatches I missed and forced me to write much cleaner code, though getting used to its strict warnings definitely took some time.
What I did: Wrapped up the EquipLane project and prepared it for my portfolio. I containerized the entire application using Docker and Docker Compose, linking a PHP 8.2 server with a MariaDB database so the whole environment can be spun up with a single command. I also set up a CI pipeline using GitHub Actions to automatically lint and check PHP syntax on every push. Finally, I generated a complete Entity-Relationship Diagram (ERD) to visualize the database architecture and wrote a comprehensive README explaining the core mechanics, security features, and the PRG pattern I implemented. The struggles: I definitely reached the limit of what makes sense to build with pure procedural PHP. Refactoring and maintaining this architecture showed me exactly why OOP and modern frameworks exist. It was a great learning experience for understanding the fundamentals, but I am definitely ready to move on to Nette for my next hackathon projects.
have add deployment😀
Ships:
I made EquipLane, an industrial maintenance ticketing system where clients can report equipment problems, engineers can manage assigned repair tasks, and admins can control the whole maintenance workflow. The hardest part was coming up with the idea and building the project from scratch without much previous experience. I had to figure out the structure, database, roles, authentication, and the whole workflow step by step. I’m most proud that I was able to finish a working project and also make the GitHub repository look organized and well documented. This is my first major portfolio project, so I’m proud that it turned into something complete. To test it, just open the project link and log in using the demo credentials from the README....
|
1792986551.0074582
|
1793072951.0074582
|
|
1719
|
First attempt at Agentic AI by @navak | Stardance
|
navak
|
0
|
0.45
|
0
|
[]
|
[{"post_id": 9457, "ts": "2026 [{"post_id": 9457, "ts": "2026-06-15T20:22:31Z", "hours": 0.4461, "text": "Today I worked on setting up my Ollama and vs code intigration"}]...
|
Title: First attempt at Agentic AI by @navak | Sta Title: First attempt at Agentic AI by @navak | Stardance
Devlogs:
Today I worked on setting up my Ollama and vs code intigration...
|
1792702444.9712355
|
1793307244.9712355
|
|
19349
|
town hall bot by @valentine | Stardance
|
valentine
|
0
|
9.17
|
0
|
[]
|
[{"post_id": 9456, "ts": "2026 [{"post_id": 9456, "ts": "2026-06-15T20:21:58Z", "hours": 9.1719, "text": "I’ve implemented many things so far, like a honeypot channel to catch spam bots, a ticket system for users to get support from staff, information messages for rules and guidelines, user verification via a button press, and new member announcements with custom images. (pictured below)"}]...
|
Title: town hall bot by @valentine | Stardance
De Title: town hall bot by @valentine | Stardance
Devlogs:
I’ve implemented many things so far, like a honeypot channel to catch spam bots, a ticket system for users to get support from staff, information messages for rules and guidelines, user verification via a button press, and new member announcements with custom images. (pictured below)...
|
1792580024.7618306
|
1793184824.7618306
|
|
19076
|
pos-todo v2 by @vividsystem | Stardance
|
vividsystem
|
0
|
3.86
|
0
|
[]
|
[{"post_id": 9450, "ts": "2026 [{"post_id": 9450, "ts": "2026-06-15T20:18:56Z", "hours": 3.8556, "text": "Just made a custom (therefore a bit shitty) markdown parser to parse slack messages and format them correctly when being printed"}]...
|
Title: pos-todo v2 by @vividsystem | Stardance
De Title: pos-todo v2 by @vividsystem | Stardance
Devlogs:
Just made a custom (therefore a bit shitty) markdown parser to parse slack messages and format them correctly when being printed...
|
1792558195.0691285
|
1793162995.0691285
|
|
10122
|
boom n zoom by @remainium | Stardance
|
remainium
|
0
|
6.36
|
0
|
[]
|
[{"post_id": 9446, "ts": "2026 [{"post_id": 9446, "ts": "2026-06-15T20:14:44Z", "hours": 0.885, "text": "forward fuselage cad started"}, {"post_id": 9410, "ts": "2026-06-15T19:20:36Z", "hours": 5.4783, "text": "designing the main wing airfoil"}]...
|
Title: boom n zoom by @remainium | Stardance
Devl Title: boom n zoom by @remainium | Stardance
Devlogs:
designing the main wing airfoil
forward fuselage cad started...
|
1792695219.257077
|
1793300019.257077
|
|
18545
|
Pixel Chess by @UltimateForm | Stardance
|
UltimateForm
|
0
|
2.2
|
0
|
[]
|
[{"post_id": 9437, "ts": "2026 [{"post_id": 9437, "ts": "2026-06-15T19:57:00Z", "hours": 0.8386, "text": "worked on legal moves and pieces resetting after loss or win"}, {"post_id": 8975, "ts": "2026-06-14T22:51:19Z", "hours": 0.6594, "text": "started working on basic game logic & piece nodes + board interactability"}, {"post_id": 8693, "ts": "2026-06-14T13:18:44Z", "hours": 0.7036, "text": "designed base textures using LibreSprite, started working on 2d camera stuff in Godot (camera shake, noise etc.)"}]...
|
Title: Pixel Chess by @UltimateForm | Stardance
D Title: Pixel Chess by @UltimateForm | Stardance
Devlogs:
designed base textures using LibreSprite, started working on 2d camera stuff in Godot (camera shake, noise etc.)
started working on basic game logic & piece nodes + board interactability
worked on legal moves and pieces resetting after loss or win...
|
1792788557.0823643
|
1793393357.0823643
|
|
17537
|
The Gitboard 2.0 by @aamir_pa2009 | Stardance
|
aamir_pa2009
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T22:35:14Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a 8 key 2x4 Matrix wired keypad that is preprogrammed with commonly used git phrases to make my programming easier, this was my first time using Fusion 360 and KiCAD. Please tell me if you have any improvements. Thanks!", "repo": "https://github.com/AamirKPathan/TheGitboard2.0", "demo": ""}]...
|
[{"post_id": 9435, "ts": "2026 [{"post_id": 9435, "ts": "2026-06-15T19:55:37Z", "hours": 1.8803, "text": "I Finally Finished my Hackpad, GITBOARD2.0 with pre programmed git messages, just waiting on approval now."}]...
|
Title: The Gitboard 2.0 by @aamir_pa2009 | Stardan Title: The Gitboard 2.0 by @aamir_pa2009 | Stardance
Devlogs:
I Finally Finished my Hackpad, GITBOARD2.0 with pre programmed git messages, just waiting on approval now.
Ships:
I made a 8 key 2x4 Matrix wired keypad that is preprogrammed with commonly used git phrases to make my programming easier, this was my first time using Fusion 360 and KiCAD. Please tell me if you have any improvements. Thanks!...
|
1792993863.6634653
|
1793080263.6634653
|
|
18949
|
Hangman!!!!! by @AK_47 | Stardance
|
AK_47
|
1
|
0.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T20:48:33Z", "hours": 0.0, "multiplier": 1.83, "payout": 1, "blessing": "neutral", "text": "I made a simple hangman game you can play against a computer! It uses HTML, and I used Google Gemini to explain my bugs in the code. I wasn’t able to log all of my time on this project, though, so it might be A LOT less than what I actually spent. You play against the computer with a preset list of words(with a hint before you start entering your first guess). Have fun :)", "repo": "https://github.com/AKKKKKK-47/hangman/blob/main/index.html", "demo": "https://akkkkkk-47.github.io/hangman/"}]...
|
[{"post_id": 9434, "ts": "2026 [{"post_id": 9434, "ts": "2026-06-15T19:54:58Z", "hours": 0.3836, "text": "I finally finished the code for the hangman game!"}]...
|
Title: Hangman!!!!! by @AK_47 | Stardance
Devlogs Title: Hangman!!!!! by @AK_47 | Stardance
Devlogs:
I finally finished the code for the hangman game!
Ships:
I made a simple hangman game you can play against a computer! It uses HTML, and I used Google Gemini to explain my bugs in the code. I wasn’t able to log all of my time on this project, though, so it might be A LOT less than what I actually spent. You play against the computer with a preset list of words(with a hint before you start entering your first guess). Have fun :)...
|
1792979572.5163894
|
1793065972.5163894
|
|
10125
|
Chamber's Card by @RishuKamboj | Stardance
|
RishuKamboj
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T19:44:23Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a 3D model of the ability card of Chamber from Valorant. Made this to get better at designing in Fusion360, im really happy with how it turned out.", "repo": "https://github.com/rydei/Chamber-Card", "demo": ""}]...
|
[{"post_id": 9422, "ts": "2026 [{"post_id": 9422, "ts": "2026-06-15T19:42:38Z", "hours": 0.2958, "text": "Final Product! Here are my Printer Settings: - (0.4 mm nozzle) -Layer Height: 0.12mm Fine -Build Plate: Textured PEI Plate (you can use any) -Wall Generator: Arachne -Order of walls: Outer/Inner -Ironing: Topmost Surfaces only -Only one wall on top surfaces: Enabled -Outer Wall Speed: 50 mm/s -Top Surface Speed: 50 mm/s -No Brim"}, {"post_id": 4287, "ts": "2026-06-07T15:23:29Z", "hours": 1.9464, "text": "Finished with Modelling the designs , will post Printed Version soon."}]...
|
Title: Chamber's Card by @RishuKamboj | Starda Title: Chamber's Card by @RishuKamboj | Stardance
Devlogs:
Finished with Modelling the designs , will post Printed Version soon.
Final Product! Here are my Printer Settings: - (0.4 mm nozzle) -Layer Height: 0.12mm Fine -Build Plate: Textured PEI Plate (you can use any) -Wall Generator: Arachne -Order of walls: Outer/Inner -Ironing: Topmost Surfaces only -Only one wall on top surfaces: Enabled -Outer Wall Speed: 50 mm/s -Top Surface Speed: 50 mm/s -No Brim
Ships:
I made a 3D model of the ability card of Chamber from Valorant. Made this to get better at designing in Fusion360, im really happy with how it turned out....
|
1792983219.9859166
|
1793069619.9859166
|
|
12546
|
Weather App for ESP32 with screen by @sebimala | S Weather App for ESP32 with screen by @sebimala | Stardance...
|
sebimala
|
0
|
0.76
|
0
|
[]
|
[{"post_id": 9409, "ts": "2026 [{"post_id": 9409, "ts": "2026-06-15T19:20:06Z", "hours": 0.4683, "text": "Devlog 1: I have made the first stable, “bugfree” version of this WeatherApp for an esp32 arduino. It works with OpenWeatherMap, and uses the libraries TFT_eSPI, ArduinoJSON, lvgl. I will try to add touch screen capibilyties i the future. If you want to see what i based my app on, check out: https://github.com/witnessmenow/ESP32-Cheap-Yellow-Display/ PS. there are lots of other versions of this thing i making"}, {"post_id": 7993, "ts": "2026-06-13T10:27:27Z", "hours": 0.2875, "text": "Start of the esp32 weather app!"}]...
|
Title: Weather App for ESP32 with screen by @sebim Title: Weather App for ESP32 with screen by @sebimala | Stardance
Devlogs:
Start of the esp32 weather app!
Devlog 1: I have made the first stable, “bugfree” version of this WeatherApp for an esp32 arduino. It works with OpenWeatherMap, and uses the libraries TFT_eSPI, ArduinoJSON, lvgl. I will try to add touch screen capibilyties i the future. If you want to see what i based my app on, check out: https://github.com/witnessmenow/ESP32-Cheap-Yellow-Display/ PS. there are lots of other versions of this thing i making...
|
1792734888.1557596
|
1793339688.1557596
|
|
17334
|
Frictionless by @harshithn | Stardance
|
harshithn
|
1
|
11.11
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-14T20:55:03Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built recall, a local full-text search tool for macOS. It indexes your clipboard, browser history, Apple Notes, shell history, mail, Slack, and Discord into a single SQLite FTS5 database, then lets you search all of it with one CLI command or a small web UI. The problem: I kept losing 5 minutes bouncing between Slack search, Gmail search, browser history, and Notes whenever I tried to find something I knew I’d seen. recall kills that — one box, sub-second results, 100% local. No cloud, no account, no telemetry. What was challenging: macOS permissions (Apple Notes + Mail need Full Disk Access and fail silently without it). I added a recall doctor command that surfaces these failures with actionable hints. Thread-safety in SQLite when the HTTP server and indexer share a connection. The vanilla-JS web UI had to feel snappy without a framework — no React, no build step, just debounced fetch + DOM. What I’m proud of: the whole thing is ~2,500 lines of Python plus a 200-line vanilla-JS web UI. Zero external runtime dependencies. Anyone can read the whole thing in an hour and trust it with their data because the data never leaves the machine. To try it: git clone https://github.com/hnelabhotla-boop/Recall , run ./install.sh, then recall ui to open the search box.", "repo": "https://github.com/hnelabhotla-boop/Recall", "demo": "https://github.com/hnelabhotla-boop/Recall#readme"}]...
|
[{"post_id": 9387, "ts": "2026 [{"post_id": 9387, "ts": "2026-06-15T18:44:49Z", "hours": 4.2847, "text": "URL search results show the real page title now, not the raw link Before: https://news.ycombinator.com/item?id=12345 After: Show HN: I built X – Hacker News Cached locally so URLs only get fetched once New recall titles command to backfill the whole index No new dependencies"}, {"post_id": 9213, "ts": "2026-06-15T13:54:58Z", "hours": 3.3175, "text": "Fixed silent failure on Apple Notes (and Mail) indexing Root cause: macOS Full Disk Access not granted to the user’s terminal New recall setup command — click-by-step walkthrough Detects your terminal (Terminal, iTerm, Warp, VS Code) Opens the right System Settings pane Reminds you to quit+reopen the terminal (the #1 gotcha) recall doctor now points to recall setup instead of just saying “Full Disk Access required” Apple Notes indexer now logs a clear permission warning instead of failing silently README gets a new “macOS permissions (one-time, ~30 seconds)” section Triggered by reviewer feedback: “I couldn’t get indexing notes to work”"}, {"post_id": 8996, "ts": "2026-06-15T00:09:49Z", "hours": 0.5086, "text": "Fixed the issue regarding the try project button"}, {"post_id": 8909, "ts": "2026-06-14T20:33:18Z", "hours": 0.8881, "text": "New recall doctor subcommand that runs a full setup check Verifies Python, SQLite FTS5, pbpaste, osascript, index DB Checks every data source — clipboard, browsers, notes, mail, chat Surfaces permission-gated failures (e.g. Apple Notes needs Full Disk Access) Found 7 issues on my own machine that the indexer was silently skipping Use it whenever something feels off: recall doctor"}, {"post_id": 7538, "ts": "2026-06-12T16:17:55Z", "hours": 1.8083, "text": "Built recall, a local full-text search tool for macOS. One hotkey searches your clipboard, browser history, Notes, shell, mail, and chat apps at once. No cloud, no account everything stays on your Sub-2-second searches across 1,600+ items on first run."}]...
|
Title: Frictionless by @harshithn | Stardance
Dev Title: Frictionless by @harshithn | Stardance
Devlogs:
Built recall, a local full-text search tool for macOS. One hotkey searches your clipboard, browser history, Notes, shell, mail, and chat apps at once. No cloud, no account everything stays on your Sub-2-second searches across 1,600+ items on first run.
New recall doctor subcommand that runs a full setup check Verifies Python, SQLite FTS5, pbpaste, osascript, index DB Checks every data source — clipboard, browsers, notes, mail, chat Surfaces permission-gated failures (e.g. Apple Notes needs Full Disk Access) Found 7 issues on my own machine that the indexer was silently skipping Use it whenever something feels off: recall doctor
Fixed the issue regarding the try project button
Fixed silent failure on Apple Notes (and Mail) indexing Root cause: macOS Full Disk Access not granted to the user’s terminal New recall setup command — click-by-step walkthrough Detects your terminal (Terminal, iTerm, Warp, VS Code) Opens the right System Settings pane Reminds you to quit+reopen the terminal (the #1 gotcha) recall doctor now points to recall setup instead of just saying “Full Disk Access required” Apple Notes indexer now logs a clear permission warning instead of failing silently README gets a new “macOS permissions (one-time, ~30 seconds)” section Triggered by reviewer feedback: “I couldn’t get indexing notes to work”
URL search results show the real page title now, not the raw link Before: https://news.ycombinator.com/item?id=12345 After: Show HN: I built X – Hacker News Cached locally so URLs only get fetched once New recall titles command to backfill the whole index No new dependencies
Ships:
I built recall, a local full-text search tool for macOS. It indexes your clipboard, browser history, Apple Notes, shell history, mail, Slack, and Discord into a single SQLite FTS5 database, then lets you search all of it with one CLI command or a small web UI. The problem: I kept losing 5 minutes bouncing between Slack search, Gmail search, browser history, and Notes whenever I tried to find something I knew I’d seen. recall kills that — one box, sub-second results, 100% local. No cloud, no account, no telemetry. What was challenging: macOS permissions (Apple Notes + Mail need Full Disk Access and fail silently without it). I added a recall doctor command that surfaces these failures with actionable hints. Thread-safety in SQLite when the HTTP server and indexer share a connection. The vanilla-JS web UI had to feel snappy without a framework — no React, no build step, just debounced fetch + DOM. What I’m proud of: the whole thing is ~2,500 lines of Python plus a 200-line vanilla-JS web UI. Zero external runtime dependencies. Anyone can read the whole thing in an hour and trust it with their data because the data never leaves the machine. To try it: git clone https://github.com/hnelabhotla-boop/Recall , run ./install.sh, then recall ui to open the search box....
|
1792968834.3537989
|
1793055234.3537989
|
|
8377
|
Nautica API by @xellu | Stardance
|
xellu
|
1
|
26.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T18:37:11Z", "hours": 26.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I’ve updated the Service Manager, including the dependency resolver. These changes include: New lifecycle hook “onSetup”, intended for setting up databases, etc. I’ve mostly added this to split “start servers” and “setup things” all being in onStart. This way the separation between those 2 tasks is clear and helps to eliminate certain race conditions. Toggle switches are now generated automatically Before you had to manually declare a key in a config in onInstall, and then read it in isEnabled, which was just extra boilerplate. So I automated the process in the Service class. “?”, “:after” and “:after?” parameters for dependencies Before this, the boot order was still fragile even with dependencies defined, because the ability to define a dependency, and make it start only AFTER your dependency is initialized wasn’t a thing. Now you can do this by simply appending “:after” to the dependency name. “?” at the end also makes the dependency optional. Few fixes relating to dependency resolution and boot orders HTTP API Got a decently big update as well.. The performance is now up ~70% from previous versions, finally surpassing FastAPI, I’ve achieved this adding an option to disable unnecessary messages from being logged. Which only goes to show how heavy the logging manager I use is, but I doubt I’ll be rewriting it, since the way it is now helps with DX. Response validation using “@HTTP.Responses(…)” and ReplyModels: Before you were able to only validate what’s coming in, but not what’s going out. The validator has a strict mode, which when enabled adds an extra layer of “security”. If strict mode is disabled, the responses are only used for OpenAPI docs generation. Tho the framework may still complain if you’re sending invalid responses. Nested object validation and Require.ListOf Static methods in Reply Since the framework is built on Starlette, you may need to use Starlette’s responses in some cases. OpenAPI Docs generation This was kinda a big thing on my list ever since I realized that I can automatically generate SDKs instead of having to write request calls manually. I also wanted to add a way to expose the docs with an endpoint, but I’m holding off on that. The Package registry & manager were introduced as well. The package registry it itself built on Nautica, and works with the package manager integrated into the Nautica’s CLI. Likewise I’ve started work on the Landing page & docs website for the framework, but I’m putting it off for a bit, because of finals. I’ve also fixed countless bugs, refactored things, and over all made many QoL changes, which helped to make the framework feel more polished. This might be a strange project, since I’m somewhat “reinventing the wheel”, but I really didn’t like the way FastAPI, Flask and other Python HTTP frameworks work. It basically handles ONLY the http part, which is fine, but in bigger projects YOU have to manage everything else around it. When I was building small apps it wasn’t that big of an issue, but it became pretty apparent in bigger projects. The complexity and boilerplate that comes with large projects isn’t something I can handle well, while also having to enforce my own conventions. I made Nautica to fix these issues, and I’d say I succeeded. The boilerplate that’s needed per route is minimal, compared to other frameworks; The package manager adds an intuitive way to add plugins (services, packages), and the service system itself does a lot of the heavy lifting for you, by automatically deciding on the boot order instead of you having to write do it explicitly using imports, etc. In conclusion, Nautica takes away some freedom and in exchange gives you structure, less boilerplate and tools to debug your code, which makes shipping apps easier and faster.", "repo": "https://github.com/xellu/nautica-api", "demo": "https://napm.xellu.xyz/"}]...
|
[{"post_id": 9382, "ts": "2026 [{"post_id": 9382, "ts": "2026-06-15T18:35:53Z", "hours": 0.2822, "text": "A showcase of what Nautica can actually do ~20% faster than FastAPI ( https://github.com/xellu/nautica-api/wiki/Performance-Benchmark ) See Nautica in action: https://napm.xellu.xyz/ ( https://github.com/xellu/nautica-package-manager ) A video demonstration:"}, {"post_id": 9251, "ts": "2026-06-15T15:12:52Z", "hours": 3.4914, "text": "I’ve released v3.2.2, the new things there include: OpenAPI Docs generator Changed expression for nested requirements from nested(...) to {...} Request schemas in errors can be hidden now Added descriptions for commands in help Renamed Reply.IsList() into .asList() Added import aliases for Requirement s in napi These are mostly QoL changes, I made formatting of certain things so it’d be easier to read, use, or to make sense linguistically. I also made it a little bit more secure by giving other developers an option to hide their request schemas in error messages. I’ve also included the new benchmark numbers in the README. OpenAPI Docs generator mostly works now, but it doesn’t expose the docs to /nautica:docs yet, I’m also considering making the endpoint the developer’s concern, and not the framework’s. Surprisingly it wasn’t as hard as i expected it to be, but some weird edge cases were definitely annoying to deal with. Anyways, alongside the updates to the framework itself, I’ve also now documented the new changes made since version 3.0.2 , so they’re now up to date with the latest release (that being 3.2.2). I know it took a while but i was more focused on releasing fixes and updates first. https://github.com/xellu/nautica-api/wiki https://github.com/xellu/nautica-api/compare/3.2.0...3.2.2"}, {"post_id": 7424, "ts": "2026-06-12T11:29:02Z", "hours": 2.5219, "text": "I’ve started work on OpenAPI Docs generator, I’d imagine it’ll take me a while to complete. Anyways I’ve released v3.2, see below for new changes Changelog Improved speed and latency New onSetup hook for services Auto Switch registration for services New Require.ListOf validator Validator support for nested objects Better dependency resolver More on these changes here: post 1 , post 2 And new, undocumented changes include: 7. Moving typeToString into models, from http api (didn’t really make sense to have it there) 8. Added static methods into Reply for starlette responses, these include: Reply.plainText , Reply.html , Reply.stream , Reply.file , Reply.redirect . Known Issues v3.2.0 ’s dependency resolver incorrectly handles the :after parameter, a fix is already available in the branch for version 3.2.1"}, {"post_id": 5590, "ts": "2026-06-09T13:20:22Z", "hours": 3.5031, "text": "I’ve added a few QoL features, those being: Reply Models Before, you could only verify whats coming IN, but not whats coming OUT of the server. Now, you can do that easily: from napi.http import HTTP , Reply , Require , ReplyModel , Error @HTTP.GET () @HTTP.Responses ( ReplyModel ( 200 , str ), ReplyModel ( 400 , Error ), strict = True ) @HTTP.Require () async def hello ( ctx ): if ctx . body . get ( \" hello \" ): raise Error ( 400 , \" No hello \" ) return \" Hello World! \" In this case, the request will go through without an issue, but if, for example, you returned anything other than a string: return 0 The request will fail automatically. This will also be useful for when I add OpenAPI generation, as the generator will have access to the responses. This behavior can be disabled, by setting strict to False. Nested object validation @HTTP.Require(body = {\"hello\": {\"world\": str}) <- This code used to be invalid before. I since added support for nested objects (no depth limit). Automatic Toggle Switch Registration Plugins used to register their own keys in the config, and then setup isEnabled method that would determine if the service should be started or not. To reduce the headache and boilerplate of this approach, Nautica now automatically creates a key with your service’s name under services in config.n3 . If you want your own logic in isEnabled , you can do so by overwriting the method. By doing so you’ll disable the automatic registration and the framework gives you the freedom to do it your way. If you want custom logic AND automatic registration, it can simply be combined by using super().isEnabled() . Require.ListOf(…) I’d say this is a highly useful addition. It does exactly what it sounds like: It checks if all the items in a list match a certain schema. Require . ListOf ( str ) List of just strings Require . ListOf ({ \" hello \" : str }) List of dictionaries Requrie . ListOf ( Require . AnyTypeOf ( str , int )) List of strings and integers"}, {"post_id": 5477, "ts": "2026-06-09T08:37:59Z", "hours": 2.5575, "text": "I’ve been optimizing the framework today, here’s what changed: 1. Massive performance boosts I managed to go from 2279 requests/sec to 3929 , which is 72% increase . After running new benchmarks, I’ve also surpassed FastAPI by ~24% (recorded 3154 requests/sec). I did this by minimizing the amount of logging that is done per request (can be configured). Because my log manager is fairly heavy, this helped a lot. 2. Better dependency resolver The dependency resolver I had for services was okay, but it lacked 2 important features: Optional dependencies and explicit order. The old system was simply: Service.Export(MyPlugin, depends_on=[\"HTTPRouter\"]) Which is fine for simple plugins, but you start doing more complex work, you’ll hit the limits fast. The new system now handles: ? at the end makes the dependency optional :after tells the dependency to start AFTER your plugin, not before. Essentially adds your plugin as the target’s dependency. 3. Split onStart Before, onStart handled both starting database and HTTP servers, bots. Because of this, I’ve decided to split the setup logic and startup logic into 2: onSetup and onStart 4. Other changes I also removed some legacy aliases for methods."}, {"post_id": 4899, "ts": "2026-06-08T14:01:14Z", "hours": 4.65, "text": "Spent almost 5 hours on a navbar, finally figured it out though. The open/close logic on hovering was a nightmare to do. In the end i settled for IDs and an event listener for mouseover . It’s probably one of the worse solutions, but I’m not gonna touch it since it works finally. I also changed the background to something that fits better."}, {"post_id": 4426, "ts": "2026-06-07T19:03:56Z", "hours": 3.8883, "text": "I’ve started work on a web for the framework. For now I only managed to set up the project and make the hero on the landing page, for which I took inspiration from payloadcms and rig.ai The landing page itself was hard to make, since I had to figure out how to structure the grid, and even now it’s not up to my standards."}, {"post_id": 4114, "ts": "2026-06-07T09:41:14Z", "hours": 2.2639, "text": "Nautica Package Registry is Live! napi install mongodb now downloads the package into project plugins and installs any PyPI dependencies automatically. 2 Packages are up already: MongoDB: Adapter for pymongo NAuth: A simple session manager (using Mongo) The registry itself runs on Nautica, with both packages installed https://github.com/xellu/nautica-package-manager https://napm.xellu.xyz/"}, {"post_id": 3635, "ts": "2026-06-06T17:32:12Z", "hours": 2.7833, "text": "Hello y’all. I’m making a framework for backend development, called Nautica. I’m also bundling a package manager, similar to npm/PyPI, to allow people to share their plugins. I’ve started working on this project before Stardance, but this sounds like a good opportunity to get feedback on it. Today’s update notes (v3.1.3): Fixed shell sleeping while in systemd mode Fixed file reading during http requests Fixed package manager connection issues Added commands to list http and websocket endpoints For anyone interested in the specifics, the HTTP part of the API is built on top Starlette. Unlike FastAPI, I made my own request validation system that gives you more freedom, though it may perform worse under load. From the benchmarks I’ve ran, my framework seems to be just a little faster than FastAPI (which is also based on Starlette): FastAPI: 2259 requests/second Nautica: 2271 requests/second ~0.53% faster Though these numbers are a bit dated, and may be off. I’m still working on the package manager, but I’ll post a showcase of that soon. For now, here’s a showcase of how Nautica itself works:"}]...
|
Title: Nautica API by @xellu | Stardance
Devlogs: Title: Nautica API by @xellu | Stardance
Devlogs:
Hello y’all. I’m making a framework for backend development, called Nautica. I’m also bundling a package manager, similar to npm/PyPI, to allow people to share their plugins. I’ve started working on this project before Stardance, but this sounds like a good opportunity to get feedback on it. Today’s update notes (v3.1.3): Fixed shell sleeping while in systemd mode Fixed file reading during http requests Fixed package manager connection issues Added commands to list http and websocket endpoints For anyone interested in the specifics, the HTTP part of the API is built on top Starlette. Unlike FastAPI, I made my own request validation system that gives you more freedom, though it may perform worse under load. From the benchmarks I’ve ran, my framework seems to be just a little faster than FastAPI (which is also based on Starlette): FastAPI: 2259 requests/second Nautica: 2271 requests/second ~0.53% faster Though these numbers are a bit dated, and may be off. I’m still working on the package manager, but I’ll post a showcase of that soon. For now, here’s a showcase of how Nautica itself works:
Nautica Package Registry is Live! napi install mongodb now downloads the package into project plugins and installs any PyPI dependencies automatically. 2 Packages are up already: MongoDB: Adapter for pymongo NAuth: A simple session manager (using Mongo) The registry itself runs on Nautica, with both packages installed https://github.com/xellu/nautica-package-manager https://napm.xellu.xyz/
I’ve started work on a web for the framework. For now I only managed to set up the project and make the hero on the landing page, for which I took inspiration from payloadcms and rig.ai The landing page itself was hard to make, since I had to figure out how to structure the grid, and even now it’s not up to my standards.
Spent almost 5 hours on a navbar, finally figured it out though. The open/close logic on hovering was a nightmare to do. In the end i settled for IDs and an event listener for mouseover . It’s probably one of the worse solutions, but I’m not gonna touch it since it works finally. I also changed the background to something that fits better.
I’ve been optimizing the framework today, here’s what changed: 1. Massive performance boosts I managed to go from 2279 requests/sec to 3929 , which is 72% increase . After running new benchmarks, I’ve also surpassed FastAPI by ~24% (recorded 3154 requests/sec). I did this by minimizing the amount of logging that is done per request (can be configured). Because my log manager is fairly heavy, this helped a lot. 2. Better dependency resolver The dependency resolver I had for services was okay, but it lacked 2 important features: Optional dependencies and explicit order. The old system was simply: Service.Export(MyPlugin, depends_on=["HTTPRouter"]) Which is fine for simple plugins, but you start doing more complex work, you’ll hit the limits fast. The new system now handles: ? at the end makes the dependency optional :after tells the dependency to start AFTER your plugin, not before. Essentially adds your plugin as the target’s dependency. 3. Split onStart Before, onStart handled both starting database and HTTP servers, bots. Because of this, I’ve decided to split the setup logic and startup logic into 2: onSetup and onStart 4. Other changes I also removed some legacy aliases for methods.
I’ve added a few QoL features, those being: Reply Models Before, you could only verify whats coming IN, but not whats coming OUT of the server. Now, you can do that easily: from napi.http import HTTP , Reply , Require , ReplyModel , Error @HTTP.GET () @HTTP.Responses ( ReplyModel ( 200 , str ), ReplyModel ( 400 , Error ), strict = True ) @HTTP.Require () async def hello ( ctx ): if ctx . body . get ( " hello " ): raise Error ( 400 , " No hello " ) return " Hello World! " In this case, the request will go through without an issue, but if, for example, you returned anything other than a string: return 0 The request will fail automatically. This will also be useful for when I add OpenAPI generation, as the generator will have access to the responses. This behavior can be disabled, by setting strict to False. Nested object validation @HTTP.Require(body = {"hello": {"world": str}) <- This code used to be invalid before. I since added support for nested objects (no depth limit). Automatic Toggle Switch Registration Plugins used to register their own keys in the config, and then setup isEnabled method that would determine if the service should be started or not. To reduce the headache and boilerplate of this approach, Nautica now automatically creates a key with your service’s name under services in config.n3 . If you want your own logic in isEnabled , you can do so by overwriting the method. By doing so you’ll disable the automatic registration and the framework gives you the freedom to do it your way. If you want custom logic AND automatic registration, it can simply be combined by using super().isEnabled() . Require.ListOf(…) I’d say this is a highly useful addition. It does exactly what it sounds like: It checks if all the items in a list match a certain schema. Require . ListOf ( str ) List of just strings Require . ListOf ({ " hello " : str }) List of dictionaries Requrie . ListOf ( Require . AnyTypeOf ( str , int )) List of strings and integers
I’ve started work on OpenAPI Docs generator, I’d imagine it’ll take me a while to complete. Anyways I’ve released v3.2, see below for new changes Changelog Improved speed and latency New onSetup hook for services Auto Switch registration for services New Require.ListOf validator Validator support for nested objects Better dependency resolver More on these changes here: post 1 , post 2 And new, undocumented changes include: 7. Moving typeToString into models, from http api (didn’t really make sense to have it there) 8. Added static methods into Reply for starlette responses, these include: Reply.plainText , Reply.html , Reply.stream , Reply.file , Reply.redirect . Known Issues v3.2.0 ’s dependency resolver incorrectly handles the :after parameter, a fix is already available in the branch for version 3.2.1
I’ve released v3.2.2, the new things there include: OpenAPI Docs generator Changed expression for nested requirements from nested(...) to {...} Request schemas in errors can be hidden now Added descriptions for commands in help Renamed Reply.IsList() into .asList() Added import aliases for Requirement s in napi These are mostly QoL changes, I made formatting of certain things so it’d be easier to read, use, or to make sense linguistically. I also made it a little bit more secure by giving other developers an option to hide their request schemas in error messages. I’ve also included the new benchmark numbers in the README. OpenAPI Docs generator mostly works now, but it doesn’t expose the docs to /nautica:docs yet, I’m also considering making the endpoint the developer’s concern, and not the framework’s. Surprisingly it wasn’t as hard as i expected it to be, but some weird edge cases were definitely annoying to deal with. Anyways, alongside the updates to the framework itself, I’ve also now documented the new changes made since version 3.0.2 , so they’re now up to date with the latest release (that being 3.2.2). I know it took a while but i was more focused on releasing fixes and updates first. https://github.com/xellu/nautica-api/wiki https://github.com/xellu/nautica-api/compare/3.2.0...3.2.2
A showcase of what Nautica can actually do ~20% faster than FastAPI ( https://github.com/xellu/nautica-api/wiki/Performance-Benchmark ) See Nautica in action: https://napm.xellu.xyz/ ( https://github.com/xellu/nautica-package-manager ) A video demonstration:
Ships:
I’ve updated the Service Manager, including the dependency resolver. These changes include: New lifecycle hook “onSetup”, intended for setting up databases, etc. I’ve mostly added this to split “start servers” and “setup things” all being in onStart. This way the separation between those 2 tasks is clear and helps to eliminate certain race conditions. Toggle switches are now generated automatically Before you had to manually declare a key in a config in onInstall, and then read it in isEnabled, which was just extra boilerplate. So I automated the process in the Service class. “?”, “:after” and “:after?” parameters for dependencies Before this, the boot order was still fragile even with dependencies defined, because the ability to define a dependency, and make it start only AFTER your dependency is initialized wasn’t a thing. Now you can do this by simply appending “:after” to the dependency name. “?” at the end also makes the dependency optional. Few fixes relating to dependency resolution and boot orders HTTP API Got a decently big update as well.. The performance is now up ~70% from previous versions, finally surpassing FastAPI, I’ve achieved this adding an option to disable unnecessary messages from being logged. Which only goes to show how heavy the logging manager I use is, but I doubt I’ll be rewriting it, since the way it is now helps with DX. Response validation using “@HTTP.Responses(…)” and ReplyModels: Before you were able to only validate what’s coming in, but not what’s going out. The validator has a strict mode, which when enabled adds an extra layer of “security”. If strict mode is disabled, the responses are only used for OpenAPI docs generation. Tho the framework may still complain if you’re sending invalid responses. Nested object validation and Require.ListOf Static methods in Reply Since the framework is built on Starlette, you may need to use Starlette’s responses in some cases. OpenAPI Docs generation This was kinda a big thing on my list ever since I realized that I can automatically generate SDKs instead of having to write request calls manually. I also wanted to add a way to expose the docs with an endpoint, but I’m holding off on that. The Package registry & manager were introduced as well. The package registry it itself built on Nautica, and works with the package manager integrated into the Nautica’s CLI. Likewise I’ve started work on the Landing page & docs website for the framework, but I’m putting it off for a bit, because of finals. I’ve also fixed countless bugs, refactored things, and over all made many QoL changes, which helped to make the framework feel more polished. This might be a strange project, since I’m somewhat “reinventing the wheel”, but I really didn’t like the way FastAPI, Flask and other Python HTTP frameworks work. It basically handles ONLY the http part, which is fine, but in bigger projects YOU have to manage everything else around it. When I was building small apps it wasn’t that big of an issue, but it became pretty apparent in bigger projects. The complexity and boilerplate that comes with large projects isn’t something I can handle well, while also having to enforce my own conventions. I made Nautica to fix these issues, and I’d say I succeeded. The boilerplate that’s needed per route is minimal, compared to other frameworks; The package manager adds an intuitive way to add plugins (services, packages), and the service system itself does a lot of the heavy lifting for you, by automatically deciding on the boot order instead of you having to write do it explicitly using imports, etc. In conclusion, Nautica takes away some freedom and in exchange gives you structure, less boilerplate and tools to debug your code, which makes shipping apps easier and faster....
|
1792993844.6277885
|
1793080244.6277885
|
|
9621
|
Isles by @derped1 | Stardance
|
derped1
|
1
|
4.0
|
10
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T19:19:36Z", "hours": 4.0, "multiplier": 2.57, "payout": 10, "blessing": "neutral", "text": "Isles is a small Minecraft plugin I made that generates Skyblock-style islands in a grid, with each player getting their own island. I built it for my SMP because I wanted something my friends and I could play for about a week that felt more interesting than starting another normal vanilla world. I’m honestly proud that it lasted that long, because most of my friends are not as into Minecraft anymore. Even though the plugin is simple, it created a good social environment where people could hang out, trade, bridge to each other, and actually interact instead of everyone splitting off and doing their own thing. The hardest part was probably figuring out island placement. I had to find a good middle ground where the islands were far enough apart to feel separate, but not so far that bridging to friends became annoying. That decision ended up mattering a lot because the whole point of Isles is that every island exists in the same physical world, with a center island connecting everything together. What makes Isles different from normal Skyblock is that it is not just a bunch of isolated islands. Everyone is still in the same world, so you can visit your friends, trade with them, and build connections between islands. My favorite part was not really one specific feature, but just seeing the server turn into a place where my friends could mess around together for a week. I would rather people try Isles with their own friends before voting on it instead of just upvoting or downvoting blindly. It is meant to be judged by how it feels to play socially, not just by looking at the code or the idea from the outside.", "repo": "https://github.com/Derpedyea/Isles", "demo": "https://modrinth.com/plugin/isles"}]...
|
[{"post_id": 9370, "ts": "2026 [{"post_id": 9370, "ts": "2026-06-15T18:26:40Z", "hours": 3.0722, "text": "I made some more changes but it was a while ago so I don’t remember exactly. I made a little wiki and the project is basically done as the server is over so I’m going to ship it. I also made gravel obtainable in the center to allow for more dirt."}, {"post_id": 3444, "ts": "2026-06-06T11:53:10Z", "hours": 0.8689, "text": "I made the basic plugin it has islands that generate in a grid around the center which is an array of “asteroids” with resources that players can pvp and bridge too."}]...
|
Title: Isles by @derped1 | Stardance
Devlogs:
I m Title: Isles by @derped1 | Stardance
Devlogs:
I made the basic plugin it has islands that generate in a grid around the center which is an array of “asteroids” with resources that players can pvp and bridge too.
I made some more changes but it was a while ago so I don’t remember exactly. I made a little wiki and the project is basically done as the server is over so I’m going to ship it. I also made gravel obtainable in the center to allow for more dirt.
Ships:
Isles is a small Minecraft plugin I made that generates Skyblock-style islands in a grid, with each player getting their own island. I built it for my SMP because I wanted something my friends and I could play for about a week that felt more interesting than starting another normal vanilla world. I’m honestly proud that it lasted that long, because most of my friends are not as into Minecraft anymore. Even though the plugin is simple, it created a good social environment where people could hang out, trade, bridge to each other, and actually interact instead of everyone splitting off and doing their own thing. The hardest part was probably figuring out island placement. I had to find a good middle ground where the islands were far enough apart to feel separate, but not so far that bridging to friends became annoying. That decision ended up mattering a lot because the whole point of Isles is that every island exists in the same physical world, with a center island connecting everything together. What makes Isles different from normal Skyblock is that it is not just a bunch of isolated islands. Everyone is still in the same world, so you can visit your friends, trade with them, and build connections between islands. My favorite part was not really one specific feature, but just seeing the server turn into a place where my friends could mess around together for a week. I would rather people try Isles with their own friends before voting on it instead of just upvoting or downvoting blindly. It is meant to be judged by how it feels to play socially, not just by looking at the code or the idea from the outside....
|
1792968888.1170723
|
1793055288.1170723
|
|
14215
|
ReadAloud by @hemvardhanb | Stardance
|
hemvardhanb
|
0
|
0.78
|
0
|
[]
|
[{"post_id": 9368, "ts": "2026 [{"post_id": 9368, "ts": "2026-06-15T18:22:37Z", "hours": 0.7836, "text": "While studying for my finals, and more importantly trying not to sleep while slogging through a textbook, the idea of having it read aloud at the same pace I read came to me. With a quick google search, its clear that the combination of reading and actively listening can boost retention by upwards of 20%. So, this is my project target towards helping students excel! I mainly decided to build it out in the form of an extension and mainly want to actually get it published on the chrome extension store because those are two goals I have never done!"}]...
|
Title: ReadAloud by @hemvardhanb | Stardance
Devl Title: ReadAloud by @hemvardhanb | Stardance
Devlogs:
While studying for my finals, and more importantly trying not to sleep while slogging through a textbook, the idea of having it read aloud at the same pace I read came to me. With a quick google search, its clear that the combination of reading and actively listening can boost retention by upwards of 20%. So, this is my project target towards helping students excel! I mainly decided to build it out in the form of an extension and mainly want to actually get it published on the chrome extension store because those are two goals I have never done!...
|
1792543746.370514
|
1793148546.370514
|
|
19132
|
Broke code by @TheShovel | Stardance
|
TheShovel
|
0
|
3.34
|
0
|
[]
|
[{"post_id": 9362, "ts": "2026 [{"post_id": 9362, "ts": "2026-06-15T18:18:03Z", "hours": 3.3381, "text": "hiiii!! basic functionality is done! you can now prompt it, and it will run a free small llm to decide the complexity of the task, and then it will make the actual llm do the task! saves tons of money and stuff ypeeeee gonna work some more on it cuz i actually want to use this. im making something i need right now lmao"}]...
|
Title: Broke code by @TheShovel | Stardance
Devlo Title: Broke code by @TheShovel | Stardance
Devlogs:
hiiii!! basic functionality is done! you can now prompt it, and it will run a free small llm to decide the complexity of the task, and then it will make the actual llm do the task! saves tons of money and stuff ypeeeee gonna work some more on it cuz i actually want to use this. im making something i need right now lmao...
|
1792806729.9889593
|
1793411529.9889593
|
|
17639
|
Minecraft Challenge Mod by @timon | Stardance
|
timon
|
1
|
13.0
|
174
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T18:11:10Z", "hours": 13.0, "multiplier": 13.04, "payout": 174, "blessing": "neutral", "text": "I made a Minecraft Challenges Mod with Fabric. You have multiple challegnes such as shared damage among your friends, ice track udner you and more. Additionally you can add a randomizer to your challenge which makes it that every block drop is different from the original one. Try it out with /challenges", "repo": "https://github.com/Facticee/challenges-mod", "demo": "https://modrinth.com/mod/challenge-mod"}]...
|
[{"post_id": 9353, "ts": "2026 [{"post_id": 9353, "ts": "2026-06-15T18:09:27Z", "hours": 2.0, "text": "I finished the Mod! There were a few bugs left, where whe nyou would rejoin, the randomizer wouldnt work but i could fix it pretty easily."}, {"post_id": 8148, "ts": "2026-06-13T16:15:55Z", "hours": 2.0, "text": "I added two new challenges. one is pretty simple. Every time you jump you get a random item dropped to you. mixin into jumpFromGround, grab a random item from the registry and spawn it. (might also have been easier with just giving it to the player but it works for now. i will go into testing later if one has bugs) the second one is the ice trail. you can sneak to toggle it on and off and a 3x3 platform of ice spawns under you wherever you walk. The ice will only replace air blocks and not existing blocks / blockentities. getting the sneak toggle to work was annoying as to mixin into a sneak method didnt work because i couldnt find the right class. ended up using client.options.keyShift.isDown in a client tick event."}, {"post_id": 8027, "ts": "2026-06-13T12:00:35Z", "hours": 2.0, "text": "The first challegne “shared life” is done. The core mechanic is when a player takes damage, everyone else gets the same amount. sounds simple, but it took me quiet a bit to get that right. the method i needed to use is called hurtServer in 26.x, not hurt like every tutorial says (cause of old yarn mappings like alr said in last devlog). @Inject (method = [“hurtServer”], at = [At(“TAIL”)]) private fun onHurtServer(level: ServerLevel, source: DamageSource, amount: Float, cir: CallbackInfoReturnable) { if (!cir.returnValue) return if (ChallengeState.activeChallenge !is SharedLifeChallenge) return val entity = this as? ServerPlayer ?: return if (source.directEntity == null && source.entity == null) return SharedLifeChallenge.onPlayerHurt(entity, amount) } the directEntity == null check is to prevent an infinite loop. When we deal damage to the other players, that would trigger the mixin again. Generic damage (the kind I use to pass the damage to other players) has no entity source so we can filter it out that way."}, {"post_id": 7726, "ts": "2026-06-12T21:53:39Z", "hours": 5.0, "text": "I have been building a challenges mod for minecraft 26.x and the idea is pretty simple. You type /challenges, a menu opens, you pick a challenge and it changes the gameplay. First challenge I am working on is shared life, where damage shared with every player. Getting it running was honestly kind of a pain. 26.x doesnt need yarn mappings anymore since mojang ships unobfuscated now. Which sounds great until you realize nearly every of the classes isnt the same as yarn mappings and nothing matches the (now outdated) tutorials. For example: hurt() is now hurtServer(), GuiGraphics is GuiGraphicsExtractor. I used AI to help look stuff up which sped things up a lot but even that was not always right. I am finished with the Menu and I started with the challenge code."}]...
|
Title: Minecraft Challenge Mod by @timon | Stardan Title: Minecraft Challenge Mod by @timon | Stardance
Devlogs:
I have been building a challenges mod for minecraft 26.x and the idea is pretty simple. You type /challenges, a menu opens, you pick a challenge and it changes the gameplay. First challenge I am working on is shared life, where damage shared with every player. Getting it running was honestly kind of a pain. 26.x doesnt need yarn mappings anymore since mojang ships unobfuscated now. Which sounds great until you realize nearly every of the classes isnt the same as yarn mappings and nothing matches the (now outdated) tutorials. For example: hurt() is now hurtServer(), GuiGraphics is GuiGraphicsExtractor. I used AI to help look stuff up which sped things up a lot but even that was not always right. I am finished with the Menu and I started with the challenge code.
The first challegne “shared life” is done. The core mechanic is when a player takes damage, everyone else gets the same amount. sounds simple, but it took me quiet a bit to get that right. the method i needed to use is called hurtServer in 26.x, not hurt like every tutorial says (cause of old yarn mappings like alr said in last devlog). @Inject (method = [“hurtServer”], at = [At(“TAIL”)]) private fun onHurtServer(level: ServerLevel, source: DamageSource, amount: Float, cir: CallbackInfoReturnable) { if (!cir.returnValue) return if (ChallengeState.activeChallenge !is SharedLifeChallenge) return val entity = this as? ServerPlayer ?: return if (source.directEntity == null && source.entity == null) return SharedLifeChallenge.onPlayerHurt(entity, amount) } the directEntity == null check is to prevent an infinite loop. When we deal damage to the other players, that would trigger the mixin again. Generic damage (the kind I use to pass the damage to other players) has no entity source so we can filter it out that way.
I added two new challenges. one is pretty simple. Every time you jump you get a random item dropped to you. mixin into jumpFromGround, grab a random item from the registry and spawn it. (might also have been easier with just giving it to the player but it works for now. i will go into testing later if one has bugs) the second one is the ice trail. you can sneak to toggle it on and off and a 3x3 platform of ice spawns under you wherever you walk. The ice will only replace air blocks and not existing blocks / blockentities. getting the sneak toggle to work was annoying as to mixin into a sneak method didnt work because i couldnt find the right class. ended up using client.options.keyShift.isDown in a client tick event.
I finished the Mod! There were a few bugs left, where whe nyou would rejoin, the randomizer wouldnt work but i could fix it pretty easily.
Ships:
I made a Minecraft Challenges Mod with Fabric. You have multiple challegnes such as shared damage among your friends, ice track udner you and more. Additionally you can add a randomizer to your challenge which makes it that every block drop is different from the original one. Try it out with /challenges...
|
1792882056.8581257
|
1793746056.8581257
|
|
18071
|
WinSentry by @Sgattix | Stardance
|
Sgattix
|
1
|
10.0
|
137
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T18:08:39Z", "hours": 10.0, "multiplier": 14.33, "payout": 137, "blessing": "neutral", "text": "Shipped: WinSentry v1.0 (Rust) Windows loves to treat power users like guests on their own hardware. Despite running an i7-12700K and 32GB of DDR5, I was sick of locked UI threads, disappearing taskbar icons, and silent disk-space bloating. So, I spent the last few hours building WinSentry—a lightweight, native Windows daemon built in Rust to force the OS to be clean, stable, and responsive. What it does: The 300ms UI Panic Button: A low-level global keyboard hook (Ctrl + Alt + W) that forcefully kills explorer.exe, deletes the corrupted IconCache.db file while the thread is dead, and instantly spawns a fresh shell instance. Frozen taskbars fixed instantly. Automated System Debloater: A highly optimized background runner that wakes up every 30 minutes to sweep system-generated trash paths (%TEMP%, crash dumps) without locking active files. Safe Developer Staging Queue: An on-demand CLI engine (winsentry –scan) that recursively walks user-specified workspace paths to look for massive black holes like node_modules and pycache . It stages them in a local queue.json file so you can safely review and approve the purge via winsentry –purge. Centralized Config: Everything is fully customizable via %APPDATA%/WinSentry/config.toml. Performance Profiles (Zero Bloat): Because this was built in Rust to combat OS sluggishness, it has a completely invisible footprint: Idle: 0% CPU | 2.4MB RAM (Sits quietly listening for the hotkey message loop). Peak Scan/Discovery Phase: Max 10% CPU | 5MB RAM (Even while recursively scanning thousands of developer subdirectories). Built with embedded UAC manifest integration so it automatically handles the administrative privileges required to clean up system directories right out of the box. Time to stop waiting for the OS.", "repo": "https://github.com/Sgattix/winsentry", "demo": "https://github.com/Sgattix/WinSentry/releases"}]...
|
[{"post_id": 9348, "ts": "2026 [{"post_id": 9348, "ts": "2026-06-15T18:03:32Z", "hours": 3.7375, "text": "It is finally done. After 3 hours and 40 minutes, WinSentry is complete, fully optimized, and running flawlessly. The final block of development focused entirely on the user-controlled workspace clearing engine and rigorous resource profiling. The Final Piece: The Safe Developer Staging Queue The automated system janitor is great for temp folders, but developer bloat like node_modules or pycache requires absolute user safety. How it works: I implemented a high-speed, sequential directory traversal engine. When triggered on-demand via the CLI (winsentry –scan), the tool walks through user-specified workspace paths looking for target directory names defined in the config. The Guardrail: Instead of deleting anything, the tool calculates the total directory size and flushes the data to a local state file inside %APPDATA%/WinSentry/queue.json. The Interactive Review: The user is notified via the terminal that bloat has been discovered. Running winsentry –purge loads the JSON queue and gives the user an interactive, explicit review prompt to check boxes or type all to confirm deletion. Absolute control, zero risk of accidental data loss. Production Performance Benchmarks Since this tool was built to fight Windows sluggishness, it could not afford to be heavy. Running a fast compiled systems language like Rust paid off massively. Here are the real-world metrics monitored via Windows Task Manager: Idle Footprint: 0% CPU and 0.9MB of RAM. It sits completely dormant in the background, listening for the global hotkey message loop and waiting for the 30-minute system interval. Peak Scan & Discovery Footprint: Maximum 10% CPU usage and a peak of 5MB of RAM while actively traversing thousands of subdirectories and calculating file sizes during a deep disk scan. On an NVMe and DDR5 setup, the scan completes in seconds, meaning the system never hitches and the user never has to wait for the utility. READY TO SHIP!"}, {"post_id": 8751, "ts": "2026-06-14T15:37:52Z", "hours": 3.8133, "text": "Two more hours in, and WinSentry now has a fully functioning debloating engine and a robust multi-threaded architecture. What’s new I ripped out the real-time event watcher and replaced it with a task that executes once every 30 minutes. It sleeps completely in between cycles. Performance dropped immediately back to 0% CPU on idle, achieving the exact “invisible” footprint a performance tool needs. Reworked Threading: Thread safety is locked down. The core engine now cleanly separates the global UI hotkey listener thread from the background debloating loop, ensuring a heavy system cleanup never hitches or delays the 300ms “Panic Button” response. System Debloater: The 30-minute janitor thread now actively sweeps system-generated trash paths (configured via %APPDATA%/WinSentry/config.toml). It safely bypasses active, locked files while cleanly executing deep purges on dead telemetry and crash dumps. Robust Logging & Documentation: Implemented a lightweight, structured local logging system to track exactly how many megabytes of ghost space are reclaimed over time. I also laid down the full README.md. Next Up Implementing the User-Specified Safe Queue (queue.json). I’ll be writing the directory traversal logic to detect massive developer black holes (node_modules, pycache ) and scaffolding the manual CLI review step so users can safely approve massive space reclamation."}, {"post_id": 8168, "ts": "2026-06-13T16:42:58Z", "hours": 2.1289, "text": "Windows has a bad habit of treating the user like a guest on their own machine. Despite running an i7-12700K, 32GB of DDR5, and a fast NVMe, I still run into locked UI threads, disappearing taskbar icons, and a persistent “waiting for the OS” feeling. Instead of dealing with it, I’m building WinSentry—a lightweight, native Windows daemon written in Rust designed to force the OS to be responsive and clean. What I Built (The First 2 Hours) Instead of cutting corners, I spent the first block of development setting up a bulletproof core architecture: The 300ms Panic Button: Implemented a low-level global keyboard hook using the Win32 API (RegisterHotKey). Pressing Ctrl + Alt + W forcefully kills explorer.exe, wipes the easily-corrupted local %localappdata%\\IconCache.db file while the thread is dead, clears the icons registry at HKEY_CURRENT_USER \\ Software \\ Classes \\ .png and instantly spawns a clean shell instance. Configuration System: Designed a centralized configuration system that initializes inside a specified directory. Users can customize their hotkeys and define exact target paths. Aggressive Binary Optimization: The background daemon sits completely idle at 0% CPU and takes up less than 1MB of RAM, making it practically invisible to the system. Next Up Moving on to the storage engine: Implementing ReadDirectoryChangesW for zero-overhead, real-time event tracking on high-bloat system folders (%TEMP%, crash dumps). Building the staging queue pipeline (queue.json) to safely scaffold and manually review massive developer black holes like node_modules and pycache before purging them."}]...
|
Title: WinSentry by @Sgattix | Stardance
Devlogs: Title: WinSentry by @Sgattix | Stardance
Devlogs:
Windows has a bad habit of treating the user like a guest on their own machine. Despite running an i7-12700K, 32GB of DDR5, and a fast NVMe, I still run into locked UI threads, disappearing taskbar icons, and a persistent “waiting for the OS” feeling. Instead of dealing with it, I’m building WinSentry—a lightweight, native Windows daemon written in Rust designed to force the OS to be responsive and clean. What I Built (The First 2 Hours) Instead of cutting corners, I spent the first block of development setting up a bulletproof core architecture: The 300ms Panic Button: Implemented a low-level global keyboard hook using the Win32 API (RegisterHotKey). Pressing Ctrl + Alt + W forcefully kills explorer.exe, wipes the easily-corrupted local %localappdata%\IconCache.db file while the thread is dead, clears the icons registry at HKEY_CURRENT_USER \ Software \ Classes \ .png and instantly spawns a clean shell instance. Configuration System: Designed a centralized configuration system that initializes inside a specified directory. Users can customize their hotkeys and define exact target paths. Aggressive Binary Optimization: The background daemon sits completely idle at 0% CPU and takes up less than 1MB of RAM, making it practically invisible to the system. Next Up Moving on to the storage engine: Implementing ReadDirectoryChangesW for zero-overhead, real-time event tracking on high-bloat system folders (%TEMP%, crash dumps). Building the staging queue pipeline (queue.json) to safely scaffold and manually review massive developer black holes like node_modules and pycache before purging them.
Two more hours in, and WinSentry now has a fully functioning debloating engine and a robust multi-threaded architecture. What’s new I ripped out the real-time event watcher and replaced it with a task that executes once every 30 minutes. It sleeps completely in between cycles. Performance dropped immediately back to 0% CPU on idle, achieving the exact “invisible” footprint a performance tool needs. Reworked Threading: Thread safety is locked down. The core engine now cleanly separates the global UI hotkey listener thread from the background debloating loop, ensuring a heavy system cleanup never hitches or delays the 300ms “Panic Button” response. System Debloater: The 30-minute janitor thread now actively sweeps system-generated trash paths (configured via %APPDATA%/WinSentry/config.toml). It safely bypasses active, locked files while cleanly executing deep purges on dead telemetry and crash dumps. Robust Logging & Documentation: Implemented a lightweight, structured local logging system to track exactly how many megabytes of ghost space are reclaimed over time. I also laid down the full README.md. Next Up Implementing the User-Specified Safe Queue (queue.json). I’ll be writing the directory traversal logic to detect massive developer black holes (node_modules, pycache ) and scaffolding the manual CLI review step so users can safely approve massive space reclamation.
It is finally done. After 3 hours and 40 minutes, WinSentry is complete, fully optimized, and running flawlessly. The final block of development focused entirely on the user-controlled workspace clearing engine and rigorous resource profiling. The Final Piece: The Safe Developer Staging Queue The automated system janitor is great for temp folders, but developer bloat like node_modules or pycache requires absolute user safety. How it works: I implemented a high-speed, sequential directory traversal engine. When triggered on-demand via the CLI (winsentry –scan), the tool walks through user-specified workspace paths looking for target directory names defined in the config. The Guardrail: Instead of deleting anything, the tool calculates the total directory size and flushes the data to a local state file inside %APPDATA%/WinSentry/queue.json. The Interactive Review: The user is notified via the terminal that bloat has been discovered. Running winsentry –purge loads the JSON queue and gives the user an interactive, explicit review prompt to check boxes or type all to confirm deletion. Absolute control, zero risk of accidental data loss. Production Performance Benchmarks Since this tool was built to fight Windows sluggishness, it could not afford to be heavy. Running a fast compiled systems language like Rust paid off massively. Here are the real-world metrics monitored via Windows Task Manager: Idle Footprint: 0% CPU and 0.9MB of RAM. It sits completely dormant in the background, listening for the global hotkey message loop and waiting for the 30-minute system interval. Peak Scan & Discovery Footprint: Maximum 10% CPU usage and a peak of 5MB of RAM while actively traversing thousands of subdirectories and calculating file sizes during a deep disk scan. On an NVMe and DDR5 setup, the scan completes in seconds, meaning the system never hitches and the user never has to wait for the utility. READY TO SHIP!
Ships:
Shipped: WinSentry v1.0 (Rust) Windows loves to treat power users like guests on their own hardware. Despite running an i7-12700K and 32GB of DDR5, I was sick of locked UI threads, disappearing taskbar icons, and silent disk-space bloating. So, I spent the last few hours building WinSentry—a lightweight, native Windows daemon built in Rust to force the OS to be clean, stable, and responsive. What it does: The 300ms UI Panic Button: A low-level global keyboard hook (Ctrl + Alt + W) that forcefully kills explorer.exe, deletes the corrupted IconCache.db file while the thread is dead, and instantly spawns a fresh shell instance. Frozen taskbars fixed instantly. Automated System Debloater: A highly optimized background runner that wakes up every 30 minutes to sweep system-generated trash paths (%TEMP%, crash dumps) without locking active files. Safe Developer Staging Queue: An on-demand CLI engine (winsentry –scan) that recursively walks user-specified workspace paths to look for massive black holes like node_modules and pycache . It stages them in a local queue.json file so you can safely review and approve the purge via winsentry –purge. Centralized Config: Everything is fully customizable via %APPDATA%/WinSentry/config.toml. Performance Profiles (Zero Bloat): Because this was built in Rust to combat OS sluggishness, it has a completely invisible footprint: Idle: 0% CPU | 2.4MB RAM (Sits quietly listening for the hotkey message loop). Peak Scan/Discovery Phase: Max 10% CPU | 5MB RAM (Even while recursively scanning thousands of developer subdirectories). Built with embedded UAC manifest integration so it automatically handles the administrative privileges required to clean up system directories right out of the box. Time to stop waiting for the OS....
|
1792997653.7245374
|
1793084053.7245374
|
|
18267
|
My very own WebOS by @zak_books1 | Stardance
|
zak_books1
|
1
|
2.0
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T18:03:20Z", "hours": 2.0, "multiplier": 1.64, "payout": 3, "blessing": "neutral", "text": "i made a os that can be run in the web", "repo": "https://github.com/zakbooks1/QWERTY-OS", "demo": "https://qwerty-os.vercel.app/"}]...
|
[{"post_id": 9342, "ts": "2026 [{"post_id": 9342, "ts": "2026-06-15T17:54:03Z", "hours": 0.4083, "text": "I’m finally done"}, {"post_id": 8926, "ts": "2026-06-14T20:55:47Z", "hours": 0.7894, "text": "changed the style from mac to windows xp"}, {"post_id": 8850, "ts": "2026-06-14T18:35:34Z", "hours": 0.8056, "text": "just got a start screen up"}]...
|
Title: My very own WebOS by @zak_books1 | Stardanc Title: My very own WebOS by @zak_books1 | Stardance
Devlogs:
just got a start screen up
changed the style from mac to windows xp
I’m finally done
Ships:
i made a os that can be run in the web...
|
1792850018.6100113
|
1792936418.6100113
|
|
5273
|
Chill Trin Ride by @Lol123rl | Stardance
|
Lol123rl
|
0
|
0.29
|
0
|
[]
|
[{"post_id": 934, "ts": "2026- [{"post_id": 934, "ts": "2026-06-02T18:04:15Z", "hours": 0.2872, "text": "Bilding a train game"}]...
|
Title: Chill Trin Ride by @Lol123rl | Stardance
D Title: Chill Trin Ride by @Lol123rl | Stardance
Devlogs:
Bilding a train game...
|
1792749028.9370568
|
1793353828.9370568
|
|
18041
|
columbus by @sivaprakashkrp | Stardance
|
sivaprakashkrp
|
1
|
3.0
|
36
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T11:49:38Z", "hours": 3.0, "multiplier": 12.09, "payout": 36, "blessing": "neutral", "text": "I worked on columbus which is a GUI like TUI file manager. I worked on implementing custom colour themes in columbus. With that, I refactored some code, fixed some bugs and released the stable version of columbus.", "repo": "https://github.com/sivaprakashkrp/columbus", "demo": "https://github.com/sivaprakashkrp/columbus/releases/latest"}]...
|
[{"post_id": 9333, "ts": "2026 [{"post_id": 9333, "ts": "2026-06-15T17:34:34Z", "hours": 2.1806, "text": "Implemented a way to customize color theme through a color_theme.toml file. Fixed some bugs that caused compilation errors in Linux. Added columbus to the awesome-ratatui list repository. Released 2 move versions of columbus in crates.io because the first release had a bug. Released the latest version to the AUR."}, {"post_id": 8121, "ts": "2026-06-13T15:43:04Z", "hours": 0.7953, "text": "Added “/” to the end of directory names in the Explorer. Added confirmation for delete feature. Refactored some old code."}]...
|
Title: columbus by @sivaprakashkrp | Stardance
De Title: columbus by @sivaprakashkrp | Stardance
Devlogs:
Added “/” to the end of directory names in the Explorer. Added confirmation for delete feature. Refactored some old code.
Implemented a way to customize color theme through a color_theme.toml file. Fixed some bugs that caused compilation errors in Linux. Added columbus to the awesome-ratatui list repository. Released 2 move versions of columbus in crates.io because the first release had a bug. Released the latest version to the AUR.
Ships:
I worked on columbus which is a GUI like TUI file manager. I worked on implementing custom colour themes in columbus. With that, I refactored some code, fixed some bugs and released the stable version of columbus....
|
1792990163.866281
|
1793076563.866281
|
|
18252
|
Daily Compliment Generator by @sriyank | Stardance
|
sriyank
|
0
|
1.82
|
0
|
[]
|
[{"post_id": 9330, "ts": "2026 [{"post_id": 9330, "ts": "2026-06-15T17:27:06Z", "hours": 1.025, "text": "I added a time and i made notifications appear"}, {"post_id": 8889, "ts": "2026-06-14T20:04:13Z", "hours": 0.7919, "text": "So basicly I am starting on a new project where i create a daily compliment generator and after pondering for hours in my sleep I came across the idea of displaying the compliments in a phone so i started on creating the phone . I also made it so when you click the dynamic ilsand something happens."}]...
|
Title: Daily Compliment Generator by @sriyank | St Title: Daily Compliment Generator by @sriyank | Stardance
Devlogs:
So basicly I am starting on a new project where i create a daily compliment generator and after pondering for hours in my sleep I came across the idea of displaying the compliments in a phone so i started on creating the phone . I also made it so when you click the dynamic ilsand something happens.
I added a time and i made notifications appear...
|
1792572836.2529738
|
1793177636.2529738
|
|
10339
|
The Knight by @coolRitvik | Stardance
|
coolRitvik
|
0
|
5.47
|
0
|
[]
|
[{"post_id": 9319, "ts": "2026 [{"post_id": 9319, "ts": "2026-06-15T17:12:59Z", "hours": 5.4736, "text": "(Almost) Finished Movement, Camera Following & Currently Working on a Combat System + NPC Behavior Movement is almost completely done, I only need to add a jump motion (which hasn’t been necessary yet so I decided to focus on other things) The Camera following system also took a while and a bit of debugging since I’ve never really tried to make a full 3d 1st person game in unity before, but now it works. Also I am trying to adjust the sensitivity levels for the camera rotation so that it feels right so it would be appreciated if you could let me know whether the sensitivity in this video feels right (although as it gets closer to shipping I’ll probably have it be adjustable). As you can also see in the video I made a terrain and it was my first time doing it, so right now its mostly plain (and there are no structures yet). My attempts at UI so far really only involve the game pause screen that you can see because I want to wait till I spend some time on the aesthetics of the game and the branding to fully develop the UI. I am now working on the combat system; if you saw in the video the mace the character was holding moved back and forth a bit, which was my attempt at a combat system (spoiler alert: it did not work). I am still trying to make it work in a system where the player drags and holds a mouse click and then their weapon follows the mouse, to make a more interactive combat system and experience. I am trying to add NPC behavior too into the game, which is why you can see another soldier on the map, but I am just getting started so it doesn’t do anything yet. Specifically, I’m going to start with hostile NPC behavior. You can also see a very low quality screenshot of a 3d character I was attempting to make using blender (the assets you see in the video are from the Unity store that I found and will hopefully only be placeholders till I make some of my own). However, as trying to make some space on my computer’s storage, this file was accidentally lost forever so all I have to show for it is the screenshot from lapse :( Now that I’ve done it once though, hopefully the next time will be much easier (and faster)."}]...
|
Title: The Knight by @coolRitvik | Stardance
Devl Title: The Knight by @coolRitvik | Stardance
Devlogs:
(Almost) Finished Movement, Camera Following & Currently Working on a Combat System + NPC Behavior Movement is almost completely done, I only need to add a jump motion (which hasn’t been necessary yet so I decided to focus on other things) The Camera following system also took a while and a bit of debugging since I’ve never really tried to make a full 3d 1st person game in unity before, but now it works. Also I am trying to adjust the sensitivity levels for the camera rotation so that it feels right so it would be appreciated if you could let me know whether the sensitivity in this video feels right (although as it gets closer to shipping I’ll probably have it be adjustable). As you can also see in the video I made a terrain and it was my first time doing it, so right now its mostly plain (and there are no structures yet). My attempts at UI so far really only involve the game pause screen that you can see because I want to wait till I spend some time on the aesthetics of the game and the branding to fully develop the UI. I am now working on the combat system; if you saw in the video the mace the character was holding moved back and forth a bit, which was my attempt at a combat system (spoiler alert: it did not work). I am still trying to make it work in a system where the player drags and holds a mouse click and then their weapon follows the mouse, to make a more interactive combat system and experience. I am trying to add NPC behavior too into the game, which is why you can see another soldier on the map, but I am just getting started so it doesn’t do anything yet. Specifically, I’m going to start with hostile NPC behavior. You can also see a very low quality screenshot of a 3d character I was attempting to make using blender (the assets you see in the video are from the Unity store that I found and will hopefully only be placeholders till I make some of my own). However, as trying to make some space on my computer’s storage, this file was accidentally lost forever so all I have to show for it is the screenshot from lapse :( Now that I’ve done it once though, hopefully the next time will be much easier (and faster)....
|
1792903946.6418157
|
1793767946.6418157
|
|
6392
|
My first slack bot! by @twinx | Stardance
|
twinx
|
1
|
1.29
|
4
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-11T02:42:43Z", "hours": 1.0, "multiplier": 3.34, "payout": 4, "blessing": "neutral", "text": "I made a slack bot using JavaScript. The challenging part was to find api that are available for free and without any login. To test my bot you can use /y-help in slack to get a help msg from the bot.", "repo": "https://github.com/Philast-015/Bot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0BBJCZ79RN"}]...
|
[{"post_id": 9306, "ts": "2026 [{"post_id": 9306, "ts": "2026-06-15T16:57:44Z", "hours": 0.2883, "text": "Made few changes in README.md that helps user read it more clearly and re-shiping because previous one got rejected due to demo url."}, {"post_id": 6582, "ts": "2026-06-11T01:49:25Z", "hours": 0.5919, "text": "Added more commands such as coin-flip , random choice , jokes , quotes , cat-facts .etc"}, {"post_id": 1501, "ts": "2026-06-03T15:57:46Z", "hours": 0.5175, "text": "Made 3 commands i.e. status , art and joke"}]...
|
Title: My first slack bot! by @twinx | Stardance
Title: My first slack bot! by @twinx | Stardance
Devlogs:
Made 3 commands i.e. status , art and joke
Added more commands such as coin-flip , random choice , jokes , quotes , cat-facts .etc
Made few changes in README.md that helps user read it more clearly and re-shiping because previous one got rejected due to demo url.
Ships:
I made a slack bot using JavaScript. The challenging part was to find api that are available for free and without any login. To test my bot you can use /y-help in slack to get a help msg from the bot....
|
1792990157.2607484
|
1793076557.2607484
|
|
15018
|
Graphing Calulator by @Murple | Stardance
|
Murple
|
1
|
18.0
|
241
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T17:04:10Z", "hours": 18.0, "multiplier": 17.21, "payout": 241, "blessing": "neutral", "text": "I made a math hub with different tools such as a 2D and 3D grapher, a vector field plotter, and a symbolic calculator. The project started off as just a way to revise my math and make it real by being able to visualize it, but it quickly grew into a comprehensive toolset for exploring both single and multivariable calculus.The 2D graphing section allows users to plot multiple functions at once while calculating specific metrics like arc length and the average value of a function between two bounds. Moving into higher dimensions, the 3D plotter visualizes complex multivariable surfaces, handles partial derivatives, and evaluates the Hessian matrix to locate and classify critical points into local maxima, minima, or saddle points. For exact algebraic computations, the symbolic calculator operates as a computer algebra system capable of resolving standard derivatives, limits, antiderivatives, and complex iterated double or triple integrals. Finally, the vector field visualizer displays dynamic quiver plots and features analytical tools to evaluate curl, divergence, and line integrals for work and flux based on custom parametric inputs in terms of t", "repo": "https://github.com/JustMurple/Graphing-Calc", "demo": "https://graphing-calc-wnveuhsecezfexqp3annxz.streamlit.app/"}]...
|
[{"post_id": 9305, "ts": "2026 [{"post_id": 9305, "ts": "2026-06-15T16:57:22Z", "hours": 13.9633, "text": "A lot has happen after my first devlog! I’ve decided to split up my work in different sections. The first one, the graphing calculator, is the one I was working on in the first devlog. Since then I’ve added the possibility of plotting multiple functions and the computation of arclength and averege between two x values a and b. The second section I made was the 3D plotter, similarly to the 2D one it comes with the “multiple functions at once” feature. In the analysis tools it has the computation of partial derivatives and critical points. The third section is a symbolic calculator with whom you can evaluate iterated integrals, limits, derivatives, expressions and antiderivatives. Last but not list the forth section is the 2D vector field visualizer, it takes the field’s components as inputs and plots them using plotly’s create quiver tool. The section also comes with a curl and divergence evaluator as well as a work and flux integral calculator that requires the user to input x’s and y’s parametrization in the variable t. As a personal note I wanted to add the fact that I really enjoyed making this, it’s my first full scale CS project and it was a nice way to revise what I studied in calculus."}, {"post_id": 6158, "ts": "2026-06-10T11:08:28Z", "hours": 4.0356, "text": "I’m currently working on a graphing calculator that includes tools such as finding the derivative of the functions and solving for the rationals zeros. My main goal is to have a place where I could visualize the things commonly taught in calculus 1-3 to better understand them and to get a grasp onto python and the it’s use in STEM fields."}]...
|
Title: Graphing Calulator by @Murple | Stardance
Title: Graphing Calulator by @Murple | Stardance
Devlogs:
I’m currently working on a graphing calculator that includes tools such as finding the derivative of the functions and solving for the rationals zeros. My main goal is to have a place where I could visualize the things commonly taught in calculus 1-3 to better understand them and to get a grasp onto python and the it’s use in STEM fields.
A lot has happen after my first devlog! I’ve decided to split up my work in different sections. The first one, the graphing calculator, is the one I was working on in the first devlog. Since then I’ve added the possibility of plotting multiple functions and the computation of arclength and averege between two x values a and b. The second section I made was the 3D plotter, similarly to the 2D one it comes with the “multiple functions at once” feature. In the analysis tools it has the computation of partial derivatives and critical points. The third section is a symbolic calculator with whom you can evaluate iterated integrals, limits, derivatives, expressions and antiderivatives. Last but not list the forth section is the 2D vector field visualizer, it takes the field’s components as inputs and plots them using plotly’s create quiver tool. The section also comes with a curl and divergence evaluator as well as a work and flux integral calculator that requires the user to input x’s and y’s parametrization in the variable t. As a personal note I wanted to add the fact that I really enjoyed making this, it’s my first full scale CS project and it was a nice way to revise what I studied in calculus.
Ships:
I made a math hub with different tools such as a 2D and 3D grapher, a vector field plotter, and a symbolic calculator. The project started off as just a way to revise my math and make it real by being able to visualize it, but it quickly grew into a comprehensive toolset for exploring both single and multivariable calculus.The 2D graphing section allows users to plot multiple functions at once while calculating specific metrics like arc length and the average value of a function between two bounds. Moving into higher dimensions, the 3D plotter visualizes complex multivariable surfaces, handles partial derivatives, and evaluates the Hessian matrix to locate and classify critical points into local maxima, minima, or saddle points. For exact algebraic computations, the symbolic calculator operates as a computer algebra system capable of resolving standard derivatives, limits, antiderivatives, and complex iterated double or triple integrals. Finally, the vector field visualizer displays dynamic quiver plots and features analytical tools to evaluate curl, divergence, and line integrals for work and flux based on custom parametric inputs in terms of t...
|
1792972606.3124125
|
1793059006.3124125
|
|
15161
|
Wilbur Clicker by @wilburadventures | Stardance
|
wilburadventures
|
0
|
7.0
|
0
|
[]
|
[{"post_id": 9303, "ts": "2026 [{"post_id": 9303, "ts": "2026-06-15T16:55:28Z", "hours": 5.7333, "text": "Devlog 2 - Robot Environment After much work, I’ve finished creating Robot Wilbur, equipped with a laser beam and a scrapyard level to go with it. This one took incredibly long because of the details that were included in the background of the scene and all the work that went into every tiny detail. With the third enemy done, I’ve already begun to create the next boss, which will be an alien version."}, {"post_id": 6402, "ts": "2026-06-10T19:29:47Z", "hours": 1.2689, "text": "Devlog 1 - Robot Wilbur Picking up where I left off, today I decided to create a new enemy for players to fight. I have already created the first 2 bosses and this third one was pretty difficult for me to create. I spent lots of time thinking of designs and landed on this one, which strikes a balance between simplicity and mechanical complication. Currently, he lacks animations and attacks but those will be implemented some other day (the next devlog). This is a good spot to leave off for now."}]...
|
Title: Wilbur Clicker by @wilburadventures | Stard Title: Wilbur Clicker by @wilburadventures | Stardance
Devlogs:
Devlog 1 - Robot Wilbur Picking up where I left off, today I decided to create a new enemy for players to fight. I have already created the first 2 bosses and this third one was pretty difficult for me to create. I spent lots of time thinking of designs and landed on this one, which strikes a balance between simplicity and mechanical complication. Currently, he lacks animations and attacks but those will be implemented some other day (the next devlog). This is a good spot to leave off for now.
Devlog 2 - Robot Environment After much work, I’ve finished creating Robot Wilbur, equipped with a laser beam and a scrapyard level to go with it. This one took incredibly long because of the details that were included in the background of the scene and all the work that went into every tiny detail. With the third enemy done, I’ve already begun to create the next boss, which will be an alien version....
|
1792421334.0416741
|
1793026134.0416741
|
|
4506
|
H-OS by @harn | Stardance
|
harn
|
0
|
1.34
|
0
|
[]
|
[{"post_id": 930, "ts": "2026- [{"post_id": 930, "ts": "2026-06-02T17:59:09Z", "hours": 1.3394, "text": "I’m working on an OS!"}]...
|
Title: H-OS by @harn | Stardance
Devlogs:
I’m wor Title: H-OS by @harn | Stardance
Devlogs:
I’m working on an OS!...
|
1792731233.3974173
|
1793336033.3974173
|
|
18830
|
Bromine by @JGJ52 | Stardance
|
JGJ52
|
0
|
0.0
|
0
|
[]
|
[{"post_id": 9299, "ts": "2026 [{"post_id": 9299, "ts": "2026-06-15T16:49:36Z", "hours": 0.0, "text": "A basic plugin system this should be a good start for the plugins why does this not contain loading plugin main class"}, {"post_id": 8948, "ts": "2026-06-14T21:30:41Z", "hours": 0.0, "text": "I made a basic Bukkit-like listener api (stole most of the code from Sulfur, my previous Minestom based project) but instead of instant register when constructor called, it has register() and unregister() methods; made a command api which is basically same as Minestom’s but there is register() and unregister() method"}]...
|
Title: Bromine by @JGJ52 | Stardance
Devlogs:
I m Title: Bromine by @JGJ52 | Stardance
Devlogs:
I made a basic Bukkit-like listener api (stole most of the code from Sulfur, my previous Minestom based project) but instead of instant register when constructor called, it has register() and unregister() methods; made a command api which is basically same as Minestom’s but there is register() and unregister() method
A basic plugin system this should be a good start for the plugins why does this not contain loading plugin main class...
|
1792914780.9703417
|
1793778780.9703417
|
|
10023
|
Devspace by @notaureith | Stardance
|
notaureith
|
0
|
2.03
|
0
|
[]
|
[{"post_id": 9287, "ts": "2026 [{"post_id": 9287, "ts": "2026-06-15T16:17:28Z", "hours": 0.4253, "text": "DEVLOG #3 The Future Starts Looking Real DevSpace is slowly turning from an idea into an actual platform. Today we worked on expanding the roadmap and planning features that make DevSpace feel more alive than a traditional IDE. Instead of just coding software, we want developers to feel like they are entering a digital workspace built for creativity, teamwork, and community. ->New roadmap ideas: AI-powered debugging assistant Shared live terminals Custom developer profiles Workspace themes & environments Community chill rooms One-click team setup system Smart notifications for teams We are also exploring smoother communication systems so developers can instantly jump into voice/video discussions while staying inside the coding environment. Biggest challenge: Balancing powerful features while keeping the software lightweight and fast."}, {"post_id": 7925, "ts": "2026-06-13T06:39:06Z", "hours": 0.5094, "text": "DEVLOG #2 Building the Collaboration System Today we focused on one of the biggest parts of DevSpace — real-time collaboration. The vision is simple: Developers should be able to join a workspace and instantly code, communicate, and collaborate without opening external apps. ->We started improving: Real-time syncing Shared workspace structure Voice room concepts Team collaboration flow Faster UI responsiveness One interesting idea we are exploring is workspace rooms similar to communication platforms, where developers can create project-based environments and collaborate live. Another focus is reducing distractions. Instead of switching tabs between coding and meetings, DevSpace keeps everything inside one ecosystem. Current Enhancements: Improved project workspace UI Better file syncing research Team room structure planning AI assistant workflow concepts Optimized desktop performance The goal is still the same: Make developers enjoy collaboration again."}, {"post_id": 5400, "ts": "2026-06-09T04:40:32Z", "hours": 1.0908, "text": "DEVLOG #1 — The Beginning of DevSpace DevSpace started with one simple idea , developers should not need 5 different apps just to work together. Right now people code on VS Code, communicate on Discord or Zoom, push on GitHub, and switch tabs constantly. We wanted to build a standalone software where everything exists in one place. A space where developers can code together in real time, join voice/video rooms instantly, use AI tools, collaborate on projects, and even chill with the community. Currently, we have started building the base architecture and experimenting with real-time collaboration systems. The biggest focus right now is creating a smooth coding experience while keeping communication features lightweight and fast. Inspired by modern devlog styles that showcase progress and vision step-by-step . •Current Focus ->Real-time collaboration ->Built-in communication ->AI developer tools ->Desktop software architecture ->Developer community experience"}]...
|
Title: Devspace by @notaureith | Stardance
Devlog Title: Devspace by @notaureith | Stardance
Devlogs:
DEVLOG #1 — The Beginning of DevSpace DevSpace started with one simple idea , developers should not need 5 different apps just to work together. Right now people code on VS Code, communicate on Discord or Zoom, push on GitHub, and switch tabs constantly. We wanted to build a standalone software where everything exists in one place. A space where developers can code together in real time, join voice/video rooms instantly, use AI tools, collaborate on projects, and even chill with the community. Currently, we have started building the base architecture and experimenting with real-time collaboration systems. The biggest focus right now is creating a smooth coding experience while keeping communication features lightweight and fast. Inspired by modern devlog styles that showcase progress and vision step-by-step . •Current Focus ->Real-time collaboration ->Built-in communication ->AI developer tools ->Desktop software architecture ->Developer community experience
DEVLOG #2 Building the Collaboration System Today we focused on one of the biggest parts of DevSpace — real-time collaboration. The vision is simple: Developers should be able to join a workspace and instantly code, communicate, and collaborate without opening external apps. ->We started improving: Real-time syncing Shared workspace structure Voice room concepts Team collaboration flow Faster UI responsiveness One interesting idea we are exploring is workspace rooms similar to communication platforms, where developers can create project-based environments and collaborate live. Another focus is reducing distractions. Instead of switching tabs between coding and meetings, DevSpace keeps everything inside one ecosystem. Current Enhancements: Improved project workspace UI Better file syncing research Team room structure planning AI assistant workflow concepts Optimized desktop performance The goal is still the same: Make developers enjoy collaboration again.
DEVLOG #3 The Future Starts Looking Real DevSpace is slowly turning from an idea into an actual platform. Today we worked on expanding the roadmap and planning features that make DevSpace feel more alive than a traditional IDE. Instead of just coding software, we want developers to feel like they are entering a digital workspace built for creativity, teamwork, and community. ->New roadmap ideas: AI-powered debugging assistant Shared live terminals Custom developer profiles Workspace themes & environments Community chill rooms One-click team setup system Smart notifications for teams We are also exploring smoother communication systems so developers can instantly jump into voice/video discussions while staying inside the coding environment. Biggest challenge: Balancing powerful features while keeping the software lightweight and fast....
|
1792497081.0308483
|
1793101881.0308483
|
|
10959
|
Ephemeris by @reimunyancat | Stardance
|
reimunyancat
|
1
|
4.34
|
51
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-14T13:55:19Z", "hours": 4.0, "multiplier": 14.56, "payout": 51, "blessing": "neutral", "text": "🪐 Ephemeris — a real-time 3D solar system simulator, built from scratch What I made: A desktop app (Tauri + TypeScript + Three.js) that simulates the solar system from real NASA JPL Horizons initial conditions. Instead of faking the orbits, it actually integrates Newtonian gravity in real time. I hand-implemented three classic computational-physics algorithms: a Velocity Verlet symplectic integrator for stable long-term orbits, a 3D Barnes-Hut octree for O(N log N) gravity, and a Newton-Raphson solver for Kepler’s equation to read out live orbital elements. What was challenging: The trickiest part was the tension between the symplectic integrator and the Barnes-Hut approximation — every time the octree rebuilds, tiny force discontinuities break symplecticity and energy drift creeps back in. Getting the numerical stability right (gravity softening near close encounters, sub-stepping at high time-acceleration, and removing barycenter drift) and killing GC frame spikes with an octree node memory pool took a lot of iteration. What I’m proud of: It genuinely runs on real NASA data and the orbits come out physically correct — the unit tests recover the actual JPL inclinations. And it looks nice too: procedural planet textures, age-faded orbit trails, Saturn’s rings, Earth’s atmospheric glow, and real axial tilt + rotation. How to test it: Open it and the 8 planets load automatically. Drag the time slider to speed things up (1 day/s → 1 year/s), click any planet to see its 6 live orbital elements, then toggle the asteroid belt on (1k–10k particles) and switch between naive O(N²) and Barnes-Hut to watch the FPS difference. You can also pause, reverse, and jump through time.", "repo": "https://github.com/reimunyancat/Ephemeris", "demo": "https://reimunyancat.github.io/Ephemeris/"}]...
|
[{"post_id": 9282, "ts": "2026 [{"post_id": 9282, "ts": "2026-06-15T16:11:33Z", "hours": 0.3367, "text": "I really agonized over how to add UI elements to meet the requirements. I originally intended to create this for display purposes, and the HUD I had made for a school assignment was already somewhat inconvenient. It was quite challenging due to the requirement to add more UI, but I found a way to incorporate features without compromising the aesthetics. I modified the code so that clicking the key descriptions located below the HUD immediately activates the functions. Additionally, instead of using the automatically generated readme.md, I wrote it myself based on my own ideas. While the content might seem AI-driven, I wrote it out by hand since it is also being used for a school assignment presentation."}, {"post_id": 8707, "ts": "2026-06-14T13:51:59Z", "hours": 1.0228, "text": "I added details, removed minor bugs, and made it prettier."}, {"post_id": 4932, "ts": "2026-06-08T15:19:46Z", "hours": 1.8544, "text": "Initially, I designed it more simply than planned, but when I modified it to fit the plan, there were so many errors that fixing them was very difficult. I will wrap up here for today and focus on details and optimization tomorrow."}, {"post_id": 4177, "ts": "2026-06-07T12:17:55Z", "hours": 0.6633, "text": "I implemented formulas for the trajectories and masses of the planets, created individual objects to form their orbits, and implemented the UI. The formulas were the most difficult part."}]...
|
Title: Ephemeris by @reimunyancat | Stardance
Dev Title: Ephemeris by @reimunyancat | Stardance
Devlogs:
I implemented formulas for the trajectories and masses of the planets, created individual objects to form their orbits, and implemented the UI. The formulas were the most difficult part.
Initially, I designed it more simply than planned, but when I modified it to fit the plan, there were so many errors that fixing them was very difficult. I will wrap up here for today and focus on details and optimization tomorrow.
I added details, removed minor bugs, and made it prettier.
I really agonized over how to add UI elements to meet the requirements. I originally intended to create this for display purposes, and the HUD I had made for a school assignment was already somewhat inconvenient. It was quite challenging due to the requirement to add more UI, but I found a way to incorporate features without compromising the aesthetics. I modified the code so that clicking the key descriptions located below the HUD immediately activates the functions. Additionally, instead of using the automatically generated readme.md, I wrote it myself based on my own ideas. While the content might seem AI-driven, I wrote it out by hand since it is also being used for a school assignment presentation.
Ships:
🪐 Ephemeris — a real-time 3D solar system simulator, built from scratch What I made: A desktop app (Tauri + TypeScript + Three.js) that simulates the solar system from real NASA JPL Horizons initial conditions. Instead of faking the orbits, it actually integrates Newtonian gravity in real time. I hand-implemented three classic computational-physics algorithms: a Velocity Verlet symplectic integrator for stable long-term orbits, a 3D Barnes-Hut octree for O(N log N) gravity, and a Newton-Raphson solver for Kepler’s equation to read out live orbital elements. What was challenging: The trickiest part was the tension between the symplectic integrator and the Barnes-Hut approximation — every time the octree rebuilds, tiny force discontinuities break symplecticity and energy drift creeps back in. Getting the numerical stability right (gravity softening near close encounters, sub-stepping at high time-acceleration, and removing barycenter drift) and killing GC frame spikes with an octree node memory pool took a lot of iteration. What I’m proud of: It genuinely runs on real NASA data and the orbits come out physically correct — the unit tests recover the actual JPL inclinations. And it looks nice too: procedural planet textures, age-faded orbit trails, Saturn’s rings, Earth’s atmospheric glow, and real axial tilt + rotation. How to test it: Open it and the 8 planets load automatically. Drag the time slider to speed things up (1 day/s → 1 year/s), click any planet to see its 6 live orbital elements, then toggle the asteroid belt on (1k–10k particles) and switch between naive O(N²) and Barnes-Hut to watch the FPS difference. You can also pause, reverse, and jump through time....
|
1792875247.2490745
|
1793739247.2490745
|
|
18504
|
My very own WebOS by @F1rino1s | Stardance
|
F1rino1s
|
0
|
2.1
|
0
|
[]
|
[{"post_id": 9281, "ts": "2026 [{"post_id": 9281, "ts": "2026-06-15T16:11:10Z", "hours": 1.7294, "text": "refined the page’s look"}, {"post_id": 8763, "ts": "2026-06-14T15:59:07Z", "hours": 0.3697, "text": "i just finished the first page of the website"}]...
|
Title: My very own WebOS by @F1rino1s | Stardance
Title: My very own WebOS by @F1rino1s | Stardance
Devlogs:
i just finished the first page of the website
refined the page’s look...
|
1792637641.8210003
|
1793242441.8210003
|
|
13164
|
HyperDesk by @xk | Stardance
|
xk
|
0
|
3.17
|
0
|
[]
|
[{"post_id": 9278, "ts": "2026 [{"post_id": 9278, "ts": "2026-06-15T16:03:56Z", "hours": 1.5197, "text": "internalization feature reconstructed architecture so users can add app easily (todo: a cli to install with one command) fully static, can be easily deployed by github pages / cloudflare pages (recommended) apps can use manifest file to declare their behaviors (it works like an real OS!) *Code is not open to public yet since I’m running security tests, sorry <( _ _ )> Image below shows i18n feature (Simplified Chinese version)"}, {"post_id": 9103, "ts": "2026-06-15T06:42:08Z", "hours": 1.6544, "text": "Two apps are now available: projects and about me hosted on Cloudflare todo: i18n scalable architecture more apps"}]...
|
Title: HyperDesk by @xk | Stardance
Devlogs:
Two Title: HyperDesk by @xk | Stardance
Devlogs:
Two apps are now available: projects and about me hosted on Cloudflare todo: i18n scalable architecture more apps
internalization feature reconstructed architecture so users can add app easily (todo: a cli to install with one command) fully static, can be easily deployed by github pages / cloudflare pages (recommended) apps can use manifest file to declare their behaviors (it works like an real OS!) *Code is not open to public yet since I’m running security tests, sorry <( _ _ )> Image below shows i18n feature (Simplified Chinese version)...
|
1792562013.671416
|
1793166813.671416
|
|
6779
|
Zeteroide by @LouisNotLuna | Stardance
|
LouisNotLuna
|
1
|
17.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T16:28:17Z", "hours": 17.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a simple meteorite shooter, to learn opengl and deepen my knowledge in zig. It is quite a basic game, but it helped to further my understanding.", "repo": "https://codeberg.org/LouisNotLuna/zeteroide", "demo": "https://youtu.be/Fz58MMCm2dk"}]...
|
[{"post_id": 9277, "ts": "2026 [{"post_id": 9277, "ts": "2026-06-15T16:03:54Z", "hours": 3.2778, "text": "I added a damage sound, lives and other stuff. Smoothing for positions, so we don’t get jumpy jumps from grid pos to grid pos. This way we get smooth animations. I also tidied up the code, made spawn rate and tick rate increase with play time. This project has taught me a lot of about graphics programming and opengl."}, {"post_id": 6486, "ts": "2026-06-10T22:07:37Z", "hours": 3.6086, "text": "I did the restructering, the game grid is now no longer stored allowing for more efficent and more efficent ticking. Ticking is now done globally and not per Slot. I also reintroduce some bugs :> that need fixing for the full code diff view github. Here is one of them:"}, {"post_id": 4554, "ts": "2026-06-07T22:00:31Z", "hours": 0.38, "text": "Implemented lives and death (window just closes for now). They are not yet rendering though. so you only get an image of lazygit today"}, {"post_id": 4250, "ts": "2026-06-07T14:30:31Z", "hours": 0.5539, "text": "Now we properly render the explosion texture, missing the meteorites makes them spawn in quicker. They finally disappear when hitting them bottom. No lives yet, that should be trivial to implement. Also added new sounds, for damage and hitting an meteorite"}, {"post_id": 3733, "ts": "2026-06-06T19:35:51Z", "hours": 1.0483, "text": "I got images working! It was a stupid mistake that renderdoc helped me solve. (Pro tip: if you have a projection matrix make sure to actually set it in the shader). It would be nice if I could make opengl hard error in such a case 🤔. As you can see it still not correctly rendered, but at least I see something."}, {"post_id": 3485, "ts": "2026-06-06T13:20:10Z", "hours": 2.3597, "text": "I am currently reworking the rendering pipeline, uhh and somehow a lot of stuff broke. Trying to figure out what I did wrong :dies:"}, {"post_id": 2883, "ts": "2026-06-05T19:39:30Z", "hours": 2.5653, "text": "I have been working on improving the codebase and added sound support, read up a lot on how SDL manages sound. And I needed to medal with nix flake dev env, because it was trying to use jack and didn’t see pipewire. The game doesn’t look much different, but here another screenshot."}, {"post_id": 2055, "ts": "2026-06-04T11:00:42Z", "hours": 2.3686, "text": "I got the basic game working, you can move around, shoot and destroy the meteroides. They don’t deal damage and just chill at the bottom when they reach it. I am not sure if I am happy with current system, as I use a 2d array of the size of the game. Maybe I will change that. Explosions are also working. That is the big red blob that you see, they appear shortly after you shoot a meteroide and disappear after a second. Overall very fun, next thing to add is gonna be a score and lives."}, {"post_id": 1987, "ts": "2026-06-04T07:52:50Z", "hours": 0.8536, "text": "I have been wanting to learn rendering for some time, I decided a good way was to create a little game with opengl and zig, as I am already knowledgeable about that language. The screenshot you see is the current game state, it has been very fun so far and I plan to do more. Doesn’t look to pretty yet, but I plan to work more on this. I have already learned a lot about opengl and rendering."}]...
|
Title: Zeteroide by @LouisNotLuna | Stardance
Dev Title: Zeteroide by @LouisNotLuna | Stardance
Devlogs:
I have been wanting to learn rendering for some time, I decided a good way was to create a little game with opengl and zig, as I am already knowledgeable about that language. The screenshot you see is the current game state, it has been very fun so far and I plan to do more. Doesn’t look to pretty yet, but I plan to work more on this. I have already learned a lot about opengl and rendering.
I got the basic game working, you can move around, shoot and destroy the meteroides. They don’t deal damage and just chill at the bottom when they reach it. I am not sure if I am happy with current system, as I use a 2d array of the size of the game. Maybe I will change that. Explosions are also working. That is the big red blob that you see, they appear shortly after you shoot a meteroide and disappear after a second. Overall very fun, next thing to add is gonna be a score and lives.
I have been working on improving the codebase and added sound support, read up a lot on how SDL manages sound. And I needed to medal with nix flake dev env, because it was trying to use jack and didn’t see pipewire. The game doesn’t look much different, but here another screenshot.
I am currently reworking the rendering pipeline, uhh and somehow a lot of stuff broke. Trying to figure out what I did wrong :dies:
I got images working! It was a stupid mistake that renderdoc helped me solve. (Pro tip: if you have a projection matrix make sure to actually set it in the shader). It would be nice if I could make opengl hard error in such a case 🤔. As you can see it still not correctly rendered, but at least I see something.
Now we properly render the explosion texture, missing the meteorites makes them spawn in quicker. They finally disappear when hitting them bottom. No lives yet, that should be trivial to implement. Also added new sounds, for damage and hitting an meteorite
Implemented lives and death (window just closes for now). They are not yet rendering though. so you only get an image of lazygit today
I did the restructering, the game grid is now no longer stored allowing for more efficent and more efficent ticking. Ticking is now done globally and not per Slot. I also reintroduce some bugs :> that need fixing for the full code diff view github. Here is one of them:
I added a damage sound, lives and other stuff. Smoothing for positions, so we don’t get jumpy jumps from grid pos to grid pos. This way we get smooth animations. I also tidied up the code, made spawn rate and tick rate increase with play time. This project has taught me a lot of about graphics programming and opengl.
Ships:
I made a simple meteorite shooter, to learn opengl and deepen my knowledge in zig. It is quite a basic game, but it helped to further my understanding....
|
1792979581.7057483
|
1793065981.7057483
|
|
14834
|
My awesome macropad! by @anujkishan918 | Stardance
|
anujkishan918
|
1
|
2.95
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-11T06:04:49Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built CyberPad, a custom 3×3 macropad featuring nine mechanical switches, a rotary encoder, and an OLED display. The device runs on a Seeed XIAO RP2040 using CircuitPython and KMK firmware, and supports three switchable profiles: Productivity, Gaming, and Media. Each profile has multiple layers, custom shortcuts, OLED animations, and visual feedback for the active mode. I also designed the PCB in KiCad and created a custom 3D-printable enclosure.I always watched YouTubers build 3d models and print them but never had the resources or the opportunity to do so so this was quite good The most challenging part was bringing together multiple engineering disciplines into a single project. I had previously been exposed to PCB design, CAD modeling, embedded programming, firmware development, and 3D printing, but I had never combined all of them into one complete product. Getting the hardware, firmware, OLED interface, rotary encoder, and enclosure design to work together required a lot of iteration and troubleshooting. What I am most proud of is that CyberPad is a complete hardware product rather than an isolated experiment. It includes a custom PCB, custom enclosure, firmware, user interface, and documentation. Building it gave me confidence that I could take an idea from concept to a working prototype. It also gave me the confidence to publish my work publicly on GitHub. Before this project, many of the tools and technologies were things I had only explored individually. CyberPad showed me that I could combine them into something tangible and share it with others. To test CyberPad, users will need a Seeed XIAO RP2040, a 128×32 SSD1306 OLED display, an EC11 rotary encoder, nine MX-style switches, and the custom PCB and enclosure files provided in the repository. The firmware is written using CircuitPython and KMK. After installing CircuitPython on the RP2040 and copying the required libraries and firmware files, the device will boot directly into the CyberPad interface. Users can switch between Productivity, Gaming, and Media profiles using the top-row key combination and verify that the OLED display, encoder controls, shortcuts, and profile animations function correctly.", "repo": "https://github.com/Anuj981-blip/Cyber-pad", "demo": ""}]...
|
[{"post_id": 9275, "ts": "2026 [{"post_id": 9275, "ts": "2026-06-15T16:01:52Z", "hours": 1.9481, "text": "Devlog 2 updated the firmware"}, {"post_id": 6679, "ts": "2026-06-11T05:52:16Z", "hours": 0.6497, "text": "A cyber-pad with a rotary encoder and an oled display that has 3 different profiles and is highly customizable"}]...
|
Title: My awesome macropad! by @anujkishan918 | St Title: My awesome macropad! by @anujkishan918 | Stardance
Devlogs:
A cyber-pad with a rotary encoder and an oled display that has 3 different profiles and is highly customizable
Devlog 2 updated the firmware
Ships:
I built CyberPad, a custom 3×3 macropad featuring nine mechanical switches, a rotary encoder, and an OLED display. The device runs on a Seeed XIAO RP2040 using CircuitPython and KMK firmware, and supports three switchable profiles: Productivity, Gaming, and Media. Each profile has multiple layers, custom shortcuts, OLED animations, and visual feedback for the active mode. I also designed the PCB in KiCad and created a custom 3D-printable enclosure.I always watched YouTubers build 3d models and print them but never had the resources or the opportunity to do so so this was quite good The most challenging part was bringing together multiple engineering disciplines into a single project. I had previously been exposed to PCB design, CAD modeling, embedded programming, firmware development, and 3D printing, but I had never combined all of them into one complete product. Getting the hardware, firmware, OLED interface, rotary encoder, and enclosure design to work together required a lot of iteration and troubleshooting. What I am most proud of is that CyberPad is a complete hardware product rather than an isolated experiment. It includes a custom PCB, custom enclosure, firmware, user interface, and documentation. Building it gave me confidence that I could take an idea from concept to a working prototype. It also gave me the confidence to publish my work publicly on GitHub. Before this project, many of the tools and technologies were things I had only explored individually. CyberPad showed me that I could combine them into something tangible and share it with others. To test CyberPad, users will need a Seeed XIAO RP2040, a 128×32 SSD1306 OLED display, an EC11 rotary encoder, nine MX-style switches, and the custom PCB and enclosure files provided in the repository. The firmware is written using CircuitPython and KMK. After installing CircuitPython on the RP2040 and copying the required libraries and firmware files, the device will boot directly into the CyberPad interface. Users can switch between Productivity, Gaming, and Media profiles using the top-row key combination and verify that the OLED display, encoder controls, shortcuts, and profile animations function correctly....
|
1792878765.6738043
|
1793742765.6738043
|
|
18875
|
MusePod by @lando498 | Stardance
|
lando498
|
1
|
3.0
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T18:57:53Z", "hours": 3.0, "multiplier": 1.47, "payout": 3, "blessing": "neutral", "text": "MusePod is a ipod themed music player where you can import up to 3 of your own mp3 files to play, features to be added better ui added to my webos project possibly moved to vb.net for a windowsapp project", "repo": "https://github.com/Lando498/music-1", "demo": "https://caffeinated.qzz.io/Musepod/music-player.html"}]...
|
[{"post_id": 9271, "ts": "2026 [{"post_id": 9271, "ts": "2026-06-15T15:52:05Z", "hours": 0.6042, "text": "uploaded to netlify todays update the ability to upload up to 3 of your own songs"}, {"post_id": 8985, "ts": "2026-06-14T23:34:35Z", "hours": 2.6758, "text": "i need to make it so users can upload files to play their own mp3s but i am tired so i will make that tommorow todays updates ipod style ui canned heat default song repeat shuffle playing music music controls"}]...
|
Title: MusePod by @lando498 | Stardance
Devlogs:
Title: MusePod by @lando498 | Stardance
Devlogs:
i need to make it so users can upload files to play their own mp3s but i am tired so i will make that tommorow todays updates ipod style ui canned heat default song repeat shuffle playing music music controls
uploaded to netlify todays update the ability to upload up to 3 of your own songs
Ships:
MusePod is a ipod themed music player where you can import up to 3 of your own mp3 files to play, features to be added better ui added to my webos project possibly moved to vb.net for a windowsapp project...
|
1792975713.0595863
|
1793062113.0595863
|
|
4467
|
project-HelpeX by @Arnost55 | Stardance
|
Arnost55
|
0
|
34.21
|
0
|
[]
|
[{"post_id": 9270, "ts": "2026 [{"post_id": 9270, "ts": "2026-06-15T15:52:02Z", "hours": 5.8736, "text": "Did coding refactor and cleaned up the Code"}, {"post_id": 4115, "ts": "2026-06-07T09:43:21Z", "hours": 3.2889, "text": "made database changes based"}, {"post_id": 3597, "ts": "2026-06-06T16:22:41Z", "hours": 1.0681, "text": "Tried to add a new ui but accidentally added a dropdown 💀💀💀"}, {"post_id": 3539, "ts": "2026-06-06T15:00:36Z", "hours": 1.3936, "text": "Made a new input field for tokens and temperature but i am lacking some ideas"}, {"post_id": 3372, "ts": "2026-06-06T08:19:21Z", "hours": 2.1364, "text": "made changes in the rust backend code"}, {"post_id": 3326, "ts": "2026-06-06T06:11:01Z", "hours": 0.6853, "text": "added a quick action bar. and cleaned up the code"}, {"post_id": 2744, "ts": "2026-06-05T14:46:15Z", "hours": 3.7919, "text": "made some interesting changes to the UI/model selector"}, {"post_id": 2266, "ts": "2026-06-04T17:39:30Z", "hours": 1.7767, "text": "Refactor codebase"}, {"post_id": 2132, "ts": "2026-06-04T13:45:00Z", "hours": 2.8097, "text": "Worked on Making a profile setting panel"}, {"post_id": 2046, "ts": "2026-06-04T10:29:14Z", "hours": 3.6736, "text": "debugging the reset button"}, {"post_id": 1494, "ts": "2026-06-03T15:42:51Z", "hours": 2.9708, "text": "tried to make a reset button for the app"}, {"post_id": 1375, "ts": "2026-06-03T11:22:10Z", "hours": 2.5189, "text": "Made some simple UI without the design in figma. Trying to be more consistent"}, {"post_id": 1316, "ts": "2026-06-03T07:24:38Z", "hours": 2.2222, "text": "Worked on design in figma"}]...
|
Title: project-HelpeX by @Arnost55 | Stardance
De Title: project-HelpeX by @Arnost55 | Stardance
Devlogs:
Worked on design in figma
Made some simple UI without the design in figma. Trying to be more consistent
tried to make a reset button for the app
debugging the reset button
Worked on Making a profile setting panel
Refactor codebase
made some interesting changes to the UI/model selector
added a quick action bar. and cleaned up the code
made changes in the rust backend code
Made a new input field for tokens and temperature but i am lacking some ideas
Tried to add a new ui but accidentally added a dropdown 💀💀💀
made database changes based
Did coding refactor and cleaned up the Code...
|
1792778066.3330162
|
1793382866.3330162
|
|
14466
|
CNC Machine by @conner_hopkins | Stardance
|
conner_hopkins
|
0
|
1.12
|
0
|
[]
|
[{"post_id": 9266, "ts": "2026 [{"post_id": 9266, "ts": "2026-06-15T15:41:33Z", "hours": 1.12, "text": "PCB Component Placement How do you place components in large PCB designs (400 components in this case)? The answer, use plugins! External plugins in KiCAD help a bit to place your components based off of their location in the schematic. However, it isnt perfect so a lot of manual labor is still required to place the components. Furthermore, I need to do more research about how to reduce parasitic inductance, while still being able to transmit power to all the MOSFETS and attaching capacitors. Also, due to the large EMI of the TMC5160 driver SPI communication has been moved to the 4th layer on the PCB. Protecting it from the large EMI by seperating it with a GND plane."}]...
|
Title: CNC Machine by @conner_hopkins | Stardance
Title: CNC Machine by @conner_hopkins | Stardance
Devlogs:
PCB Component Placement How do you place components in large PCB designs (400 components in this case)? The answer, use plugins! External plugins in KiCAD help a bit to place your components based off of their location in the schematic. However, it isnt perfect so a lot of manual labor is still required to place the components. Furthermore, I need to do more research about how to reduce parasitic inductance, while still being able to transmit power to all the MOSFETS and attaching capacitors. Also, due to the large EMI of the TMC5160 driver SPI communication has been moved to the 4th layer on the PCB. Protecting it from the large EMI by seperating it with a GND plane....
|
1792533232.967135
|
1793138032.967135
|
|
17361
|
""webOS"" ""project" ""webOS"" ""project"" by @thesaladman | Stardance...
|
thesaladman
|
0
|
1.74
|
0
|
[]
|
[{"post_id": 9261, "ts": "2026 [{"post_id": 9261, "ts": "2026-06-15T15:31:49Z", "hours": 1.7417, "text": "made more progress over the past couple of days -draggable handle for the welcome screen! yay! -open and close buttons -organized the code a bit to make it less messy"}, {"post_id": 7728, "ts": "2026-06-12T21:59:28Z", "hours": 0.0, "text": "added the guts of a main page"}]...
|
Title: ""webOS"" ""project Title: ""webOS"" ""project"" by @thesaladman | Stardance
Devlogs:
added the guts of a main page
made more progress over the past couple of days -draggable handle for the welcome screen! yay! -open and close buttons -organized the code a bit to make it less messy...
|
1792662688.8318443
|
1793267488.8318443
|