|
67041
|
My Game by @Addy44 | Stardance
|
Addy44
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My Game by @Addy44 | Stardance
|
1792464580.491632
|
1793069380.491632
|
|
67040
|
My first slack bot! by @Stardustworthy | Stardance
|
Stardustworthy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Stardustworthy | St Title: My first slack bot! by @Stardustworthy | Stardance...
|
1792464579.651361
|
1793069379.651361
|
|
32857
|
Personal Portfolio Website by @Sourish-D | Stardan Personal Portfolio Website by @Sourish-D | Stardance...
|
Sourish-D
|
1
|
38.0
|
444
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T16:54:04Z", "hours": 38.0, "multiplier": 12.86, "payout": 444, "blessing": "neutral", "text": "I made a site to showcase my projects, achievements, and skills using React, Vite, and deployed on Vercel. Initially, I planned to make this on HTML, CSS, and JS but then realized there were a lot of repeated components, and that adding more in the future would be a lot harder, so I made a full switch to react. This also allowed me to make use of state fields which made the animations so much easier. The API connections are also a little bit difficult at the moment, the leetcode API especially tends to lose it’s tokens really quickly and I tried circumventing that using local cache but it doesn’t seem to be working exactly as intended. I’ll probably fix that in the future, but the Last.FM (The music section) and the Github APIs work as intended. But yeah, I’m proud of the animations and the responsive design, and I believe this is the best site I’ve made. So, without further delay, welcome to my personal website!", "repo": "https://github.com/Sourish-D/Portfolio-Website", "demo": "https://my-portfolio-pi-sand-83.vercel.app/"}]...
|
[{"post_id": 56648, "ts": "202 [{"post_id": 56648, "ts": "2026-08-28T14:20:44Z", "hours": 7.8725, "text": "Final Devlog Before Ship! There was a LOT of changes I made in this devlog, mostly in preparation for ship. First, I added the Github and Leetcode API connections. Next, I made the site responsive, allowing phones and tablets to be able to view the site Afterwards, I did a LOT of refactoring in the code and reviewing the requirements to ship Changed the .readme file Found out that I was making HORRIBLE commit names and tried changing it and found out rebasing ruins your entire history and gave up on that Refactored my code to make it a cleaner (Found out what refactoring means too) Changed the Github and Leetcode APIs AGAIN because it kept running into rate limits But now it’s done and I believe ready to ship!"}, {"post_id": 54713, "ts": "2026-08-25T19:45:55Z", "hours": 2.9658, "text": "Beginning of backend! Today I managed to get the back-end started with Vercel and now I have Last.FM API integration! At first, I tried using Spotify for the API but then I found out it requires premium, so I decided to switch over to Last.FM for the statistics. Back-end integration was a HASSLE, it took me forever to find out that I had to put the .env.local api keys in the vercel page as well."}, {"post_id": 54145, "ts": "2026-08-24T23:44:22Z", "hours": 8.8431, "text": "This devlog, I added a bunch of animations and began styling. As you scroll, the arms move components on/off the screen and I added a parchment and gold border theme to all the blocks. Soon, I’m going to change it to have a more consistent and varied theme, and then I’ll connect the APIs."}, {"post_id": 47206, "ts": "2026-08-14T23:37:01Z", "hours": 13.0169, "text": "Devlog 3 I decided to change site from HTML / CSS to React. This was because I just like the React framework a lot more and it’ll make it easier to update it in the future. I also changed the entire structure of the page, adding a background and projects page. For now, it’s all in simple colors and styling, but soon I’ll add an opus magnum (video game) theme across the whole site. Currently I have basic animations, as I apply the theme across the site I may add several smaller animations just to add to the ‘mechanical’ feel of it. I also have to begin API integration with Spotify, Github, etc. to complete the site. The video is just a quick run-through of everything."}, {"post_id": 26254, "ts": "2026-07-10T22:43:55Z", "hours": 2.5003, "text": "Added Certificates Page and Web Dev Projects page. Modified the top bar a bit and added many more assets. The last stretch includes re-learning how to open my old java projects that use mySQL (I got locked out 😭😭) and to add a page talking about my current projects, stuff about the ESP2."}, {"post_id": 25097, "ts": "2026-07-09T02:38:17Z", "hours": 2.3428, "text": "Today, we began the project. Creating the home-bar and the drop-down associated with. Also began working on the “about me” section. Will work towards adding more information in that section. Tomorrow, will work on the certificates and languages pages."}]...
|
Title: Personal Portfolio Website by @Sourish-D | Title: Personal Portfolio Website by @Sourish-D | Stardance
Devlogs:
Today, we began the project. Creating the home-bar and the drop-down associated with. Also began working on the “about me” section. Will work towards adding more information in that section. Tomorrow, will work on the certificates and languages pages.
Added Certificates Page and Web Dev Projects page. Modified the top bar a bit and added many more assets. The last stretch includes re-learning how to open my old java projects that use mySQL (I got locked out 😭😭) and to add a page talking about my current projects, stuff about the ESP2.
Devlog 3 I decided to change site from HTML / CSS to React. This was because I just like the React framework a lot more and it’ll make it easier to update it in the future. I also changed the entire structure of the page, adding a background and projects page. For now, it’s all in simple colors and styling, but soon I’ll add an opus magnum (video game) theme across the whole site. Currently I have basic animations, as I apply the theme across the site I may add several smaller animations just to add to the ‘mechanical’ feel of it. I also have to begin API integration with Spotify, Github, etc. to complete the site. The video is just a quick run-through of everything.
This devlog, I added a bunch of animations and began styling. As you scroll, the arms move components on/off the screen and I added a parchment and gold border theme to all the blocks. Soon, I’m going to change it to have a more consistent and varied theme, and then I’ll connect the APIs.
Beginning of backend! Today I managed to get the back-end started with Vercel and now I have Last.FM API integration! At first, I tried using Spotify for the API but then I found out it requires premium, so I decided to switch over to Last.FM for the statistics. Back-end integration was a HASSLE, it took me forever to find out that I had to put the .env.local api keys in the vercel page as well.
Final Devlog Before Ship! There was a LOT of changes I made in this devlog, mostly in preparation for ship. First, I added the Github and Leetcode API connections. Next, I made the site responsive, allowing phones and tablets to be able to view the site Afterwards, I did a LOT of refactoring in the code and reviewing the requirements to ship Changed the .readme file Found out that I was making HORRIBLE commit names and tried changing it and found out rebasing ruins your entire history and gave up on that Refactored my code to make it a cleaner (Found out what refactoring means too) Changed the Github and Leetcode APIs AGAIN because it kept running into rate limits But now it’s done and I believe ready to ship!
Ships:
I made a site to showcase my projects, achievements, and skills using React, Vite, and deployed on Vercel. Initially, I planned to make this on HTML, CSS, and JS but then realized there were a lot of repeated components, and that adding more in the future would be a lot harder, so I made a full switch to react. This also allowed me to make use of state fields which made the animations so much easier. The API connections are also a little bit difficult at the moment, the leetcode API especially tends to lose it’s tokens really quickly and I tried circumventing that using local cache but it doesn’t seem to be working exactly as intended. I’ll probably fix that in the future, but the Last.FM (The music section) and the Github APIs work as intended. But yeah, I’m proud of the animations and the responsive design, and I believe this is the best site I’ve made. So, without further delay, welcome to my personal website!...
|
1792982979.5670671
|
1793069379.5670671
|
|
67038
|
My own site! by @rutva | Stardance
|
rutva
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @rutva | Stardance
|
1792464578.8115594
|
1793069378.8115594
|
|
6841
|
Snake! by @zahran | Stardance
|
zahran
|
1
|
5.0
|
79
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-30T20:35:29Z", "hours": 5.0, "multiplier": 13.26, "payout": 79, "blessing": "neutral", "text": "I started learning Java at the beginning of June, and to test my skills I recreated Snake in Java. You can control the snake using WASD/arrow keys, and reset the game using R. It features modifiers that let you adjust the snake’s speed and board size, and you can enable other modifiers as well. During development, I faced a lot of minor challenges caused by me writing something incorrectly and then battling with the bug for 5-10 minutes or so. Since it’s my first project made using Java, I tried to do most things on my own but I did reference a video if I got too stuck on one thing. However, I’m super proud of achieving this, for two main reasons: It’s my first project made in Java, and it’s actually usable and fun to play. It’s a functional game that people can play. This is especially important because I’m planning to make a platformer in C++ soon, so this was a nice warmup for game development. Anyway, I hope you enjoy my Snake game! :)", "repo": "https://github.com/HughMann635/SnakeGame", "demo": "https://github.com/HughMann635/SnakeGame/releases/tag/Initializing"}]...
|
[{"post_id": 19396, "ts": "202 [{"post_id": 19396, "ts": "2026-06-30T18:21:18Z", "hours": 0.4228, "text": "I just fixed two bugs/issues: Made it so you can no longer click a button while the game is running Fixed a bug where if you mashed two inputs in the same frame, your snake could crash (e.g. moving down and mashing the right and up inputs). I fixed this by adding a check to make sure you can only switch directions once per frame. How I did it: I made a boolean called hasMoved, set it to false, and made it check for if hasMoved was false. It also sets hasMoved to true after you change direction and sets it back to false at the end of the frame."}, {"post_id": 19338, "ts": "2026-06-30T16:53:18Z", "hours": 2.1356, "text": "It’s been a hot minute since I posted a devlog, but I think I’ve more or less finished the game. Here’s what I’ve added: Interactive buttons that let you toggle/change the snake’s speed, size of the board, and different modifiers such as disabled collisions and mines that spawn randomly on the map Fixed a bunch of pre-existing bugs (like with score tracking) and new bugs (working out the mines was so annoying holy) yeah that’s pretty much it I think. Next steps: I’ll look into making it resizable/of different dimensions. Honestly, I might not do this one because a lot of my positions/coordinates were hard coded so it might be a pain to rework, but I’ll think about it. I’ll fix any remaining bugs that I can catch. I know there’s one that crashes the snake if you try to mash two directions together. And last but not least, I’m gonna start preparing to ship!"}, {"post_id": 17227, "ts": "2026-06-27T22:53:23Z", "hours": 0.7336, "text": "Ok so I went and fixed all the bugs, there were a LOT of bugs. here’s a couple: Snake movement and apple generation were happening incorrectly; I use a system where different variables like appleX, appleY, and an array for x and y values of each snake segment are stored as values between 1 and the length of the board (boardDim). They’re then multiplied by the dimension of each cell(cellDim). I initially forgot to multiply by cellDim so the snake was moving at a 1 pixel/second speed and the apple was confined to the top left corner. The borders of the cells were not being generated I didn’t initialize the arrays that contain the positions for each of the snake’s segments, causing the game to not run at all initially Up and down controls were reversed; borders did not work If you mash 2 directions, you can crash: e.g. if you’re going up, then mash left and down, the program interprets your down input as the latest one and essentially pushes you into yourself There are probably some more I haven’t explored yet, but for now I’m gonna work on the main menu."}, {"post_id": 17195, "ts": "2026-06-27T22:05:51Z", "hours": 1.1186, "text": "This time I completed pretty much all the basic gameplay mechanics and the game should technically work once I fix up any bugs. However, there are still bugs: quite a few of them, actually, since I kinda just brute forced my way through this stage of development with code that I thought should work. Anyway, once I get any bugs that stop me from running the game sorted out, I’ll refine the bugs that are impacting gameplay (there are def gonna be a couple of bugs there too). Then I’ll probably get started on designing a main menu."}, {"post_id": 16553, "ts": "2026-06-26T22:31:46Z", "hours": 0.5861, "text": "I started learning Java at the beginning of June, and to test my skills I’ making a guided project in Java. I decided to recreate Snake, using the video attached in the README file to help guide me. I’ll try to use it as minimally as possible, but if I get stuck I’ll watch the video to learn where to go next. So far I’ve just set up files and classes/functions as mentioned in the video, and I also set up a couple of variables and some code for a few functions on my own. Next time I’ll work on gameplay aspects, then I’ll move on to coding a death screen completely on my own."}]...
|
Title: Snake! by @zahran | Stardance
Devlogs:
I s Title: Snake! by @zahran | Stardance
Devlogs:
I started learning Java at the beginning of June, and to test my skills I’ making a guided project in Java. I decided to recreate Snake, using the video attached in the README file to help guide me. I’ll try to use it as minimally as possible, but if I get stuck I’ll watch the video to learn where to go next. So far I’ve just set up files and classes/functions as mentioned in the video, and I also set up a couple of variables and some code for a few functions on my own. Next time I’ll work on gameplay aspects, then I’ll move on to coding a death screen completely on my own.
This time I completed pretty much all the basic gameplay mechanics and the game should technically work once I fix up any bugs. However, there are still bugs: quite a few of them, actually, since I kinda just brute forced my way through this stage of development with code that I thought should work. Anyway, once I get any bugs that stop me from running the game sorted out, I’ll refine the bugs that are impacting gameplay (there are def gonna be a couple of bugs there too). Then I’ll probably get started on designing a main menu.
Ok so I went and fixed all the bugs, there were a LOT of bugs. here’s a couple: Snake movement and apple generation were happening incorrectly; I use a system where different variables like appleX, appleY, and an array for x and y values of each snake segment are stored as values between 1 and the length of the board (boardDim). They’re then multiplied by the dimension of each cell(cellDim). I initially forgot to multiply by cellDim so the snake was moving at a 1 pixel/second speed and the apple was confined to the top left corner. The borders of the cells were not being generated I didn’t initialize the arrays that contain the positions for each of the snake’s segments, causing the game to not run at all initially Up and down controls were reversed; borders did not work If you mash 2 directions, you can crash: e.g. if you’re going up, then mash left and down, the program interprets your down input as the latest one and essentially pushes you into yourself There are probably some more I haven’t explored yet, but for now I’m gonna work on the main menu.
It’s been a hot minute since I posted a devlog, but I think I’ve more or less finished the game. Here’s what I’ve added: Interactive buttons that let you toggle/change the snake’s speed, size of the board, and different modifiers such as disabled collisions and mines that spawn randomly on the map Fixed a bunch of pre-existing bugs (like with score tracking) and new bugs (working out the mines was so annoying holy) yeah that’s pretty much it I think. Next steps: I’ll look into making it resizable/of different dimensions. Honestly, I might not do this one because a lot of my positions/coordinates were hard coded so it might be a pain to rework, but I’ll think about it. I’ll fix any remaining bugs that I can catch. I know there’s one that crashes the snake if you try to mash two directions together. And last but not least, I’m gonna start preparing to ship!
I just fixed two bugs/issues: Made it so you can no longer click a button while the game is running Fixed a bug where if you mashed two inputs in the same frame, your snake could crash (e.g. moving down and mashing the right and up inputs). I fixed this by adding a check to make sure you can only switch directions once per frame. How I did it: I made a boolean called hasMoved, set it to false, and made it check for if hasMoved was false. It also sets hasMoved to true after you change direction and sets it back to false at the end of the frame.
Ships:
I started learning Java at the beginning of June, and to test my skills I recreated Snake in Java. You can control the snake using WASD/arrow keys, and reset the game using R. It features modifiers that let you adjust the snake’s speed and board size, and you can enable other modifiers as well. During development, I faced a lot of minor challenges caused by me writing something incorrectly and then battling with the bug for 5-10 minutes or so. Since it’s my first project made using Java, I tried to do most things on my own but I did reference a video if I got too stuck on one thing. However, I’m super proud of achieving this, for two main reasons: It’s my first project made in Java, and it’s actually usable and fun to play. It’s a functional game that people can play. This is especially important because I’m planning to make a platformer in C++ soon, so this was a nice warmup for game development. Anyway, I hope you enjoy my Snake game! :)...
|
1792982978.435005
|
1793069378.435005
|
|
67037
|
Cutie Ribbitty by @Addy44 | Stardance
|
Addy44
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Cutie Ribbitty by @Addy44 | Stardance
|
1792464577.9868224
|
1793069377.9868224
|
|
3228
|
gnn pcna by @advay_awesomer | Stardance
|
advay_awesomer
|
1
|
16.0
|
188
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-22T20:17:45Z", "hours": 16.0, "multiplier": 18.82, "payout": 188, "blessing": "neutral", "text": "Made GNN-PCNA: a graph neural network that scores which residues on PCNA — a notoriously hard cancer drug target — are worth investigating as hidden (“cryptic”) pockets. It reads a protein as two graphs at once (3D contacts + backbone chain) and fuses them with a learned attention gate — a GATv2 design the standard baseline (PocketMiner) doesn’t use. Hardest part wasn’t the model — it was catching homology leakage in my own data. My first benchmark looked great until I ran MMseqs2 and found near-identical proteins (99% identity!) sitting across the train/test split. So I deleted my own headline numbers and rebuilt everything on a clean 30%-homology split. The honest score came out lower — and that’s the whole point. Proud of: it’s engineered to not overclaim. Every output is framed as “hypothesis generation,” an automated verifier catches my own mistakes, and an ablation proves how much comes from sequence vs. structure. To test it: open the demo, pick a PCNA structure (try 8GLA or 1W60), and watch it score every residue in ~2s with a 3D viewer + heatmap. Heads-up: the live demo runs the lightweight model; the headline AUPRC/AUROC come from a heavier ESM2 model (too big to host free). Full story in the repo’s DEVLOG.", "repo": "https://github.com/advaycode/gnnpcna", "demo": "https://advaycode.github.io/gnnpcna/"}]...
|
[{"post_id": 13820, "ts": "202 [{"post_id": 13820, "ts": "2026-06-22T17:19:21Z", "hours": 15.8911, "text": "first making a memory base for the gnn"}]...
|
Title: gnn pcna by @advay_awesomer | Stardance
De Title: gnn pcna by @advay_awesomer | Stardance
Devlogs:
first making a memory base for the gnn
Ships:
Made GNN-PCNA: a graph neural network that scores which residues on PCNA — a notoriously hard cancer drug target — are worth investigating as hidden (“cryptic”) pockets. It reads a protein as two graphs at once (3D contacts + backbone chain) and fuses them with a learned attention gate — a GATv2 design the standard baseline (PocketMiner) doesn’t use. Hardest part wasn’t the model — it was catching homology leakage in my own data. My first benchmark looked great until I ran MMseqs2 and found near-identical proteins (99% identity!) sitting across the train/test split. So I deleted my own headline numbers and rebuilt everything on a clean 30%-homology split. The honest score came out lower — and that’s the whole point. Proud of: it’s engineered to not overclaim. Every output is framed as “hypothesis generation,” an automated verifier catches my own mistakes, and an ablation proves how much comes from sequence vs. structure. To test it: open the demo, pick a PCNA structure (try 8GLA or 1W60), and watch it score every residue in ~2s with a 3D viewer + heatmap. Heads-up: the live demo runs the lightweight model; the headline AUPRC/AUROC come from a heavier ESM2 model (too big to host free). Full story in the repo’s DEVLOG....
|
1792982977.555013
|
1793069377.555013
|
|
67036
|
Cutie Ribbitty by @Addy44 | Stardance
|
Addy44
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Cutie Ribbitty by @Addy44 | Stardance
|
1792464577.1632507
|
1793069377.1632507
|
|
38090
|
Frictionless by @BestSpark687090 | Stardance
|
BestSpark687090
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-22T05:14:05Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "heya! basically, this is a duplicate tab remover. it basically lets you remove your tabs based off of the url, icon url, or the title! if you’re like me, you always have TOO MANY TABS 😭 and you gotta got rid of them somehow. now i know it might be a lil weird, but hey, it works! and as they say usually, if something works, don’t try to fix it… or something like that. i definitely had some interesting times making this. maybe you’ll use it to its advantage?", "repo": "https://github.com/BestSpark687090/duplicate_tab_remover_extension", "demo": "https://github.com/BestSpark687090/duplicate_tab_remover_extension/releases"}]...
|
[{"post_id": 32780, "ts": "202 [{"post_id": 32780, "ts": "2026-07-22T05:02:46Z", "hours": 0.4472, "text": "devloggie numberie three styling has been done better i guess"}, {"post_id": 32760, "ts": "2026-07-22T03:42:05Z", "hours": 0.7867, "text": "devlog number 2 goofy styling has been added 0.25 transition between things btw yippee"}, {"post_id": 32637, "ts": "2026-07-21T22:28:53Z", "hours": 1.5975, "text": "devlog number one i guess? so i made the duplicate tab remover. basically, its entire goal is to remove your duplicate tabs based off of what you select. you can select all of them by the way if you wanted to. okay that’s it bye :)"}]...
|
Title: Frictionless by @BestSpark687090 | Stardanc Title: Frictionless by @BestSpark687090 | Stardance
Devlogs:
devlog number one i guess? so i made the duplicate tab remover. basically, its entire goal is to remove your duplicate tabs based off of what you select. you can select all of them by the way if you wanted to. okay that’s it bye :)
devlog number 2 goofy styling has been added 0.25 transition between things btw yippee
devloggie numberie three styling has been done better i guess
Ships:
heya! basically, this is a duplicate tab remover. it basically lets you remove your tabs based off of the url, icon url, or the title! if you’re like me, you always have TOO MANY TABS 😭 and you gotta got rid of them somehow. now i know it might be a lil weird, but hey, it works! and as they say usually, if something works, don’t try to fix it… or something like that. i definitely had some interesting times making this. maybe you’ll use it to its advantage?...
|
1792982976.437155
|
1793069376.437155
|
|
67033
|
DRIVEX by @Rafey | Stardance
|
Rafey
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: DRIVEX by @Rafey | Stardance
|
1792464576.3425539
|
1793069376.3425539
|
|
23188
|
My very own WebOS by @Derpyman | Stardance
|
Derpyman
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T15:47:37Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an OS inspired by cats. The most challenging aspects were creating a grid based organizational system and creating the advanced app: Purrgram (Instagram but for cats). I’m proud of the chibi cat implementation akin to a companion extension.", "repo": "https://github.com/AC583/KittyOS", "demo": "https://ac583.github.io/KittyOS/"}]...
|
[{"post_id": 17667, "ts": "202 [{"post_id": 17667, "ts": "2026-06-28T15:36:11Z", "hours": 0.4833, "text": "Implemented an Instagram type app that allows the user to scroll through reels with cats."}, {"post_id": 13288, "ts": "2026-06-21T19:12:17Z", "hours": 0.8864, "text": "Added a chibi cat extension can be fed and pet and has different reactions."}, {"post_id": 12877, "ts": "2026-06-21T03:04:28Z", "hours": 1.5986, "text": "Basic Functionality"}]...
|
Title: My very own WebOS by @Derpyman | Stardance
Title: My very own WebOS by @Derpyman | Stardance
Devlogs:
Basic Functionality
Added a chibi cat extension can be fed and pet and has different reactions.
Implemented an Instagram type app that allows the user to scroll through reels with cats.
Ships:
I made an OS inspired by cats. The most challenging aspects were creating a grid based organizational system and creating the advanced app: Purrgram (Instagram but for cats). I’m proud of the chibi cat implementation akin to a companion extension....
|
1792982975.5320091
|
1793069375.5320091
|
|
67032
|
My awesome macropad! by @GAURAB | Stardance
|
GAURAB
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @GAURAB | Stardance
|
1792464575.4875698
|
1793069375.4875698
|
|
67031
|
My awesome macropad! by @amith | Stardance
|
amith
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @amith | Stardance
|
1792464574.6478076
|
1793069374.6478076
|
|
116
|
My first slack bot! by @remymoreau12 | Stardance
|
remymoreau12
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-01T22:38:33Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a slack bot! Thats so cool", "repo": "https://github.com/squeakycleanfreshie-cloud/Totoro-Slack-Bot", "demo": "https://hackclub.slack.com/archives/C0B9GUMA326"}]...
|
[{"post_id": 187, "ts": "2026- [{"post_id": 187, "ts": "2026-06-01T06:43:42Z", "hours": 0.4228, "text": "I setup my slack bot! I’m working on adding more functions soon"}]...
|
Title: My first slack bot! by @remymoreau12 | Star Title: My first slack bot! by @remymoreau12 | Stardance
Devlogs:
I setup my slack bot! I’m working on adding more functions soon
Ships:
I made a slack bot! Thats so cool...
|
1792982974.6290238
|
1793069374.6290238
|
|
67030
|
My awesome macropad! by @Addy44 | Stardance
|
Addy44
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Addy44 | Stardance
|
1792464573.8151639
|
1793069373.8151639
|
|
51437
|
VasuOS by @Paachu | Stardance
|
Paachu
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-27T17:28:49Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "VasuOS V1.0.0 Officially shipped Built over 5 days with around 5 hours of coding , starting from the Stardance WebOS 1 mission. Final Features File system File viewer Image viewer with multiple windows Terminal with an Easter egg Google Search App launcher Window dragging, resizing, minimizing and maximizing Credits page Built With HTML CSS JavaScript Python filesystem generator Live os.vasudevonden.in Status SHIPPED — VasuOS v1.0.0", "repo": "https://github.com/Along-the-skies/VasuOS", "demo": "https://os.vasudevonden.in/"}]...
|
[{"post_id": 55682, "ts": "202 [{"post_id": 55682, "ts": "2026-08-27T17:26:05Z", "hours": 0.5908, "text": "Devlog - Day 4 Final Log Before Ship VasuOS v1.0.0 is ready After around 5 days of working on this project and about 5 hours of coding, VasuOS is finally done. I found MeowOS while looking through Stardance projects and wondered how a website could look this good. Then I found the WebOS 1 beginner mission and decided to try it myself. Today, 27-08-2026 , I finished VasuOS. Features File system Terminal with an Easter egg Google Search File/Image Viewer with multiple windows Credits page My frontend-designer friend also said it looks good, so I’m calling that a win. This is just VasuOS v1.0.0 . Live os.vasudevonden.in"}, {"post_id": 52305, "ts": "2026-08-22T12:47:14Z", "hours": 2.0194, "text": "Devlog - Day 3💻 Today, I updated VasuOS with so many tiny Ux improvements What I built A Python script to initialise Virtual File system by Files directory in project root Folder navigation in Files app Files,Image Viewer and Unsupported Error handler Minimize-close functions rebuilt for better UX App running indicators STAY TUNED FOR UPDATES < VasuOS > by Vasudev"}, {"post_id": 51139, "ts": "2026-08-20T17:11:04Z", "hours": 1.2289, "text": "Devlog — Day 2 💻 Today , I wanted to level up VasuOS ! What I built 💻 VasuOS Terminal ⌨️ help command 🧹 clear command 📢 echo command with arguments ❓ Unknown command handling 🕐 Live system clock 🪟 Toggleable maximize / restore 📦 Split Terminal and Clock into separate JS files What I learned Basic command parsing with split() How to handle command arguments JavaScript modules Using Date() for a live clock More DOM manipulation Problems 💀 echo vasu was being treated as one whole command 😭 Terminal output formatting got weird script.js started getting pretty big file:// caused CORS issues while testing locally Had to switch to type=\"module\" for JS imports 🍌 – Easter egg: banana! Next 🚀 Add more Terminal commands Add window focus Polish the desktop UX Make VasuOS feel more like an actual OS 🖥️"}, {"post_id": 50410, "ts": "2026-08-19T15:57:00Z", "hours": 1.2833, "text": "Devlog — Day 1 🖥️ Today I started building VasuOS ! What I built 🖥️ Desktop 📊 Top bar 🚀 Floating dock 📁 Files window 🪟 Close / minimize / maximize 🖱️ Window dragging ↔️ Window resizing 🔒 Window boundaries What I learned How HTML + CSS positioning works JavaScript mouse events Event listeners Basic DOM manipulation How window dragging and resizing actually works Problems 💀 The legendary ant effect 🐜–Window TPs like a ant when touching mouse pointer Text selection while dragging Window escaping the screen transform causing positioning problems A few resize event bugs Next 🚀 Polish the window manager Improve minimize/maximize Add window focus Start building the Terminal 💻"}, {"post_id": 50330, "ts": "2026-08-19T14:30:16Z", "hours": 0.4931, "text": "VasuOS WebOs by Vasu First Look 👀"}]...
|
Title: VasuOS by @Paachu | Stardance
Devlogs:
Vas Title: VasuOS by @Paachu | Stardance
Devlogs:
VasuOS WebOs by Vasu First Look 👀
Devlog — Day 1 🖥️ Today I started building VasuOS ! What I built 🖥️ Desktop 📊 Top bar 🚀 Floating dock 📁 Files window 🪟 Close / minimize / maximize 🖱️ Window dragging ↔️ Window resizing 🔒 Window boundaries What I learned How HTML + CSS positioning works JavaScript mouse events Event listeners Basic DOM manipulation How window dragging and resizing actually works Problems 💀 The legendary ant effect 🐜–Window TPs like a ant when touching mouse pointer Text selection while dragging Window escaping the screen transform causing positioning problems A few resize event bugs Next 🚀 Polish the window manager Improve minimize/maximize Add window focus Start building the Terminal 💻
Devlog — Day 2 💻 Today , I wanted to level up VasuOS ! What I built 💻 VasuOS Terminal ⌨️ help command 🧹 clear command 📢 echo command with arguments ❓ Unknown command handling 🕐 Live system clock 🪟 Toggleable maximize / restore 📦 Split Terminal and Clock into separate JS files What I learned Basic command parsing with split() How to handle command arguments JavaScript modules Using Date() for a live clock More DOM manipulation Problems 💀 echo vasu was being treated as one whole command 😭 Terminal output formatting got weird script.js started getting pretty big file:// caused CORS issues while testing locally Had to switch to type="module" for JS imports 🍌 – Easter egg: banana! Next 🚀 Add more Terminal commands Add window focus Polish the desktop UX Make VasuOS feel more like an actual OS 🖥️
Devlog - Day 3💻 Today, I updated VasuOS with so many tiny Ux improvements What I built A Python script to initialise Virtual File system by Files directory in project root Folder navigation in Files app Files,Image Viewer and Unsupported Error handler Minimize-close functions rebuilt for better UX App running indicators STAY TUNED FOR UPDATES < VasuOS > by Vasudev
Devlog - Day 4 Final Log Before Ship VasuOS v1.0.0 is ready After around 5 days of working on this project and about 5 hours of coding, VasuOS is finally done. I found MeowOS while looking through Stardance projects and wondered how a website could look this good. Then I found the WebOS 1 beginner mission and decided to try it myself. Today, 27-08-2026 , I finished VasuOS. Features File system Terminal with an Easter egg Google Search File/Image Viewer with multiple windows Credits page My frontend-designer friend also said it looks good, so I’m calling that a win. This is just VasuOS v1.0.0 . Live os.vasudevonden.in
Ships:
VasuOS V1.0.0 Officially shipped Built over 5 days with around 5 hours of coding , starting from the Stardance WebOS 1 mission. Final Features File system File viewer Image viewer with multiple windows Terminal with an Easter egg Google Search App launcher Window dragging, resizing, minimizing and maximizing Credits page Built With HTML CSS JavaScript Python filesystem generator Live os.vasudevonden.in Status SHIPPED — VasuOS v1.0.0...
|
1792982973.4602876
|
1793069373.4602876
|
|
67029
|
My awesome macropad! by @nasiv | Stardance
|
nasiv
|
0
|
1.43
|
0
|
[]
|
[{"post_id": 78289, "ts": "202 [{"post_id": 78289, "ts": "2026-10-10T09:41:57Z", "hours": 1.4333, "text": "Im currently building my first hardware project which is a macropad, I just finished the circuit design."}]...
|
Title: My awesome macropad! by @nasiv | Stardance
Title: My awesome macropad! by @nasiv | Stardance
Devlogs:
Im currently building my first hardware project which is a macropad, I just finished the circuit design....
|
1792464572.936182
|
1793069372.936182
|
|
30620
|
DIY Surveillance system by @suklaasukkulayt | Star DIY Surveillance system by @suklaasukkulayt | Stardance...
|
suklaasukkulayt
|
1
|
1.42
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-05T17:25:02Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I can’t upload the video here, but it’s in my devlog From my devlog: I made a DIY surveillance camera from an old (and broken :D) android phone. It uses the IP camera app and custom html code i made myself to show the camera feed in the apk file and the .html file. There isn’t any crazy features, like no remote control (you can do that with tailscale), but it still works well if you don’t need to use it without being home. The code supports live video and live audio but nothing else. I also 3d printed and modified (added a stand with tinkercad) a phone case for galaxy j5 (this is the phone i used), but it didn’t fit as you can see in the image. The apk file is kind of useless unless your camera is at the same ip as mine. Also i didn’t have hackatime properly set up when i started this, but 20min (which actually got logged) is actually pretty close to the time this took. Also @Makkonen helped me with this(i got the idea from him)", "repo": "https://github.com/suklaasukkulayt/kuuppacam", "demo": "https://suklaasukkulayt.github.io/kuuppacam/"}]...
|
[{"post_id": 35314, "ts": "202 [{"post_id": 35314, "ts": "2026-07-26T17:11:26Z", "hours": 1.4189, "text": "Big update to KuuppaCam! I made the site look way better and fixed some stuff. I used github copilot to add recording so you can now record from your camera and I also used it to add easy IP changing so you can use it without editing the code. Also the IP address is now in https so it’s more secure and hopefully works better. THIS IS THE FINAL VERSION OF KUUPPACAM, the old version is still in github (kuuppacam-old.html) (Also the video below has no audio because apparently the zorin os video recorder doesn’t have audio recording :D)"}, {"post_id": 22961, "ts": "2026-07-05T17:15:27Z", "hours": 0.3219, "text": "I made a DIY surveillance camera from an old (and broken :D) android phone. It uses the IP camera app and custom html code i made myself to show the camera feed in the apk file and the .html file. There isn’t any crazy features, like no remote control (you can do that with tailscale), but it still works well if you don’t need to use it without being home. The code supports live video and live audio but nothing else. I also 3d printed and modified (added a stand with tinkercad) a phone case for galaxy j5 (this is the phone i used), but it didn’t fit as you can see in the image. The apk file is kind of useless unless your camera is at the same ip as mine. Also i didn’t have hackatime properly set up when i started this, but 20min (which actually got logged) is actually pretty close to the time this took. Also @Makkonen helped me with this(i got the idea from him)"}]...
|
Title: DIY Surveillance system by @suklaasukkulayt Title: DIY Surveillance system by @suklaasukkulayt | Stardance
Devlogs:
I made a DIY surveillance camera from an old (and broken :D) android phone. It uses the IP camera app and custom html code i made myself to show the camera feed in the apk file and the .html file. There isn’t any crazy features, like no remote control (you can do that with tailscale), but it still works well if you don’t need to use it without being home. The code supports live video and live audio but nothing else. I also 3d printed and modified (added a stand with tinkercad) a phone case for galaxy j5 (this is the phone i used), but it didn’t fit as you can see in the image. The apk file is kind of useless unless your camera is at the same ip as mine. Also i didn’t have hackatime properly set up when i started this, but 20min (which actually got logged) is actually pretty close to the time this took. Also @Makkonen helped me with this(i got the idea from him)
Big update to KuuppaCam! I made the site look way better and fixed some stuff. I used github copilot to add recording so you can now record from your camera and I also used it to add easy IP changing so you can use it without editing the code. Also the IP address is now in https so it’s more secure and hopefully works better. THIS IS THE FINAL VERSION OF KUUPPACAM, the old version is still in github (kuuppacam-old.html) (Also the video below has no audio because apparently the zorin os video recorder doesn’t have audio recording :D)
Ships:
I can’t upload the video here, but it’s in my devlog From my devlog: I made a DIY surveillance camera from an old (and broken :D) android phone. It uses the IP camera app and custom html code i made myself to show the camera feed in the apk file and the .html file. There isn’t any crazy features, like no remote control (you can do that with tailscale), but it still works well if you don’t need to use it without being home. The code supports live video and live audio but nothing else. I also 3d printed and modified (added a stand with tinkercad) a phone case for galaxy j5 (this is the phone i used), but it didn’t fit as you can see in the image. The apk file is kind of useless unless your camera is at the same ip as mine. Also i didn’t have hackatime properly set up when i started this, but 20min (which actually got logged) is actually pretty close to the time this took. Also @Makkonen helped me with this(i got the idea from him)...
|
1792982972.351149
|
1793069372.351149
|
|
67028
|
Untitled project by @Bigkhanfsnew | Stardance
|
Bigkhanfsnew
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @Bigkhanfsnew | Stardan Title: Untitled project by @Bigkhanfsnew | Stardance...
|
1792464572.0833156
|
1793069372.0833156
|
|
67027
|
Bharat one by @vinayakxrma | Stardance
|
vinayakxrma
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Bharat one by @vinayakxrma | Stardance
|
1792464571.2529628
|
1793069371.2529628
|
|
29073
|
MR. ELECTRIC! by @Nicholas-Reyne | Stardance
|
Nicholas-Reyne
|
2
|
35.0
|
403
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-28T02:17:38Z", "hours": 9.0, "multiplier": 6.27, "payout": 55, "blessing": "neutral", "text": "I made an electric field simulator, and added two new key features from the last ship. The first being a ring charge, the second being a permittivity changer. I found the physics behind the ring charge to be very challenging, and it required many hours of brainstorming and drafting on paper to figure out. I’m very happy with how it all turned out, and I think the actual html now looks very pretty with the new background and organization!", "repo": "https://github.com/RaduUdrea1/Mr_Electric2", "demo": "https://raduudrea1.github.io/Mr_Electric2/"}, {"ship_num": 2, "ts": "2026-08-29T02:34:50Z", "hours": 26.0, "multiplier": 14.95, "payout": 348, "blessing": "neutral", "text": "I made an electric field simulator. It took about the past two or so months to actually figure out how anything works. It’s designed to help people visualize electric fields when doing electrostatics. It took a long time to learn the HTML, Python and JS to actually code it but I’m proud of the fact that it even exists. Future modes will include more stuff, and I’m happy to get a chance to ship it!", "repo": "https://github.com/RaduUdrea1/Mr_Electric2", "demo": "https://raduudrea1.github.io/Mr_Electric2/"}]...
|
[{"post_id": 74721, "ts": "202 [{"post_id": 74721, "ts": "2026-09-28T02:15:44Z", "hours": 4.9092, "text": "Hello all: I replaced the buggy dirac-delta mode with two new modes. The first is the ring charge mode, this creates a superposition of 36 point charges, which effectively simulates a continuous charged ring (not perfectly, but close enough to minimize error). This is especially useful for physics problems, as tons of them involve ring charges. Next, I added a mode that allowed you to change the permittivity of the space the charge is in, with a handful of presets ranging from the vacuum (free space) to pure water, all the way to titanium dioxide. In so doing, I also modified the guide and physics, enjoy these modes as you please. Furthermore, electric potential and electric potential energy were added to each mode, denoted by variables V and U. More additions to come in the future, stay tuned!"}, {"post_id": 68954, "ts": "2026-09-16T03:25:31Z", "hours": 3.9431, "text": "Hello all: I added a new background to make Mr. Electric feel less bland. I organized the information in the pages into blocks, this way it is easier to read, and less info-dumpy. I introduced a slider mode for the charges as well, this way you could drag the slider along and it would update the charge. Future changes are coming: Potentials, Electric Potential Energy, Better Dirac-Delta and more! Stay tuned!"}, {"post_id": 56994, "ts": "2026-08-29T01:55:13Z", "hours": 4.7481, "text": "Devlog 3: I added the ability to set a probe point on the first three run modes, the probe point will return electric field magnitude at that point, but it will also return the x, y and z components of that magnitude, so that anyone doing electrostatics problems can check their work as well. The graph now takes inputs in nanocoulombs, and it grows when larger inputs are put in, rather than changing the color. Guide and gallery have been updated to include these changes as well. Inputs have also been stacked neatly rather than arrayed one by one. Honest limits: One single color for all the plots, Gaussian mode not yet helpful because it still only contains one charge, and Dirac Delta is still just cosmetic! Future work will fix these!"}, {"post_id": 53475, "ts": "2026-08-24T01:20:19Z", "hours": 13.0117, "text": "It’s been a while since I’ve posted a devlog! This is Mr. Electric updates. I’ve brought the simulator into the html proper with a new simulate page. The code uses python connected to javascript. New features: Smoothed out the html and cleaned up any bugs. Added a simulate.html page where the simulator actually runs using Pyodide. Added dropdown options and menus to input values for the simulator. Future features: Planned expansion of simulator with more probe points, and drag and drop feature for probes. Ability to do actual calculations with the fields, and more dynamic fields that are prettier and smoother. Cleaner html and better style and buttons, including a unified nav style."}, {"post_id": 34082, "ts": "2026-07-24T15:36:43Z", "hours": 8.5542, "text": "This is the first devlog for my Mr. Electric project, its a small scale passion project designed to simulate electric fields with user input. I designed it over the span of about eight hours, alongside working the physics problems myself from Griffiths Electrodynamics Fourth Edition. Cursor assisted in debugging the code. The code uses NumPy, SciPy and Matplotlib. There are a few honest limits: I had to scale the arrows so nothing was generated close to the origin, the result was monstrous arrows because of the divide by zero issue. Dirac Delta is furthermore, simply a cosmetic feature. Dirac Delta represents particles, and graphically it is just an infinitely tall spike, I tried to simulate that in 3d and ended up with the current delta cluster. The project contains four run modes, one charge, two charge, Gaussian sphere plus probe and delta cluster. The main issue for this log was simply setting up the functions, and making sure everything worked! Up next is a public demo, more features, and a heatmap to help indicate relative vector strength."}]...
|
Title: MR. ELECTRIC! by @Nicholas-Reyne | Stardanc Title: MR. ELECTRIC! by @Nicholas-Reyne | Stardance
Devlogs:
This is the first devlog for my Mr. Electric project, its a small scale passion project designed to simulate electric fields with user input. I designed it over the span of about eight hours, alongside working the physics problems myself from Griffiths Electrodynamics Fourth Edition. Cursor assisted in debugging the code. The code uses NumPy, SciPy and Matplotlib. There are a few honest limits: I had to scale the arrows so nothing was generated close to the origin, the result was monstrous arrows because of the divide by zero issue. Dirac Delta is furthermore, simply a cosmetic feature. Dirac Delta represents particles, and graphically it is just an infinitely tall spike, I tried to simulate that in 3d and ended up with the current delta cluster. The project contains four run modes, one charge, two charge, Gaussian sphere plus probe and delta cluster. The main issue for this log was simply setting up the functions, and making sure everything worked! Up next is a public demo, more features, and a heatmap to help indicate relative vector strength.
It’s been a while since I’ve posted a devlog! This is Mr. Electric updates. I’ve brought the simulator into the html proper with a new simulate page. The code uses python connected to javascript. New features: Smoothed out the html and cleaned up any bugs. Added a simulate.html page where the simulator actually runs using Pyodide. Added dropdown options and menus to input values for the simulator. Future features: Planned expansion of simulator with more probe points, and drag and drop feature for probes. Ability to do actual calculations with the fields, and more dynamic fields that are prettier and smoother. Cleaner html and better style and buttons, including a unified nav style.
Devlog 3: I added the ability to set a probe point on the first three run modes, the probe point will return electric field magnitude at that point, but it will also return the x, y and z components of that magnitude, so that anyone doing electrostatics problems can check their work as well. The graph now takes inputs in nanocoulombs, and it grows when larger inputs are put in, rather than changing the color. Guide and gallery have been updated to include these changes as well. Inputs have also been stacked neatly rather than arrayed one by one. Honest limits: One single color for all the plots, Gaussian mode not yet helpful because it still only contains one charge, and Dirac Delta is still just cosmetic! Future work will fix these!
Hello all: I added a new background to make Mr. Electric feel less bland. I organized the information in the pages into blocks, this way it is easier to read, and less info-dumpy. I introduced a slider mode for the charges as well, this way you could drag the slider along and it would update the charge. Future changes are coming: Potentials, Electric Potential Energy, Better Dirac-Delta and more! Stay tuned!
Hello all: I replaced the buggy dirac-delta mode with two new modes. The first is the ring charge mode, this creates a superposition of 36 point charges, which effectively simulates a continuous charged ring (not perfectly, but close enough to minimize error). This is especially useful for physics problems, as tons of them involve ring charges. Next, I added a mode that allowed you to change the permittivity of the space the charge is in, with a handful of presets ranging from the vacuum (free space) to pure water, all the way to titanium dioxide. In so doing, I also modified the guide and physics, enjoy these modes as you please. Furthermore, electric potential and electric potential energy were added to each mode, denoted by variables V and U. More additions to come in the future, stay tuned!
Ships:
I made an electric field simulator. It took about the past two or so months to actually figure out how anything works. It’s designed to help people visualize electric fields when doing electrostatics. It took a long time to learn the HTML, Python and JS to actually code it but I’m proud of the fact that it even exists. Future modes will include more stuff, and I’m happy to get a chance to ship it!
I made an electric field simulator, and added two new key features from the last ship. The first being a ring charge, the second being a permittivity changer. I found the physics behind the ring charge to be very challenging, and it required many hours of brainstorming and drafting on paper to figure out. I’m very happy with how it all turned out, and I think the actual html now looks very pretty with the new background and organization!...
|
1792982971.1827087
|
1793069371.1827087
|
|
67026
|
Natt's Personal Site by @Natt | Stardance
|
Natt
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Natt's Personal Site by @Natt | Stardan Title: Natt's Personal Site by @Natt | Stardance...
|
1792464570.4057238
|
1793069370.4057238
|
|
51414
|
Chronicle — Software Evolution Intelligence Platfo Chronicle — Software Evolution Intelligence Platform by @LAZX | Stardance...
|
LAZX
|
1
|
22.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-29T14:31:21Z", "hours": 22.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built Chronicle, a local-first developer intelligence tool that scans a project’s history and changes, stores them as observations, analyzes those observations into findings, and then uses an AI interpreter to answer questions about how and why things changed in the project. The most challenging part for me was state management, especially keeping track of which observations had already been analyzed so Chronicle could process only new changes instead of repeatedly analyzing everything. I had to think carefully about scan state and analysis state, checkpoints, and how different scanners such as Git and Django migrations could work together without duplicating or losing information. I’m most proud of how Chronicle evolved into a proper pipeline rather than just a collection of commands: scanners produce observations, analyzers produce findings, and the interpretation layer connects those findings back to relevant project history to answer a developer’s questions. For someone testing the project, they should initialize Chronicle in a project with chronicle init , make sure the required AI provider and model are configured along with an API key, and then create some Git commits or Django migrations and run the appropriate scan, analyze, and interpret commands. The best way to test it is to make a change, scan it, analyze it, and then ask Chronicle a question about that change to see whether it can trace the history and explain what happened and why.", "repo": "https://github.com/Sakshyam-Xtha/Chronicle", "demo": "https://sakshyam-xtha.github.io/Chronicle/"}]...
|
[{"post_id": 57296, "ts": "202 [{"post_id": 57296, "ts": "2026-08-29T12:23:03Z", "hours": 1.8067, "text": "#Devlog-6 Fixed the bug of ai config not being set on init command"}, {"post_id": 57134, "ts": "2026-08-29T07:32:46Z", "hours": 10.7333, "text": "#Devlog-5 Finished the mvp of chronicle."}, {"post_id": 53152, "ts": "2026-08-23T16:12:49Z", "hours": 3.9156, "text": "#Devlog-4 Just integrated the django migration scan."}, {"post_id": 52130, "ts": "2026-08-22T06:55:05Z", "hours": 1.9022, "text": "#Devlog-3 Just finished the scan command to parse git commits and store it in a local db file using sqlite3."}, {"post_id": 51742, "ts": "2026-08-21T15:59:09Z", "hours": 1.2853, "text": "#Devlog-2 Completed the initializer command as now it creates a folder called .chronicle inside the project root and saves a simple configuration file"}, {"post_id": 51508, "ts": "2026-08-21T08:33:45Z", "hours": 2.1692, "text": "#Devlog-1 Made a simple init command that shows if the project root contains .git files or not"}]...
|
Title: Chronicle — Software Evolution Intelligence Title: Chronicle — Software Evolution Intelligence Platform by @LAZX | Stardance
Devlogs:
#Devlog-1 Made a simple init command that shows if the project root contains .git files or not
#Devlog-2 Completed the initializer command as now it creates a folder called .chronicle inside the project root and saves a simple configuration file
#Devlog-3 Just finished the scan command to parse git commits and store it in a local db file using sqlite3.
#Devlog-4 Just integrated the django migration scan.
#Devlog-5 Finished the mvp of chronicle.
#Devlog-6 Fixed the bug of ai config not being set on init command
Ships:
I built Chronicle, a local-first developer intelligence tool that scans a project’s history and changes, stores them as observations, analyzes those observations into findings, and then uses an AI interpreter to answer questions about how and why things changed in the project. The most challenging part for me was state management, especially keeping track of which observations had already been analyzed so Chronicle could process only new changes instead of repeatedly analyzing everything. I had to think carefully about scan state and analysis state, checkpoints, and how different scanners such as Git and Django migrations could work together without duplicating or losing information. I’m most proud of how Chronicle evolved into a proper pipeline rather than just a collection of commands: scanners produce observations, analyzers produce findings, and the interpretation layer connects those findings back to relevant project history to answer a developer’s questions. For someone testing the project, they should initialize Chronicle in a project with chronicle init , make sure the required AI provider and model are configured along with an API key, and then create some Git commits or Django migrations and run the appropriate scan, analyze, and interpret commands. The best way to test it is to make a change, scan it, analyze it, and then ask Chronicle a question about that change to see whether it can trace the history and explain what happened and why....
|
1792982970.0761225
|
1793069370.0761225
|
|
67025
|
My First Website by @Ian19 | Stardance
|
Ian19
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My First Website by @Ian19 | Stardance
|
1792464569.5520303
|
1793069369.5520303
|
|
58899
|
Untitled project by @pavelX | Stardance
|
pavelX
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-09T16:05:19Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a python game, but only text RPG game where you chose your hero. You can fight fantasy features, and hastle some golds for fun or you can also craft many thiks which will make you stronger. The game end after you kill the end Dragon. I am proud of my project because this was my first big python project.", "repo": "https://github.com/pavel1010-code/coding/blob/main/project.py", "demo": "https://github.com/pavel1010-code/coding/releases/tag/v1.0.0"}]...
|
[{"post_id": 64874, "ts": "202 [{"post_id": 64874, "ts": "2026-09-09T16:00:23Z", "hours": 4.5083, "text": "I enden up making python game where you can play, craft, and fight."}, {"post_id": 63704, "ts": "2026-09-07T17:12:08Z", "hours": 3.2347, "text": "i am working on a python game. Where you’re fighting scifi creatures and after i upgrade it you can craft something."}]...
|
Title: Untitled project by @pavelX | Stardance
De Title: Untitled project by @pavelX | Stardance
Devlogs:
i am working on a python game. Where you’re fighting scifi creatures and after i upgrade it you can craft something.
I enden up making python game where you can play, craft, and fight.
Ships:
I made a python game, but only text RPG game where you chose your hero. You can fight fantasy features, and hastle some golds for fun or you can also craft many thiks which will make you stronger. The game end after you kill the end Dragon. I am proud of my project because this was my first big python project....
|
1792982969.1888328
|
1793069369.1888328
|
|
51412
|
Wibei by @EVINJSUBIN | Stardance
|
EVINJSUBIN
|
1
|
21.64
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-29T09:37:07Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Wibei is a real-time 3D music visualizer built with Three.js and Web Audio API. It features reactive visualizer modes (Pulse Ring, Waveform, and 3D Grid), bloom glow themes, 3D mouse drag controls, YouTube search, live mic input, and local MP3 uploads.How to test Open https://wibei-production.up.railway.app/ Search for any song in the bottom right, click 🎤 to use your mic, or click 📁 to upload an MP3. Click & drag anywhere on the screen to rotate in 3D, and use the top dropdowns to switch styles (Pulse Ring, Wave, Grid) and themes.What I learned Learned how to use the Web Audio API (FFT frequency analysis) to drive 3D Three.js meshes, write smooth idle wave animations, configure bloom shaders, and build 3D mouse orbit controls.", "repo": "https://github.com/EVINJSUBIN/Wibei", "demo": "https://wibei.onrender.com/"}]...
|
[{"post_id": 61342, "ts": "202 [{"post_id": 61342, "ts": "2026-09-04T06:47:47Z", "hours": 10.9883, "text": "🎛️ Wibei Devlog: 3D Holographic Album Art & the VOID Overhaul Project: Wibei (3D Audio Spectrograph & Real-Time DSP Lab) Built for: Hack Club Stardance Creators: @EVINJSUBIN & @aamosm Repo: github.com/EVINJSUBIN/Wibei | Live: wibei.onrender.com 🚀 Elevating the Cockpit Audio visualization isn’t just about moving bars — it’s about tactile feedback, visual hierarchy, and immersive atmosphere. In this sprint, we overhauled Wibei into a commercial-grade glassmorphism workstation , added a 3D holographic album art core , wrote a zero-dependency ID3 tag parser , and redesigned our landing page in our signature VOID aesthetic. 💎 1. Commercial-Grade Glassmorphism Cockpit We replaced flat panels with an ergonomic, floating dual-deck hardware layout: Left Deck (Ingest): Quick-switch tabs for DEMOS , STREAM (YouTube/Spotify live audio), QUEUE (playlist management), and LOCAL (drag-and-drop). Right Deck (Synthesis & FX): Instant geometry matrix switching ( RING , WAVE , GRID , ORB ), real-time biquad muffler, sub-bass drive, nightcore tempo shifters, and camera auto-orbit. Floating Transport Bar: Ergonomic bottom bar with real-time master VU meter bars, peak telemetry ( dBFS ), elapsed timers, track metadata, and volume scrubber. Frosted Material System: Deep obsidian glass ( rgba(10, 10, 14, 0.72) ) with backdrop-filter: blur(28px) , subtle rim lighting, and responsive LED indicators. 💿 2. 3D Holographic Center Album Art In our RING (Pulse) visualizer, tracks with rich artwork now come to life in 3D: Hologram Disc: High-def circular disc ( CircleGeometry(4.2) ) with dark tinted glass backing and an audio-reactive neon border ring. Adaptive Gyro-Core: When artwork is present, the wireframe octahedron scales outward to 1.55x , orbiting as an open crystal gimbal cage. Without artwork (or on mic input), it docks back to its native 1.0x center scale. Vinyl Dynamics: Spins with bass-accelerated inertia, tilts dynamically in 3D pitch/roll, and pulses to sub-bass hits. 📦 3. Zero-Dependency In-Browser ID3 Extractor To keep local playback instant without server uploads, we wrote id3.js from scratch: Direct binary parsing of ID3v2.3, ID3v2.4, and ID3v1 tags via ArrayBuffer slices. Extracts APIC frames into instant in-memory blob: URLs for album covers. Parses title, artist, album, and genre instantly with zero latency. 🌌 4. The “VOID” Aesthetic & Minimalist Landing Page Serious Void Default: Distraction-free interstellar abyss ( #050507 ), crisp starlight typography ( #f8fafc ), and titanium slate accents ( #8b95a5 ). Calibrated Bloom: Re-tuned UnrealBloomPass threshold to 0.82 — eliminating blinding white glare while keeping geometry razor-sharp. Minimalist Landing Page: Clean terminal layout with a 1,800-star WebGL starfield and a 3D gyro-core that pulses with kinetic shockwaves on live DSP audition clicks! 💻 100% Client-Side Engine Built entirely with vanilla JS, Three.js (r128), and native Web Audio API — zero bulky UI frameworks, locked 60+ FPS, and zero-latency 32-bit floating DSP."}, {"post_id": 59649, "ts": "2026-09-01T15:50:39Z", "hours": 0.7556, "text": "⚡ Wibei // 3D Audio Spectrograph & Real-Time DSP Lab Live Site: https://wibei.onrender.com | GitHub: EVINJSUBIN/Wibei Built for: Hack Club Stardance | Collaborators: @EVINJSUBIN & @aamosm 🌌 What We Built Wibei is an open-source web synthesizer and 3D audio spectrograph built with Three.js WebGL and the native Web Audio API . It lets anyone route audio, manipulate live DSP filter nodes, and render acoustic harmonics in 3D space with zero latency. ✨ Key Features Sound Shaper DSP Suite: Real-time 650Hz Lowpass Muffler (“club bathroom” vibe), +16dB Bass Overdrive EQ, and 1.25x/0.85x Speed Modulator. 4 Spatial 3D Geometries: 128-bar Radial Pulse Ring, Waveform Ribbon, Isometric 3D Voxel Matrix, and the new harmonic Pulsar Sphere . Beat Drop Shockwaves: Sub-bass transient detector triggering expanding 3D ring particles on drops. Cinematic Auto-Pilot Cam: Dynamic drone camera orbiting to musical energy. Universal Audio Ingest: Instant lossless stems, fullscreen drag-and-drop MP3/WAV, live microphone, and YouTube stream engine. Hall of Fame: Live GitHub telemetry showcasing community contributors. 100% client-side WebGL & DSP running at 60 FPS."}, {"post_id": 58898, "ts": "2026-08-31T13:50:16Z", "hours": 4.8986, "text": "✨ What’s new:Clean Brand Pill: Removed the gold dot from the top-left logo pill. It now features clean, minimal typography (wibei v1.0).Interactive Mini Player:Added a Minimize Button (—) on the right side of the player bar.Clicking it collapses the large deck into a floating Mini Player Pill in the bottom corner (showing the album art, track title, animated mini EQ visualizer, play/pause toggle, and expand button).Expanding it restores the full control deck seamlessly.“Getting Started” Guide Modal (Guide):Added an interactive onboarding modal accessible via the top-right Guide button.Explains how to play audio (YouTube, Demos, Mic, Uploads), how to orbit in 3D, and how to switch visualizer shapes/bloom themes.Includes a 1-click “⚡ Play Synthwave Demo” button right inside the guide for instant reviewer onboarding.Animated Mini EQ Bars: Added dynamic dancing EQ waveform bars right next to the song title when audio is playing."}, {"post_id": 57193, "ts": "2026-08-29T09:34:55Z", "hours": 1.1614, "text": "🚀 Final Ship: Wibei is Live! 🎧✨After hours of refining the audio DSP pipeline, tweaking Three.js shaders, and perfecting the UI, Wibei is officially shipped!Try it out live here: 👉 https://wibei-production.up.railway.app/(Open it up, search your favorite track or click the 🎤 mic / 📁 upload button to watch it pulse in 3D!)"}, {"post_id": 56639, "ts": "2026-08-28T14:03:20Z", "hours": 3.5839, "text": "Progrees working on a new way to visulize"}, {"post_id": 50284, "ts": "2026-08-19T13:15:26Z", "hours": 0.4033, "text": "Starting of wibi a audio visualizer"}]...
|
Title: Wibei by @EVINJSUBIN | Stardance
Devlogs:
Title: Wibei by @EVINJSUBIN | Stardance
Devlogs:
Starting of wibi a audio visualizer
Progrees working on a new way to visulize
🚀 Final Ship: Wibei is Live! 🎧✨After hours of refining the audio DSP pipeline, tweaking Three.js shaders, and perfecting the UI, Wibei is officially shipped!Try it out live here: 👉 https://wibei-production.up.railway.app/(Open it up, search your favorite track or click the 🎤 mic / 📁 upload button to watch it pulse in 3D!)
✨ What’s new:Clean Brand Pill: Removed the gold dot from the top-left logo pill. It now features clean, minimal typography (wibei v1.0).Interactive Mini Player:Added a Minimize Button (—) on the right side of the player bar.Clicking it collapses the large deck into a floating Mini Player Pill in the bottom corner (showing the album art, track title, animated mini EQ visualizer, play/pause toggle, and expand button).Expanding it restores the full control deck seamlessly.“Getting Started” Guide Modal (Guide):Added an interactive onboarding modal accessible via the top-right Guide button.Explains how to play audio (YouTube, Demos, Mic, Uploads), how to orbit in 3D, and how to switch visualizer shapes/bloom themes.Includes a 1-click “⚡ Play Synthwave Demo” button right inside the guide for instant reviewer onboarding.Animated Mini EQ Bars: Added dynamic dancing EQ waveform bars right next to the song title when audio is playing.
⚡ Wibei // 3D Audio Spectrograph & Real-Time DSP Lab Live Site: https://wibei.onrender.com | GitHub: EVINJSUBIN/Wibei Built for: Hack Club Stardance | Collaborators: @EVINJSUBIN & @aamosm 🌌 What We Built Wibei is an open-source web synthesizer and 3D audio spectrograph built with Three.js WebGL and the native Web Audio API . It lets anyone route audio, manipulate live DSP filter nodes, and render acoustic harmonics in 3D space with zero latency. ✨ Key Features Sound Shaper DSP Suite: Real-time 650Hz Lowpass Muffler (“club bathroom” vibe), +16dB Bass Overdrive EQ, and 1.25x/0.85x Speed Modulator. 4 Spatial 3D Geometries: 128-bar Radial Pulse Ring, Waveform Ribbon, Isometric 3D Voxel Matrix, and the new harmonic Pulsar Sphere . Beat Drop Shockwaves: Sub-bass transient detector triggering expanding 3D ring particles on drops. Cinematic Auto-Pilot Cam: Dynamic drone camera orbiting to musical energy. Universal Audio Ingest: Instant lossless stems, fullscreen drag-and-drop MP3/WAV, live microphone, and YouTube stream engine. Hall of Fame: Live GitHub telemetry showcasing community contributors. 100% client-side WebGL & DSP running at 60 FPS.
🎛️ Wibei Devlog: 3D Holographic Album Art & the VOID Overhaul Project: Wibei (3D Audio Spectrograph & Real-Time DSP Lab) Built for: Hack Club Stardance Creators: @EVINJSUBIN & @aamosm Repo: github.com/EVINJSUBIN/Wibei | Live: wibei.onrender.com 🚀 Elevating the Cockpit Audio visualization isn’t just about moving bars — it’s about tactile feedback, visual hierarchy, and immersive atmosphere. In this sprint, we overhauled Wibei into a commercial-grade glassmorphism workstation , added a 3D holographic album art core , wrote a zero-dependency ID3 tag parser , and redesigned our landing page in our signature VOID aesthetic. 💎 1. Commercial-Grade Glassmorphism Cockpit We replaced flat panels with an ergonomic, floating dual-deck hardware layout: Left Deck (Ingest): Quick-switch tabs for DEMOS , STREAM (YouTube/Spotify live audio), QUEUE (playlist management), and LOCAL (drag-and-drop). Right Deck (Synthesis & FX): Instant geometry matrix switching ( RING , WAVE , GRID , ORB ), real-time biquad muffler, sub-bass drive, nightcore tempo shifters, and camera auto-orbit. Floating Transport Bar: Ergonomic bottom bar with real-time master VU meter bars, peak telemetry ( dBFS ), elapsed timers, track metadata, and volume scrubber. Frosted Material System: Deep obsidian glass ( rgba(10, 10, 14, 0.72) ) with backdrop-filter: blur(28px) , subtle rim lighting, and responsive LED indicators. 💿 2. 3D Holographic Center Album Art In our RING (Pulse) visualizer, tracks with rich artwork now come to life in 3D: Hologram Disc: High-def circular disc ( CircleGeometry(4.2) ) with dark tinted glass backing and an audio-reactive neon border ring. Adaptive Gyro-Core: When artwork is present, the wireframe octahedron scales outward to 1.55x , orbiting as an open crystal gimbal cage. Without artwork (or on mic input), it docks back to its native 1.0x center scale. Vinyl Dynamics: Spins with bass-accelerated inertia, tilts dynamically in 3D pitch/roll, and pulses to sub-bass hits. 📦 3. Zero-Dependency In-Browser ID3 Extractor To keep local playback instant without server uploads, we wrote id3.js from scratch: Direct binary parsing of ID3v2.3, ID3v2.4, and ID3v1 tags via ArrayBuffer slices. Extracts APIC frames into instant in-memory blob: URLs for album covers. Parses title, artist, album, and genre instantly with zero latency. 🌌 4. The “VOID” Aesthetic & Minimalist Landing Page Serious Void Default: Distraction-free interstellar abyss ( #050507 ), crisp starlight typography ( #f8fafc ), and titanium slate accents ( #8b95a5 ). Calibrated Bloom: Re-tuned UnrealBloomPass threshold to 0.82 — eliminating blinding white glare while keeping geometry razor-sharp. Minimalist Landing Page: Clean terminal layout with a 1,800-star WebGL starfield and a 3D gyro-core that pulses with kinetic shockwaves on live DSP audition clicks! 💻 100% Client-Side Engine Built entirely with vanilla JS, Three.js (r128), and native Web Audio API — zero bulky UI frameworks, locked 60+ FPS, and zero-latency 32-bit floating DSP.
Ships:
Wibei is a real-time 3D music visualizer built with Three.js and Web Audio API. It features reactive visualizer modes (Pulse Ring, Waveform, and 3D Grid), bloom glow themes, 3D mouse drag controls, YouTube search, live mic input, and local MP3 uploads.How to test Open https://wibei-production.up.railway.app/ Search for any song in the bottom right, click 🎤 to use your mic, or click 📁 to upload an MP3. Click & drag anywhere on the screen to rotate in 3D, and use the top dropdowns to switch styles (Pulse Ring, Wave, Grid) and themes.What I learned Learned how to use the Web Audio API (FFT frequency analysis) to drive 3D Three.js meshes, write smooth idle wave animations, configure bloom shaders, and build 3D mouse orbit controls....
|
1792982967.9981546
|
1793069367.9981546
|
|
34277
|
Gravity simulator by @Krys | Stardance
|
Krys
|
1
|
96.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-31T15:39:24Z", "hours": 96.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a simulator of Gravity between bodies in space. The simulator is fully customizable, so you can change the mass of your objects, their positions and even their shades they left behind. You can create any simulation you want.", "repo": "https://github.com/krysjank/Gravity-simulator", "demo": "https://scratch.mit.edu/projects/1376605963/"}]...
|
[{"post_id": 58940, "ts": "202 [{"post_id": 58940, "ts": "2026-08-31T14:36:41Z", "hours": 5.1353, "text": "Final adjustements, no errors and no bugs. The project is finally ready to be sent. The only things that I had to compromise on were the Save and Load function. Cause due to scratch’s simplicity, it couldn’t subtract all of my variables at once. But nonetheless I was working on this project really hard and I hope it comes out great."}, {"post_id": 58726, "ts": "2026-08-31T08:41:44Z", "hours": 6.1681, "text": "Time flew by so fast last six hours. I’m deep in the Save and Load functions right now. It isn’t just designing buttons and texts, I also need to make sure the buttons react properly and with no error. I created new room for load screen too. If the Save and Load functions will come up right, it’s gonna be huge."}, {"post_id": 54026, "ts": "2026-08-24T19:35:22Z", "hours": 4.0647, "text": "I added two more buttons for Save/Import option, so the user could temporarily save his gravity scenes to show them to someone later. I was also facing problems about resetting the second half of the settings. There was a bug associated with a very early ending of an event that affects other events, resulting in no reaction."}, {"post_id": 42744, "ts": "2026-08-07T16:52:07Z", "hours": 4.1339, "text": "Today, I implemented the option to decide if the x or y positions of each body could be shown. I located it into the second page of settings. It was kind of hard to figure out how to effect six different checkboxes in one single sprite at once. Next time, I’ll add more options for the users.:)))"}, {"post_id": 42532, "ts": "2026-08-07T10:26:54Z", "hours": 4.0836, "text": "Today, I added a new skip button for users that already played gravity simulator. By pressing the button they could skip the tutorial and head on straight to the simulation."}, {"post_id": 42089, "ts": "2026-08-06T17:32:29Z", "hours": 4.1506, "text": "AFTER COUNTLESS HOURS OF DIFFERENT CHANGES, I FINALLY MANAGED TO FIGURE OUT THE SOLUTION FOR THE PROBLEM WITH POSITION MEMORY OF THE BODIES. I redesigned the structure of the code and added some new blocks to it. This major improvement results in a version with literally no bugs in all fields. I can thankfully begin upgrading the settings menu I started making before, because now, I have a solid base for future improvements. THANK GOD I FIGURED IT OUT :)))))))"}, {"post_id": 41870, "ts": "2026-08-06T10:49:36Z", "hours": 4.0669, "text": "My only chance is to go compare different versions of the code, so I’m working on two of the codes at once. The bug that the bodies don’t stay at their positions after returning back to the menu is I think only solvable by separating the code and going through all of it."}, {"post_id": 41388, "ts": "2026-08-05T15:50:18Z", "hours": 4.0739, "text": "Oh daaamn, this session was so annoying!! I was facing crucial bugs in the main simulation, I tried everything just to solve it and I couldn’t figure out why it was happening for 2 whole hours. Then I had a lunchbreak and I returned to programming and I restarted my slow comp…. The program was out of nowhere working and now I came across different problems, at the time I solved the buttons problems. I can’t no more……. :(((((( Once I solve a problem, two others come alive. It’s getting very hard for me."}, {"post_id": 40856, "ts": "2026-08-04T17:27:10Z", "hours": 8.1803, "text": "I succesfully implemented the menu for settings with functioning buttons(pic. 2). It took quite a lot of time to design. And as I was testing the whole application, I came across different bugs, for instance(pic. 1). It happens during the act of pressing the mouse and sliding between both of the next/back buttons and then letting the mouse down. It’s sadly still in process, I can’t figure it out right now."}, {"post_id": 40091, "ts": "2026-08-03T14:05:22Z", "hours": 4.1336, "text": "Today, I added a new button for settings, it comes with animation. I also fixed the problem with the little helper, cause it was lagging sometimes during the usage of it. It was a pain creating the sprocket design by the way ; )"}, {"post_id": 34284, "ts": "2026-07-24T21:12:31Z", "hours": 4.2681, "text": "So, I added the new version of gravity to all of the bodies that could move. The new version’s secret is, that its made in only one column. I also upgraded the small helper hidden in the left high corner. You can see its main code lower. I tested it and it reacts to all of the events it should respond to."}, {"post_id": 33979, "ts": "2026-07-24T11:10:26Z", "hours": 4.2872, "text": "I hope I solved the problem with the bodies sometimes not moving. I invented a new way how to act between pressing space and simulating gravity. The problem that they didn’t move was maybe because the simulation was divided into two programmed groups. One was activated when entering a certain room and the second activated later when pressing space. At least I hope so… I spent a lot of time going through the code and couldn’t find any other solution :("}, {"post_id": 33615, "ts": "2026-07-23T17:51:54Z", "hours": 4.1336, "text": "As I mentioned in previous devlog, I really had to invent a special sprite for each moving body. The shadow under the bodies collided with bodies, so I really didn’t have any different solution. There was also a bug in a cycle. It was about sending messages to other communicators more times than the loop actually looped. So I implemented this code to all of the special sprites for shadows (the code was different every single time)"}, {"post_id": 33428, "ts": "2026-07-23T11:12:06Z", "hours": 4.0333, "text": "I inicialized the gravity for the third body (oh yes, finaly) –> It took me a lot of time, because the more bodies you have, the bigger amount of code is needed. But just as I tried it, I came across a different problem. Bodies collide not only between them, but also with the trajectories of the bodies. This got me really thinking. I might create for each trajectory a sprite."}, {"post_id": 33028, "ts": "2026-07-22T16:09:41Z", "hours": 4.0333, "text": "This time, my programming session was a brutal nightmare. I was trying to fix a very uncomfortable bug and it was hidden in the code below. As more than one sprites had this code, one was experiencing active condition and the second passive. I also upgraded the guide menu with a new design of the mass system."}, {"post_id": 32891, "ts": "2026-07-22T10:49:34Z", "hours": 4.1003, "text": "Now I added a ton of code to another ball, so it could interact with others. I also made a requirement if user wants the ball to move or not, so it could act just as gravity provider or even be attracted by the gravity too. Big changes will happen also to other bodies. See you later : )"}, {"post_id": 32425, "ts": "2026-07-21T16:33:36Z", "hours": 4.2006, "text": "I finally managed to finish the complete guide for users. I added a step-back button so everyone can return to the guide if they missed something. I also added a menu for giving speeds right from the start. It means that the simulations won’t neccesarily be from stable positions. -> I hope I don’t need to mention the bug fixes everyone knows about :"}, {"post_id": 32274, "ts": "2026-07-21T10:42:31Z", "hours": 17.5858, "text": "I recently made a huge jump with the gravity simulator. I added a third body to interact with and I also added kind of a huge guide for the users. The most annoying thing to do was the debugging part. It’s always hard to find the roots of the problem. I hope this simulator ’ll get as much stardust as it can because I´m working hard to get the results I want."}, {"post_id": 27697, "ts": "2026-07-13T14:12:02Z", "hours": 1.5503, "text": "I’m working on simulation between bodies in space. Today, I finally figured out how to do it for the first time. Months before I struggled to perform such a difficult physics simulation. I didn’t really ever understand how dx and dy works. So I tried it and it works pretty well even in scratch."}]...
|
Title: Gravity simulator by @Krys | Stardance
Dev Title: Gravity simulator by @Krys | Stardance
Devlogs:
I’m working on simulation between bodies in space. Today, I finally figured out how to do it for the first time. Months before I struggled to perform such a difficult physics simulation. I didn’t really ever understand how dx and dy works. So I tried it and it works pretty well even in scratch.
I recently made a huge jump with the gravity simulator. I added a third body to interact with and I also added kind of a huge guide for the users. The most annoying thing to do was the debugging part. It’s always hard to find the roots of the problem. I hope this simulator ’ll get as much stardust as it can because I´m working hard to get the results I want.
I finally managed to finish the complete guide for users. I added a step-back button so everyone can return to the guide if they missed something. I also added a menu for giving speeds right from the start. It means that the simulations won’t neccesarily be from stable positions. -> I hope I don’t need to mention the bug fixes everyone knows about :
Now I added a ton of code to another ball, so it could interact with others. I also made a requirement if user wants the ball to move or not, so it could act just as gravity provider or even be attracted by the gravity too. Big changes will happen also to other bodies. See you later : )
This time, my programming session was a brutal nightmare. I was trying to fix a very uncomfortable bug and it was hidden in the code below. As more than one sprites had this code, one was experiencing active condition and the second passive. I also upgraded the guide menu with a new design of the mass system.
I inicialized the gravity for the third body (oh yes, finaly) –> It took me a lot of time, because the more bodies you have, the bigger amount of code is needed. But just as I tried it, I came across a different problem. Bodies collide not only between them, but also with the trajectories of the bodies. This got me really thinking. I might create for each trajectory a sprite.
As I mentioned in previous devlog, I really had to invent a special sprite for each moving body. The shadow under the bodies collided with bodies, so I really didn’t have any different solution. There was also a bug in a cycle. It was about sending messages to other communicators more times than the loop actually looped. So I implemented this code to all of the special sprites for shadows (the code was different every single time)
I hope I solved the problem with the bodies sometimes not moving. I invented a new way how to act between pressing space and simulating gravity. The problem that they didn’t move was maybe because the simulation was divided into two programmed groups. One was activated when entering a certain room and the second activated later when pressing space. At least I hope so… I spent a lot of time going through the code and couldn’t find any other solution :(
So, I added the new version of gravity to all of the bodies that could move. The new version’s secret is, that its made in only one column. I also upgraded the small helper hidden in the left high corner. You can see its main code lower. I tested it and it reacts to all of the events it should respond to.
Today, I added a new button for settings, it comes with animation. I also fixed the problem with the little helper, cause it was lagging sometimes during the usage of it. It was a pain creating the sprocket design by the way ; )
I succesfully implemented the menu for settings with functioning buttons(pic. 2). It took quite a lot of time to design. And as I was testing the whole application, I came across different bugs, for instance(pic. 1). It happens during the act of pressing the mouse and sliding between both of the next/back buttons and then letting the mouse down. It’s sadly still in process, I can’t figure it out right now.
Oh daaamn, this session was so annoying!! I was facing crucial bugs in the main simulation, I tried everything just to solve it and I couldn’t figure out why it was happening for 2 whole hours. Then I had a lunchbreak and I returned to programming and I restarted my slow comp…. The program was out of nowhere working and now I came across different problems, at the time I solved the buttons problems. I can’t no more……. :(((((( Once I solve a problem, two others come alive. It’s getting very hard for me.
My only chance is to go compare different versions of the code, so I’m working on two of the codes at once. The bug that the bodies don’t stay at their positions after returning back to the menu is I think only solvable by separating the code and going through all of it.
AFTER COUNTLESS HOURS OF DIFFERENT CHANGES, I FINALLY MANAGED TO FIGURE OUT THE SOLUTION FOR THE PROBLEM WITH POSITION MEMORY OF THE BODIES. I redesigned the structure of the code and added some new blocks to it. This major improvement results in a version with literally no bugs in all fields. I can thankfully begin upgrading the settings menu I started making before, because now, I have a solid base for future improvements. THANK GOD I FIGURED IT OUT :)))))))
Today, I added a new skip button for users that already played gravity simulator. By pressing the button they could skip the tutorial and head on straight to the simulation.
Today, I implemented the option to decide if the x or y positions of each body could be shown. I located it into the second page of settings. It was kind of hard to figure out how to effect six different checkboxes in one single sprite at once. Next time, I’ll add more options for the users.:)))
I added two more buttons for Save/Import option, so the user could temporarily save his gravity scenes to show them to someone later. I was also facing problems about resetting the second half of the settings. There was a bug associated with a very early ending of an event that affects other events, resulting in no reaction.
Time flew by so fast last six hours. I’m deep in the Save and Load functions right now. It isn’t just designing buttons and texts, I also need to make sure the buttons react properly and with no error. I created new room for load screen too. If the Save and Load functions will come up right, it’s gonna be huge.
Final adjustements, no errors and no bugs. The project is finally ready to be sent. The only things that I had to compromise on were the Save and Load function. Cause due to scratch’s simplicity, it couldn’t subtract all of my variables at once. But nonetheless I was working on this project really hard and I hope it comes out great.
Ships:
I made a simulator of Gravity between bodies in space. The simulator is fully customizable, so you can change the mass of your objects, their positions and even their shades they left behind. You can create any simulation you want....
|
1792982966.7813447
|
1793069366.7813447
|
|
22958
|
Tung tung tung sahur by @Arjav | Stardance
|
Arjav
|
1
|
4.23
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-20T11:30:00Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Ship message", "repo": "https://github.com/arjav0703/site", "demo": "https://www.youtube.com/watch?v=G9-pi6_15fI"}]...
|
[{"post_id": 37126, "ts": "202 [{"post_id": 37126, "ts": "2026-07-29T16:45:31Z", "hours": 0.8603, "text": "sahur"}, {"post_id": 21418, "ts": "2026-07-03T10:59:27Z", "hours": 1.3686, "text": "ig vro"}, {"post_id": 12473, "ts": "2026-06-20T11:27:36Z", "hours": 1.5417, "text": "woah test devlog"}]...
|
Title: Tung tung tung sahur by @Arjav | Stardance
Title: Tung tung tung sahur by @Arjav | Stardance
Devlogs:
woah test devlog
ig vro
sahur
Ships:
Ship message...
|
1792982965.9171731
|
1793069365.9171731
|
|
67024
|
BLARE by @AnmolKacker | Stardance
|
AnmolKacker
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: BLARE by @AnmolKacker | Stardance
|
1792464565.851905
|
1793069365.851905
|
|
16190
|
Apollo mission simulator by @prajithvishnur | Star Apollo mission simulator by @prajithvishnur | Stardance...
|
prajithvishnur
|
1
|
1.0
|
15
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T02:48:52Z", "hours": 1.0, "multiplier": 15.2, "payout": 15, "blessing": "neutral", "text": "I think I have finished version one of the game. I am now going to ship. I hope you all enjoy it, and I can’t wait for the feedback!!!", "repo": "https://github.com/prajith-vishnu/apollo13-mission-critical", "demo": "https://prajith-vishnu.github.io/apollo13-mission-critical/"}]...
|
[{"post_id": 8891, "ts": "2026 [{"post_id": 8891, "ts": "2026-06-14T20:06:57Z", "hours": 0.5925, "text": "Got a lot of scenarios for the game built. It’s going pretty well, also hosting it on git."}, {"post_id": 6893, "ts": "2026-06-11T15:40:09Z", "hours": 0.3906, "text": "created a start screen that i think looks rlly cool. hope to turn this into an awesome space game."}]...
|
Title: Apollo mission simulator by @prajithvishnur Title: Apollo mission simulator by @prajithvishnur | Stardance
Devlogs:
created a start screen that i think looks rlly cool. hope to turn this into an awesome space game.
Got a lot of scenarios for the game built. It’s going pretty well, also hosting it on git.
Ships:
I think I have finished version one of the game. I am now going to ship. I hope you all enjoy it, and I can’t wait for the feedback!!!...
|
1792982965.0344255
|
1793069365.0344255
|
|
67023
|
my APOD site by @dfks1546 | Stardance
|
dfks1546
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @dfks1546 | Stardance
|
1792464565.0139747
|
1793069365.0139747
|
|
67022
|
WarioWare Game by @januh | Stardance
|
januh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @januh | Stardance
|
1792464564.168775
|
1793069364.168775
|
|
8455
|
Wills Bot! by @Gooderswills | Stardance
|
Gooderswills
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T12:54:56Z", "hours": 0.0, "multiplier": 1.3, "payout": 0, "blessing": "neutral", "text": "I followed the slack bot tutorial, added some new commands and used javascript and ssh’d into a server for the first time. This is my first project", "repo": "https://github.com/Gooderswills/Wbot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0266FRGV"}]...
|
[{"post_id": 3708, "ts": "2026 [{"post_id": 3708, "ts": "2026-06-06T19:18:17Z", "hours": 0.3494, "text": "I followed the tutorial completely, got the bot on a nest server and now it is fully functional on slack, I also added another command to it and then updated the server with the new code reflected"}]...
|
Title: Wills Bot! by @Gooderswills | Stardance
De Title: Wills Bot! by @Gooderswills | Stardance
Devlogs:
I followed the tutorial completely, got the bot on a nest server and now it is fully functional on slack, I also added another command to it and then updated the server with the new code reflected
Ships:
I followed the slack bot tutorial, added some new commands and used javascript and ssh’d into a server for the first time. This is my first project...
|
1792982964.1466556
|
1793069364.1466556
|
|
67021
|
ASSIST by @Naufal | Stardance
|
Naufal
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ASSIST by @Naufal | Stardance
|
1792464563.3441882
|
1793069363.3441882
|
|
17344
|
Privournal by @Manonit | Stardance
|
Manonit
|
2
|
48.0
|
664
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-07T18:09:56Z", "hours": 14.0, "multiplier": 13.4, "payout": 184, "blessing": "neutral", "text": "I made Privournal, a retro CLI application for private journaling and custom text encryption featuring basic ciphers, advanced encryption (Swiption, Randomised, Manual Modes Hehe), and new features like Show Keys and View Account. Pheww you’re gonna love this if you’ve people trying to read your journals 😭 The hardest part was restructuring the whole flow so as to make it less repetitive and cleaner , fixing CLI table alignment glitches, and honestly, if you saw my last ship you’d know that the Swiption feature I made gave me a pretty tough time, Lol. Though I’m really proud of creating a seamless terminal workflow and getting it published live on PyPI as well as GitHub, this is one of the few things I’ve worked on and completed in my life. To test it out, run pip install –upgrade privournal, and type privournal in your terminal, and try encrypting and immediately decrypting a short sentence with or without an account!", "repo": "https://github.com/sermanoire/Privournal", "demo": "https://pypi.org/project/privournal/"}, {"ship_num": 2, "ts": "2026-06-19T01:48:24Z", "hours": 34.0, "multiplier": 17.48, "payout": 480, "blessing": "neutral", "text": "I built Privournal, a command-line journal encryptor that allows users to encrypt and decrypt journal entries locally on their own device. Because for me, someone reading my journal is a legit nightmare, and Privournal is something I can use to keep my digital journals secure. For me that’s a clear quality-of-life improvement : ) Write your journal anywhere (Notes, Notion, etc), paste it into Privournal, get back unreadable text, paste that back into your app. No journal content is ever stored - only the encryption key, and that too locally, if you make an account. To read it yourself you can again head to Privournal and decrypt it! It supports multiple encryption modes, including Basic Encryption, Advanced Encryption, Randomized Encryption, and Swiption - a dynamic encryption system that changes a letter’s cover after a particular number of occurrences, making it impossible to crack. The biggest challenge was implementing Swiption and its decryption logic. Managing occurrence tracking, rotating covers, JSON storage, database integration, and reliable decryption took multiple iterations and a lot of debugging. I also migrated the project from a MySQL-based architecture to SQLite after realizing a shared database conflicted with the goal of being fully offline and private. I’m most proud of turning an idea into a complete, usable package that can be installed through PyPI. I’ve never worked on something so religiously on something of this complexity. The project ended up being over 1400 lines of code and taught me a huge amount about python, databases, GitHub and packaging, debugging, and obviously logical thinking. I’ve never worked on something so religiously on something of this complexity. 3 Major Quality-of-Life Improvements : Zero-setup local encryption - Works completely offline with automatic SQLite database. No server or complicated config needed. Powerful & flexible encryption - Multiple modes + Swiption (dynamic rotating covers) makes it much stronger than simple substitution ciphers. Seamless workflow - Write anywhere -> encrypt -> paste back -> decrypt easily with account or manual key. Perfect for daily journaling : ) Try creating an account (or continue without an account), encrypting a journal entry, saving it, and then decrypting it again. Swiption and Randomised Modes are the most interesting and secure features to experiment with. To test it, run these on terminal : pip install privournal python import MainCode MainCode.start() Thank you so much for reading! : )", "repo": "https://github.com/sermanoire/Privournal", "demo": "https://pypi.org/project/privournal/"}]...
|
[{"post_id": 77627, "ts": "202 [{"post_id": 77627, "ts": "2026-10-07T17:55:59Z", "hours": 2.0183, "text": "Devlog 16! — Okay, NOW It’s Done. 😭 Phew. I thought Privournal was finally finished, but while making the final ASCII recording, I found a bunch of small errors (Some was huge), inconsistencies and table issues that I had to fix. What I worked on: Added two new functions: Show Keys and View Account . Show Keys lets users view all their saved encryption keys. View Account displays their account details neatly in a table. Fixed several encryption and decryption bugs , including issues with journal selection, menu choices and input validation. Fixed problems with database values and journal data being handled incorrectly. Improved table formatting, spacing and alignment throughout the program. Cleaned up various small inconsistencies and errors that appeared during full end-to-end testing. Made the new ASCII recording . There was some old test data already stored, which was causing confusing duplicate entries and messing up the tables. After clearing that out, everything worked properly. And finally… The entire thing worked perfectly. 🎉 Most of this Devlog was about fixing the small things rather than adding huge new features, but it made Privournal more consistent and reliable."}, {"post_id": 77302, "ts": "2026-10-06T14:14:50Z", "hours": 6.5342, "text": "Devlog 15! It’s done. Phew. Finally, Privournal is DONE. Complete, everything’s perfect. In this final version I’ve made so many improvements! Instead of using time.sleep() to give pauses/time to copy the details, now the users can copy and paste encrypted text and its key without a time limit, and then they can simply press Enter to move ahead. I also made HUGE changes to the code. Earlier, the code used to run and at multiple steps ask for login/signup, which was fine but it was confusing. Now the first page is for login/signup, then the rest of the code flows smoothly accordingly. This restructuring required writing many parts of the code again and breaking a lot of functions into 2 parts. I also renamed some variables. I also worked on spacing and formatting. Now the user details are printed cleanly in a table. Overall, the code outputs are much more uniform. I made a new ASCII recording. It is yet to be updated on my GitHub, though. I’ve also published this new version on PyPI. If you had already installed Privournal, you can just update it. Now the main thing. I’m going to make a Website for Privournal where users wouldn’t need to install anything and can just go straight to encrypting or decrypting their journals. This version will still exist, though. It’ll be a rather Retro CLI version for people who like it this way. Phew. I’ll work on that now."}, {"post_id": 15049, "ts": "2026-06-24T13:23:31Z", "hours": 5.1881, "text": "##Devlog #14 - The Reviewer Arc 🥲 . Well… . The reviewer found some issues 😭 . So I went back and tested basically the ENTIRE project again. . While testing, I found and fixed a bunch of errors, especially in Advanced Encryption. I also added a lot of fallback checks throughout the code so Privournal doesn’t randomly decide to crash anymore 😭 . I also improved the decryption flow. . Earlier users had to select journals using IDs, now they can simply choose them by name, which feels way cleaner. . Another addition was a user guide in menu. I was short on time and it was a no brainer, so I used Claude to help generate the guide content and then integrated it into Privournal. The goal was simply to make the different encryption modes easier to understand :) . Apart from code changes, I also polished the project page, uploaded a sample flowchart, improved formatting and timing, and recorded a completely new asciinema demo PLUS I updated the README too. . Then came final testing, packaging, uploading the latest release, and requesting review again 🤞🏻 . Hopefully Privournal passes thru this time 😭 . Thank you : )"}, {"post_id": 11681, "ts": "2026-06-19T01:11:08Z", "hours": 16.0992, "text": "Devlog #13 - IT’S DONE DONE! The Final Chapter. FINALLY. After two intense days and 16+ hours of grinding, Privournal is officially complete and ready for Stardance! 😭🎉 OH AND Yeah, it’s been two days - Long time no see 😭 . Sorry for disappearing without posting Devlog #13 🥲 . These last 16+ hours were so packed with debugging, packaging, testing, and polishing that I kept postponing the devlog. So this one covers the entire final stretch. . Btw hey I’ll upload the clean Flowchart on Git repo, and yk I was gonna write a LOT here with complete details, but damn there’s a limit. Well it’s oki i’ll add a list of all my devlogs to the repo too :) What Happened? I thought Devlog #12 was the “everything works” moment, but the final stretch turned out to be the work. Audited every function in the codebase Fixed dozens of lingering bugs Cleaned up the entire code Updated the README 10+ times Set up PyPI packaging and releases Recorded asciinema demos (Took enormous time 😭) Added prettier output/interface functions Tested every scenario I could think of Major Change: MySQL → SQLite One of the biggest changes was moving away from MySQL. . Originally, Privournal used MySQL with accounts and a shared database. Later I realized that requires a server, hosting, maintenance, and introduces privacy concerns. . So I redesigned everything around SQLite. . Benefits: Fully offline More private Easier installation Simpler deployment Probably the biggest architectural change in the entire project. Biggest Bugs Fixed Login/signup flow issues Missing database commits Foreign key linking problems JSON serialization/loading bugs The infamous “extra spaces everywhere” decryption bug Variable scope and traversal issues Randomised Mode integration By the end of Day 1, the core encryption/decryption system was finally reliable. The Swiption Demon 😭 Swiption and SwipDe took forever. . The idea sounds simple: letters rotate through multiple covers after a certain number of occurrences. . Actually implementing occurrence tracking, rotation logic, life values, multiple dictionaries, JSON storage, and decryption logic nearly broke my brain 😭 . The funniest part? . After hours of struggling I realized I had overcomplicated everything. Since every cover uniquely maps to a letter, I could simply search through the dictionaries instead of tracking a ton of extra information. LIKE DAMN. Swiption is now fully functional and ended up becoming my coolest feature in the project. Packaging & Shipping Cleaned up the repository Improved README and documentation Fixed PyPI packaging issues Tested in fresh virtual environments Published releases Recorded final demos ✨ Project Complete Privournal is now a real, usable command-line journal encryptor. Thanks to: My brother for catching early logic flaws GPT for quick syntax rescues Everyone who followed the devlogs And myself for not giving up 😭 **Privournal is shipped and ready for Stardance! ** I’d love your feedback once you try it. . This project taught me something exams never did : . Working religiously on something with all your heart to make it real. . Thank you for reading all 13 devlogs ❤️ . ✨ See you in the next project ✨ | Project Complete | Ready to Submit | 🎉"}, {"post_id": 10031, "ts": "2026-06-16T16:23:14Z", "hours": 1.6072, "text": "Devlog #12 - IT WORKS! FINALLY! After an hour of debugging, EVERYTHING WORKS! -Encryption -Decryption -Uploading to & Fetching from the Database -Sign Up -Login . The only things that aren’t fully working yet are Swiption and Random Mode, and honestly that’s on me 😭. I got way too focused on making everything else work first AND GOD I had to improvise whole sections of the decryption logic, you won’t believe it. . If you compare the code I committed before this and the code I committed today, I had to improvise so much! . I removed and added so much. My old decryption was code wrong, I mean the logic was on point but the syntax and a few other things were off that’s why it wasn’t working. . Some of the errors were genuinely silly, again 😅 . All my elifs somehow had the same condition, and people this is why you don’t copy paste conditions to save time (I still don’t know how I missed that) 🥲 . My traversal i was a string, and I kept accidentally treating it like an int iterator, I mean ugh. . A lot of bugs were literally sitting right in front of my eyes. . Some bugs were much bigger tho. One of the weirdest happened after I finally got decryption working - The decrypted text had way too many spaces between words. . After staring at it for a while, I noticed that the number of spaces was exactly the same as the number of unique letters in the text. That’s when it hit me - the loop was continuing to run even after finding a match. Few “breaks” later hehe, everything worked 😭 . After Swiption and Random Mode, those 2 really aren’t done right now, I’m sorry I type so slow 😭 . Yeah so after that I’ll focus on making the code look real pretty, like -Fixing my silly variable names -Comment notes ig? -Better spacing and formatting -Cleaning up extra files -Writing a proper README and project description . And yes… On the 13th Devlog, the project will be done done 🤞🏻 . Note : I improvised all my previous devlogs, with proper format so that it’s easier to read, you can tell me if it’s better 🙃 . See you in the next one!"}, {"post_id": 9530, "ts": "2026-06-15T22:02:49Z", "hours": 3.1286, "text": "Devlog #11 - First Successful Test! Let’s go!!! . First successful test done 😇 . The database fetching works, the encryption flow works - it wasn’t working earlier tho (And I spent an hour finding errors, like i’d run it again n again and also ended up rewriting portions, like my Advanced Encyption code was all messed up 😭) . But yes, now it’s working, i’m sure there are a couple more errors but i’m on my way to fix em! . And yk some of the errors were so silly - I had written input(“Enter cover for”,x), and damn i failed to realise what the issue was. . Then after a lot of trying I asked GPT and it said it’s cuz input() can only have one argument in the braces 😅 . A lot of other errors too were like me getting all confused btw variable names, function not being global and so on. . But yeah, one at a time i fixed em, fixed the code and now only the refining of the code and some other bugs remain. . And um I had said i’d do it in 10 devlogs, but ah now it looks like 12th would be the last one. . But hey, the more the better, ig? 😭 . See ya in the next devlog!"}, {"post_id": 9123, "ts": "2026-06-15T08:21:26Z", "hours": 4.0792, "text": "Devlog #10 - A Slight Setback This is going to be the biggest devlog. And this one’s gonna be a disappointing one 🥲 . First of all, I was talking to my brother and he asked such a good question - It pointed to a flaw which I didn’t notice at all. . Let’s say there’s a word “am” in the journal, a’s cover is 1 and m’s cover is 27 (so am = 127). Now cuz there’s not spacing the decryption code will actually traverse thru each of number at a time in the encrypted text (127), so it’ll literally convert 1 and then 2 and then 7 separately. This was such a major flaw in my logic and I’m still agonizing internally over the fact that my eyes missed it. . But ah it’s ok, I’m fixing that by simply making adding a trailing space after the cover to separate each letter’s cover. . There was so much running and errors and staring at screen and all that. . Another thing I noticed is that in Advanced Encryption when the user will choose covers for 52 letters, he might accidentally repeat a cover - which obvi will make it impossible to distinguish btw 2 letters. So I gotta add each cover to a list and then every time the user adds a cover i’ll see if it’s already there in the list or not. . Now these flaws I got to know when I was talking to my brother, and it was past midnight. So almost immediately after waking up I was onto fixing these flaws, and it’s in progress :) . Apart from that, I’ve been refining the code (Found some silly errors in functions) and fixing more logic issues. . Earlier the Encryption Key that I was using to decrypt, it was a dictionary - with the keys as letters and values as the cover. So before uploading them to the db table, I converted them into text. But then while fixing decryption code, I did tried dict(the string key) and later found out that it all doesn’t work like that, the syntax. . I checked online, asked GPT, he suggested that I use the json module, and so I did. Json made it pretty easy, now the conversion was smooth and 2 liner. . Also I fixed all the login/signup system, it works as smooth as butter now Hehe . I’d say the main issue wasn’t the code it was following where am I. . Like cuz there are so many functions and steps and paths that I was getting overwhelmed (plus the code is like 600 lines), so I basically carefully went thru each line of code and arranged each function in an order and side by side made the final flowchart (It made following the code super easy and looks cool tbh) - But yes that’s hectic work right there. . Now after all that… Does the code run? HELL NO IT DOESNT! . It’s still showing 21 errors 😭 Plus, Swiption’s still left. . So right now, I’m trying to fix the flaws and errors and get this code up and running without Swiption, once it is smooth then at the end I can code Swiption into it. . See ya in the next devlog!"}, {"post_id": 8726, "ts": "2026-06-14T14:26:44Z", "hours": 1.1836, "text": "Devlog #9 - This was unexpected… Turns out there were some issues in the decryption function. It completely ignored spaces while decrypting, which definitely wasn’t ideal 😭 . I’ve fixed that tho. . Also I remade the tables in database with much more info such as date of encryption and email (for forgot password purposes) . And this code was getting too long, like more than 400 lines long. . So, I’ve started splitting things into different files to keep everything organized. Db code has its own file, big functions like AdvEn() have their own file, and the same goes for Swiption and Random Encryption logic. . Target’s to finish the code tonight. . Thanks for reading!"}, {"post_id": 8602, "ts": "2026-06-14T09:32:39Z", "hours": 1.1364, "text": "Devlog #8 - The Eights. . So this would be Privournal’s 8th devlog, and this one feels kinda special :) . My birthday falls on an 8th too, and I just love the number 8. . Anyways, I was actually supposed to be done with the Swiption feature by now, but I just couldn’t help myself and started working on the Random Encryption feature. . Reason’s that it just came to me - . Why not make Random Encryption available for both Advanced Encryption AND Swiption too?? . This would make the whole Encryption process super fast if some user doesn’t want to manually encrypt each letter. So I’m onto that, then I’ll immediately look into Swiption. . Then finally I’ll refine the whole code and just go through all the variables, functions and rename them if needed (I’m one of those people who name the variable something silly and forget what it was for 😭) . I’ve also started mapping out the overall visual flow of Privournal cuz it was getting a bit confusing. . I’m thinking abt wrapping this project up in about 12 devlogs, and then launching it. . You can also check out the GitHub - I’ve been committing code changes on it regularly :) . Thanks for reading!"}, {"post_id": 8359, "ts": "2026-06-13T21:56:30Z", "hours": 1.7153, "text": "Devlog #7 - Almost There! Only the Swiption feature remains! . I’ve also been thinking about adding another cool feature where the covers are randomly chosen using Python’s random module. The idea is that it’ll be added in Custom Encryption. . Also, my bad 😭 . I sometimes refered to the Custom Encryption as Advanced Encrytion, that might confuse you - but i’ll be consistent with names now. It’s just that it’s the start and so many features and ideas just mush into my head 🙃 . Once Swiption is done, the Python version should basically be mostly complete, and then it’ll be time for da next step . Getting all this on a website, tho that is gonna be really difficult for me, I really don’t know how to make websites 🥲. . Not gonna lie, that part scares me a a lot cuz I don’t wanna use AI for the website 😭 . I really don’t know much about web development, but I guess that’s part of building a project. You learn whatever you need as you go. . Thank you so much for reading these devlogs tho :) . Hopefully tmrw the code will be done and I’ll be one step closer to completing Privournal!"}, {"post_id": 8152, "ts": "2026-06-13T16:24:59Z", "hours": 1.0783, "text": "Devlog #6 - Advanced Encryption! Pheww, this part took some effort! . Today I worked on the main encryption logic for Advanced Encryption, and after a lot of thinking, coding, testing, and rethinking, I finally got the foundation for it down :) . This is one of the core features of Privournal, so it feels really good seeing it slowly come together. . That said, this is only a small win . The real challenge is gonna be the “Swiption” feature. Bet Swiption is gonna take half my brain cells 😭"}, {"post_id": 8096, "ts": "2026-06-13T14:51:13Z", "hours": 0.4681, "text": "Devlog #5 - Database Established! . Now the basic outline has to be perfected, with each and every thing being functional. . After spending some time figuring out SQL, databases, connections, and all that stuff, I finally managed to get Python talking to the database successfully :) . Seeing actual records being fetched felt pretty satisfying not gonna lie. For now, the goal’s Add features and make everything functional Connect everything together Improve the overall structure On the way to do that!"}, {"post_id": 8033, "ts": "2026-06-13T12:07:47Z", "hours": 0.9758, "text": "Devlog #4 - Still on the Db thing . Hehe, my highschool Python-SQL interface notes are coming in handy! . When I was studying this stuff, I honestly didn’t think I’d ever end up using most of it cuz it seemed too basic Turns out I was wrong :) . Since Privournal is gonna need a database for account credentials and all that, I’ve started revising my old notes and figuring out how everything fits together. . Let’s see how this goes!"}, {"post_id": 7690, "ts": "2026-06-12T21:00:25Z", "hours": 0.6611, "text": "Devlog #3 - The Plan’s Shape Guys! . Errors fixed and a basic outline has been made (This time on a paper Hehe) . AND i’ve thought about how i’m gonna go about it! . I’ve also spent some time thinking about how I’m actually gonna build this thing. . I’ll have to make a sql database ig (For account credentials and encryption details) and link it to my python code. I’m still new so i’m not sure if the sql database method for keeping records is how the real companies operate, but still seems pretty nice. . And I mean these are journals that we’re talking about, - so security and privacy matter a lot. . Tho my whole idea and code is that the actual journal entry is never stored. Only the encryption sequence and logic is. . That way, even if some dummy somehow got access to the database, they wouldn’t find the journal itself (Hehe can’t outsmart me) . For now, the plan pretty clear: Finish the Python main code Get encryption working properly Add database support Convert it into a website Well, that’s it ig. . I’m gonna go and tmrw complete the whole thing in python and then yes - hopefully convert it into a website :)"}, {"post_id": 7639, "ts": "2026-06-12T19:21:01Z", "hours": 0.9731, "text": "Devlog #2 - The First Error and an Outline . Ran into the first error, phewww! . Honestly, had it coming - things were going way too smoothly for a rather newbie like me 😭 . I was working on the account system and trying to get the signup and login flow working when I hit the error. I also created a basic outline of flow (In my mind 😅) . Spent a good chunk of time staring, retracing my code, and trying to figure out what exactly I had written wrong. But yes, I’m on it!"}, {"post_id": 7568, "ts": "2026-06-12T17:29:14Z", "hours": 0.5239, "text": "Devlog #1 - The Beginning . Today wasn’t about building features but about getting everything ready. . I finished setting up the Github thing (Took me an hour lol), cleaned things up, and wrote the first version of the README. . It might not seem like much, but damn did it feel so hectic, maybe cuz it’s my first time working on a real software project :) . After the setup, I finally started writing the core code. . Right now it’s just the foundation and an outline that I’ve set out to achieve :) . The journey begins!"}]...
|
Title: Privournal by @Manonit | Stardance
Devlogs Title: Privournal by @Manonit | Stardance
Devlogs:
Devlog #1 - The Beginning . Today wasn’t about building features but about getting everything ready. . I finished setting up the Github thing (Took me an hour lol), cleaned things up, and wrote the first version of the README. . It might not seem like much, but damn did it feel so hectic, maybe cuz it’s my first time working on a real software project :) . After the setup, I finally started writing the core code. . Right now it’s just the foundation and an outline that I’ve set out to achieve :) . The journey begins!
Devlog #2 - The First Error and an Outline . Ran into the first error, phewww! . Honestly, had it coming - things were going way too smoothly for a rather newbie like me 😭 . I was working on the account system and trying to get the signup and login flow working when I hit the error. I also created a basic outline of flow (In my mind 😅) . Spent a good chunk of time staring, retracing my code, and trying to figure out what exactly I had written wrong. But yes, I’m on it!
Devlog #3 - The Plan’s Shape Guys! . Errors fixed and a basic outline has been made (This time on a paper Hehe) . AND i’ve thought about how i’m gonna go about it! . I’ve also spent some time thinking about how I’m actually gonna build this thing. . I’ll have to make a sql database ig (For account credentials and encryption details) and link it to my python code. I’m still new so i’m not sure if the sql database method for keeping records is how the real companies operate, but still seems pretty nice. . And I mean these are journals that we’re talking about, - so security and privacy matter a lot. . Tho my whole idea and code is that the actual journal entry is never stored. Only the encryption sequence and logic is. . That way, even if some dummy somehow got access to the database, they wouldn’t find the journal itself (Hehe can’t outsmart me) . For now, the plan pretty clear: Finish the Python main code Get encryption working properly Add database support Convert it into a website Well, that’s it ig. . I’m gonna go and tmrw complete the whole thing in python and then yes - hopefully convert it into a website :)
Devlog #4 - Still on the Db thing . Hehe, my highschool Python-SQL interface notes are coming in handy! . When I was studying this stuff, I honestly didn’t think I’d ever end up using most of it cuz it seemed too basic Turns out I was wrong :) . Since Privournal is gonna need a database for account credentials and all that, I’ve started revising my old notes and figuring out how everything fits together. . Let’s see how this goes!
Devlog #5 - Database Established! . Now the basic outline has to be perfected, with each and every thing being functional. . After spending some time figuring out SQL, databases, connections, and all that stuff, I finally managed to get Python talking to the database successfully :) . Seeing actual records being fetched felt pretty satisfying not gonna lie. For now, the goal’s Add features and make everything functional Connect everything together Improve the overall structure On the way to do that!
Devlog #6 - Advanced Encryption! Pheww, this part took some effort! . Today I worked on the main encryption logic for Advanced Encryption, and after a lot of thinking, coding, testing, and rethinking, I finally got the foundation for it down :) . This is one of the core features of Privournal, so it feels really good seeing it slowly come together. . That said, this is only a small win . The real challenge is gonna be the “Swiption” feature. Bet Swiption is gonna take half my brain cells 😭
Devlog #7 - Almost There! Only the Swiption feature remains! . I’ve also been thinking about adding another cool feature where the covers are randomly chosen using Python’s random module. The idea is that it’ll be added in Custom Encryption. . Also, my bad 😭 . I sometimes refered to the Custom Encryption as Advanced Encrytion, that might confuse you - but i’ll be consistent with names now. It’s just that it’s the start and so many features and ideas just mush into my head 🙃 . Once Swiption is done, the Python version should basically be mostly complete, and then it’ll be time for da next step . Getting all this on a website, tho that is gonna be really difficult for me, I really don’t know how to make websites 🥲. . Not gonna lie, that part scares me a a lot cuz I don’t wanna use AI for the website 😭 . I really don’t know much about web development, but I guess that’s part of building a project. You learn whatever you need as you go. . Thank you so much for reading these devlogs tho :) . Hopefully tmrw the code will be done and I’ll be one step closer to completing Privournal!
Devlog #8 - The Eights. . So this would be Privournal’s 8th devlog, and this one feels kinda special :) . My birthday falls on an 8th too, and I just love the number 8. . Anyways, I was actually supposed to be done with the Swiption feature by now, but I just couldn’t help myself and started working on the Random Encryption feature. . Reason’s that it just came to me - . Why not make Random Encryption available for both Advanced Encryption AND Swiption too?? . This would make the whole Encryption process super fast if some user doesn’t want to manually encrypt each letter. So I’m onto that, then I’ll immediately look into Swiption. . Then finally I’ll refine the whole code and just go through all the variables, functions and rename them if needed (I’m one of those people who name the variable something silly and forget what it was for 😭) . I’ve also started mapping out the overall visual flow of Privournal cuz it was getting a bit confusing. . I’m thinking abt wrapping this project up in about 12 devlogs, and then launching it. . You can also check out the GitHub - I’ve been committing code changes on it regularly :) . Thanks for reading!
Devlog #9 - This was unexpected… Turns out there were some issues in the decryption function. It completely ignored spaces while decrypting, which definitely wasn’t ideal 😭 . I’ve fixed that tho. . Also I remade the tables in database with much more info such as date of encryption and email (for forgot password purposes) . And this code was getting too long, like more than 400 lines long. . So, I’ve started splitting things into different files to keep everything organized. Db code has its own file, big functions like AdvEn() have their own file, and the same goes for Swiption and Random Encryption logic. . Target’s to finish the code tonight. . Thanks for reading!
Devlog #10 - A Slight Setback This is going to be the biggest devlog. And this one’s gonna be a disappointing one 🥲 . First of all, I was talking to my brother and he asked such a good question - It pointed to a flaw which I didn’t notice at all. . Let’s say there’s a word “am” in the journal, a’s cover is 1 and m’s cover is 27 (so am = 127). Now cuz there’s not spacing the decryption code will actually traverse thru each of number at a time in the encrypted text (127), so it’ll literally convert 1 and then 2 and then 7 separately. This was such a major flaw in my logic and I’m still agonizing internally over the fact that my eyes missed it. . But ah it’s ok, I’m fixing that by simply making adding a trailing space after the cover to separate each letter’s cover. . There was so much running and errors and staring at screen and all that. . Another thing I noticed is that in Advanced Encryption when the user will choose covers for 52 letters, he might accidentally repeat a cover - which obvi will make it impossible to distinguish btw 2 letters. So I gotta add each cover to a list and then every time the user adds a cover i’ll see if it’s already there in the list or not. . Now these flaws I got to know when I was talking to my brother, and it was past midnight. So almost immediately after waking up I was onto fixing these flaws, and it’s in progress :) . Apart from that, I’ve been refining the code (Found some silly errors in functions) and fixing more logic issues. . Earlier the Encryption Key that I was using to decrypt, it was a dictionary - with the keys as letters and values as the cover. So before uploading them to the db table, I converted them into text. But then while fixing decryption code, I did tried dict(the string key) and later found out that it all doesn’t work like that, the syntax. . I checked online, asked GPT, he suggested that I use the json module, and so I did. Json made it pretty easy, now the conversion was smooth and 2 liner. . Also I fixed all the login/signup system, it works as smooth as butter now Hehe . I’d say the main issue wasn’t the code it was following where am I. . Like cuz there are so many functions and steps and paths that I was getting overwhelmed (plus the code is like 600 lines), so I basically carefully went thru each line of code and arranged each function in an order and side by side made the final flowchart (It made following the code super easy and looks cool tbh) - But yes that’s hectic work right there. . Now after all that… Does the code run? HELL NO IT DOESNT! . It’s still showing 21 errors 😭 Plus, Swiption’s still left. . So right now, I’m trying to fix the flaws and errors and get this code up and running without Swiption, once it is smooth then at the end I can code Swiption into it. . See ya in the next devlog!
Devlog #11 - First Successful Test! Let’s go!!! . First successful test done 😇 . The database fetching works, the encryption flow works - it wasn’t working earlier tho (And I spent an hour finding errors, like i’d run it again n again and also ended up rewriting portions, like my Advanced Encyption code was all messed up 😭) . But yes, now it’s working, i’m sure there are a couple more errors but i’m on my way to fix em! . And yk some of the errors were so silly - I had written input(“Enter cover for”,x), and damn i failed to realise what the issue was. . Then after a lot of trying I asked GPT and it said it’s cuz input() can only have one argument in the braces 😅 . A lot of other errors too were like me getting all confused btw variable names, function not being global and so on. . But yeah, one at a time i fixed em, fixed the code and now only the refining of the code and some other bugs remain. . And um I had said i’d do it in 10 devlogs, but ah now it looks like 12th would be the last one. . But hey, the more the better, ig? 😭 . See ya in the next devlog!
Devlog #12 - IT WORKS! FINALLY! After an hour of debugging, EVERYTHING WORKS! -Encryption -Decryption -Uploading to & Fetching from the Database -Sign Up -Login . The only things that aren’t fully working yet are Swiption and Random Mode, and honestly that’s on me 😭. I got way too focused on making everything else work first AND GOD I had to improvise whole sections of the decryption logic, you won’t believe it. . If you compare the code I committed before this and the code I committed today, I had to improvise so much! . I removed and added so much. My old decryption was code wrong, I mean the logic was on point but the syntax and a few other things were off that’s why it wasn’t working. . Some of the errors were genuinely silly, again 😅 . All my elifs somehow had the same condition, and people this is why you don’t copy paste conditions to save time (I still don’t know how I missed that) 🥲 . My traversal i was a string, and I kept accidentally treating it like an int iterator, I mean ugh. . A lot of bugs were literally sitting right in front of my eyes. . Some bugs were much bigger tho. One of the weirdest happened after I finally got decryption working - The decrypted text had way too many spaces between words. . After staring at it for a while, I noticed that the number of spaces was exactly the same as the number of unique letters in the text. That’s when it hit me - the loop was continuing to run even after finding a match. Few “breaks” later hehe, everything worked 😭 . After Swiption and Random Mode, those 2 really aren’t done right now, I’m sorry I type so slow 😭 . Yeah so after that I’ll focus on making the code look real pretty, like -Fixing my silly variable names -Comment notes ig? -Better spacing and formatting -Cleaning up extra files -Writing a proper README and project description . And yes… On the 13th Devlog, the project will be done done 🤞🏻 . Note : I improvised all my previous devlogs, with proper format so that it’s easier to read, you can tell me if it’s better 🙃 . See you in the next one!
Devlog #13 - IT’S DONE DONE! The Final Chapter. FINALLY. After two intense days and 16+ hours of grinding, Privournal is officially complete and ready for Stardance! 😭🎉 OH AND Yeah, it’s been two days - Long time no see 😭 . Sorry for disappearing without posting Devlog #13 🥲 . These last 16+ hours were so packed with debugging, packaging, testing, and polishing that I kept postponing the devlog. So this one covers the entire final stretch. . Btw hey I’ll upload the clean Flowchart on Git repo, and yk I was gonna write a LOT here with complete details, but damn there’s a limit. Well it’s oki i’ll add a list of all my devlogs to the repo too :) What Happened? I thought Devlog #12 was the “everything works” moment, but the final stretch turned out to be the work. Audited every function in the codebase Fixed dozens of lingering bugs Cleaned up the entire code Updated the README 10+ times Set up PyPI packaging and releases Recorded asciinema demos (Took enormous time 😭) Added prettier output/interface functions Tested every scenario I could think of Major Change: MySQL → SQLite One of the biggest changes was moving away from MySQL. . Originally, Privournal used MySQL with accounts and a shared database. Later I realized that requires a server, hosting, maintenance, and introduces privacy concerns. . So I redesigned everything around SQLite. . Benefits: Fully offline More private Easier installation Simpler deployment Probably the biggest architectural change in the entire project. Biggest Bugs Fixed Login/signup flow issues Missing database commits Foreign key linking problems JSON serialization/loading bugs The infamous “extra spaces everywhere” decryption bug Variable scope and traversal issues Randomised Mode integration By the end of Day 1, the core encryption/decryption system was finally reliable. The Swiption Demon 😭 Swiption and SwipDe took forever. . The idea sounds simple: letters rotate through multiple covers after a certain number of occurrences. . Actually implementing occurrence tracking, rotation logic, life values, multiple dictionaries, JSON storage, and decryption logic nearly broke my brain 😭 . The funniest part? . After hours of struggling I realized I had overcomplicated everything. Since every cover uniquely maps to a letter, I could simply search through the dictionaries instead of tracking a ton of extra information. LIKE DAMN. Swiption is now fully functional and ended up becoming my coolest feature in the project. Packaging & Shipping Cleaned up the repository Improved README and documentation Fixed PyPI packaging issues Tested in fresh virtual environments Published releases Recorded final demos ✨ Project Complete Privournal is now a real, usable command-line journal encryptor. Thanks to: My brother for catching early logic flaws GPT for quick syntax rescues Everyone who followed the devlogs And myself for not giving up 😭 **Privournal is shipped and ready for Stardance! ** I’d love your feedback once you try it. . This project taught me something exams never did : . Working religiously on something with all your heart to make it real. . Thank you for reading all 13 devlogs ❤️ . ✨ See you in the next project ✨ | Project Complete | Ready to Submit | 🎉
##Devlog #14 - The Reviewer Arc 🥲 . Well… . The reviewer found some issues 😭 . So I went back and tested basically the ENTIRE project again. . While testing, I found and fixed a bunch of errors, especially in Advanced Encryption. I also added a lot of fallback checks throughout the code so Privournal doesn’t randomly decide to crash anymore 😭 . I also improved the decryption flow. . Earlier users had to select journals using IDs, now they can simply choose them by name, which feels way cleaner. . Another addition was a user guide in menu. I was short on time and it was a no brainer, so I used Claude to help generate the guide content and then integrated it into Privournal. The goal was simply to make the different encryption modes easier to understand :) . Apart from code changes, I also polished the project page, uploaded a sample flowchart, improved formatting and timing, and recorded a completely new asciinema demo PLUS I updated the README too. . Then came final testing, packaging, uploading the latest release, and requesting review again 🤞🏻 . Hopefully Privournal passes thru this time 😭 . Thank you : )
Devlog 15! It’s done. Phew. Finally, Privournal is DONE. Complete, everything’s perfect. In this final version I’ve made so many improvements! Instead of using time.sleep() to give pauses/time to copy the details, now the users can copy and paste encrypted text and its key without a time limit, and then they can simply press Enter to move ahead. I also made HUGE changes to the code. Earlier, the code used to run and at multiple steps ask for login/signup, which was fine but it was confusing. Now the first page is for login/signup, then the rest of the code flows smoothly accordingly. This restructuring required writing many parts of the code again and breaking a lot of functions into 2 parts. I also renamed some variables. I also worked on spacing and formatting. Now the user details are printed cleanly in a table. Overall, the code outputs are much more uniform. I made a new ASCII recording. It is yet to be updated on my GitHub, though. I’ve also published this new version on PyPI. If you had already installed Privournal, you can just update it. Now the main thing. I’m going to make a Website for Privournal where users wouldn’t need to install anything and can just go straight to encrypting or decrypting their journals. This version will still exist, though. It’ll be a rather Retro CLI version for people who like it this way. Phew. I’ll work on that now.
Devlog 16! — Okay, NOW It’s Done. 😭 Phew. I thought Privournal was finally finished, but while making the final ASCII recording, I found a bunch of small errors (Some was huge), inconsistencies and table issues that I had to fix. What I worked on: Added two new functions: Show Keys and View Account . Show Keys lets users view all their saved encryption keys. View Account displays their account details neatly in a table. Fixed several encryption and decryption bugs , including issues with journal selection, menu choices and input validation. Fixed problems with database values and journal data being handled incorrectly. Improved table formatting, spacing and alignment throughout the program. Cleaned up various small inconsistencies and errors that appeared during full end-to-end testing. Made the new ASCII recording . There was some old test data already stored, which was causing confusing duplicate entries and messing up the tables. After clearing that out, everything worked properly. And finally… The entire thing worked perfectly. 🎉 Most of this Devlog was about fixing the small things rather than adding huge new features, but it made Privournal more consistent and reliable.
Ships:
I built Privournal, a command-line journal encryptor that allows users to encrypt and decrypt journal entries locally on their own device. Because for me, someone reading my journal is a legit nightmare, and Privournal is something I can use to keep my digital journals secure. For me that’s a clear quality-of-life improvement : ) Write your journal anywhere (Notes, Notion, etc), paste it into Privournal, get back unreadable text, paste that back into your app. No journal content is ever stored - only the encryption key, and that too locally, if you make an account. To read it yourself you can again head to Privournal and decrypt it! It supports multiple encryption modes, including Basic Encryption, Advanced Encryption, Randomized Encryption, and Swiption - a dynamic encryption system that changes a letter’s cover after a particular number of occurrences, making it impossible to crack. The biggest challenge was implementing Swiption and its decryption logic. Managing occurrence tracking, rotating covers, JSON storage, database integration, and reliable decryption took multiple iterations and a lot of debugging. I also migrated the project from a MySQL-based architecture to SQLite after realizing a shared database conflicted with the goal of being fully offline and private. I’m most proud of turning an idea into a complete, usable package that can be installed through PyPI. I’ve never worked on something so religiously on something of this complexity. The project ended up being over 1400 lines of code and taught me a huge amount about python, databases, GitHub and packaging, debugging, and obviously logical thinking. I’ve never worked on something so religiously on something of this complexity. 3 Major Quality-of-Life Improvements : Zero-setup local encryption - Works completely offline with automatic SQLite database. No server or complicated config needed. Powerful & flexible encryption - Multiple modes + Swiption (dynamic rotating covers) makes it much stronger than simple substitution ciphers. Seamless workflow - Write anywhere -> encrypt -> paste back -> decrypt easily with account or manual key. Perfect for daily journaling : ) Try creating an account (or continue without an account), encrypting a journal entry, saving it, and then decrypting it again. Swiption and Randomised Modes are the most interesting and secure features to experiment with. To test it, run these on terminal : pip install privournal python import MainCode MainCode.start() Thank you so much for reading! : )
I made Privournal, a retro CLI application for private journaling and custom text encryption featuring basic ciphers, advanced encryption (Swiption, Randomised, Manual Modes Hehe), and new features like Show Keys and View Account. Pheww you’re gonna love this if you’ve people trying to read your journals 😭 The hardest part was restructuring the whole flow so as to make it less repetitive and cleaner , fixing CLI table alignment glitches, and honestly, if you saw my last ship you’d know that the Swiption feature I made gave me a pretty tough time, Lol. Though I’m really proud of creating a seamless terminal workflow and getting it published live on PyPI as well as GitHub, this is one of the few things I’ve worked on and completed in my life. To test it out, run pip install –upgrade privournal, and type privournal in your terminal, and try encrypting and immediately decrypting a short sentence with or without an account!...
|
1792982962.9040806
|
1793069362.9040806
|
|
67020
|
radiante by @ardente_c | Stardance
|
ardente_c
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: radiante by @ardente_c | Stardance
|
1792464562.5172958
|
1793069362.5172958
|
|
29967
|
Trivia Game by @starkiller261 | Stardance
|
starkiller261
|
2
|
34.0
|
82
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T16:52:41Z", "hours": 22.0, "multiplier": 1.59, "payout": 35, "blessing": "neutral", "text": "NO AI– completely coded by hand. Spent 20 more hours on this new redesign following the recommendations from my last ship about changing the ui. This is a self hosted kubernetes cluster and full stack website with a flutter ui, Spring Boot backend, connected using a RESTful architectured api. I also used postgresql to store user information and that was seperately hosted using supabase. I then used tailscale to tunnel traffic to my home lab setup. It all works be allowing a user to sign in with jwt authentication through the spring boot backend and generating trivia questions through the open trivia database api.", "repo": "https://github.com/petevass/Trivia-Generator", "demo": "https://stardance-frontend.tail5b0cb9.ts.net/"}, {"ship_num": 2, "ts": "2026-07-22T02:52:42Z", "hours": 12.0, "multiplier": 4.01, "payout": 47, "blessing": "neutral", "text": "This a fullstack app using the spring mvc framework which allows users to test their knowledge to the limits through the variety of trivia topics and questions in the app. The webstack is a Spring MVC, Thymeleaf, and Postgres app with supabase used to host the database and ngrok used to tunnel from a self-hosting rig", "repo": "https://github.com/petevass/Trivia-Generator", "demo": "https://stardance-frontend.tail5b0cb9.ts.net/"}]...
|
[{"post_id": 46589, "ts": "202 [{"post_id": 46589, "ts": "2026-08-13T22:36:31Z", "hours": 6.3025, "text": "Finished Game Play UI"}, {"post_id": 37423, "ts": "2026-07-30T04:01:22Z", "hours": 8.8994, "text": "Working on the Leaderboard"}, {"post_id": 35331, "ts": "2026-07-26T17:26:18Z", "hours": 6.865, "text": "New Flutter Frontend in the works"}, {"post_id": 32041, "ts": "2026-07-20T22:33:58Z", "hours": 3.5997, "text": "UIs Finnaly Done"}, {"post_id": 31269, "ts": "2026-07-19T15:23:08Z", "hours": 4.86, "text": "Trivia API is finished, now I just have to make the frontend"}, {"post_id": 29885, "ts": "2026-07-17T01:32:18Z", "hours": 3.2933, "text": "Just finished configuring my data base and jwt authentication system"}]...
|
Title: Trivia Game by @starkiller261 | Stardance
Title: Trivia Game by @starkiller261 | Stardance
Devlogs:
Just finished configuring my data base and jwt authentication system
Trivia API is finished, now I just have to make the frontend
UIs Finnaly Done
New Flutter Frontend in the works
Working on the Leaderboard
Finished Game Play UI
Ships:
This a fullstack app using the spring mvc framework which allows users to test their knowledge to the limits through the variety of trivia topics and questions in the app. The webstack is a Spring MVC, Thymeleaf, and Postgres app with supabase used to host the database and ngrok used to tunnel from a self-hosting rig
NO AI– completely coded by hand. Spent 20 more hours on this new redesign following the recommendations from my last ship about changing the ui. This is a self hosted kubernetes cluster and full stack website with a flutter ui, Spring Boot backend, connected using a RESTful architectured api. I also used postgresql to store user information and that was seperately hosted using supabase. I then used tailscale to tunnel traffic to my home lab setup. It all works be allowing a user to sign in with jwt authentication through the spring boot backend and generating trivia questions through the open trivia database api....
|
1792982961.7230878
|
1793069361.7230878
|
|
67019
|
low_beam by @Kathirvelan_S | Stardance
|
Kathirvelan_S
|
0
|
8.73
|
0
|
[]
|
[{"post_id": 75772, "ts": "202 [{"post_id": 75772, "ts": "2026-10-01T01:39:08Z", "hours": 8.7253, "text": "I was working on this for another project which’s deadline was 30th september so i pulled a marathon"}]...
|
Title: low_beam by @Kathirvelan_S | Stardance
Dev Title: low_beam by @Kathirvelan_S | Stardance
Devlogs:
I was working on this for another project which’s deadline was 30th september so i pulled a marathon...
|
1792464561.6712477
|
1793069361.6712477
|
|
67018
|
nexus.iso by @Srikar1705 | Stardance
|
Srikar1705
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: nexus.iso by @Srikar1705 | Stardance
|
1792464560.8276782
|
1793069360.8276782
|
|
67017
|
My own site! by @Kami | Stardance
|
Kami
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @Kami | Stardance
|
1792464560.0054553
|
1793069360.0054553
|
|
54030
|
BroTurnYourHead by @Afraz | Stardance
|
Afraz
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-26T17:19:21Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a head tracker for Simulators/Games. It is called BroTurnYourHead, It Tracks Your Head with an MPU 6050 and sends HID Mouse Signals with an Arduino UNO R4 WiFi The Most challenging part was definitely calibrating the MPU 6050 to my head movements, I had to use the help from chatgpt, otherwise everything else was easy and went smooth like butter.", "repo": "https://github.com/afrazakbar/BroTurnYourHead", "demo": ""}]...
|
[{"post_id": 54868, "ts": "202 [{"post_id": 54868, "ts": "2026-08-26T02:05:41Z", "hours": 1.5667, "text": "gave the uno an enclosure and put the mpu in a helmet so it is easy to wear"}, {"post_id": 54833, "ts": "2026-08-26T00:03:53Z", "hours": 0.6131, "text": "Programmed HID Functions using the Mouse.h library"}, {"post_id": 54251, "ts": "2026-08-25T04:29:14Z", "hours": 0.7142, "text": "Programming the Arduino !! it is just a test code to see of the sensors work"}, {"post_id": 54222, "ts": "2026-08-25T03:42:29Z", "hours": 0.3833, "text": "Built the circuit for BTYH BTYH Stands for BroTurnYourHead which is a head tracker for flight sims and car sims"}]...
|
Title: BroTurnYourHead by @Afraz | Stardance
Devl Title: BroTurnYourHead by @Afraz | Stardance
Devlogs:
Built the circuit for BTYH BTYH Stands for BroTurnYourHead which is a head tracker for flight sims and car sims
Programming the Arduino !! it is just a test code to see of the sensors work
Programmed HID Functions using the Mouse.h library
gave the uno an enclosure and put the mpu in a helmet so it is easy to wear
Ships:
I made a head tracker for Simulators/Games. It is called BroTurnYourHead, It Tracks Your Head with an MPU 6050 and sends HID Mouse Signals with an Arduino UNO R4 WiFi The Most challenging part was definitely calibrating the MPU 6050 to my head movements, I had to use the help from chatgpt, otherwise everything else was easy and went smooth like butter....
|
1792982959.2309194
|
1793069359.2309194
|
|
67016
|
My awesome macropad! by @jyotishmanpathak | Starda My awesome macropad! by @jyotishmanpathak | Stardance...
|
jyotishmanpathak
|
0
|
0.3
|
0
|
[]
|
[{"post_id": 78341, "ts": "202 [{"post_id": 78341, "ts": "2026-10-10T14:38:52Z", "hours": 0.3, "text": "I am currently working on the micropad project"}]...
|
Title: My awesome macropad! by @jyotishmanpathak | Title: My awesome macropad! by @jyotishmanpathak | Stardance
Devlogs:
I am currently working on the micropad project...
|
1792464559.1460485
|
1793069359.1460485
|
|
5377
|
Fight Game by @Hamstersarus | Stardance
|
Hamstersarus
|
1
|
5.0
|
39
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-23T02:31:26Z", "hours": 5.0, "multiplier": 7.23, "payout": 39, "blessing": "neutral", "text": "This is a Java turn-based fighting game where monsters, creatures, and chaos agents battle on a 10×10 arena. The intent of this project is to demonstrate software development in Java with heavy use of a modern LLM tool. I used Anthropic’s Claude Sonnet 4.6 with occasional use of Opus 4.7. The development environment I chose is VSCode along with Claude CLI. This project serves as the final project in my APCSA Java programming class. The use of these AI tools is in contrast to everything we’ve done in the course where prior use of LLMs was prohibited.", "repo": "https://github.com/Hamstersarus/FightGame", "demo": "https://fight.hamstersarus.hackclub.app/"}]...
|
[{"post_id": 14089, "ts": "202 [{"post_id": 14089, "ts": "2026-06-23T02:25:50Z", "hours": 1.8631, "text": "I added a demo url. I have a docker file that I connect to Render which hosts my website."}, {"post_id": 5698, "ts": "2026-06-09T16:16:04Z", "hours": 1.8578, "text": "The quit option: Added a Q — Quit option to the action menu so it appears on every turn. Typing it exits the game cleanly with a goodbye message. It’s also documented on the instructions screen now. Trimming dead code: Character.java carried a full set of getters and setters that nothing in the game actually called — every field is accessed directly. I removed all of them, so Character.java is now just its fields, the ANSI color constants, and a constructor, which is exactly what a data-model class should be. Board.java documentation: Added thorough inline comments throughout Board.java, explaining the grid primitives, the ANSI cursor-positioning trick used in printBoard() (the CELL/START column math that keeps emoji aligned), and every map-object method. The big one — an automated test harness: The headline addition is TestHarness.java, a standalone tool that stress-tests the whole combat system. It runs every character against every character — all 100 matchups, 20 times each, in two passes (once with map objects, once without) for roughly 4,000 battles. Both fighters are driven by the existing opponent AI, so no input is needed. Each battle is wrapped to catch any exception or assertion failure, and a turn cap catches any battle that never ends. At the end it prints a win-rate matrix plus a count of any crashes or timeouts. Making this fast required one small change to Fight.java: an animationsEnabled flag, because the attack animation uses Thread.sleep and 4,000 battles of real-time animation would take hours. The flag defaults to on, so normal play is unaffected; the harness flips it off. I wrote the full design into CLAUDE.md before building it. The first run came back completely clean — 0 exceptions, 0 timeouts, all in about 300ms — and the results matrix matched expectations (Dragon dominates, Goblin and Zombie struggle), which is a good sign the combat, ability, shield, and map-object systems all hold up under every pairing. Smaller touches: Added a credits line under the title screen, updated the README with the quit option, the new file, and a testing section."}, {"post_id": 1238, "ts": "2026-06-03T02:52:11Z", "hours": 1.7181, "text": "The biggest change this session was a major refactor of how the code is organized across files. Fight.java was getting bloated as the game controller, so logic was redistributed to the classes that actually own it. Board.java gained five new methods: printBoard() (the bordered grid renderer), spawnObjects(), checkObjectInteraction(), restoreHouseIfVacating(), and ejectFromHouseIfExpired(). All of the map object logic now lives alongside the board data it operates on, rather than sitting in the game controller as static helpers. Opponent.java absorbed moveOpponentToward() and opponentAI() as instance methods. An opponent now knows how to move and take its turn — Fight.java just calls opponent.opponentAI(…) instead of running all that logic externally. Fight.java is now significantly leaner, focused only on game setup, the turn loop, player input, and UI rendering. On the bug fix side, the shield raise failure messages (“Something is in the way”) were moved out of raiseShield() and into the player-only call site. Previously these messages would print whenever the opponent AI tried and failed to raise its shield, which confused players who weren’t doing anything with their shield. The board display was also reworked to use ANSI cursor column positioning (\\033[nG) to force each cell to a fixed terminal column, solving a long-standing alignment issue where emoji with different display widths would push cells out of place. The instructions screen was rewritten — cleaner language, shorter sentences, and a new map objects section explaining how the house, hospital, and heart work. The “(I) How to play” hint was moved to sit next to the “Choose your character” header so it’s visible before scrolling through the roster. The README was also reviewed and is current."}]...
|
Title: Fight Game by @Hamstersarus | Stardance
De Title: Fight Game by @Hamstersarus | Stardance
Devlogs:
The biggest change this session was a major refactor of how the code is organized across files. Fight.java was getting bloated as the game controller, so logic was redistributed to the classes that actually own it. Board.java gained five new methods: printBoard() (the bordered grid renderer), spawnObjects(), checkObjectInteraction(), restoreHouseIfVacating(), and ejectFromHouseIfExpired(). All of the map object logic now lives alongside the board data it operates on, rather than sitting in the game controller as static helpers. Opponent.java absorbed moveOpponentToward() and opponentAI() as instance methods. An opponent now knows how to move and take its turn — Fight.java just calls opponent.opponentAI(…) instead of running all that logic externally. Fight.java is now significantly leaner, focused only on game setup, the turn loop, player input, and UI rendering. On the bug fix side, the shield raise failure messages (“Something is in the way”) were moved out of raiseShield() and into the player-only call site. Previously these messages would print whenever the opponent AI tried and failed to raise its shield, which confused players who weren’t doing anything with their shield. The board display was also reworked to use ANSI cursor column positioning (\033[nG) to force each cell to a fixed terminal column, solving a long-standing alignment issue where emoji with different display widths would push cells out of place. The instructions screen was rewritten — cleaner language, shorter sentences, and a new map objects section explaining how the house, hospital, and heart work. The “(I) How to play” hint was moved to sit next to the “Choose your character” header so it’s visible before scrolling through the roster. The README was also reviewed and is current.
The quit option: Added a Q — Quit option to the action menu so it appears on every turn. Typing it exits the game cleanly with a goodbye message. It’s also documented on the instructions screen now. Trimming dead code: Character.java carried a full set of getters and setters that nothing in the game actually called — every field is accessed directly. I removed all of them, so Character.java is now just its fields, the ANSI color constants, and a constructor, which is exactly what a data-model class should be. Board.java documentation: Added thorough inline comments throughout Board.java, explaining the grid primitives, the ANSI cursor-positioning trick used in printBoard() (the CELL/START column math that keeps emoji aligned), and every map-object method. The big one — an automated test harness: The headline addition is TestHarness.java, a standalone tool that stress-tests the whole combat system. It runs every character against every character — all 100 matchups, 20 times each, in two passes (once with map objects, once without) for roughly 4,000 battles. Both fighters are driven by the existing opponent AI, so no input is needed. Each battle is wrapped to catch any exception or assertion failure, and a turn cap catches any battle that never ends. At the end it prints a win-rate matrix plus a count of any crashes or timeouts. Making this fast required one small change to Fight.java: an animationsEnabled flag, because the attack animation uses Thread.sleep and 4,000 battles of real-time animation would take hours. The flag defaults to on, so normal play is unaffected; the harness flips it off. I wrote the full design into CLAUDE.md before building it. The first run came back completely clean — 0 exceptions, 0 timeouts, all in about 300ms — and the results matrix matched expectations (Dragon dominates, Goblin and Zombie struggle), which is a good sign the combat, ability, shield, and map-object systems all hold up under every pairing. Smaller touches: Added a credits line under the title screen, updated the README with the quit option, the new file, and a testing section.
I added a demo url. I have a docker file that I connect to Render which hosts my website.
Ships:
This is a Java turn-based fighting game where monsters, creatures, and chaos agents battle on a 10×10 arena. The intent of this project is to demonstrate software development in Java with heavy use of a modern LLM tool. I used Anthropic’s Claude Sonnet 4.6 with occasional use of Opus 4.7. The development environment I chose is VSCode along with Claude CLI. This project serves as the final project in my APCSA Java programming class. The use of these AI tools is in contrast to everything we’ve done in the course where prior use of LLMs was prohibited....
|
1792982958.0819476
|
1793069358.0819476
|
|
67015
|
RepeatAfterMe by @brian0804 | Stardance
|
brian0804
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: RepeatAfterMe by @brian0804 | Stardance
|
1792464557.9932358
|
1793069357.9932358
|
|
67014
|
my APOD site by @moha_sameh793 | Stardance
|
moha_sameh793
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @moha_sameh793 | Stardance
|
1792464557.1472406
|
1793069357.1472406
|
|
30742
|
XacOS by @xacobema | Stardance
|
xacobema
|
2
|
19.96
|
11
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-08T14:18:45Z", "hours": 6.0, "multiplier": 1.98, "payout": 11, "blessing": "neutral", "text": "XacOS v1.0 [You will probably have to zoom out to see everything properly, I didn´t find a reliable and simple way to make everything fit every screen, altough there is probably a way] What’s new in 1.0 Fixed bugs, like the windows changing shape when dragged to the right corner of the screen Revamped settings: you can now add your own wallpaper, change the font of the whole OS and see some information about your PC Added very simple notes app Start menu: access it by clicking the XacOS logo in the corner of the taskbar, see and open all of your apps There was A LOT of debugging Honestly, since almost 2 months have passed since I made v0.1, and that being my first real experience with HTML, CSS and JavaScript, and also forgetting how I coded the project, this update was a little challenging. Obviously, a lot of googling and W3schools helped me. I still think that maybe in the future I will make a 1.1 or 2.0 with more interesting features, but as a first experience with web development, I think it was great. I would love to mke 1.1 now, but I start school tomorrow, so it’s going to be difficult… Also, thank you very much HackClub and all it’s volunteers for making these awesome projects, I hope summer next year I will be able to participate again, because it’s the last year before I turn 18 😭", "repo": "https://github.com/xacb33/XacOS", "demo": "https://xacb33.github.io/XacOS/"}, {"ship_num": 2, "ts": "2026-07-06T22:42:40Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I think I finally finished the first version of XacOS! It was quite challenging to fix up bugs, as I had never coded in HTML nor JavaScript", "repo": "https://github.com/xacb33/XacOS", "demo": "https://xacb33.github.io/XacOS/"}]...
|
[{"post_id": 71402, "ts": "202 [{"post_id": 71402, "ts": "2026-09-20T19:12:24Z", "hours": 3.0508, "text": "Let’s see if I remember everything: 1. Changed the default system font to one that I think fits better 2. Added paint.js as an app 3. Added user profile customization, with profile picture and username (for now it doesn’t do much, just show it in the start menu) 4. Now there’s a little indicator in the taskbar on what app is currently on top 5. Changed the buttons of the notes apps to icons 6. Setup now tells you to choose your favourite font 7. A little calendar will appear when hovering over the date and time on the taskbar 8. Made most settings persist between page refresh with localStorage and some minor bug-fixes, like the aboutMe screen not going to the top when it’s taskbar icon was clicked. I thinks that’s everything, I also plan on adding at least one or two more apps coded by me and maybe something like a launcher or app store for iframe/embeded stuff by other people"}, {"post_id": 70565, "ts": "2026-09-19T11:31:46Z", "hours": 2.4183, "text": "I added quite some new features, including: 1. Most setup/OOBE is done, but I will probably add the cusomization options in there. 2. Added a low graphics mode, as some reviewers pointed out that XacOS ran badly on their PC, wich disables animations and disables blur. 3.Compressed all images, wich will also help with performane. 4.Added a new wallpaper by NASA, to resemble StarDance. 5. Added a Security section in settings, wich checks for the URL to make sure it is “genuine XacOS” (It is just a gimmick, XacOS is still completly open source) 6. Added a factory reset option in settings, wich deletes all settings and files saved in localStorage. 7. Added a start-up sound. Still have some things that I want to add but I’m happy on how this is turning out, altough I lost my streak because of school…"}, {"post_id": 65495, "ts": "2026-09-10T17:53:35Z", "hours": 1.4144, "text": "Started adding quite some things, but more work is required. (I plan on adding more features, this is v2.0, not v1.1 ;) ) 1. Changed the old welcome window for a placeholder OOBE/Setup, 2. Started working on locally saving the notes to be persistant even when you close the browser, 3. Moved my personal projects to a separate folder inside of file explorer, 4. Added an outline to program names in the desktop, so it can work with both dark and light wallpapers, 5. Fixed the problem of when selecting an icon it would move slightly. Wish me luck, I have no idea why the local saving is working (Why does it need a random cryptographic ID?)"}, {"post_id": 64887, "ts": "2026-09-09T16:23:43Z", "hours": 0.5356, "text": "Sticky Notes now has more functions and windows are animated! I still have to code all the saving to localstorage when you click save and displaying them as openeable files, but for now you can export your note to a txt file to view whenever. Also, looking at the screenshot, looks like I made Settings not be a square anymore, probably when making the text centered with the icon… I will fix that too"}, {"post_id": 64864, "ts": "2026-09-09T15:38:39Z", "hours": 0.5381, "text": "I know I said that I was starting school, but the first days we aren’t having a lot of work, and I was dissapointed on only getting a x1.98 multiplier in v1, so I’ve decided to fix everything the reviewers have pointed out, starting by making everything smaller, and using relative percentages, instead of fixed px values both in HTML and in CSS. Secondly, I have added a little animation on the opening and closing of the Start Menu, turns out it was way easier than I thought, I thought that you had to code the animation by hand. I will also add animations to the other windows (probably easier since they all have a common css class). Lastly, I renamed the welcome screen to About Me, as I plan to do an onboarding foor the OS, and some reviewers pointed out that XacOS v1 seemed more like a personal website instead of a WebOS. As you can read, I am also giving more details in the devlog, and doing them more often."}, {"post_id": 64225, "ts": "2026-09-08T14:06:15Z", "hours": 0.2781, "text": "Updated GitHub and touched up some minor things before shipping!"}, {"post_id": 64215, "ts": "2026-09-08T13:37:40Z", "hours": 1.9003, "text": "I figured out how to make windows not do weird things when they are dragged to the right (It was a very simple solution), gave Settings more functions, like changing the font and uploading your own wallpaper, fixed a couple of bugs and made a very simple Sticky Notes app. I think I will update the repo, do some slight changes, and ship XacOS v1.0! (Previous was beta)"}, {"post_id": 63486, "ts": "2026-09-07T11:25:59Z", "hours": 0.7506, "text": "Found a way to preview the page without having to redownload the files every single time, wich was much needed. Added a working start menuthat opens when you click XacOS and closes by clicking it again, opening an app with it or clicking a window. I still have to fix the problem of windows deforming when they get to the right side of the screen…"}, {"post_id": 31831, "ts": "2026-07-20T15:00:58Z", "hours": 1.7636, "text": "Of course it didn’t work after reorganizing the code. After fixing it up I started implementing the Start Menu (still needs a lot of work) , and only had opened Welome Screen, so I din’t realise that every other window closed with the start Menu, so I started re-cheking the code and found nothing, changed a couple of things that I thought hat was causing that, nothing. I gave up and asked Github AI what was going on but it DIDN’T KNOW (and tried rewriting my code)… I ended up checking again the html….. there was a missing div ending declaration. AAAAAAAAA"}, {"post_id": 27254, "ts": "2026-07-12T17:27:11Z", "hours": 0.9331, "text": "Tidied up a lot the JavaScript code. Much needed! Now to try if it still works… fingers crossed"}, {"post_id": 23785, "ts": "2026-07-06T22:39:30Z", "hours": 0.5344, "text": "Fixing up the README and setting up github pages"}, {"post_id": 23772, "ts": "2026-07-06T22:06:57Z", "hours": 2.1356, "text": "Hooray! I think version 1 of XacOS is finished. It is still pretty barebones and the code is a mess (compared to what others have done this is worthless), but I hope I can polish everything in WebOS 2. All the basics are done and I added the feature of icons of open apps in the taskbar, and when you click it it brings the window to the top"}, {"post_id": 23673, "ts": "2026-07-06T19:43:09Z", "hours": 2.3122, "text": "Project is going great! Alough I’m going crazy trying to figure out why The pop up projects movat the same time as the main projects window…"}, {"post_id": 22881, "ts": "2026-07-05T14:44:56Z", "hours": 0.6561, "text": "I didn’t have Hackatime set up properly… But yesterday I locked in and did 71 different versions of XacOS (Each one with a little bit more things than the one before) Last thing I have done fllowing the guide was making the window openable and closable. I kinda panicked when tidying up the code a little bit all the JS stopped working, but it’s fixed now. (btw, I spent way more than 37min on this)"}]...
|
Title: XacOS by @xacobema | Stardance
Devlogs:
I Title: XacOS by @xacobema | Stardance
Devlogs:
I didn’t have Hackatime set up properly… But yesterday I locked in and did 71 different versions of XacOS (Each one with a little bit more things than the one before) Last thing I have done fllowing the guide was making the window openable and closable. I kinda panicked when tidying up the code a little bit all the JS stopped working, but it’s fixed now. (btw, I spent way more than 37min on this)
Project is going great! Alough I’m going crazy trying to figure out why The pop up projects movat the same time as the main projects window…
Hooray! I think version 1 of XacOS is finished. It is still pretty barebones and the code is a mess (compared to what others have done this is worthless), but I hope I can polish everything in WebOS 2. All the basics are done and I added the feature of icons of open apps in the taskbar, and when you click it it brings the window to the top
Fixing up the README and setting up github pages
Tidied up a lot the JavaScript code. Much needed! Now to try if it still works… fingers crossed
Of course it didn’t work after reorganizing the code. After fixing it up I started implementing the Start Menu (still needs a lot of work) , and only had opened Welome Screen, so I din’t realise that every other window closed with the start Menu, so I started re-cheking the code and found nothing, changed a couple of things that I thought hat was causing that, nothing. I gave up and asked Github AI what was going on but it DIDN’T KNOW (and tried rewriting my code)… I ended up checking again the html….. there was a missing div ending declaration. AAAAAAAAA
Found a way to preview the page without having to redownload the files every single time, wich was much needed. Added a working start menuthat opens when you click XacOS and closes by clicking it again, opening an app with it or clicking a window. I still have to fix the problem of windows deforming when they get to the right side of the screen…
I figured out how to make windows not do weird things when they are dragged to the right (It was a very simple solution), gave Settings more functions, like changing the font and uploading your own wallpaper, fixed a couple of bugs and made a very simple Sticky Notes app. I think I will update the repo, do some slight changes, and ship XacOS v1.0! (Previous was beta)
Updated GitHub and touched up some minor things before shipping!
I know I said that I was starting school, but the first days we aren’t having a lot of work, and I was dissapointed on only getting a x1.98 multiplier in v1, so I’ve decided to fix everything the reviewers have pointed out, starting by making everything smaller, and using relative percentages, instead of fixed px values both in HTML and in CSS. Secondly, I have added a little animation on the opening and closing of the Start Menu, turns out it was way easier than I thought, I thought that you had to code the animation by hand. I will also add animations to the other windows (probably easier since they all have a common css class). Lastly, I renamed the welcome screen to About Me, as I plan to do an onboarding foor the OS, and some reviewers pointed out that XacOS v1 seemed more like a personal website instead of a WebOS. As you can read, I am also giving more details in the devlog, and doing them more often.
Sticky Notes now has more functions and windows are animated! I still have to code all the saving to localstorage when you click save and displaying them as openeable files, but for now you can export your note to a txt file to view whenever. Also, looking at the screenshot, looks like I made Settings not be a square anymore, probably when making the text centered with the icon… I will fix that too
Started adding quite some things, but more work is required. (I plan on adding more features, this is v2.0, not v1.1 ;) ) 1. Changed the old welcome window for a placeholder OOBE/Setup, 2. Started working on locally saving the notes to be persistant even when you close the browser, 3. Moved my personal projects to a separate folder inside of file explorer, 4. Added an outline to program names in the desktop, so it can work with both dark and light wallpapers, 5. Fixed the problem of when selecting an icon it would move slightly. Wish me luck, I have no idea why the local saving is working (Why does it need a random cryptographic ID?)
I added quite some new features, including: 1. Most setup/OOBE is done, but I will probably add the cusomization options in there. 2. Added a low graphics mode, as some reviewers pointed out that XacOS ran badly on their PC, wich disables animations and disables blur. 3.Compressed all images, wich will also help with performane. 4.Added a new wallpaper by NASA, to resemble StarDance. 5. Added a Security section in settings, wich checks for the URL to make sure it is “genuine XacOS” (It is just a gimmick, XacOS is still completly open source) 6. Added a factory reset option in settings, wich deletes all settings and files saved in localStorage. 7. Added a start-up sound. Still have some things that I want to add but I’m happy on how this is turning out, altough I lost my streak because of school…
Let’s see if I remember everything: 1. Changed the default system font to one that I think fits better 2. Added paint.js as an app 3. Added user profile customization, with profile picture and username (for now it doesn’t do much, just show it in the start menu) 4. Now there’s a little indicator in the taskbar on what app is currently on top 5. Changed the buttons of the notes apps to icons 6. Setup now tells you to choose your favourite font 7. A little calendar will appear when hovering over the date and time on the taskbar 8. Made most settings persist between page refresh with localStorage and some minor bug-fixes, like the aboutMe screen not going to the top when it’s taskbar icon was clicked. I thinks that’s everything, I also plan on adding at least one or two more apps coded by me and maybe something like a launcher or app store for iframe/embeded stuff by other people
Ships:
I think I finally finished the first version of XacOS! It was quite challenging to fix up bugs, as I had never coded in HTML nor JavaScript
XacOS v1.0 [You will probably have to zoom out to see everything properly, I didn´t find a reliable and simple way to make everything fit every screen, altough there is probably a way] What’s new in 1.0 Fixed bugs, like the windows changing shape when dragged to the right corner of the screen Revamped settings: you can now add your own wallpaper, change the font of the whole OS and see some information about your PC Added very simple notes app Start menu: access it by clicking the XacOS logo in the corner of the taskbar, see and open all of your apps There was A LOT of debugging Honestly, since almost 2 months have passed since I made v0.1, and that being my first real experience with HTML, CSS and JavaScript, and also forgetting how I coded the project, this update was a little challenging. Obviously, a lot of googling and W3schools helped me. I still think that maybe in the future I will make a 1.1 or 2.0 with more interesting features, but as a first experience with web development, I think it was great. I would love to mke 1.1 now, but I start school tomorrow, so it’s going to be difficult… Also, thank you very much HackClub and all it’s volunteers for making these awesome projects, I hope summer next year I will be able to participate again, because it’s the last year before I turn 18 😭...
|
1792982956.6396759
|
1793069356.6396759
|
|
67013
|
Rocket calendar 2026 by @reenamol309 | Stardance
|
reenamol309
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Rocket calendar 2026 by @reenamol309 | Star Title: Rocket calendar 2026 by @reenamol309 | Stardance...
|
1792464556.3256288
|
1793069356.3256288
|
|
16632
|
Marunnundo by @Adarsh | Stardance
|
Adarsh
|
1
|
4.0
|
16
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-13T17:50:54Z", "hours": 4.0, "multiplier": 4.3, "payout": 16, "blessing": "neutral", "text": "I made a medicine finder for my state", "repo": "https://github.com/stairmoss/Marunnundo", "demo": "https://marunnundo.vercel.app/"}]...
|
[{"post_id": 8182, "ts": "2026 [{"post_id": 8182, "ts": "2026-06-13T17:05:42Z", "hours": 0.8606, "text": "made the portfolio website for this and also in this i have made a video from veo to animate which is showed in side"}, {"post_id": 8079, "ts": "2026-06-13T14:19:56Z", "hours": 0.8553, "text": "i have added a side bar which give the info about the pharmacy which redirects to the google search and changed the green button color to the blue"}, {"post_id": 8008, "ts": "2026-06-13T11:14:13Z", "hours": 0.8369, "text": "i have added dark mode with a lime green cuz blue wasnt perfect and also then also i added these satellite map and also the malayalam language"}, {"post_id": 6926, "ts": "2026-06-11T16:35:11Z", "hours": 0.7675, "text": "i have made the website working and which includes as we can give the current location it gives us near pharmacy and its google profile so that people get direction on map"}, {"post_id": 6853, "ts": "2026-06-11T14:41:47Z", "hours": 0.4817, "text": "worked on the UI"}]...
|
Title: Marunnundo by @Adarsh | Stardance
Devlogs: Title: Marunnundo by @Adarsh | Stardance
Devlogs:
worked on the UI
i have made the website working and which includes as we can give the current location it gives us near pharmacy and its google profile so that people get direction on map
i have added dark mode with a lime green cuz blue wasnt perfect and also then also i added these satellite map and also the malayalam language
i have added a side bar which give the info about the pharmacy which redirects to the google search and changed the green button color to the blue
made the portfolio website for this and also in this i have made a video from veo to animate which is showed in side
Ships:
I made a medicine finder for my state...
|
1792982955.499756
|
1793069355.499756
|
|
67010
|
WARIO by @codinggod8488 | Stardance
|
codinggod8488
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WARIO by @codinggod8488 | Stardance
|
1792464555.4662628
|
1793069355.4662628
|
|
67009
|
BLARE by @Aarushbhatnagar | Stardance
|
Aarushbhatnagar
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: BLARE by @Aarushbhatnagar | Stardance
|
1792464554.6269054
|
1793069354.6269054
|