|
42285
|
eBPF-Shield by @rehan-shashi | Stardance
|
rehan-shashi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: eBPF-Shield by @rehan-shashi | Stardance
|
1793170238.1037936
|
1793775038.1037936
|
|
39856
|
eDP panel controller by @salmorejo | Stardance
|
salmorejo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: eDP panel controller by @salmorejo | Starda Title: eDP panel controller by @salmorejo | Stardance...
|
1793328594.816447
|
1793933394.816447
|
|
7796
|
eFootball hub by @faizaaaaaaan | Stardance
|
faizaaaaaaan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: eFootball hub by @faizaaaaaaan | Stardance
|
1793314440.2381926
|
1793919240.2381926
|
|
43738
|
eOS by @ejr | Stardance
|
ejr
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: eOS by @ejr | Stardance
|
1792943367.0806682
|
1793807367.0806682
|
|
13692
|
eWatch by @axeld | Stardance
|
axeld
|
0
|
2.18
|
0
|
[]
|
[{"post_id": 6528, "ts": "2026 [{"post_id": 6528, "ts": "2026-06-10T23:42:05Z", "hours": 2.1822, "text": "Wired the USB port, esp32, and some flash in the schematic editor."}]...
|
Title: eWatch by @axeld | Stardance
Devlogs:
Wire Title: eWatch by @axeld | Stardance
Devlogs:
Wired the USB port, esp32, and some flash in the schematic editor....
|
1793569872.7280083
|
1794174672.7280083
|
|
56997
|
eXPlayer by @arthihalder | Stardance
|
arthihalder
|
1
|
12.0
|
25
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T04:27:25Z", "hours": 12.0, "multiplier": 4.18, "payout": 25, "blessing": "neutral", "text": "eXPlayer eXPlayer is a terminal-based music player with LRC lyrics support! to install it run the command : pip install explayer How to use it? After using the command to install it simply run explayer it will open the player window, now you need to set the directory or music folder. press [c] on your keyboard to open the command window from there you can set the music folder using command: cd “[music folder path]” and head back to the player with back And now just simply press [p] to play the songs in shuffle! run the command help to learn about more commands! Usage of AI: Just Gpt is used in this project mainly to fix bugs. Though i did not fully copy gpts code i did write the snippets it gave me. It was used in making the lyrics function, config.json saving and loading function, playing next and previous song function, shuffle function, centering the logo. Other places i use it to help me fix bugs like 2 songs skipping at once when pressed next, not setted directory crashing the player. Honestly it was a fun experience for me making my first usable py project!", "repo": "https://github.com/bsastudio601/eXPlayer", "demo": "https://github.com/bsastudio601/eXPlayer/releases/tag/v1.0.0"}]...
|
[{"post_id": 63358, "ts": "202 [{"post_id": 63358, "ts": "2026-09-07T04:23:23Z", "hours": 3.6189, "text": "final devlog: Finally i made the build and hosted it on PyPl. it took me a bit longer that i would like to admit though it was my first time making a py package. but it works now! run the command : pip install explayer to try it out!"}, {"post_id": 62670, "ts": "2026-09-06T04:41:43Z", "hours": 0.6189, "text": "devlog#4 finally added a config,json and save and load function to save the music file path. now it can remember the path so that you dont need to change the path everytime you want to play songs! Next i will add basic customization and fix a few bugs."}, {"post_id": 60209, "ts": "2026-09-02T13:11:26Z", "hours": 2.7856, "text": "devlog#3Finally made the command window for my music player you do a bunch of thing here! though making it was lot harder than i expected specially the function to make the song shuffle and after the first itteration there were lot of bugs so it took help from gpt to fix it! but it works fine now !"}, {"post_id": 60043, "ts": "2026-09-02T04:41:03Z", "hours": 2.5203, "text": "devlog#2 well this happened. though it looked cool. after talking to gpt a bit i fixed it! it seems to be working fine now. Next i have plan to add a command tab or windows where you can customize color, playlist, etc."}, {"post_id": 59462, "ts": "2026-09-01T10:21:02Z", "hours": 2.1431, "text": "devlog#1 For a few days im seeing those reels in insta where people play lyrics in terminal. Im wanting to do the same but making it more dynamic with features such as playing songs in suffle, repeat, finding lyrics file and loadin on its own and a few customization! Today i get the lyrics and basic control system to work. I used this https://www.pygame.org/docs/ref/music.html for basics of playing music. I took the help of gpt to write the code that formates the lrc file. fnally im making the ui with ascii"}]...
|
Title: eXPlayer by @arthihalder | Stardance
Devlo Title: eXPlayer by @arthihalder | Stardance
Devlogs:
devlog#1 For a few days im seeing those reels in insta where people play lyrics in terminal. Im wanting to do the same but making it more dynamic with features such as playing songs in suffle, repeat, finding lyrics file and loadin on its own and a few customization! Today i get the lyrics and basic control system to work. I used this https://www.pygame.org/docs/ref/music.html for basics of playing music. I took the help of gpt to write the code that formates the lrc file. fnally im making the ui with ascii
devlog#2 well this happened. though it looked cool. after talking to gpt a bit i fixed it! it seems to be working fine now. Next i have plan to add a command tab or windows where you can customize color, playlist, etc.
devlog#3Finally made the command window for my music player you do a bunch of thing here! though making it was lot harder than i expected specially the function to make the song shuffle and after the first itteration there were lot of bugs so it took help from gpt to fix it! but it works fine now !
devlog#4 finally added a config,json and save and load function to save the music file path. now it can remember the path so that you dont need to change the path everytime you want to play songs! Next i will add basic customization and fix a few bugs.
final devlog: Finally i made the build and hosted it on PyPl. it took me a bit longer that i would like to admit though it was my first time making a py package. but it works now! run the command : pip install explayer to try it out!
Ships:
eXPlayer eXPlayer is a terminal-based music player with LRC lyrics support! to install it run the command : pip install explayer How to use it? After using the command to install it simply run explayer it will open the player window, now you need to set the directory or music folder. press [c] on your keyboard to open the command window from there you can set the music folder using command: cd “[music folder path]” and head back to the player with back And now just simply press [p] to play the songs in shuffle! run the command help to learn about more commands! Usage of AI: Just Gpt is used in this project mainly to fix bugs. Though i did not fully copy gpts code i did write the snippets it gave me. It was used in making the lyrics function, config.json saving and loading function, playing next and previous song function, shuffle function, centering the logo. Other places i use it to help me fix bugs like 2 songs skipping at once when pressed next, not setted directory crashing the player. Honestly it was a fun experience for me making my first usable py project!...
|
1793692504.3969765
|
1793778904.3969765
|
|
31471
|
eXTab by @arthihalder | Stardance
|
arthihalder
|
1
|
12.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-13T18:35:07Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "eXTab is a eDex UI inspired new tab page! eDex UI is a custom sci-fi terminal for win and linux . features! : the page features a terminal with commands for opening google, youtube, github, chatGPT and also includes directly search through google and youtube. there is also a few fun commands! such as wrst and pcst which shows you pc status and weather! the left bar includes weather data, system status and a clock. the left bottom box includes a to do list the right bar includes Asteroid data from api.nasa.gov the bottom right box has a virtual keyboard that syncs with your physical keyboard! and in the center you have your terminal! Which i made with jQuery following a post how i made it? : for the most part i coded my self till the part to make the keyboard came. i could barely find any tutorial that was flexible enough. finally found a post that showed making a virtual keyboard with jQuery. in this part of project i had to take serious help of gpt to make the part about syncing physical keyboard to the virtual one. other than this i followed posts and tutorial and the guide it self to make the page. thanks! :)", "repo": "https://github.com/bsastudio601/eXTab", "demo": "https://bsastudio601.github.io/eXTab/"}]...
|
[{"post_id": 27821, "ts": "202 [{"post_id": 27821, "ts": "2026-07-13T18:24:00Z", "hours": 2.8608, "text": "last devlog before i ship!!!"}, {"post_id": 27648, "ts": "2026-07-13T12:40:48Z", "hours": 3.2847, "text": "Devlog before ship: made the interactive key board part, wrote few commands for terminal and added api to fetch asteroid data from nasa API.Most part was frustrating part was making the interactive keyboard part. I could now find any decent article or tutorials to make that. but finally found https://code.tutsplus.com/creating-a-keyboard-with-css-and-jquery--net-5774t this one there were a few problems with this one i did not understand a lot of this. but managed to get it to work. I Had to take a lot of help from Claude for the keyboard. hopefully i get better :/"}, {"post_id": 26005, "ts": "2026-07-10T15:57:10Z", "hours": 4.3736, "text": "Second devlog! so I made the layout cleaner, Added a clock, Added a current weather interface and added a to do list. the weather data is from Open Meteo! is was a trick part to code so i followed someone elses project :/. the todo list was also a bit trickey for me to make. tomorrow i will work on interactive key board, Nasa API and the commans for the terminal!"}, {"post_id": 25789, "ts": "2026-07-10T07:42:49Z", "hours": 1.8558, "text": "first devlog!: For making the terminal i found a cool library of some sort. you can read it here: https://itnext.io/how-to-create-interactive-terminal-like-website-888bb0972288 i will try to use it to add customs commands and stuff. next i have plans to add a interactve key board at bottom and interactive panels with api on the sides!"}]...
|
Title: eXTab by @arthihalder | Stardance
Devlogs: Title: eXTab by @arthihalder | Stardance
Devlogs:
first devlog!: For making the terminal i found a cool library of some sort. you can read it here: https://itnext.io/how-to-create-interactive-terminal-like-website-888bb0972288 i will try to use it to add customs commands and stuff. next i have plans to add a interactve key board at bottom and interactive panels with api on the sides!
Second devlog! so I made the layout cleaner, Added a clock, Added a current weather interface and added a to do list. the weather data is from Open Meteo! is was a trick part to code so i followed someone elses project :/. the todo list was also a bit trickey for me to make. tomorrow i will work on interactive key board, Nasa API and the commans for the terminal!
Devlog before ship: made the interactive key board part, wrote few commands for terminal and added api to fetch asteroid data from nasa API.Most part was frustrating part was making the interactive keyboard part. I could now find any decent article or tutorials to make that. but finally found https://code.tutsplus.com/creating-a-keyboard-with-css-and-jquery--net-5774t this one there were a few problems with this one i did not understand a lot of this. but managed to get it to work. I Had to take a lot of help from Claude for the keyboard. hopefully i get better :/
last devlog before i ship!!!
Ships:
eXTab is a eDex UI inspired new tab page! eDex UI is a custom sci-fi terminal for win and linux . features! : the page features a terminal with commands for opening google, youtube, github, chatGPT and also includes directly search through google and youtube. there is also a few fun commands! such as wrst and pcst which shows you pc status and weather! the left bar includes weather data, system status and a clock. the left bottom box includes a to do list the right bar includes Asteroid data from api.nasa.gov the bottom right box has a virtual keyboard that syncs with your physical keyboard! and in the center you have your terminal! Which i made with jQuery following a post how i made it? : for the most part i coded my self till the part to make the keyboard came. i could barely find any tutorial that was flexible enough. finally found a post that showed making a virtual keyboard with jQuery. in this part of project i had to take serious help of gpt to make the part about syncing physical keyboard to the virtual one. other than this i followed posts and tutorial and the guide it self to make the page. thanks! :)...
|
1793681529.7764137
|
1793767929.7764137
|
|
5151
|
earth from space climate explorer by @Maira | Star earth from space climate explorer by @Maira | Stardance...
|
Maira
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: earth from space climate explorer by @Maira Title: earth from space climate explorer by @Maira | Stardance...
|
1793184939.3515651
|
1793789739.3515651
|
|
54097
|
easy calculator by @lukas_56376 | Stardance
|
lukas_56376
|
1
|
1.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-25T09:42:45Z", "hours": 1.0, "multiplier": 1.14, "payout": 1, "blessing": "neutral", "text": "Hey, this is an easy calculator with some music, sound effects and easter egg (more on route). Was very nice almost to none AI usage and was nice to learn some JS!", "repo": "https://github.com/Lukas-56376/Easy-Calculator", "demo": "https://lukas-56376.github.io/Easy-Calculator/"}]...
|
[{"post_id": 54352, "ts": "202 [{"post_id": 54352, "ts": "2026-08-25T09:41:17Z", "hours": 1.2631, "text": "The calculator is finished with music, sound effects and one easter egg (look in README)"}]...
|
Title: easy calculator by @lukas_56376 | Stardance Title: easy calculator by @lukas_56376 | Stardance
Devlogs:
The calculator is finished with music, sound effects and one easter egg (look in README)
Ships:
Hey, this is an easy calculator with some music, sound effects and easter egg (more on route). Was very nice almost to none AI usage and was nice to learn some JS!...
|
1792878533.497067
|
1793742533.497067
|
|
50813
|
easy key by @vardaankatyal | Stardance
|
vardaankatyal
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: easy key by @vardaankatyal | Stardance
|
1793364535.1390886
|
1793969335.1390886
|
|
39061
|
easy music player by @fropal | Stardance
|
fropal
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: easy music player by @fropal | Stardance
|
1793425683.4043179
|
1794030483.4043179
|
|
31136
|
easy rickroll by @shaizaanv | Stardance
|
shaizaanv
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: easy rickroll by @shaizaanv | Stardance
|
1793335752.5658202
|
1793940552.5658202
|
|
3634
|
easyAPT by @p14277376 | Stardance
|
p14277376
|
0
|
19.08
|
0
|
[]
|
[{"post_id": 30998, "ts": "202 [{"post_id": 30998, "ts": "2026-07-19T00:50:14Z", "hours": 5.78, "text": "Pre-devlog notes I did the math recently. I only have enough actual time left in this challenge to get one project done and have time to get it reviewed and rated, and that’s only if I’m lucky . So I decided that the “My first slack bot”, “Untitled”, and “Arch on your Android” projects are canceled and my other projects will be paused for a few months or more so that I can dedicate the rest of my coding time to easyAPT, which is almost done. Just 3 hours, a demo system, and a Github release left, and the project I’m most proud of will be ready for anyone to use. Also, I won’t be making a .deb file, and won’t be trying to get it on the Debian or Ubuntu repositories. That would be cool, but that process can take a lot of time. Maybe later, though, but definitely not now. There’s an even simpler way to install it without even cloning the repo once Github releases are published: just download one of the files there (like the .7z, the standard .zip, etc), make the easyAPT directory in the folder you want to, and other steps that I’ll mention in the Github page because they might change. I still will have to do research on how I can create a light Debian environment with the easyAPT demo - a limited version of easyAPT that I’m planning to create later. But that’s for later… Also: an announcement: easyAPT is done! cue ‘tada’ fanfare This is the one of the last devlogs I will be posting for it, for this first version anyway. And I can finally make a Github release! Also this devlog might not be too detailed because there’s still a lot of things I have to do to ship my project. Devlog 8 Besides a full bug testing of every option, here are the new features: 1. A progress bar on the startup prompt Just a nice inclusion. It zooms by within 5 seconds. 2. New updater tool It’s still experimental, but I scraped the old code and started over. It’s a lot more stable, but still has a small chance to delete the wrong thing. 3. Github features finished In fact, all the main menu options are finished. Sorry about the limited detail, I have a lot to do. Thanks for reading anyway, and if you have a question, comment, or suggestion, type it down below."}, {"post_id": 25084, "ts": "2026-07-09T01:50:19Z", "hours": 2.3492, "text": "Pre-devlog notes Sometimes when I’m coding I think it’s only been 5 minutes and then I check the time and I realize It’s been 3 hours… Also after chasing my own tail for hours trying to troubleshoot and code Arch on your Android, I decided it was a good idea to go back to my first project, which has a bunch of new features now and has no dialog flag mistakes. easyAPT devlog 6, maybe 7 A ton of new features have been added to easyAPT. 1. .easyaptgithub.sh This adds an option in the menu to check if Github is working properly on your system. Plus, some options will run it anyway to check if everything is working. 2. Issue/bug reporting You can now use easyAPT to report issues with it, right there in the menu. 3. About easyAPT There is a new About easyAPT option in the menu. Just some basic stuff about the version. Plus, it has missing info that I can’t fill in until I do more research, make a Github release, and ship my project. There’s a ton more, but I don’t have time to discuss it all in a devlog. Thanks for reading! If you have any questions, comments, or suggestions, please leave them down below!"}, {"post_id": 19668, "ts": "2026-07-01T01:33:28Z", "hours": 1.0994, "text": "Pre-devlog notes Yes, this is how I do my devlogs now. I want to take advantage of all Stardance’s new devlog features to make them a bit neater. Also, this may be my first time I made a commit to easyAPT’s Github repository in, like, 2 weeks. I just decided to take a break from coding for a little bit. Actual Devlog 6 We went from I forgot the other version and the GitHub commit history has missing info for some reason to JUN30-V32. What changed? I have changed a good amount of things with easyAPT, including… The version system instead of organizing them by what versions were released on what day, I organize them by the date that they were released and the overall version (eg, JUN9-R7 to JUN9-V20). V, in my case, means revision number.) The updating tool 90% bug fixed Case $? in errors I made this mistake a lot. In case statements, which I use a ton of, you have to use case “$VARIABLE” in or case “TEXT” in, not case $? in, or it’ll always assume the last option. Take this sample code as an example, #correct case \"$?\" in 0) echo \"Success\" *) echo \"Failure\" esac #This code displays the right end result for a command. But my mistake was case $? in 0) echo \"Success\" *) echo \"Failure\" esac #Which always assumes it fails, every time, even if $?=0. Thanks to Vim (the super useful editor that’s my new favorite), what would’ve taken hours took a split second. How close am I to my first GitHub release of easyAPT? Pretty close now. All the options menu work fine. When I paste the final contents into easyAPTmenu.sh, then this project will be pretty much finished and ready for anyone to demo. But, there’s still a bunch of bugs I need to fix. What’s next for easyAPT? There’s a lot of planning for what’s up next. Case statement bug fixes I turned on a Vim feature that highlights some lines red if there are syntax errors. For some reason I haven’t figured out yet, most, if not all, of the ;;s and the esacs in my script are highlighted red. I haven’t experience bash stop the script due to syntax errors, so I’m going to have to look through the code and maybe do research. About menu option Takes a few seconds to code. Just a nice little inclusion telling the user who made it, the current version, and possible licensing info (if we get to that stage) More bug fixes I’ll test every single possible option before pasting the menu part into another script. Making ./easyAPTmenu.sh hidden I’d like to turn easyAPTmenu.sh into .easyAPTmenu.sh. It may seem like a small change, but adding a dot to the beginning hides the file by default, like if you typed “ls”. This is the case for the version files as well as others used for Github and Wakatime. Anything else Things will get added and removed from here as releases go. Thank you for reading! If you have any questions, comments, or recommendations, please let me know!"}, {"post_id": 5258, "ts": "2026-06-08T23:38:37Z", "hours": 1.2106, "text": "Devlog 5 All the menu options have been ready, but the updating tool is really, really buggy. I will fix that later. The next step in easyAPT’s process is to do debugging. I moved from JUN4-R7 to JUN8-R4. I plan to test all the options in the menu, including all submenus, and all checks (by failing them). That means that there will be several more sub versions before the first actual Github release."}, {"post_id": 2923, "ts": "2026-06-05T20:34:28Z", "hours": 2.1711, "text": "Devlog 4 There was some syntax error on line 622 I didn’t know about when I was working on this, but besides that I got a lot done with easyAPT and the development phase is almost done. I moved from JUN4-R3 to JUN5-R7. The 2 main changes: One: All menu options except tool updating have been finished but not bug tested - that’s later! Two: The version string no longer includes the year. That was redundant."}, {"post_id": 2499, "ts": "2026-06-05T00:51:08Z", "hours": 1.2958, "text": "Devlog 3 Small changes have been made from JUN3-R6 to JUN4-R3. I was able to get the remove options done and bugs fixed in the “List installed packages” option (not all of them are fixed though). I am planning to lock the .rpm to .Deb conversion utilities to experimental versions of this. Their version string is “JUN4-2026-R5-EXP” instead of “JUN4-2026-R5”, for example. This is because the alien utility I am using for it ends by dropping the user in a shell prompt (sh to be exact), which hangs the exit script, and if you run it within the sh shell and try the conversion again, it ends up being a APT, sh, and easyAPT instance and confliction mess that slows down your system and, in the worse case, is hard to regain control of. I made a sample ./easyAPTmenu.sh that redirects to the ./easyAPT.sh. This is because I was tired of typing :!./ and the up key in the Vim editor EVERY SINGLE TIME I selected an option in the menu and the operation finished. I didn’t do this before because that’s 2 seconds of checks it makes that I have to wait for instead of instantly with the planned ACTUAL easyAPTmenu.sh file, which is coming soon. This should take a few more days to finish up, and then I can finally make my README.md and my first Github release of easyAPT! PS: nothing has changed with the menu, I just needed a graphic for the devlog and wanted to see how the menu would change over devlogs."}, {"post_id": 1764, "ts": "2026-06-03T23:12:40Z", "hours": 3.415, "text": "Things have happened with easyAPT. I went from version JUN2-2026-R6 (June 2, 2026 Revision 6) to JUN3-2026-R5 (June 3, 2026, Revision 5). Here’s what’s new in JUN3 (R5), known bugs, and what’s planned next. One: An updating tool has been added to the menu powered fully by Github. It hasn’t been implemented yet, but it should test if .version in the repo matches the .version on placed on the device, and if it doesn’t (after user confirmation), it will move the .update.sh to the home directory and run it, which will remove all contents of the easyAPT directory, reclone the whole directory back onto the device, run “chmod +x *” (or chmod +x .) so all the scripts are executable, and remove itself from the home directory. Two: The first 4 options may have bugs (I haven’t tested them fully yet), but I think they are ready for use. I know for sure that the last option works fine (obviously), but I want to add a line of code to it first. Three: I can reuse the code from previous options into new ones, so some will get done way faster. Four: All options when done, instead of going back to the menu, quit with a “No such file or directory” error. This is because it links to a nonexistent “easyAPTmenu.sh” file that I can’t make until the first script (easyAPT2.sh) is fully finished and bug checked. I haven’t made an actual Github release yet or a README.md (these scripts simply aren’t ready yet), but I plan to soon."}, {"post_id": 1146, "ts": "2026-06-03T00:09:18Z", "hours": 1.7622, "text": "I’m working on a Linux shell script for a terminal-based interface for managing packages. This is especially useful for people who are first timers to Linux and don’t know what “sudo apt update” is. I’ve got the menu done, but not any of its actions. I am planning to add the version number as part of the startup text."}]...
|
Title: easyAPT by @p14277376 | Stardance
Devlogs: Title: easyAPT by @p14277376 | Stardance
Devlogs:
I’m working on a Linux shell script for a terminal-based interface for managing packages. This is especially useful for people who are first timers to Linux and don’t know what “sudo apt update” is. I’ve got the menu done, but not any of its actions. I am planning to add the version number as part of the startup text.
Things have happened with easyAPT. I went from version JUN2-2026-R6 (June 2, 2026 Revision 6) to JUN3-2026-R5 (June 3, 2026, Revision 5). Here’s what’s new in JUN3 (R5), known bugs, and what’s planned next. One: An updating tool has been added to the menu powered fully by Github. It hasn’t been implemented yet, but it should test if .version in the repo matches the .version on placed on the device, and if it doesn’t (after user confirmation), it will move the .update.sh to the home directory and run it, which will remove all contents of the easyAPT directory, reclone the whole directory back onto the device, run “chmod +x *” (or chmod +x .) so all the scripts are executable, and remove itself from the home directory. Two: The first 4 options may have bugs (I haven’t tested them fully yet), but I think they are ready for use. I know for sure that the last option works fine (obviously), but I want to add a line of code to it first. Three: I can reuse the code from previous options into new ones, so some will get done way faster. Four: All options when done, instead of going back to the menu, quit with a “No such file or directory” error. This is because it links to a nonexistent “easyAPTmenu.sh” file that I can’t make until the first script (easyAPT2.sh) is fully finished and bug checked. I haven’t made an actual Github release yet or a README.md (these scripts simply aren’t ready yet), but I plan to soon.
Devlog 3 Small changes have been made from JUN3-R6 to JUN4-R3. I was able to get the remove options done and bugs fixed in the “List installed packages” option (not all of them are fixed though). I am planning to lock the .rpm to .Deb conversion utilities to experimental versions of this. Their version string is “JUN4-2026-R5-EXP” instead of “JUN4-2026-R5”, for example. This is because the alien utility I am using for it ends by dropping the user in a shell prompt (sh to be exact), which hangs the exit script, and if you run it within the sh shell and try the conversion again, it ends up being a APT, sh, and easyAPT instance and confliction mess that slows down your system and, in the worse case, is hard to regain control of. I made a sample ./easyAPTmenu.sh that redirects to the ./easyAPT.sh. This is because I was tired of typing :!./ and the up key in the Vim editor EVERY SINGLE TIME I selected an option in the menu and the operation finished. I didn’t do this before because that’s 2 seconds of checks it makes that I have to wait for instead of instantly with the planned ACTUAL easyAPTmenu.sh file, which is coming soon. This should take a few more days to finish up, and then I can finally make my README.md and my first Github release of easyAPT! PS: nothing has changed with the menu, I just needed a graphic for the devlog and wanted to see how the menu would change over devlogs.
Devlog 4 There was some syntax error on line 622 I didn’t know about when I was working on this, but besides that I got a lot done with easyAPT and the development phase is almost done. I moved from JUN4-R3 to JUN5-R7. The 2 main changes: One: All menu options except tool updating have been finished but not bug tested - that’s later! Two: The version string no longer includes the year. That was redundant.
Devlog 5 All the menu options have been ready, but the updating tool is really, really buggy. I will fix that later. The next step in easyAPT’s process is to do debugging. I moved from JUN4-R7 to JUN8-R4. I plan to test all the options in the menu, including all submenus, and all checks (by failing them). That means that there will be several more sub versions before the first actual Github release.
Pre-devlog notes Yes, this is how I do my devlogs now. I want to take advantage of all Stardance’s new devlog features to make them a bit neater. Also, this may be my first time I made a commit to easyAPT’s Github repository in, like, 2 weeks. I just decided to take a break from coding for a little bit. Actual Devlog 6 We went from I forgot the other version and the GitHub commit history has missing info for some reason to JUN30-V32. What changed? I have changed a good amount of things with easyAPT, including… The version system instead of organizing them by what versions were released on what day, I organize them by the date that they were released and the overall version (eg, JUN9-R7 to JUN9-V20). V, in my case, means revision number.) The updating tool 90% bug fixed Case $? in errors I made this mistake a lot. In case statements, which I use a ton of, you have to use case “$VARIABLE” in or case “TEXT” in, not case $? in, or it’ll always assume the last option. Take this sample code as an example, #correct case "$?" in 0) echo "Success" *) echo "Failure" esac #This code displays the right end result for a command. But my mistake was case $? in 0) echo "Success" *) echo "Failure" esac #Which always assumes it fails, every time, even if $?=0. Thanks to Vim (the super useful editor that’s my new favorite), what would’ve taken hours took a split second. How close am I to my first GitHub release of easyAPT? Pretty close now. All the options menu work fine. When I paste the final contents into easyAPTmenu.sh, then this project will be pretty much finished and ready for anyone to demo. But, there’s still a bunch of bugs I need to fix. What’s next for easyAPT? There’s a lot of planning for what’s up next. Case statement bug fixes I turned on a Vim feature that highlights some lines red if there are syntax errors. For some reason I haven’t figured out yet, most, if not all, of the ;;s and the esacs in my script are highlighted red. I haven’t experience bash stop the script due to syntax errors, so I’m going to have to look through the code and maybe do research. About menu option Takes a few seconds to code. Just a nice little inclusion telling the user who made it, the current version, and possible licensing info (if we get to that stage) More bug fixes I’ll test every single possible option before pasting the menu part into another script. Making ./easyAPTmenu.sh hidden I’d like to turn easyAPTmenu.sh into .easyAPTmenu.sh. It may seem like a small change, but adding a dot to the beginning hides the file by default, like if you typed “ls”. This is the case for the version files as well as others used for Github and Wakatime. Anything else Things will get added and removed from here as releases go. Thank you for reading! If you have any questions, comments, or recommendations, please let me know!
Pre-devlog notes Sometimes when I’m coding I think it’s only been 5 minutes and then I check the time and I realize It’s been 3 hours… Also after chasing my own tail for hours trying to troubleshoot and code Arch on your Android, I decided it was a good idea to go back to my first project, which has a bunch of new features now and has no dialog flag mistakes. easyAPT devlog 6, maybe 7 A ton of new features have been added to easyAPT. 1. .easyaptgithub.sh This adds an option in the menu to check if Github is working properly on your system. Plus, some options will run it anyway to check if everything is working. 2. Issue/bug reporting You can now use easyAPT to report issues with it, right there in the menu. 3. About easyAPT There is a new About easyAPT option in the menu. Just some basic stuff about the version. Plus, it has missing info that I can’t fill in until I do more research, make a Github release, and ship my project. There’s a ton more, but I don’t have time to discuss it all in a devlog. Thanks for reading! If you have any questions, comments, or suggestions, please leave them down below!
Pre-devlog notes I did the math recently. I only have enough actual time left in this challenge to get one project done and have time to get it reviewed and rated, and that’s only if I’m lucky . So I decided that the “My first slack bot”, “Untitled”, and “Arch on your Android” projects are canceled and my other projects will be paused for a few months or more so that I can dedicate the rest of my coding time to easyAPT, which is almost done. Just 3 hours, a demo system, and a Github release left, and the project I’m most proud of will be ready for anyone to use. Also, I won’t be making a .deb file, and won’t be trying to get it on the Debian or Ubuntu repositories. That would be cool, but that process can take a lot of time. Maybe later, though, but definitely not now. There’s an even simpler way to install it without even cloning the repo once Github releases are published: just download one of the files there (like the .7z, the standard .zip, etc), make the easyAPT directory in the folder you want to, and other steps that I’ll mention in the Github page because they might change. I still will have to do research on how I can create a light Debian environment with the easyAPT demo - a limited version of easyAPT that I’m planning to create later. But that’s for later… Also: an announcement: easyAPT is done! cue ‘tada’ fanfare This is the one of the last devlogs I will be posting for it, for this first version anyway. And I can finally make a Github release! Also this devlog might not be too detailed because there’s still a lot of things I have to do to ship my project. Devlog 8 Besides a full bug testing of every option, here are the new features: 1. A progress bar on the startup prompt Just a nice inclusion. It zooms by within 5 seconds. 2. New updater tool It’s still experimental, but I scraped the old code and started over. It’s a lot more stable, but still has a small chance to delete the wrong thing. 3. Github features finished In fact, all the main menu options are finished. Sorry about the limited detail, I have a lot to do. Thanks for reading anyway, and if you have a question, comment, or suggestion, type it down below....
|
1793490971.5148225
|
1794095771.5148225
|
|
54716
|
easySinth by @Max_ | Stardance
|
Max_
|
0
|
19.58
|
0
|
[]
|
[{"post_id": 73126, "ts": "202 [{"post_id": 73126, "ts": "2026-09-24T13:20:29Z", "hours": 9.6842, "text": "Hey people! Today I added tempo feature to my synthesizer☺️"}, {"post_id": 69813, "ts": "2026-09-17T20:34:24Z", "hours": 9.9003, "text": "made basic layout of easysinth"}]...
|
Title: easySinth by @Max_ | Stardance
Devlogs:
ma Title: easySinth by @Max_ | Stardance
Devlogs:
made basic layout of easysinth
Hey people! Today I added tempo feature to my synthesizer☺️...
|
1793562825.033417
|
1794426825.033417
|
|
2708
|
ebic gaemer space gaem by @natezos07 | Stardance
|
natezos07
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ebic gaemer space gaem by @natezos07 | Star Title: ebic gaemer space gaem by @natezos07 | Stardance...
|
1793184904.2238245
|
1793789704.2238245
|
|
53850
|
echo cave by @cyberelite515 | Stardance
|
cyberelite515
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: echo cave by @cyberelite515 | Stardance
|
1793509075.6425424
|
1794113875.6425424
|
|
47607
|
echo city by @Toka | Stardance
|
Toka
|
1
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T23:48:34Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "An interactive smart-city simulation where every decision shapes the city’s future. Manage energy, water, traffic, waste, and sustainability through real-time data and visual feedback, then discover how your choices affect the city years into the future.", "repo": "https://github.com/tokasayed2030-max/echo_city-", "demo": "https://tokasayed2030-max.github.io/echo_city-/"}]...
|
[{"post_id": 46609, "ts": "202 [{"post_id": 46609, "ts": "2026-08-13T23:34:13Z", "hours": 10.2156, "text": "An interactive smart-city simulation where every decision shapes the city’s future. Manage energy, water, traffic, waste, and sustainability through real-time data and visual feedback, then discover how your choices affect the city years into the future."}]...
|
Title: echo city by @Toka | Stardance
Devlogs:
An Title: echo city by @Toka | Stardance
Devlogs:
An interactive smart-city simulation where every decision shapes the city’s future. Manage energy, water, traffic, waste, and sustainability through real-time data and visual feedback, then discover how your choices affect the city years into the future.
Ships:
An interactive smart-city simulation where every decision shapes the city’s future. Manage energy, water, traffic, waste, and sustainability through real-time data and visual feedback, then discover how your choices affect the city years into the future....
|
1793714168.8912148
|
1793800568.8912148
|
|
36855
|
echttps by @kurkiie | Stardance
|
kurkiie
|
0
|
15.4
|
0
|
[]
|
[{"post_id": 38724, "ts": "202 [{"post_id": 38724, "ts": "2026-08-01T08:43:00Z", "hours": 8.1486, "text": "Handling requests and serving sites in my HTTP server So since my last devlog I’ve implemented serving websites alongside a config parser. The HTTP server parses all config files in /etc/echttps/sites/ . Each file is a different config and corresponds to a different ‘server’. Each server has a name, it’s own port(s) that it listens to, and a root directory from which to serve files. The main loop is super simple: int main() { signal(SIGINT, &signal_handler); File::create_config_dir(File::DEFAULT_CONFIG_DIR); auto files = File::get_configs(); if(files.empty()){ std::cerr << \"No config files found in /etc/echttps/sites. Make one!\\n\"; return 1; } for(std::string f : files){ auto server = Config::parse_config(f); if(!server){ std::cerr << \"Server at \" << f << \" wasn't initialized due to errors\\n\"; continue; } Socket::setup_server_socket(server.value()); } std::cerr << \"Fully initialized all servers\\n\"; for(;;); } We just parse the configs and setup the servers (aka bind ports and setup sockets…). Under the hood most of the work goes into actually parsing HTTP requests and sending data through sockets. Anyway, now that all of that is done, we can finally serve files and be a real HTTP server :D. Now all that is left for me is to polish everything up, maybe add a few features (I’ll try to see how hard it would be to add SSL support) and then we can ship! Thx for reading!"}, {"post_id": 33401, "ts": "2026-07-23T10:00:55Z", "hours": 7.2472, "text": "Parsing HTTP requests So as part of my HTTP server, the first thing I did is learning how HTTP requests are formulated and how to parse them. I created a header file, http_headers.hpp which stores various information about HTTP headers in a way that makes it easy to handle programatically - storing them in enums and creating various helper functions. In the main function I utilize UNIX sockets to recieve HTTP requests. I read a helpful book about sockets which helped me get to the part of even being able to obtain HTTP requests. The current HTTP server structure is very simple, it sets up everything that’s needed to start accepting connections, and then makes a call to accept() to recieve a request. Once that is done it runs fork() to create a child process with which it will handle the request, while the main thread continues running in a forever loop, again running accept() , and handling new connections. The parsing code works by tokenizing everything that the server recieved and then storing it in a std::unordered_map (a hash map). The key is an enum header , which holds all possible header types and the value is a std::string . So if the client sent you something like this: Host: example.com In the map it would be stored as key: Host and value: example.com I’ve also been working on a config file to let you specify which websites at which path and on which port you actually want to host. Right now the server only returns “Hiiii!!!” when you send a HTTP request to 127.0.0.1:80. I’ve written up a more detailed architectural view here , though note that it doesn’t quite represent reality yet as this project is still a big WIP!! However, the architecture represents the general plan of the project. Also no AI coding allowed on this project to maximize learning. Thx for reading!"}]...
|
Title: echttps by @kurkiie | Stardance
Devlogs:
P Title: echttps by @kurkiie | Stardance
Devlogs:
Parsing HTTP requests So as part of my HTTP server, the first thing I did is learning how HTTP requests are formulated and how to parse them. I created a header file, http_headers.hpp which stores various information about HTTP headers in a way that makes it easy to handle programatically - storing them in enums and creating various helper functions. In the main function I utilize UNIX sockets to recieve HTTP requests. I read a helpful book about sockets which helped me get to the part of even being able to obtain HTTP requests. The current HTTP server structure is very simple, it sets up everything that’s needed to start accepting connections, and then makes a call to accept() to recieve a request. Once that is done it runs fork() to create a child process with which it will handle the request, while the main thread continues running in a forever loop, again running accept() , and handling new connections. The parsing code works by tokenizing everything that the server recieved and then storing it in a std::unordered_map (a hash map). The key is an enum header , which holds all possible header types and the value is a std::string . So if the client sent you something like this: Host: example.com In the map it would be stored as key: Host and value: example.com I’ve also been working on a config file to let you specify which websites at which path and on which port you actually want to host. Right now the server only returns “Hiiii!!!” when you send a HTTP request to 127.0.0.1:80. I’ve written up a more detailed architectural view here , though note that it doesn’t quite represent reality yet as this project is still a big WIP!! However, the architecture represents the general plan of the project. Also no AI coding allowed on this project to maximize learning. Thx for reading!
Handling requests and serving sites in my HTTP server So since my last devlog I’ve implemented serving websites alongside a config parser. The HTTP server parses all config files in /etc/echttps/sites/ . Each file is a different config and corresponds to a different ‘server’. Each server has a name, it’s own port(s) that it listens to, and a root directory from which to serve files. The main loop is super simple: int main() { signal(SIGINT, &signal_handler); File::create_config_dir(File::DEFAULT_CONFIG_DIR); auto files = File::get_configs(); if(files.empty()){ std::cerr << "No config files found in /etc/echttps/sites. Make one!\n"; return 1; } for(std::string f : files){ auto server = Config::parse_config(f); if(!server){ std::cerr << "Server at " << f << " wasn't initialized due to errors\n"; continue; } Socket::setup_server_socket(server.value()); } std::cerr << "Fully initialized all servers\n"; for(;;); } We just parse the configs and setup the servers (aka bind ports and setup sockets…). Under the hood most of the work goes into actually parsing HTTP requests and sending data through sockets. Anyway, now that all of that is done, we can finally serve files and be a real HTTP server :D. Now all that is left for me is to polish everything up, maybe add a few features (I’ll try to see how hard it would be to add SSL support) and then we can ship! Thx for reading!...
|
1793238462.9315605
|
1793843262.9315605
|
|
50279
|
eco by @Fluci | Stardance
|
Fluci
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: eco by @Fluci | Stardance
|
1793332396.6889348
|
1793937196.6889348
|
|
45408
|
ecometric by @baburav_20 | Stardance
|
baburav_20
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ecometric by @baburav_20 | Stardance
|
1793332328.81753
|
1793937128.81753
|
|
35819
|
econ by @shri_pot | Stardance
|
shri_pot
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: econ by @shri_pot | Stardance
|
1793544592.5834508
|
1794149392.5834508
|
|
38515
|
edgewalker by @ccyaliyahh | Stardance
|
ccyaliyahh
|
0
|
0.99
|
0
|
[]
|
[{"post_id": 34992, "ts": "202 [{"post_id": 34992, "ts": "2026-07-26T04:16:43Z", "hours": 0.9917, "text": "i have finished creating some basic platforms and just started a tiny bit of the start screen. to be completely honest, i’m kind of lost. why is godot so complicated lol?? :["}]...
|
Title: edgewalker by @ccyaliyahh | Stardance
Devl Title: edgewalker by @ccyaliyahh | Stardance
Devlogs:
i have finished creating some basic platforms and just started a tiny bit of the start screen. to be completely honest, i’m kind of lost. why is godot so complicated lol?? :[...
|
1793242324.0021489
|
1793847124.0021489
|
|
54084
|
editor-toolkit by @Asm | Stardance
|
Asm
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: editor-toolkit by @Asm | Stardance
|
1793519657.7972293
|
1794124457.7972293
|
|
67125
|
edk2-rk3576 by @gahingwoo | Stardance
|
gahingwoo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: edk2-rk3576 by @gahingwoo | Stardance
|
1793728310.4071884
|
1794333110.4071884
|
|
50876
|
edroid poket by @ghans | Stardance
|
ghans
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: edroid poket by @ghans | Stardance
|
1793364870.6175408
|
1793969670.6175408
|
|
15781
|
edu vrish by @vatsvedant11 | Stardance
|
vatsvedant11
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: edu vrish by @vatsvedant11 | Stardance
|
1793458136.4588377
|
1794062936.4588377
|
|
605
|
eduOS by @szponerzoli | Stardance
|
szponerzoli
|
0
|
11.87
|
0
|
[]
|
[{"post_id": 13794, "ts": "202 [{"post_id": 13794, "ts": "2026-06-22T16:41:10Z", "hours": 2.9414, "text": "i made an iso installer. It is very broken for now, but it boots!"}, {"post_id": 4193, "ts": "2026-06-07T12:45:29Z", "hours": 2.7119, "text": "I made a landing page for the project https://eduos.site"}, {"post_id": 2064, "ts": "2026-06-04T11:28:30Z", "hours": 1.0306, "text": "added auto updates for user-installed flatpaks"}, {"post_id": 1566, "ts": "2026-06-03T17:43:31Z", "hours": 4.0006, "text": "I added basic branding like os name and version"}, {"post_id": 775, "ts": "2026-06-02T13:13:24Z", "hours": 1.1894, "text": "first image thats not entirely stock fedora kinoite"}]...
|
Title: eduOS by @szponerzoli | Stardance
Devlogs: Title: eduOS by @szponerzoli | Stardance
Devlogs:
first image thats not entirely stock fedora kinoite
I added basic branding like os name and version
added auto updates for user-installed flatpaks
I made a landing page for the project https://eduos.site
i made an iso installer. It is very broken for now, but it boots!...
|
1793238599.4794564
|
1793843399.4794564
|
|
70240
|
educationApp by @danielgp | Stardance
|
danielgp
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: educationApp by @danielgp | Stardance
|
1792961334.5123525
|
1793825334.5123525
|
|
18940
|
educaxia by @steeeeven | Stardance
|
steeeeven
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: educaxia by @steeeeven | Stardance
|
1793303723.9362264
|
1793908523.9362264
|
|
4172
|
eear by @rizvifalak216 | Stardance
|
rizvifalak216
|
0
|
0.5
|
0
|
[]
|
[{"post_id": 693, "ts": "2026- [{"post_id": 693, "ts": "2026-06-02T08:03:48Z", "hours": 0.5031, "text": "so this project is divided into many stages STAGE-1 STRUCTURAL ARCHITECTURE sound concentration a pinna figure funnel structured, to the eardrums a thin rubber layer which vibrates when sound waves strikes. STAGE-2 RESONANCE STAGE-3 ACCUMULATION accumulation of vibration through piezoelectric disk + rectification of pulsed ac + storage of this tiny amount of dc produce through capacitors. right now my main task is to find the piezoelectric disk of right diameter and place it at the right position to get the best results"}]...
|
Title: eear by @rizvifalak216 | Stardance
Devlogs Title: eear by @rizvifalak216 | Stardance
Devlogs:
so this project is divided into many stages STAGE-1 STRUCTURAL ARCHITECTURE sound concentration a pinna figure funnel structured, to the eardrums a thin rubber layer which vibrates when sound waves strikes. STAGE-2 RESONANCE STAGE-3 ACCUMULATION accumulation of vibration through piezoelectric disk + rectification of pulsed ac + storage of this tiny amount of dc produce through capacitors. right now my main task is to find the piezoelectric disk of right diameter and place it at the right position to get the best results...
|
1793342910.4338598
|
1793947710.4338598
|
|
5748
|
eeee by @rez | Stardance
|
rez
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: eeee by @rez | Stardance
|
1792929208.1065075
|
1793793208.1065075
|
|
13376
|
efficient rover by @valdtaniem | Stardance
|
valdtaniem
|
1
|
13.0
|
90
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-16T11:25:42Z", "hours": 12.0, "multiplier": 7.32, "payout": 90, "blessing": "neutral", "text": "I made 2 scripts in C. A server script and a rover script. The server script accepts the connection from the rover. When it receives “ping” it sends a randomly generated string of 1, 01, 001 and 000. with 50% 1 for forward, 25% 01 for backwards and 12.5% 001 and 000 for left and right. the efficiency comes from the fact that the most used (forward) is only 1 character, and lesser used actions are more. 3blue1brown explains it very well ( https://youtu.be/l6DKRf-fAAM?si=0wl0j-8jQxhWdPC4&t=208 ). That video is also where I got the idea for this project.", "repo": "https://git.tuxworld.nl/valdtaniem/EfficientRover", "demo": "https://git.tuxworld.nl/valdtaniem/EfficientRover/releases"}]...
|
[{"post_id": 35757, "ts": "202 [{"post_id": 35757, "ts": "2026-07-27T12:17:43Z", "hours": 0.9986, "text": "I got feedback on my previous ship that I needed a release with binaries, so i made that. While I’m at it I might as well write a little Makefile. (make help for all the commands)"}, {"post_id": 29392, "ts": "2026-07-16T10:05:55Z", "hours": 2.1306, "text": "I drew a new background and new rover."}, {"post_id": 13776, "ts": "2026-06-22T16:05:19Z", "hours": 0.7764, "text": "Server GUI updated. the server GUI can scroll. the text is no longer editable and the server loads a CSS file for styling."}, {"post_id": 13092, "ts": "2026-06-21T12:55:25Z", "hours": 1.8792, "text": "most functions are in (: The server has a GUI now, just a live log of what is being sent. and connection info. The rover GUI has an update, new buttons and a background. You can now close the rover program and the server won’t crash. you can start the rover up again and reconnect. i want to add a controller to the server for manual driving. Making everything look better is also something I want to do. the rover and background are pretty ugly and the server still looks plain."}, {"post_id": 9817, "ts": "2026-06-16T08:13:05Z", "hours": 3.1278, "text": "The rover has a GUI now! using GTK i made a grid with buttons and a drawing area to visualize the rover moving. with ping to receive movement instructions and reset to position the rover back to the center the button images should change because they are now just hand drawn (; the server sends longer strings. planning to add a background and make the buttons look like a controll panel. while the rover is moving don’t press the ping button becouse than the program crashes. ¯ _ (ツ)_/"}, {"post_id": 6811, "ts": "2026-06-11T13:03:04Z", "hours": 1.3764, "text": "The server now sends full strings of instructions and the rover can properly decode them into forward, backward, left and right instructions. I’m pretty proud of my implementation although I’m sure there is a better way."}, {"post_id": 5605, "ts": "2026-06-09T13:50:10Z", "hours": 0.9508, "text": "The server now transmits random movement instructions. the instructions have a 50%, 25%, 12.5% and 12.5% for 1, 01, 001 and 000. Because 1 is used much more its more efficient than encoding with 00, 01, 10 and 11"}, {"post_id": 5574, "ts": "2026-06-09T12:29:45Z", "hours": 2.0519, "text": "the rover and server scripts are talking via tcp."}]...
|
Title: efficient rover by @valdtaniem | Stardance
Title: efficient rover by @valdtaniem | Stardance
Devlogs:
the rover and server scripts are talking via tcp.
The server now transmits random movement instructions. the instructions have a 50%, 25%, 12.5% and 12.5% for 1, 01, 001 and 000. Because 1 is used much more its more efficient than encoding with 00, 01, 10 and 11
The server now sends full strings of instructions and the rover can properly decode them into forward, backward, left and right instructions. I’m pretty proud of my implementation although I’m sure there is a better way.
The rover has a GUI now! using GTK i made a grid with buttons and a drawing area to visualize the rover moving. with ping to receive movement instructions and reset to position the rover back to the center the button images should change because they are now just hand drawn (; the server sends longer strings. planning to add a background and make the buttons look like a controll panel. while the rover is moving don’t press the ping button becouse than the program crashes. ¯ _ (ツ)_/
most functions are in (: The server has a GUI now, just a live log of what is being sent. and connection info. The rover GUI has an update, new buttons and a background. You can now close the rover program and the server won’t crash. you can start the rover up again and reconnect. i want to add a controller to the server for manual driving. Making everything look better is also something I want to do. the rover and background are pretty ugly and the server still looks plain.
Server GUI updated. the server GUI can scroll. the text is no longer editable and the server loads a CSS file for styling.
I drew a new background and new rover.
I got feedback on my previous ship that I needed a release with binaries, so i made that. While I’m at it I might as well write a little Makefile. (make help for all the commands)
Ships:
I made 2 scripts in C. A server script and a rover script. The server script accepts the connection from the rover. When it receives “ping” it sends a randomly generated string of 1, 01, 001 and 000. with 50% 1 for forward, 25% 01 for backwards and 12.5% 001 and 000 for left and right. the efficiency comes from the fact that the most used (forward) is only 1 character, and lesser used actions are more. 3blue1brown explains it very well ( https://youtu.be/l6DKRf-fAAM?si=0wl0j-8jQxhWdPC4&t=208 ). That video is also where I got the idea for this project....
|
1793720907.2455812
|
1793807307.2455812
|
|
17340
|
efouh3 by @Maaz_Siddiqui | Stardance
|
Maaz_Siddiqui
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: efouh3 by @Maaz_Siddiqui | Stardance
|
1793335675.5892656
|
1793940475.5892656
|
|
9801
|
eggooo by @matikda | Stardance
|
matikda
|
0
|
21.01
|
0
|
[]
|
[{"post_id": 7894, "ts": "2026 [{"post_id": 7894, "ts": "2026-06-13T05:21:10Z", "hours": 6.6747, "text": "I added the shop menu. I was confused why the hover and click functions were not working, but I realized that the text was completely covering the actuall button. That was a pretty easy fix. I used arrays with all the sprites, so I can iterate over all the buttons at once, which made my code much easier to follow. I might go back and add arrays to more parts, but it will not be as neat as this was. Lastly, I use graphics to create my text, so it is easily manipulatable, but it is making the game crash, so I will ned to go in and use real text next. Not looking forward to that."}, {"post_id": 5440, "ts": "2026-06-09T06:39:30Z", "hours": 4.6447, "text": "I finished the settings page sans a small volume bug. It now has the ability to skip and replay songs, turn music on and off, adjust the volume, and open an info page. I had a lot of trouble getting the text to update, as graphic updates are banned to prevent crashing. I just made a function to create brand new graphics as needed. I also added a favicon. I am realizing that I have barely touched the actual game part, though… next time."}, {"post_id": 5170, "ts": "2026-06-08T21:04:41Z", "hours": 2.6842, "text": "I added a settings menu with some text and buttons. I took a call for an hour and I then spent ~2 hours wondering why all my text suddenly wasn’t aligned. I finally realized that I had zoomed in to 110% and the code was fine🤦. Massive waste of time haha! I’m a bit worried that this could cause an issue on devices that have varying pixel densities but I am not going to worry about that for now."}, {"post_id": 4743, "ts": "2026-06-08T06:08:53Z", "hours": 7.0036, "text": "I am making a clicker game called eggooo! (I just realized I like the lowercase E better…). Today I worked on getting the starting screen working. I wanted the buttons to go down slightly when pressed to match the animation, but I had a lot of trouble, as I also had it dip when the mouse was hovering. When the mouse hovered above the dip but below the up limit, the button would freak out and rapidly switch between up and down. It looked like it was having a seizure. I fixed it by lowering just the image, not the hitbox, although now the hitbox is a bit off when the button is being hovered over. Oh well."}]...
|
Title: eggooo by @matikda | Stardance
Devlogs:
I Title: eggooo by @matikda | Stardance
Devlogs:
I am making a clicker game called eggooo! (I just realized I like the lowercase E better…). Today I worked on getting the starting screen working. I wanted the buttons to go down slightly when pressed to match the animation, but I had a lot of trouble, as I also had it dip when the mouse was hovering. When the mouse hovered above the dip but below the up limit, the button would freak out and rapidly switch between up and down. It looked like it was having a seizure. I fixed it by lowering just the image, not the hitbox, although now the hitbox is a bit off when the button is being hovered over. Oh well.
I added a settings menu with some text and buttons. I took a call for an hour and I then spent ~2 hours wondering why all my text suddenly wasn’t aligned. I finally realized that I had zoomed in to 110% and the code was fine🤦. Massive waste of time haha! I’m a bit worried that this could cause an issue on devices that have varying pixel densities but I am not going to worry about that for now.
I finished the settings page sans a small volume bug. It now has the ability to skip and replay songs, turn music on and off, adjust the volume, and open an info page. I had a lot of trouble getting the text to update, as graphic updates are banned to prevent crashing. I just made a function to create brand new graphics as needed. I also added a favicon. I am realizing that I have barely touched the actual game part, though… next time.
I added the shop menu. I was confused why the hover and click functions were not working, but I realized that the text was completely covering the actuall button. That was a pretty easy fix. I used arrays with all the sprites, so I can iterate over all the buttons at once, which made my code much easier to follow. I might go back and add arrays to more parts, but it will not be as neat as this was. Lastly, I use graphics to create my text, so it is easily manipulatable, but it is making the game crash, so I will ned to go in and use real text next. Not looking forward to that....
|
1793357736.8505628
|
1793962536.8505628
|
|
31098
|
egraich_dev by @egraich | Stardance
|
egraich
|
1
|
30.95
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-12T00:23:09Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my first website ever! It was so hard to understand the tag structure in html after the familiar function structure in my stack: Python & C++. I dreamed of having a personal website for a beautiful email address :) I made my site in a neon style and I like it. I googled some SVG icons for contact links and they look cool with the custom color style of my website.", "repo": "https://github.com/egraich/egraich_dev", "demo": "https://egraich.dev"}]...
|
[{"post_id": 40613, "ts": "202 [{"post_id": 40613, "ts": "2026-08-04T08:34:59Z", "hours": 5.9519, "text": "Haven’t dropped a devlog in a minute since I was taking a break, but I spent the last few days quietly cleaning up my backend setup. My website is now completely on Cloudflare Pages, hooked right into my DNS management. It’s way more convenient to have everything managed in a single place. Also set up a _redirects file. Now, instead of throwing around ugly, long links like: discord.com/users/1024683767488585819 I can literally just type egraich.dev/ds (or /discord ). Same goes for GitHub, Telegram, ORCID and the rest. To top it off, I enabled Cloudflare email forwarding. Any random mail sent to [email protected] goes straight to my personal Gmail. Boom, free professional email!"}, {"post_id": 26930, "ts": "2026-07-12T00:22:48Z", "hours": 0.5589, "text": "I’ve added my avatar as a favicon, but creating a custom vector logo sounds like a cool project for the future 🤔"}, {"post_id": 26915, "ts": "2026-07-11T23:45:10Z", "hours": 0.7536, "text": "I reworked README and add script fo automatic year-updates in copyright-footer. Now deployed! https://egraich.github.io/egraich_dev/"}, {"post_id": 26896, "ts": "2026-07-11T23:00:07Z", "hours": 23.3711, "text": "I Spent a lot of time to understand web sites structure after Python and C++ 😑"}]...
|
Title: egraich_dev by @egraich | Stardance
Devlog Title: egraich_dev by @egraich | Stardance
Devlogs:
I Spent a lot of time to understand web sites structure after Python and C++ 😑
I reworked README and add script fo automatic year-updates in copyright-footer. Now deployed! https://egraich.github.io/egraich_dev/
I’ve added my avatar as a favicon, but creating a custom vector logo sounds like a cool project for the future 🤔
Haven’t dropped a devlog in a minute since I was taking a break, but I spent the last few days quietly cleaning up my backend setup. My website is now completely on Cloudflare Pages, hooked right into my DNS management. It’s way more convenient to have everything managed in a single place. Also set up a _redirects file. Now, instead of throwing around ugly, long links like: discord.com/users/1024683767488585819 I can literally just type egraich.dev/ds (or /discord ). Same goes for GitHub, Telegram, ORCID and the rest. To top it off, I enabled Cloudflare email forwarding. Any random mail sent to [email protected] goes straight to my personal Gmail. Boom, free professional email!
Ships:
I made my first website ever! It was so hard to understand the tag structure in html after the familiar function structure in my stack: Python & C++. I dreamed of having a personal website for a beautiful email address :) I made my site in a neon style and I like it. I googled some SVG icons for contact links and they look cool with the custom color style of my website....
|
1793688859.644512
|
1793775259.644512
|
|
66574
|
egro-split-custom-ortho-stuff-keyboard by @rohanra egro-split-custom-ortho-stuff-keyboard by @rohanrathee2009 | Stardance...
|
rohanrathee2009
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: egro-split-custom-ortho-stuff-keyboard by @ Title: egro-split-custom-ortho-stuff-keyboard by @rohanrathee2009 | Stardance...
|
1793721055.1130514
|
1794325855.1130514
|
|
55232
|
egypt by @omar12 | Stardance
|
omar12
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: egypt by @omar12 | Stardance
|
1793152373.9462135
|
1793757173.9462135
|
|
54236
|
egypt monuments by @omar12 | Stardance
|
omar12
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: egypt monuments by @omar12 | Stardance
|
1792914475.506379
|
1793778475.506379
|
|
1968
|
einar by @srivamsirajesh | Stardance
|
srivamsirajesh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: einar by @srivamsirajesh | Stardance
|
1793173847.6823559
|
1793778647.6823559
|
|
43727
|
ejr's site by @ejr | Stardance
|
ejr
|
2
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-31T19:47:24Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I’m finally done with my personal site.(Not really) I took inspo from the Apple notes app and I might make changes in the future and maybe do a clean minimalist portfolio (once I have more projects).", "repo": "https://github.com/realejr/ejrsite", "demo": "https://realejr.github.io/ejrsite/"}, {"ship_num": 2, "ts": "2026-08-24T16:02:34Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A simple website using CSS and HTML using what I learnt from the W3schools website but it’s finally done for now", "repo": "https://github.com/realejr/ejrsite", "demo": "https://realejr.github.io/ejrsite/"}]...
|
[{"post_id": 55776, "ts": "202 [{"post_id": 55776, "ts": "2026-08-27T19:33:14Z", "hours": 0.4919, "text": "Hey guys, I’m back on the grind and I decided to sit down and go through some of the CSS w3schools course. I’ve made “minor” changes to my personal site but I’m torn whether I should do center text orrrr left side or be unique and go full on right side. I’ll keep working on refining it maybe do a different color scheme because the whole dark mode theme wasn’t working."}, {"post_id": 53805, "ts": "2026-08-24T14:37:50Z", "hours": 0.6325, "text": "I forgot to document the process but I’m finally done with this project aswell! It obviously needs a bit of work as you can probably tell but for an absolute beginner at programming? It’s not too shabby. 2 missions completed now and I’m ready for more!"}]...
|
Title: ejr's site by @ejr | Stardance
Devlogs Title: ejr's site by @ejr | Stardance
Devlogs:
I forgot to document the process but I’m finally done with this project aswell! It obviously needs a bit of work as you can probably tell but for an absolute beginner at programming? It’s not too shabby. 2 missions completed now and I’m ready for more!
Hey guys, I’m back on the grind and I decided to sit down and go through some of the CSS w3schools course. I’ve made “minor” changes to my personal site but I’m torn whether I should do center text orrrr left side or be unique and go full on right side. I’ll keep working on refining it maybe do a different color scheme because the whole dark mode theme wasn’t working.
Ships:
A simple website using CSS and HTML using what I learnt from the W3schools website but it’s finally done for now
I’m finally done with my personal site.(Not really) I took inspo from the Apple notes app and I might make changes in the future and maybe do a clean minimalist portfolio (once I have more projects)....
|
1793728482.1848369
|
1793814882.1848369
|
|
51338
|
el que llora by @andrei | Stardance
|
andrei
|
0
|
8.37
|
0
|
[]
|
[{"post_id": 77275, "ts": "202 [{"post_id": 77275, "ts": "2026-10-06T12:18:05Z", "hours": 0.3, "text": "heat-set all the inserts and bolted the pcb to the case and thats the hackpad done! looks awesome - now all thats left is to ship it :))"}, {"post_id": 76357, "ts": "2026-10-03T09:13:40Z", "hours": 0.6472, "text": "finished the soldering! not much to say other than now that left is to wait for the 3d printed parts to ship - its looking good!"}, {"post_id": 52344, "ts": "2026-08-22T13:39:01Z", "hours": 0.6961, "text": "and so the design process comes to an end! the readme has been finished and i’m very proud of how it looks - see for yourself in the images :) now to submit the design for funding!!"}, {"post_id": 52237, "ts": "2026-08-22T10:28:31Z", "hours": 0.6739, "text": "renderring complete! i made 5 renders in blender and i’m really happy with the results, which you can see in the images below. all thats left is finishing off the repo, then i can ship it!!!"}, {"post_id": 51586, "ts": "2026-08-21T11:07:09Z", "hours": 0.6364, "text": "and that’s the base firmware complete! i made sure all the gpio pins matched their assignment in qmk with the xiao documentation, and now have a (hopefully) functional piece of firmware to test the board with. the firmware also includes encoder functionality and a basic rgb lighting pattern for the leds - although i will be further testing it once i actually physically build it! the firmware does NOT include via functionality OR oled functionality YET - and i will be uploading both the non-oled firmware and the oled + via firmware to the repo when i get around to committing all the files to it. for now - all that’s left is rendering and repo polishing!!"}, {"post_id": 51543, "ts": "2026-08-21T09:35:59Z", "hours": 2.0367, "text": "so, pcb art am i right? i finished off my silkscreen art and im honestly so happy with it and all the little references that i put in :) also a little aesthetic choice that i tweaked because it’ll end up looking cooler than before - the solder mask and case are now going to be white with the art showing in a black silkscreen (like ulquiorra’s skin in bleach) next up is making the firmware, which shouldn’t take all that long, rendering the model in blender and updating the repo with all production files and the finalised readme!"}, {"post_id": 50457, "ts": "2026-08-19T16:52:24Z", "hours": 0.5019, "text": "the readme is like 70% of the way there already! (all the blank parts are placeholders for art and images ) i really like the designs of some of my other readmes, especially peroxide and pentoxide (wasted a really cool idea on pentoxide and im still fuming) so i copied most of the formatting from them and then once i get some batteries for my pen - ill make some art for the readme and the pcb! next on the agenda is obviously art, but also renders, qmk firmware writing AND making it via compatible are the next courses of action!"}, {"post_id": 50407, "ts": "2026-08-19T15:54:29Z", "hours": 1.8856, "text": "downloaded the pcb’s step files and imported into onshape! designed a really low profile case - because i want the bare pcb kinda aesthetic - so its literally an angled plate with standoffs for heat set inserts. spent a lot of time tweaking and tinkering with the case and also made some really quick of art to engrave in the case and encoder knobs :) finally downloaded all the 3d models of the parts i will use, then assembled them using mates in my main assembly. hackpad’s pretty much fully finished, so the next couple of devlogs will be dedicated to making art, a proper github page and firmware using qmk!"}, {"post_id": 50236, "ts": "2026-08-19T11:44:26Z", "hours": 0.9933, "text": "i came up with a design that i wanted to use before i began the project thats based off of bleach - so i began with that in mind. i then looked at the hackpad website for all approved parts in the hackpad kit and placed in all of the components that i wanted in my schematic. the schematic was easy enough to create as the pinouts for all the components are either widely available or on the hackpad website :) after that, placed all the things i wanted down in the pcb editor roughly where i wanted to, tweaked a bit, routed traces and voila - bare pcb before i add any art to it!"}]...
|
Title: el que llora by @andrei | Stardance
Devlog Title: el que llora by @andrei | Stardance
Devlogs:
i came up with a design that i wanted to use before i began the project thats based off of bleach - so i began with that in mind. i then looked at the hackpad website for all approved parts in the hackpad kit and placed in all of the components that i wanted in my schematic. the schematic was easy enough to create as the pinouts for all the components are either widely available or on the hackpad website :) after that, placed all the things i wanted down in the pcb editor roughly where i wanted to, tweaked a bit, routed traces and voila - bare pcb before i add any art to it!
downloaded the pcb’s step files and imported into onshape! designed a really low profile case - because i want the bare pcb kinda aesthetic - so its literally an angled plate with standoffs for heat set inserts. spent a lot of time tweaking and tinkering with the case and also made some really quick of art to engrave in the case and encoder knobs :) finally downloaded all the 3d models of the parts i will use, then assembled them using mates in my main assembly. hackpad’s pretty much fully finished, so the next couple of devlogs will be dedicated to making art, a proper github page and firmware using qmk!
the readme is like 70% of the way there already! (all the blank parts are placeholders for art and images ) i really like the designs of some of my other readmes, especially peroxide and pentoxide (wasted a really cool idea on pentoxide and im still fuming) so i copied most of the formatting from them and then once i get some batteries for my pen - ill make some art for the readme and the pcb! next on the agenda is obviously art, but also renders, qmk firmware writing AND making it via compatible are the next courses of action!
so, pcb art am i right? i finished off my silkscreen art and im honestly so happy with it and all the little references that i put in :) also a little aesthetic choice that i tweaked because it’ll end up looking cooler than before - the solder mask and case are now going to be white with the art showing in a black silkscreen (like ulquiorra’s skin in bleach) next up is making the firmware, which shouldn’t take all that long, rendering the model in blender and updating the repo with all production files and the finalised readme!
and that’s the base firmware complete! i made sure all the gpio pins matched their assignment in qmk with the xiao documentation, and now have a (hopefully) functional piece of firmware to test the board with. the firmware also includes encoder functionality and a basic rgb lighting pattern for the leds - although i will be further testing it once i actually physically build it! the firmware does NOT include via functionality OR oled functionality YET - and i will be uploading both the non-oled firmware and the oled + via firmware to the repo when i get around to committing all the files to it. for now - all that’s left is rendering and repo polishing!!
renderring complete! i made 5 renders in blender and i’m really happy with the results, which you can see in the images below. all thats left is finishing off the repo, then i can ship it!!!
and so the design process comes to an end! the readme has been finished and i’m very proud of how it looks - see for yourself in the images :) now to submit the design for funding!!
finished the soldering! not much to say other than now that left is to wait for the 3d printed parts to ship - its looking good!
heat-set all the inserts and bolted the pcb to the case and thats the hackpad done! looks awesome - now all thats left is to ship it :))...
|
1793386353.3861334
|
1793991153.3861334
|
|
27823
|
el4scloud by @el4s | Stardance
|
el4s
|
1
|
17.0
|
258
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-06T18:40:00Z", "hours": 17.0, "multiplier": 16.61, "payout": 258, "blessing": "neutral", "text": "I built HobbyCloud, the free cloud for teens! I’m working on offering web hosting soon, and maybe even VPS hosting. Register an account and stay tuned!", "repo": "https://github.com/EliasL-git/el4scloud", "demo": "https://cloud.el4s.dev"}]...
|
[{"post_id": 23638, "ts": "202 [{"post_id": 23638, "ts": "2026-07-06T18:33:30Z", "hours": 1.4336, "text": "Added banned_domains table + admin page to ban email domains — bans a domain, terminates all users with that domain, sends a termination email explaining they used a blacklisted domain- Created components/emails/banned-domain-termination.tsx email template- Added admin Broadcasts feature — form to send an email to all users, logged in broadcasts table- Added lib/zip.ts — lightweight ZIP creation using raw DEFLATE (no npm deps needed)- Added /api/admin/users/[userId]/export — admin can download a user’s account.json + all files as a zip- Built fraud detection engine ( lib/fraud-detection.ts , app/actions/fraud.ts ): - Duplicate IP detection on registration (+15/+30 score) - Upload velocity spikes (+10/+20 score) - Storage abuse (80%+ full, mostly tiny files, +25 score) - Auto-suspends at 80+ score- Admin Fraud Detection page with score leaderboard, drill-down flag viewer, clear flags + unsuspend button- Fixed scripts (migrate.mjs, check-health.mjs, reset-password.mjs) to handle both 'email' and 'credential' providerId values after registration was updated to use 'credential'"}, {"post_id": 22321, "ts": "2026-07-04T18:44:28Z", "hours": 1.3336, "text": "Fixed admin sidebar navigation — clicking tabs actually switches views now, not just overview- Added reset modal with granular checkboxes (storage, verification, introduction) instead of a single button- Removed Access Codes feature entirely (sidebar, actions, schema)- Created suspension enforcement system: assertNotSuspended() / isSuspended() guards across AI chat, files, API keys, webhooks, and proxy routes- Added unsuspendUser() admin action with button in admin users table- Fixed webhook test delivery — was calling fireWebhook() which silently dropped test events; now calls deliver() directly. Same fix in admin and API route.- Changed webhook payloads to Discord embed format with color-coded events and “Hobbycloud” as bot name- Stripped PII (names, emails, filenames, share tokens, API key prefixes, ticket subjects) from all webhook payloads- Removed “Need more storage?” footer from dashboard shell- Added ticket categories + subcategories with shared hierarchy constants, database migration, subcategory selectors, admin category filtering- Redesigned ticket creation UI — dedicated full-page form with visual category cards (icons!), auto-priority based on category/subcategory- Priority now auto-adjusts: Feature Request/General → low, Abuse/DMCA → urgent, Account recovery → high, etc."}, {"post_id": 21692, "ts": "2026-07-03T19:39:21Z", "hours": 1.0167, "text": "Moved back to Resend because Mailcow + Amazon SES wasn’t working due to issues with Amazon SES.Flagged files are now stored by their hash in our database. This significantly speeds up reviews, as ClamAV no longer has to rescan the same files repeatedly. Also started working on stats + made webhooks semi working!"}, {"post_id": 21652, "ts": "2026-07-03T18:36:46Z", "hours": 1.8836, "text": "Started to implement webhooks! For users and for admins! this way you can be alerted over discord or slack for stuff regarding your account!!!"}, {"post_id": 20981, "ts": "2026-07-02T18:37:17Z", "hours": 1.7503, "text": "offering free AI now! i have 200$ to burn since DO stopped offering github EDU a week ago :("}, {"post_id": 20155, "ts": "2026-07-01T18:15:07Z", "hours": 2.5169, "text": "im planing on offering more services so!! i made service isolation i will soon implement free web hosting and eventually compute!"}, {"post_id": 18582, "ts": "2026-06-29T19:31:34Z", "hours": 2.8, "text": "Made it use tabed navigation, implemented identity verification!"}, {"post_id": 17833, "ts": "2026-06-28T19:34:32Z", "hours": 3.8231, "text": "Built file uploading + virus scanning of uploaded files! doing my vbest to make it prod ready soon!"}]...
|
Title: el4scloud by @el4s | Stardance
Devlogs:
Bu Title: el4scloud by @el4s | Stardance
Devlogs:
Built file uploading + virus scanning of uploaded files! doing my vbest to make it prod ready soon!
Made it use tabed navigation, implemented identity verification!
im planing on offering more services so!! i made service isolation i will soon implement free web hosting and eventually compute!
offering free AI now! i have 200$ to burn since DO stopped offering github EDU a week ago :(
Started to implement webhooks! For users and for admins! this way you can be alerted over discord or slack for stuff regarding your account!!!
Moved back to Resend because Mailcow + Amazon SES wasn’t working due to issues with Amazon SES.Flagged files are now stored by their hash in our database. This significantly speeds up reviews, as ClamAV no longer has to rescan the same files repeatedly. Also started working on stats + made webhooks semi working!
Fixed admin sidebar navigation — clicking tabs actually switches views now, not just overview- Added reset modal with granular checkboxes (storage, verification, introduction) instead of a single button- Removed Access Codes feature entirely (sidebar, actions, schema)- Created suspension enforcement system: assertNotSuspended() / isSuspended() guards across AI chat, files, API keys, webhooks, and proxy routes- Added unsuspendUser() admin action with button in admin users table- Fixed webhook test delivery — was calling fireWebhook() which silently dropped test events; now calls deliver() directly. Same fix in admin and API route.- Changed webhook payloads to Discord embed format with color-coded events and “Hobbycloud” as bot name- Stripped PII (names, emails, filenames, share tokens, API key prefixes, ticket subjects) from all webhook payloads- Removed “Need more storage?” footer from dashboard shell- Added ticket categories + subcategories with shared hierarchy constants, database migration, subcategory selectors, admin category filtering- Redesigned ticket creation UI — dedicated full-page form with visual category cards (icons!), auto-priority based on category/subcategory- Priority now auto-adjusts: Feature Request/General → low, Abuse/DMCA → urgent, Account recovery → high, etc.
Added banned_domains table + admin page to ban email domains — bans a domain, terminates all users with that domain, sends a termination email explaining they used a blacklisted domain- Created components/emails/banned-domain-termination.tsx email template- Added admin Broadcasts feature — form to send an email to all users, logged in broadcasts table- Added lib/zip.ts — lightweight ZIP creation using raw DEFLATE (no npm deps needed)- Added /api/admin/users/[userId]/export — admin can download a user’s account.json + all files as a zip- Built fraud detection engine ( lib/fraud-detection.ts , app/actions/fraud.ts ): - Duplicate IP detection on registration (+15/+30 score) - Upload velocity spikes (+10/+20 score) - Storage abuse (80%+ full, mostly tiny files, +25 score) - Auto-suspends at 80+ score- Admin Fraud Detection page with score leaderboard, drill-down flag viewer, clear flags + unsuspend button- Fixed scripts (migrate.mjs, check-health.mjs, reset-password.mjs) to handle both 'email' and 'credential' providerId values after registration was updated to use 'credential'
Ships:
I built HobbyCloud, the free cloud for teens! I’m working on offering web hosting soon, and maybe even VPS hosting. Register an account and stay tuned!...
|
1793670473.1475704
|
1793756873.1475704
|
|
64860
|
electric vehicle by @joeyfuan | Stardance
|
joeyfuan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: electric vehicle by @joeyfuan | Stardance
|
1793681262.9805202
|
1794286062.9805202
|
|
30440
|
electroball by @gauss | Stardance
|
gauss
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: electroball by @gauss | Stardance
|
1793447277.8345375
|
1794052077.8345375
|
|
66130
|
electronics by @F-Ivan | Stardance
|
F-Ivan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: electronics by @F-Ivan | Stardance
|
1793713689.5037677
|
1794318489.5037677
|
|
67660
|
elepahant alarm clock by @aadhii | Stardance
|
aadhii
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: elepahant alarm clock by @aadhii | Stardanc Title: elepahant alarm clock by @aadhii | Stardance...
|
1793732368.4001224
|
1794337168.4001224
|
|
63841
|
ell by @piconfig | Stardance
|
piconfig
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ell by @piconfig | Stardance
|
1793663743.9321399
|
1794268543.9321399
|
|
70626
|
ellasblog by @linlin | Stardance
|
linlin
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ellasblog by @linlin | Stardance
|
1793166472.513387
|
1793771272.513387
|
|
70627
|
ellasblog by @linlin | Stardance
|
linlin
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ellasblog by @linlin | Stardance
|
1793166473.4157732
|
1793771273.4157732
|
|
70628
|
ellasblog by @linlin | Stardance
|
linlin
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ellasblog by @linlin | Stardance
|
1793166474.2910018
|
1793771274.2910018
|