|
2228
|
mice's website by @Mice | Stardance
|
Mice
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-01T20:11:32Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I decided to redo my old website, since it was esstentially just a page with my socials and not anything related to me. I decided to add animations and a liquid glass vibe to it to replicate fluid movement. I also added sounds that fit the late 2000’s-early 2010’s vibe of the internet.", "repo": "https://github.com/miceoroni/website-v2", "demo": "https://miceoroni.xyz"}]...
|
[{"post_id": 886, "ts": "2026- [{"post_id": 886, "ts": "2026-06-02T16:38:32Z", "hours": 1.1169, "text": "added animations! also fixed mobile support so we should be good in terms of mobile stuff"}, {"post_id": 389, "ts": "2026-06-01T19:08:15Z", "hours": 1.1083, "text": "Started work on this website. decided to change everything over to bootstrap and make it look kinda “liquid glassy”. i added the nxe’s button sounds because it kinda fits the aesthetic a little bit. things i liked: working with html things i need to improve: move the cards from the titlebar. make everything more animated (in/out animations, hover, etc)"}]...
|
Title: mice's website by @Mice | Stardance
De Title: mice's website by @Mice | Stardance
Devlogs:
Started work on this website. decided to change everything over to bootstrap and make it look kinda “liquid glassy”. i added the nxe’s button sounds because it kinda fits the aesthetic a little bit. things i liked: working with html things i need to improve: move the cards from the titlebar. make everything more animated (in/out animations, hover, etc)
added animations! also fixed mobile support so we should be good in terms of mobile stuff
Ships:
I decided to redo my old website, since it was esstentially just a page with my socials and not anything related to me. I decided to add animations and a liquid glass vibe to it to replicate fluid movement. I also added sounds that fit the late 2000’s-early 2010’s vibe of the internet....
|
1793134527.3985271
|
1793220927.3985271
|
|
37981
|
Pythagoras Theorem Proof by @Mudscare | Stardance
|
Mudscare
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Pythagoras Theorem Proof by @Mudscare | Sta Title: Pythagoras Theorem Proof by @Mudscare | Stardance...
|
1792616126.7246008
|
1793220926.7246008
|
|
20276
|
My awesome macropad! by @ssulaymon18 | Stardance
|
ssulaymon18
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @ssulaymon18 | Star Title: My awesome macropad! by @ssulaymon18 | Stardance...
|
1792616125.8502572
|
1793220925.8502572
|
|
43968
|
Stardance Motor Fault Detector by @AliT | Stardanc Stardance Motor Fault Detector by @AliT | Stardance...
|
AliT
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-25T21:08:51Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a motor fault detector, there is an MPU 6050 accelerometer attached to a breaboard that is attached to a USB fan, and it feels the vibration which goes into a model that i trained in Edge Impulse and the model tells you whether it is faulty or healthy when the fan is turned on. To create a fault i put a blob of blu-tack tape on a blade which would cause the balance of the fan to be thrown off and cause a change in vibration, which would be catched by the model in around a second. also the Arduino’s LED lights up like an alarm when it goes faulty too. The challenge i had is getting my model hit 100% accuracy and i also spent some time trying to use an ultrasonic radar from the HCSR04 but i realized it only sample like 25 hertz while the fan actually span at 37.5 hertz which left me with fully focusing with my accelerometer and also Edge Impulse CLI could not be properly installed on my windows ARM so i ended up doing everything through the browser instead and i am proud that it runs live and is fast, 200 samples per second over serial and the inference in 0.3 milliseconds which is all in a browser without a CLI or a compiler. I also found out my fan’s rpm is 2250 without measuring it, the spectrum got it, you can test it here without any hardware needed by using the demo feature “Run demo” as it replays my real recordings through the real model in alternating blocks so you can watch the verdict flip between healthy and faulty but if you do have an Arduino UNO and a MPU 6050, wire it up and give it a try!", "repo": "https://github.com/alioramuss/stardance-motor-fault-detector", "demo": ""}]...
|
[{"post_id": 54748, "ts": "202 [{"post_id": 54748, "ts": "2026-08-25T20:48:20Z", "hours": 0.3256, "text": "Ok so it’s done! There’s an accelerometer taped to a little USB fan (yes, tape I know) and it feels the fan vibrating. That gets fed into a model I trained, and the model tells you if the fan is running fine or if something’s wrong with it. The way I make it “broken” is I stick a bit of blu-tack on one of the blades and it throws the fan off balance and the whole thing shakes differently. The model catches it in about a second and flips to FAULTY. I also made the Arduino’s LED light up when that happens so there’s an actual physical alarm, which is makes it better. Arduino sends 200 readings a second down the USB cable, the model runs in the browser, takes about 0.3ms. The dashboard shows the wave, a live frequency spectrum, and how confident it is also one fun thing I found: the fan spins at 37.5 Hz, so about 2250 rpm. check the video at last image slide or check more of it in my github: https://alioramuss.github.io/stardance-motor-fault-detector/"}, {"post_id": 51725, "ts": "2026-08-21T15:39:57Z", "hours": 6.8014, "text": "Video of it working. The fan runs normally and it says HEALTHY, then I stick a weight on one of the blades and it flips to FAULT. Second clip is the same thing again. Then I mess about tapping the sensor to see what it does. How it works: there’s an accelerometer taped to a USB fan, wired up to an Arduino. The Arduino reads it 200 times a second and sends the numbers to my laptop. It doesn’t do the thinking itself, it’s only got 2 KB of RAM so there’s no room. I recorded a minute of the fan running fine and a minute with a weight on it, chopped those into 5 second bits, and trained a model in Edge Impulse. It looks at a second of data at a time and decides from the frequencies. First go it got 64.7% and just called everything faulty. Turns out I hadn’t normalized the features. Some were tiny numbers, some were in the thousands, so it couldn’t learn properly. Fixed that and it went to 100%. Now it runs in a browser tab and reads the Arduino live. Takes 0.3 ms to classify. There’s a graph that shows the fan’s spin as a spike at 37.5 Hz, which is about 2250 rpm. Also got an LED on the board that lights up when it finds a fault Being honest, that 100% is a bit flattering. Both recordings came from one session so it’s only ever seen this fan on one afternoon. And it only knows two things, so when I tap it there’s no option for “that’s something else”. It has to say healthy or faulty. Next job is recording loads of separate sessions and adding a fan off class. You can try it yourself, no hardware needed: https://alioramuss.github.io/stardance-motor-fault-detector/ I hope you guys like it"}, {"post_id": 51330, "ts": "2026-08-20T22:37:58Z", "hours": 4.0678, "text": "Added a live FFT graph to the dashboard today. You can watch the fan’s spin show up as a spike at 37.5 Hz, which is about 2250 rpm. Kind of cool that I measured my fan’s speed with an accelerometer. Also made the Arduino’s LED light up when it spots a fault, so it’s not just on the screen. And added a slider for how sensitive it is, because it kept flipping between healthy and faulty when it wasn’t sure"}, {"post_id": 50162, "ts": "2026-08-19T08:32:19Z", "hours": 1.9342, "text": "Got and soldered the MPU-6050 accelerometer and wiring was done, most of the two hours was setting it up and installing Node.js and had to resolve issues with an ARM64 and as it did not have a C++ compiler, so i am using PowerShell right now"}, {"post_id": 47145, "ts": "2026-08-14T20:28:22Z", "hours": 0.3017, "text": "Hello, as my first devlog i want to say that my parts have arrived except the sensor, I used Arduino UNO to first test out the LED and counts over serial and i have attached a tape on my fan to represent it as a fauly motor, as it would cause an increase in vibrations"}]...
|
Title: Stardance Motor Fault Detector by @AliT | S Title: Stardance Motor Fault Detector by @AliT | Stardance
Devlogs:
Hello, as my first devlog i want to say that my parts have arrived except the sensor, I used Arduino UNO to first test out the LED and counts over serial and i have attached a tape on my fan to represent it as a fauly motor, as it would cause an increase in vibrations
Got and soldered the MPU-6050 accelerometer and wiring was done, most of the two hours was setting it up and installing Node.js and had to resolve issues with an ARM64 and as it did not have a C++ compiler, so i am using PowerShell right now
Added a live FFT graph to the dashboard today. You can watch the fan’s spin show up as a spike at 37.5 Hz, which is about 2250 rpm. Kind of cool that I measured my fan’s speed with an accelerometer. Also made the Arduino’s LED light up when it spots a fault, so it’s not just on the screen. And added a slider for how sensitive it is, because it kept flipping between healthy and faulty when it wasn’t sure
Video of it working. The fan runs normally and it says HEALTHY, then I stick a weight on one of the blades and it flips to FAULT. Second clip is the same thing again. Then I mess about tapping the sensor to see what it does. How it works: there’s an accelerometer taped to a USB fan, wired up to an Arduino. The Arduino reads it 200 times a second and sends the numbers to my laptop. It doesn’t do the thinking itself, it’s only got 2 KB of RAM so there’s no room. I recorded a minute of the fan running fine and a minute with a weight on it, chopped those into 5 second bits, and trained a model in Edge Impulse. It looks at a second of data at a time and decides from the frequencies. First go it got 64.7% and just called everything faulty. Turns out I hadn’t normalized the features. Some were tiny numbers, some were in the thousands, so it couldn’t learn properly. Fixed that and it went to 100%. Now it runs in a browser tab and reads the Arduino live. Takes 0.3 ms to classify. There’s a graph that shows the fan’s spin as a spike at 37.5 Hz, which is about 2250 rpm. Also got an LED on the board that lights up when it finds a fault Being honest, that 100% is a bit flattering. Both recordings came from one session so it’s only ever seen this fan on one afternoon. And it only knows two things, so when I tap it there’s no option for “that’s something else”. It has to say healthy or faulty. Next job is recording loads of separate sessions and adding a fan off class. You can try it yourself, no hardware needed: https://alioramuss.github.io/stardance-motor-fault-detector/ I hope you guys like it
Ok so it’s done! There’s an accelerometer taped to a little USB fan (yes, tape I know) and it feels the fan vibrating. That gets fed into a model I trained, and the model tells you if the fan is running fine or if something’s wrong with it. The way I make it “broken” is I stick a bit of blu-tack on one of the blades and it throws the fan off balance and the whole thing shakes differently. The model catches it in about a second and flips to FAULTY. I also made the Arduino’s LED light up when that happens so there’s an actual physical alarm, which is makes it better. Arduino sends 200 readings a second down the USB cable, the model runs in the browser, takes about 0.3ms. The dashboard shows the wave, a live frequency spectrum, and how confident it is also one fun thing I found: the fan spins at 37.5 Hz, so about 2250 rpm. check the video at last image slide or check more of it in my github: https://alioramuss.github.io/stardance-motor-fault-detector/
Ships:
I made a motor fault detector, there is an MPU 6050 accelerometer attached to a breaboard that is attached to a USB fan, and it feels the vibration which goes into a model that i trained in Edge Impulse and the model tells you whether it is faulty or healthy when the fan is turned on. To create a fault i put a blob of blu-tack tape on a blade which would cause the balance of the fan to be thrown off and cause a change in vibration, which would be catched by the model in around a second. also the Arduino’s LED lights up like an alarm when it goes faulty too. The challenge i had is getting my model hit 100% accuracy and i also spent some time trying to use an ultrasonic radar from the HCSR04 but i realized it only sample like 25 hertz while the fan actually span at 37.5 hertz which left me with fully focusing with my accelerometer and also Edge Impulse CLI could not be properly installed on my windows ARM so i ended up doing everything through the browser instead and i am proud that it runs live and is fast, 200 samples per second over serial and the inference in 0.3 milliseconds which is all in a browser without a CLI or a compiler. I also found out my fan’s rpm is 2250 without measuring it, the spectrum got it, you can test it here without any hardware needed by using the demo feature “Run demo” as it replays my real recordings through the real model in alternating blocks so you can watch the verdict flip between healthy and faulty but if you do have an Arduino UNO and a MPU 6050, wire it up and give it a try!...
|
1793134525.370741
|
1793220925.370741
|
|
32580
|
My own site! by @egover | Stardance
|
egover
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @egover | Stardance
|
1792616124.9830554
|
1793220924.9830554
|
|
15635
|
My awesome macropad! by @ShauryaK | Stardance
|
ShauryaK
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @ShauryaK | Stardan Title: My awesome macropad! by @ShauryaK | Stardance...
|
1792616124.1197648
|
1793220924.1197648
|
|
32390
|
WarioWare Game by @Hi | Stardance
|
Hi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @Hi | Stardance
|
1792616123.2725055
|
1793220923.2725055
|
|
10898
|
My awesome macropad! by @raahat | Stardance
|
raahat
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T21:00:51Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a 3x3 macropad with an oled screen and a rotary encoder. This was my first time cadding something so it was very cool to see how I could use what I learned to assemble the macropad. I definitely struggled a lot but in that same process I learned as well. I’m glad I got to step out of my comfort zone (coding) and work on hardware. I hope to continue learning and I’m eager to see where stardance takes me! :)", "repo": "https://github.com/RAdev-py/Raahat-s-Macropad", "demo": ""}]...
|
[{"post_id": 11546, "ts": "202 [{"post_id": 11546, "ts": "2026-06-18T20:51:49Z", "hours": 0.3317, "text": "I just finished the assembly for my hackpad. My cad skills need a lot of work but it was cool learning and seeing it all come together."}]...
|
Title: My awesome macropad! by @raahat | Stardance Title: My awesome macropad! by @raahat | Stardance
Devlogs:
I just finished the assembly for my hackpad. My cad skills need a lot of work but it was cool learning and seeing it all come together.
Ships:
I made a 3x3 macropad with an oled screen and a rotary encoder. This was my first time cadding something so it was very cool to see how I could use what I learned to assemble the macropad. I definitely struggled a lot but in that same process I learned as well. I’m glad I got to step out of my comfort zone (coding) and work on hardware. I hope to continue learning and I’m eager to see where stardance takes me! :)...
|
1793134522.7610993
|
1793220922.7610993
|
|
14442
|
Untitled project by @avnibenmoshe | Stardance
|
avnibenmoshe
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @avnibenmoshe | Stardan Title: Untitled project by @avnibenmoshe | Stardance...
|
1792616122.4367495
|
1793220922.4367495
|
|
18648
|
Untitled project by @jarsz | Stardance
|
jarsz
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @jarsz | Stardance
|
1792616121.6145384
|
1793220921.6145384
|
|
31761
|
Untitled by @365alby | Stardance
|
365alby
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @365alby | Stardance
|
1792616120.7891126
|
1793220920.7891126
|
|
38699
|
3D Model Car by @abdulahad_hashmi | Stardance
|
abdulahad_hashmi
|
1
|
32.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T09:09:36Z", "hours": 32.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a 3D model of Porsche in Blender.", "repo": "https://github.com/abdulahadhashmi11/Car-model-Porsche", "demo": "https://youtube.com/shorts/2x41p0ap73s?si=gU99ejqkSglyvkD_"}]...
|
[{"post_id": 51133, "ts": "202 [{"post_id": 51133, "ts": "2026-08-20T17:04:11Z", "hours": 3.7272, "text": "Im done with the animation!!!! pls check it out youtube @Hashmi_creates"}, {"post_id": 37008, "ts": "2026-07-29T13:45:16Z", "hours": 3.4411, "text": "I have finished the materials(created the tyres again cuz the first ones were having some problems) and finally finsheddd the car!!!! now just have to make the road"}, {"post_id": 36897, "ts": "2026-07-29T08:48:49Z", "hours": 9.3972, "text": "I have textured the car(now I have to make it realistic and make sure it renders correctly), I also added the sideview mirrors, panel gaps and made carbon fiber as well ps this screen shot is only in object view without any materials/textures"}, {"post_id": 35149, "ts": "2026-07-26T11:58:35Z", "hours": 3.8061, "text": "Finished Modelling the car, Now just need to add the little details and start working on the animation :)"}, {"post_id": 34725, "ts": "2026-07-25T17:57:39Z", "hours": 3.9586, "text": "I have completed the side profile of my car and have now started working on the back of the car"}, {"post_id": 34195, "ts": "2026-07-24T18:30:54Z", "hours": 1.0836, "text": "I have finished modelling the car tyre"}, {"post_id": 34139, "ts": "2026-07-24T17:19:05Z", "hours": 3.3103, "text": "I have now finished the front grill of the car"}, {"post_id": 33989, "ts": "2026-07-24T11:44:34Z", "hours": 2.9372, "text": "I have now solidified a quater of the car and added seams as well"}, {"post_id": 33515, "ts": "2026-07-23T15:01:06Z", "hours": 0.3925, "text": "A car"}]...
|
Title: 3D Model Car by @abdulahad_hashmi | Stardan Title: 3D Model Car by @abdulahad_hashmi | Stardance
Devlogs:
A car
I have now solidified a quater of the car and added seams as well
I have now finished the front grill of the car
I have finished modelling the car tyre
I have completed the side profile of my car and have now started working on the back of the car
Finished Modelling the car, Now just need to add the little details and start working on the animation :)
I have textured the car(now I have to make it realistic and make sure it renders correctly), I also added the sideview mirrors, panel gaps and made carbon fiber as well ps this screen shot is only in object view without any materials/textures
I have finished the materials(created the tyres again cuz the first ones were having some problems) and finally finsheddd the car!!!! now just have to make the road
Im done with the animation!!!! pls check it out youtube @Hashmi_creates
Ships:
I made a 3D model of Porsche in Blender....
|
1793134520.703087
|
1793220920.703087
|
|
2003
|
My first slack bot! by @connershoemaker | Stardanc My first slack bot! by @connershoemaker | Stardance...
|
connershoemaker
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @connershoemaker | S Title: My first slack bot! by @connershoemaker | Stardance...
|
1792616119.9550672
|
1793220919.9550672
|
|
5476
|
My awesome macropad! by @Honque | Stardance
|
Honque
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Honque | Stardance
|
1792616119.1225457
|
1793220919.1225457
|
|
13636
|
My awesome macropad! by @freya | Stardance
|
freya
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @freya | Stardance
|
1792616118.264109
|
1793220918.264109
|
|
22469
|
Website For Interior designer by @amber_priyadarsh Website For Interior designer by @amber_priyadarshi | Stardance...
|
amber_priyadarshi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Website For Interior designer by @amber_pri Title: Website For Interior designer by @amber_priyadarshi | Stardance...
|
1792616117.4363942
|
1793220917.4363942
|
|
1325
|
Minesweeper with message queue by @mismih | Starda Minesweeper with message queue by @mismih | Stardance...
|
mismih
|
1
|
7.54
|
23
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-05T21:39:26Z", "hours": 6.0, "multiplier": 4.1, "payout": 23, "blessing": "neutral", "text": "I have to write a devlog again? Anyways, so it feels nice working on a project that isnt hard, kinda relaxing. Didnt want to do anything more complex that this so i could warm up before a big project, which is an undertale inspired game (probably, unless i get a raspberry 4 for my remote server app). Also i learned something new about interprocess communications.", "repo": "https://github.com/mismih/MineSweeper-IPC", "demo": "https://github.com/mismih/MineSweeper-IPC/releases"}]...
|
[{"post_id": 5592, "ts": "2026 [{"post_id": 5592, "ts": "2026-06-09T13:23:57Z", "hours": 1.5436, "text": "Made the app 800 600 so raylib doesnt read the wrong input (if i put 1920 1080 windows will automatically go into fullscreen mode which sucks for development user input) ALSO MAKE SURE TO PUT YOUR DISPLAY TO 100%"}, {"post_id": 2966, "ts": "2026-06-05T21:34:16Z", "hours": 0.2789, "text": "New final post, just made the release version and deleted some debug code"}, {"post_id": 2950, "ts": "2026-06-05T21:10:08Z", "hours": 1.4233, "text": "Proud to say that this project is over. It took me a bit more than expected, probably bc i was sick and because i hardcoded some things. Probably gonna finish this project in the future (add the option for choosing how many mines/fields you want). In this “update” i added a high score tracker, main menu and the retry button now works."}, {"post_id": 2380, "ts": "2026-06-04T20:41:57Z", "hours": 1.5231, "text": "Added a time tracker, bombs placed and retry button (which is exit button for now cuz i wasnt thinking about retry logic before and its kinda hard), also could add best score and main menu later"}, {"post_id": 1676, "ts": "2026-06-03T20:26:14Z", "hours": 0.9981, "text": "I added a smart function so i can easily check on which field i clicked, now you can reveal the fields if u click on an empty one. Now my game is about 70% finished, now i need to add flags, game over and score (prob gonna make my own little db, so you can track your high score n stuff like that) and maybe even add a main menu."}, {"post_id": 1067, "ts": "2026-06-02T21:39:21Z", "hours": 0.5456, "text": "Made the UI work"}, {"post_id": 430, "ts": "2026-06-01T20:41:15Z", "hours": 1.1719, "text": "Made two programs communicate with eachother, now i need to make the client side (GUI in raylib)"}]...
|
Title: Minesweeper with message queue by @mismih | Title: Minesweeper with message queue by @mismih | Stardance
Devlogs:
Made two programs communicate with eachother, now i need to make the client side (GUI in raylib)
Made the UI work
I added a smart function so i can easily check on which field i clicked, now you can reveal the fields if u click on an empty one. Now my game is about 70% finished, now i need to add flags, game over and score (prob gonna make my own little db, so you can track your high score n stuff like that) and maybe even add a main menu.
Added a time tracker, bombs placed and retry button (which is exit button for now cuz i wasnt thinking about retry logic before and its kinda hard), also could add best score and main menu later
Proud to say that this project is over. It took me a bit more than expected, probably bc i was sick and because i hardcoded some things. Probably gonna finish this project in the future (add the option for choosing how many mines/fields you want). In this “update” i added a high score tracker, main menu and the retry button now works.
New final post, just made the release version and deleted some debug code
Made the app 800 600 so raylib doesnt read the wrong input (if i put 1920 1080 windows will automatically go into fullscreen mode which sucks for development user input) ALSO MAKE SURE TO PUT YOUR DISPLAY TO 100%
Ships:
I have to write a devlog again? Anyways, so it feels nice working on a project that isnt hard, kinda relaxing. Didnt want to do anything more complex that this so i could warm up before a big project, which is an undertale inspired game (probably, unless i get a raspberry 4 for my remote server app). Also i learned something new about interprocess communications....
|
1793134516.8459828
|
1793220916.8459828
|
|
27120
|
My awesome macropad! by @Tigasss | Stardance
|
Tigasss
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Tigasss | Stardanc Title: My awesome macropad! by @Tigasss | Stardance...
|
1792616116.5902927
|
1793220916.5902927
|
|
18891
|
A beat by @stxklen | Stardance
|
stxklen
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: A beat by @stxklen | Stardance
|
1792616115.750865
|
1793220915.750865
|
|
31683
|
Untitled by @Mrgeostorm | Stardance
|
Mrgeostorm
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @Mrgeostorm | Stardance
|
1792616114.9222429
|
1793220914.9222429
|
|
30265
|
My own site! by @callmenog | Stardance
|
callmenog
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @callmenog | Stardance
|
1792616114.064614
|
1793220914.064614
|
|
4470
|
Edge-AI Home Monitoring System by @Greg_ios | Star Edge-AI Home Monitoring System by @Greg_ios | Stardance...
|
Greg_ios
|
3
|
38.0
|
612
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T08:49:56Z", "hours": 18.0, "multiplier": 17.56, "payout": 308, "blessing": "neutral", "text": "Most smart homes are leased, not owned. Every command you send travels to a cloud you don’t control, owned by a company with interests misaligned to yours. This system proves that meaningful control of your physical space doesn’t require surrendering it to a vendor. Edge-AI Home Monitoring is a locally-governed, vendor-independent home automation platform designed to answer: can a household be sovereign over its own infrastructure?", "repo": "https://github.com/travletothefurureprogramming/Edge-AI-Home-Monitoring-System", "demo": "https://edgeaihomemonitoringsystem.carrd.co/"}, {"ship_num": 2, "ts": "2026-06-30T20:49:56Z", "hours": 11.0, "multiplier": 16.61, "payout": 175, "blessing": "neutral", "text": "Over the past few weeks, Edge-AI Home Monitoring System has evolved from a basic smart home controller into a much more capable home automation platform. New Features Added YOLO-based security monitoring Integrated Telegram bot for remote alerts and device control Added support for Tapo Smart Bulbs Added support for Tapo Smart Plugs Added support for Philips Hue devices Added support for Yeelight devices Added support for LG Smart TVs Added Remote PC Control & Monitoring Infrastructure Improvements Built a full Flask server backend Added a responsive Web Dashboard Improved setup process with automated setup scripts Reworked documentation and README Reliability Improvements Refactored multiple modules with structured exception handling Added better logging and debugging tools Improved API responses and backend stability Enhanced scalability for future device integrations The project is now much closer to becoming a complete privacy-first edge AI smart home hub capable of controlling multiple device ecosystems from a single interface.", "repo": "https://github.com/travletothefurureprogramming/Edge-AI-Home-Monitoring-System", "demo": "https://edgeaihomemonitoringsystem.carrd.co/"}, {"ship_num": 3, "ts": "2026-06-03T14:57:54Z", "hours": 9.0, "multiplier": 15.16, "payout": 129, "blessing": "neutral", "text": "I have made an Edge-AI Home Monitoring System. It is a privacy-first, edge-AI home automation hub using Linux, Flask, and real-time control to orchestrate smart devices.", "repo": "https://github.com/travletothefurureprogramming/Edge-AI-Home-Monitoring-System", "demo": "https://edgeaihomemonitoringsystem.carrd.co/"}]...
|
[{"post_id": 30918, "ts": "202 [{"post_id": 30918, "ts": "2026-07-18T22:06:31Z", "hours": 2.7133, "text": "🧪 Reliability & CI Improvements This update also focuses on improving the project’s reliability and development workflow. What’s New Added 20 Pytest test cases covering the core functionality of the system, helping verify that critical components behave correctly and reducing the risk of regressions. Configured GitHub Actions to automatically execute the entire test suite after every commit and pull request, ensuring new changes don’t break existing functionality. Why It Matters Automated testing and Continuous Integration (CI) make the project more robust, maintainable, and production-ready. Every code change is now automatically validated before it becomes part of the project, providing faster feedback during development and increasing confidence in future updates."}, {"post_id": 29426, "ts": "2026-07-16T11:26:44Z", "hours": 2.9903, "text": "🐳 Docker Setup: 100% Functional Docker support for the Edge-AI Home Monitoring System is now fully working end-to-end. What’s New First-Run Setup via HTML : Instead of manual configuration steps, the very first launch now opens a lightweight HTML setup page that walks through the initial configuration once (credentials, device registration basics, etc.). After this one-time run, it’s never needed again — the container remembers everything through the persisted config volumes. One Command to Rule Them All : The whole system — Flask backend, Docker container, and now the first-run setup — is launched with a single script: Windows: start.bat Linux: start.sh No more manually running docker compose , checking dependencies, or following multi-step instructions. Just run the script for your OS and the entire stack comes up ready to use. Why It Matters This closes the loop on the Docker migration from a few devlogs ago. Before, Docker removed the Python/venv/dependency headaches but still required knowing the right compose commands. Now the onboarding experience is genuinely “clone → run one script → done,” with the HTML first-run page handling the last bit of manual setup that used to require touching config files by hand."}, {"post_id": 27850, "ts": "2026-07-13T18:59:41Z", "hours": 1.8536, "text": "🚀 One of the Biggest Updates: Docker-Based Setup & Minimal Installation The Edge-AI Home Monitoring System has just received its most significant infrastructure overhaul yet! We have completely re-engineered the deployment workflow. Instead of dealing with manual environment configurations, matching Python versions, and tracking down dependency conflicts, the entire ecosystem can now be spun up instantly with a single command. 🐳 What’s New: Containerized Architecture By migrating the platform to a fully containerized backend , we’ve moved away from fragile local setups closer to a production-grade deployment. Key Improvements: Isolated Environment: The Flask backend and all its core libraries run inside an isolated Docker container, completely immune to host-system configuration drifts. Automated Dependency Management: All heavy-lifting dependencies are resolved and cached automatically inside the image. State & Configuration Persistence: Your custom devices_config.json , automation rules, and local database models are securely mapped via Docker volumes, meaning they persist perfectly across container restarts and updates. High Portability: Moving the hub from a development PC to a dedicated home server (like a Fedora Linux box or a Raspberry Pi) is now completely seamless. ⚡ Setup: Before vs. After The difference in onboarding friction is night and day. Look at how the installation footprint has shrunk: Old Manual Setup New Docker Workflow ❌ Install Python manually & match versions 📦 Pre-configured runtime environment ❌ Create virtual environments ( venv ) 📦 Isolated container filesystems ❌ Debug pip dependency conflicts 📦 One-time automated image build ❌ Manually set environment variables 📦 Declarative configuration via Compose ❌ Run background scripts step-by-step 📦 Single-command multi-service launch The New Minimal Installation Path: Now, launching your privacy-first smart home hub requires nothing more than standard container tools: # Clone the repository git clone https://github.com/travletothefurureprogramming/Edge-AI-Home-Monitoring-System # Navigate to the project root cd Edge-AI-Home-Monitoring-System # Spin up the entire system in detached mode docker compose up -d"}, {"post_id": 27230, "ts": "2026-07-12T16:46:07Z", "hours": 0.7819, "text": "UI Modernization & Native Sonos Integration 🎵🎨 A massive structural and visual update has landed! The Edge-AI Home Monitoring System dashboard has been rewritten into a production-grade, single-page interface using the modern Inter typeface family. Alongside this visual overhaul, we are introducing native, local-only support for Sonos Smart Audio Devices . What’s New 1. High-End Minimalist UI & CSS Token Architecture The new interface shifts away from crowded layouts to a highly scannable, component-driven architecture featuring a strict color and spacing utility system built directly into :root . Unified Palette System: Built entirely on minimal token foundations: light-mode canvas backgrounds ( #fafafa ), precise surface modules ( #ffffff ), and structural crisp border outlines ( #e7e7e7 / #d9d9d9 ). Blur-Effects Navigation Header ( .topbar ): A sticky system header utilizing backdrop-filter: blur(8px) that embeds the new brand mark ( A Home ) alongside a live status strip displaying the total device count, registered automations, and an immediate visual green heartbeat indicator ( .live-dot ). Decoupled Grid Control ( .grid ): Devices are rendered dynamically using a responsive auto-fill layout ( minmax(240px, 1fr) ) with explicit styling classes for device actions ( .btn.on for soft green feedback, .btn.off for soft red, and .btn.accent for special triggers). Asynchronous AI Assistant Component ( .ai-panel ): A dedicated section housing the local LLM interaction logic, optimized with a smooth CSS-animated text typing loop ( @keyframes dotfade ) to indicate processing states without blocking UI interactions. 2. Native Sonos Smart Audio Core Integration Audio control joins our local device tree. The system now natively communicates with Sonos devices over the local network via unified backend hooks, matching our privacy-first design patterns. The control grid maps the specific target API endpoints directly to native UI inputs, enabling immediate transmission of core execution parameters: play — Resumes audio streaming ( .btn.on ) pause — Pauses current media layout tracking stop — Breaks audio buffering completely ( .btn.off ) volume_up & volume_down — Alters hardware volume steps Real-Time “Now Playing” UI Subview Sonos control cards now dynamically build and inject an interactive media HUD element ( .now-playing ). Dynamic Media Binding: Communicates with the new /api/music/current endpoint via explicit POST JSON payloads ( { room, type, number, command: 'get', device } ). Visual Playback Flags: Implements dynamic active toggles ( .now-playing.playing ) that shift asset opacity states depending on network audio feedback. Non-Blocking Control Pulls: The inline manual update button ( .np-refresh ) relies on an isolated asynchronous CSS loop wrapper ( @keyframes spin ) allowing updates without triggering full dashboard asset re-renders."}, {"post_id": 27152, "ts": "2026-07-12T13:36:12Z", "hours": 0.6378, "text": "Samsung Smart TV Support Added 📺 The Edge-AI Home Monitoring System now includes full support for Samsung Smart TVs running Tizen OS, expanding the platform’s smart device ecosystem with another major TV manufacturer. This integration uses the Samsung TV WebSocket API, allowing the system to communicate directly with compatible TVs over the local network without requiring additional hardware such as IR blasters. What’s New Added a new Samsung TV backend integration using the samsungtvws Python library. Implemented support for: Power control (ON/OFF) Remote key commands Volume control Device information retrieval Samsung TVs are now registered as a native device type inside the system, following the same architecture used by other integrations such as LG WebOS, Daikin, Tapo, Hue, Yeelight, Shelly, and Broadlink. Why It Matters Until now, TV support was mainly focused on LG Smart TVs and IR-controlled televisions through Broadlink. With Samsung Smart TV support, the system can now directly control another major smart TV ecosystem using its official network interface. This improves: Response time compared to IR control Local-only communication (no cloud dependency) Compatibility with more homes Technical Details The integration communicates with Samsung TVs through: Samsung Tizen WebSocket API Local network TCP communication Device authentication pairing The system keeps the same device abstraction model used by the rest of the project, making Samsung TVs behave like any other controllable smart device. Challenges Some challenges during implementation: Handling Samsung’s first-time pairing approval system Managing WebSocket connections reliably Ensuring compatibility between different Tizen TV models Mapping Samsung remote key codes into the existing device command structure Next Steps Future improvements: Add automatic Samsung TV discovery Add real-time TV status feedback (power state, current app, volume) Add voice assistant commands for Samsung TVs - Add more controls Samsung Smart TVs are now another fully supported platform in the Edge-AI Home Monitoring System, bringing the project closer to becoming a complete privacy-first smart home hub."}, {"post_id": 26718, "ts": "2026-07-11T17:52:05Z", "hours": 0.8892, "text": "Full Broadlink Universal Remote Support The Edge-AI Home Monitoring System now includes complete support for Broadlink Universal Remotes , allowing the platform not only to learn IR commands but also to transmit them directly to infrared-controlled devices. What’s New Added a dedicated Broadlink backend integration for sending stored IR commands. Implemented a new /api/broadlink endpoint for controlling Broadlink devices from the dashboard and automation engine. Added a Broadlink device class responsible for: Connecting and authenticating with Broadlink RM-series devices. Reading learned IR codes from broadlink_codes.json . Sending IR packets using device.send_data() . Full support for controlling: TVs Air Conditioners TV Decoders / Set-Top Boxes Broadlink devices are now treated like any other supported smart device and can be used throughout the entire system. Why It Matters This is a major milestone because the system is no longer limited to devices with official APIs. Thousands of legacy appliances—including older televisions, air conditioners, and cable/satellite decoders—can now be integrated into the smart home ecosystem using only their existing infrared remote controls. Users can control these devices from: The Web Dashboard Automation Rules Future Voice Assistant integrations Any API client connected to the system This significantly expands compatibility while maintaining the project’s privacy-first, local-control philosophy. Challenges IR packets must be converted back into raw byte format before transmission. Maintaining synchronization between learned codes and registered Broadlink devices remains important as the number of supported devices grows. Multiple Broadlink hubs on the same network still require a device selection mechanism, which will be addressed in a future update. Next Steps Add automatic Broadlink hub discovery and selection. Integrate Broadlink commands into the Rule Engine as event triggers. Add support for macro commands (multiple IR signals with delays). Improve the dashboard with command management and testing tools."}, {"post_id": 26187, "ts": "2026-07-10T20:47:59Z", "hours": 1.8417, "text": "Broadlink IR Learning App + Voice Guidance in Setup The Edge-AI Home Monitoring System now has its own tool for learning IR signals, as well as voice guidance throughout the setup process. What’s Added Broadlink IR Learning App New desktop application (customtkinter) that connects to a Broadlink device (RM-series) via broadlink.discover() and authenticates automatically. Device type selection (TV / AC / Decoder) with dynamic list of commands depending on the type (on/off, channel up/down, volume, direction, menu, etc.). “Learn & Save” function: Broadlink enters learning mode, waits for the signal from the real remote control and saves the hex packet. The signals are stored in two places: broadlink_codes.json — file-library of all codes per room/device/command. devices_config.json — so that the device is automatically registered as an entry in the system’s main config, with flag is_broadlink_device: true . Voice Guidance in Setup Wizard Added text-to-speech (via pyttsx4 , in a separate thread so as not to block the UI) to each step of the setup wizard: installing dependencies, downloading AI model, creating password, setting Tailscale, Telegram token/chat ID, and registering devices. Each device type during registration (Tapo, Philips Hue, Shelly, Broadlink, etc.) now “explains” vocally which fields need to be filled in, making the process more accessible for someone who is setting up the system for the first time without reading documentation. Also added broadlink as a new device type in the setup wizard dropdown, which opens the Learning App directly when selected. Why It Matters Until now, the system only supported devices with official APIs (Tapo, Hue, Yeelight, LG WebOS, Daikin). Many “dumb” devices at home (old ACs, decoders, TVs without smart features) are controlled only via IR remote — the Broadlink learning app paves the way to integrate virtually any device with an IR remote into the ecosystem, without the need for a special library per brand. Voice guidance also makes setup more accessible — less need to read README step by step, the system tells you what to do live. Challenges async_connect of the Kasa class has incorrect syntax ( await self.device = ... instead of self.device = await ... ) — same problem as previous devlog, still pending. In the Learning App, the device data is temporarily stored in two separate files ( broadlink_codes.json and devices_config.json ) — care must be taken to ensure that they do not become out of sync if a write fails in the middle. The Broadlink device is always identified as devices[0] by broadlink.discover() — if there are multiple Broadlink devices on the network, the app will always connect to the first one found, without selection. TTS requires CoInitialize / CoUninitialize on each thread (Windows-specific), which makes the code less portable to other OSes. Next Steps Full support for sending signals via Broadlink devices (not just learning) — i.e. new /api/broadlink endpoint and Broadlink class in the backend that will read the stored hex codes from broadlink_codes.json and send them via device.send_data() . Integrate Broadlink devices as actions in the Rule Engine, so they can be used in automations like any other device. Wiring emit_device_event to Broadlink sends, so they can also be trigger sources. Fix bug in Kasa.async_connect before any other work on Kasa progresses."}, {"post_id": 25929, "ts": "2026-07-10T12:59:31Z", "hours": 0.6778, "text": "Kasa (TP-Link) Support Added The Edge-AI Home Monitoring System now supports TP-Link Kasa smart plugs/switches, using the python-kasa library’s async Discover API for device communication. What’s New New Kasa class that discovers a device by IP via Discover.discover_single() (with optional username/password for cloud-authenticated devices) and wraps turn_on / turn_off / execute_command behind the same asyncio.run() pattern already used for Daikin and the Tapo devices. New /api/kasa endpoint, gated behind @auth.login_required like the rest of the device APIs. Registered kasa in DEVICE_ENDPOINTS and wired it into create_device_action , so Kasa devices can already be used as automation actions from day one. Added send_kasa and send_daikin helper functions alongside the other device senders, for consistency across the codebase. Why This Matters Kasa is one of the most common smart plug ecosystems out there, so this adds another affordable device family to the system without needing a proprietary hub — anything plugged into a Kasa switch can now be turned on/off from the dashboard or from an automation rule, the same way Tapo and Shelly devices already are. Challenges Ran into a syntax issue in async_connect : await self.device = Discover.discover_single(...) isn’t valid — assignment has to come first, i.e. self.device = await Discover.discover_single(...) . Needs fixing before this can actually run. handle_kasa currently points at a config path ( /config/device_config.json ) that doesn’t match the filename ( devices_config.json ) or the relative-path convention used by every other handler — needs to be corrected to \"config/devices_config.json\" . Same route also references data[\"Room\"][room][dev_type][number][ip] with ip unquoted (a variable reference instead of the string key \"ip\" ), which will throw a NameError rather than the intended KeyError . emit_device_event still isn’t wired into the Kasa (or Shelly) handler, so — same as the other non-TV devices — Kasa state changes can’t yet act as automation triggers. Next Steps Fix the await /assignment order bug in Kasa.async_connect , the config path, and the unquoted \"ip\" key in /api/kasa before testing against a real device. Wire emit_device_event into Kasa, Shelly, and the remaining handlers so any device can act as both an action and a trigger. Once event emission is consistent across all device types, move on to energy monitoring for the Tapo smart plugs."}, {"post_id": 25885, "ts": "2026-07-10T11:31:06Z", "hours": 0.695, "text": "Shelly Support Added The Edge-AI Home Monitoring System now supports Shelly smart relays, using the ShellyPy library to control relay-based devices (plugs, switches, etc.) over the local network. What’s New New Shelly class wrapping ShellyPy.Shelly , with turn_on_relay / turn_off_relay methods and an execute_command dispatcher for on / off commands. New /api/shelly endpoint that reads the device’s IP and relay_number from devices_config.json and forwards the command to the relay. Registered shelly in DEVICE_ENDPOINTS and wired it into create_device_action , so Shelly devices can already be used as automation actions (schedule or event triggered), same as every other device type. Why This Matters Shelly relays are a common, cheap way to add “dumb” appliances into the automation system — a fan, a boiler, anything behind a relay can now be toggled from the dashboard or from a rule, without needing a dedicated smart-device ecosystem. Challenges Noticed /api/shelly is currently missing the @auth.login_required decorator that every other device endpoint has — since authentication was added, this is the one route that slipped through. Needs to be fixed before this ships anywhere network-exposed. Shelly relays are addressed by relay_number rather than an id /model like the other integrations, so the config schema needed a small variation ( relay_number field) instead of reusing the existing device pattern exactly. emit_device_event isn’t wired into the Shelly handler yet, so — like the other non-TV devices — a Shelly state change can’t currently act as a trigger for other automations. Next Steps Add the missing @auth.login_required to /api/shelly . Wire emit_device_event into the Shelly (and remaining) handlers so any device can be both an action and a trigger source. Once event emission is consistent across all device types, move on to energy monitoring for the Tapo smart plugs."}, {"post_id": 25861, "ts": "2026-07-10T10:45:47Z", "hours": 0.7478, "text": "Device-Triggered Chaining: Automations Now React to Device State Changes The Rule Engine already supported schedule triggers and one hardcoded event source (the YOLO “person_detected” signal). This update adds a much more general capability: automations can now trigger off of any device state change , not just security events. What’s New Added emit_device_event(room, dev_type, command), a helper that builds an event name in the form {room} {dev_type} {command} (e.g. living_room_lg_tv_on) and forwards it to AutomationManager.trigger_event. Wired this into the /api/tv endpoint: every time a TV command succeeds, the system now emits an event describing exactly what just happened. This means a rule can be created like “when the Living Room TV turns on → turn on the Living Room lights” without any new trigger type — it reuses the same event-rule machinery already built for the security pipeline. Event names are deterministic and human-readable, so building new automations from the dashboard just means picking the right device + command combo as the trigger. Why This Matters Until now, “smart” behavior meant either a fixed schedule or a single special-cased sensor event. This generalizes the pattern: any device action can become a trigger for any other device action, which is the actual foundation of “automation chaining” (TV on → lights on, plug on → AC on, etc.) rather than a one-off integration. Challenges emit_device_event is currently only called from the TV handler. The Tapo, Philips Hue, Yeelight, and Daikin handlers don’t emit events yet, so right now only TV state changes can kick off a chain — everything else is still a dead end as a trigger source. This is the next thing to close. Needed to be careful that emitting the event happens after the command actually succeeds, not just after it’s requested, so a failed TV command doesn’t fire a chain based on a state change that never happened. Next Steps Add emit_device_event calls to the remaining device handlers (Tapo light/LED strip, Hue, Yeelight, Daikin) so any device can act as a trigger, not just TVs. Once persistence for automation actions is fully solid across restarts, move on to energy monitoring for the Tapo smart plugs."}, {"post_id": 23760, "ts": "2026-07-06T21:49:22Z", "hours": 0.7892, "text": "Automations are Live: Schedules & Event Triggers The Rule Engine I mentioned as “next steps” in the last few devlogs is now fully working. The Edge-AI Home Monitoring System can now react on its own, without me touching the dashboard. What’s New New AutomationManager class that manages rules independently of the Flask request lifecycle, running on its own background thread Schedule triggers : fire any device action at a specific time of day (cron-based under the hood, e.g. “turn off all lights at 23:30”) Event triggers : fire actions the moment something happens in the system — currently wired up to the YOLO security pipeline, so a rule can say “when a person is detected, turn on the living room lights” Automations are managed straight from the dashboard: add a rule (pick a device, a command, and either a time or an event), see the active list, delete on demand — no need to touch the config files by hand Rules persist to disk, so they survive a server restart Challenges The trickiest part wasn’t the scheduling logic itself — it was making sure automation actions don’t accidentally go through the same path as normal API requests. Since every device endpoint is gated behind session-based login, having the automation thread call itself over HTTP triggered 401s (a background thread has no browser session, obviously). Fixed by having automation actions call the device classes directly instead of looping back through HTTP — cleaner and faster anyway, since it skips a full request round-trip for something that’s technically internal. Next Steps Energy monitoring for the Tapo smart plugs, so automations can eventually be built around actual consumption data too."}, {"post_id": 23432, "ts": "2026-07-06T12:12:20Z", "hours": 0.7306, "text": "Create Autoation Manager class"}, {"post_id": 23410, "ts": "2026-07-06T10:52:32Z", "hours": 0.8403, "text": "Added Daikin AC Support The Edge-AI Home Monitoring System now extends into climate control. I’ve added full support for Daikin air conditioners, using the pydaikin library for asynchronous communication with the device over the network. What’s New New DaikinAC class with full control: on/off, increase/decrease temperature, and mode switching (auto, cool, heat, dry, fan) New /api/daikin endpoint for device communication Integrated into the same authentication pattern used across the whole system ( @auth.login_required ), so no new device ecosystem opens a security gap Dashboard controls for Daikin devices, including a mode selection dropdown Challenges Since pydaikin is fully asynchronous (async context managers), each client call had to be wrapped with asyncio.run() to fit into the rest of the synchronous Flask backend — the same approach used for the Tapo devices. Next Steps Rule Engine / Automations system, followed by energy monitoring for the Tapo smart plugs."}, {"post_id": 23380, "ts": "2026-07-06T09:40:25Z", "hours": 0.3508, "text": "Improving the Project Structure One of the biggest challenges in the project was the lack of organization. As the codebase grew, it became harder to navigate and maintain. Today I reorganized the project into a much cleaner structure, making the code easier to understand, extend, and maintain. While there’s still room for improvement, this is a solid step toward a more scalable architecture. What’s Next? Add automation features. Implement energy consumption monitoring for Tapo devices."}, {"post_id": 23116, "ts": "2026-07-05T21:29:56Z", "hours": 0.9906, "text": "Added Authentication System Up until now, the dashboard and all API endpoints were completely open to anyone on the network — a serious problem for a system that controls cameras, smart devices, and even has Remote PC Control capabilities. I implemented a single-admin authentication layer using Flask sessions and password hashing (werkzeug), gating access behind a login page. Key changes: Added a /login route with session-based authentication Passwords are hashed (never stored in plain text) using pbkdf2:sha256 Wrapped every sensitive route with a @login_required decorator — dashboard, device control APIs, camera toggle, and system/remote-PC endpoints API routes return a clean 401 Unauthorized instead of redirecting, so the frontend can handle it gracefully Sessions auto-expire, requiring re-login after a set period This closes the biggest security gap in the project — previously, anyone with access to the local network or Tailscale IP could control devices or the PC without any barrier. Now, all of that is locked behind credentials only I know. Next steps: Rule engine for automations (trigger-based actions), followed by energy monitoring for Tapo smart plugs."}, {"post_id": 15904, "ts": "2026-06-25T21:00:48Z", "hours": 1.1647, "text": "One of the biggest improvements in this update is the error handling system. Originally, the project had very minimal error management, which could lead to unstable behavior and unclear debugging. I refactored multiple modules to introduce structured exception handling, improved logging, and more consistent API responses. This makes the system significantly more stable and easier to debug in real-world usage."}, {"post_id": 15616, "ts": "2026-06-25T12:18:35Z", "hours": 0.5661, "text": "Integration of Remote PC Control & Monitoring into Edge-AI Home Monitoring System. This way the user can control the system remotely. There is a problem with the management of Processes due to an error in the backend."}, {"post_id": 7988, "ts": "2026-06-13T10:14:41Z", "hours": 0.3117, "text": "I added support for Yeelight. It may have only taken me 15 minutes but that was because the Yeelight library I used was very simple. Also because the system is easily extensible I managed to do it in a very short time."}, {"post_id": 7979, "ts": "2026-06-13T09:46:03Z", "hours": 0.7483, "text": "Add fully suppourt for phue devices"}, {"post_id": 7959, "ts": "2026-06-13T08:58:51Z", "hours": 0.2869, "text": "Make the main class and logic for the Philips Hue lights"}, {"post_id": 4423, "ts": "2026-06-07T19:02:12Z", "hours": 0.5789, "text": "Add suppourt for Tapo Smart Plugs"}, {"post_id": 2743, "ts": "2026-06-05T14:46:14Z", "hours": 0.3408, "text": "Add model selection for tapo led strip and tapo light bulbs and make a more clear README.md"}, {"post_id": 2730, "ts": "2026-06-05T14:17:19Z", "hours": 0.6944, "text": "Setup the server! The project will be fully ready soon!!!"}, {"post_id": 2703, "ts": "2026-06-05T12:30:07Z", "hours": 0.5861, "text": "A better setup and run for servers and a more clear README.md"}, {"post_id": 2689, "ts": "2026-06-05T11:33:31Z", "hours": 1.47, "text": "Make a functional server App"}, {"post_id": 2100, "ts": "2026-06-04T13:04:12Z", "hours": 0.7119, "text": "LG TVs in Edge AI Home Monitoring System from now!!!!!!"}, {"post_id": 2071, "ts": "2026-06-04T11:56:50Z", "hours": 0.5139, "text": "Working on LG TV suppourt"}, {"post_id": 2060, "ts": "2026-06-04T11:23:24Z", "hours": 1.1203, "text": "From now Edge-AI Home Monitoring System suppourt tapo smart bulbs!!!!"}, {"post_id": 1538, "ts": "2026-06-03T16:50:58Z", "hours": 0.5186, "text": "Make a telegram bot for easily security and device control"}, {"post_id": 1509, "ts": "2026-06-03T16:05:24Z", "hours": 0.9681, "text": "Making a sequrity system using YOLO and Telegram"}, {"post_id": 1467, "ts": "2026-06-03T14:56:45Z", "hours": 0.5039, "text": "Make a better README.md file and finalize the setup proccess"}, {"post_id": 1426, "ts": "2026-06-03T13:37:14Z", "hours": 0.7961, "text": "Make better readme"}, {"post_id": 1394, "ts": "2026-06-03T12:31:57Z", "hours": 1.1769, "text": "Make a setup script"}, {"post_id": 1370, "ts": "2026-06-03T11:15:13Z", "hours": 1.5264, "text": "Make an app for easy use of AI and also ad functional control for the L900 tapo ledstrip"}, {"post_id": 1343, "ts": "2026-06-03T09:16:06Z", "hours": 1.48, "text": "A new modern dashboard and more devices"}, {"post_id": 757, "ts": "2026-06-02T12:08:30Z", "hours": 1.3436, "text": "Performance Optimization & Frontend Integration After intensive testing, the communication system with Android TV devices has been fully upgraded. The latency observed in command execution has been eliminated, and the project now features its own Web Dashboard. Key Achievements: ADB Server Persistence: Resolved the critical issue regarding the continuous restart of the ADB server. By adopting the Registry Pattern, connections are now maintained (persistent), drastically reducing response time from 5+ seconds to near-zero (real-time). Scalability: The backend has been developed to support the simultaneous control of multiple Android TVs. The system now dynamically manages connections via a central dictionary, allowing for the addition of unlimited devices through devices.json. Frontend Dashboard: Developed a minimal and responsive interface (HTML/JS) that provides full device control. Communication with the server is now handled via the Fetch API with proper CORS and JSON payload handling. Robust Error Handling: Upgraded the error reporting mechanism. The server now actively monitors module status and allows for automatic reset in case of connection restoration. Next Steps: Integration of real-time status feedback to monitor whether a TV is ON/OFF directly on the dashboard. Further optimization of utils.py for more secure inter-module communication."}, {"post_id": 723, "ts": "2026-06-02T09:50:03Z", "hours": 1.6753, "text": "Establishing the Backend Infrastructure for Edge AI Home Monitoring System Today, I successfully built the core communication layer for my Edge AI Home Monitoring System. I focused on creating a robust backend using Flask, enabling the system to act as a central hub for my home devices. Key Achievements: API Orchestration: Developed Flask endpoints (/api/light and /api/tv) to handle state management and device control requests efficiently. Hardware Integration: Implemented an abstraction layer for AndroidTV control, allowing the server to issue commands like power toggles, volume adjustment, and channel navigation over the network. Dynamic Configuration: Built a utility module to handle JSON-based device mapping, ensuring the system can scale easily by reading device IPs and types from a central devices.json configuration file. Logging System: Integrated a custom logger to monitor command execution in real-time, which is essential for debugging my edge-computing setup. Next Steps: Now that the server is successfully running and handling commands, the next phase is to add more devices and create the frontend dashboard."}]...
|
Title: Edge-AI Home Monitoring System by @Greg_ios Title: Edge-AI Home Monitoring System by @Greg_ios | Stardance
Devlogs:
Establishing the Backend Infrastructure for Edge AI Home Monitoring System Today, I successfully built the core communication layer for my Edge AI Home Monitoring System. I focused on creating a robust backend using Flask, enabling the system to act as a central hub for my home devices. Key Achievements: API Orchestration: Developed Flask endpoints (/api/light and /api/tv) to handle state management and device control requests efficiently. Hardware Integration: Implemented an abstraction layer for AndroidTV control, allowing the server to issue commands like power toggles, volume adjustment, and channel navigation over the network. Dynamic Configuration: Built a utility module to handle JSON-based device mapping, ensuring the system can scale easily by reading device IPs and types from a central devices.json configuration file. Logging System: Integrated a custom logger to monitor command execution in real-time, which is essential for debugging my edge-computing setup. Next Steps: Now that the server is successfully running and handling commands, the next phase is to add more devices and create the frontend dashboard.
Performance Optimization & Frontend Integration After intensive testing, the communication system with Android TV devices has been fully upgraded. The latency observed in command execution has been eliminated, and the project now features its own Web Dashboard. Key Achievements: ADB Server Persistence: Resolved the critical issue regarding the continuous restart of the ADB server. By adopting the Registry Pattern, connections are now maintained (persistent), drastically reducing response time from 5+ seconds to near-zero (real-time). Scalability: The backend has been developed to support the simultaneous control of multiple Android TVs. The system now dynamically manages connections via a central dictionary, allowing for the addition of unlimited devices through devices.json. Frontend Dashboard: Developed a minimal and responsive interface (HTML/JS) that provides full device control. Communication with the server is now handled via the Fetch API with proper CORS and JSON payload handling. Robust Error Handling: Upgraded the error reporting mechanism. The server now actively monitors module status and allows for automatic reset in case of connection restoration. Next Steps: Integration of real-time status feedback to monitor whether a TV is ON/OFF directly on the dashboard. Further optimization of utils.py for more secure inter-module communication.
A new modern dashboard and more devices
Make an app for easy use of AI and also ad functional control for the L900 tapo ledstrip
Make a setup script
Make better readme
Make a better README.md file and finalize the setup proccess
Making a sequrity system using YOLO and Telegram
Make a telegram bot for easily security and device control
From now Edge-AI Home Monitoring System suppourt tapo smart bulbs!!!!
Working on LG TV suppourt
LG TVs in Edge AI Home Monitoring System from now!!!!!!
Make a functional server App
A better setup and run for servers and a more clear README.md
Setup the server! The project will be fully ready soon!!!
Add model selection for tapo led strip and tapo light bulbs and make a more clear README.md
Add suppourt for Tapo Smart Plugs
Make the main class and logic for the Philips Hue lights
Add fully suppourt for phue devices
I added support for Yeelight. It may have only taken me 15 minutes but that was because the Yeelight library I used was very simple. Also because the system is easily extensible I managed to do it in a very short time.
Integration of Remote PC Control & Monitoring into Edge-AI Home Monitoring System. This way the user can control the system remotely. There is a problem with the management of Processes due to an error in the backend.
One of the biggest improvements in this update is the error handling system. Originally, the project had very minimal error management, which could lead to unstable behavior and unclear debugging. I refactored multiple modules to introduce structured exception handling, improved logging, and more consistent API responses. This makes the system significantly more stable and easier to debug in real-world usage.
Added Authentication System Up until now, the dashboard and all API endpoints were completely open to anyone on the network — a serious problem for a system that controls cameras, smart devices, and even has Remote PC Control capabilities. I implemented a single-admin authentication layer using Flask sessions and password hashing (werkzeug), gating access behind a login page. Key changes: Added a /login route with session-based authentication Passwords are hashed (never stored in plain text) using pbkdf2:sha256 Wrapped every sensitive route with a @login_required decorator — dashboard, device control APIs, camera toggle, and system/remote-PC endpoints API routes return a clean 401 Unauthorized instead of redirecting, so the frontend can handle it gracefully Sessions auto-expire, requiring re-login after a set period This closes the biggest security gap in the project — previously, anyone with access to the local network or Tailscale IP could control devices or the PC without any barrier. Now, all of that is locked behind credentials only I know. Next steps: Rule engine for automations (trigger-based actions), followed by energy monitoring for Tapo smart plugs.
Improving the Project Structure One of the biggest challenges in the project was the lack of organization. As the codebase grew, it became harder to navigate and maintain. Today I reorganized the project into a much cleaner structure, making the code easier to understand, extend, and maintain. While there’s still room for improvement, this is a solid step toward a more scalable architecture. What’s Next? Add automation features. Implement energy consumption monitoring for Tapo devices.
Added Daikin AC Support The Edge-AI Home Monitoring System now extends into climate control. I’ve added full support for Daikin air conditioners, using the pydaikin library for asynchronous communication with the device over the network. What’s New New DaikinAC class with full control: on/off, increase/decrease temperature, and mode switching (auto, cool, heat, dry, fan) New /api/daikin endpoint for device communication Integrated into the same authentication pattern used across the whole system ( @auth.login_required ), so no new device ecosystem opens a security gap Dashboard controls for Daikin devices, including a mode selection dropdown Challenges Since pydaikin is fully asynchronous (async context managers), each client call had to be wrapped with asyncio.run() to fit into the rest of the synchronous Flask backend — the same approach used for the Tapo devices. Next Steps Rule Engine / Automations system, followed by energy monitoring for the Tapo smart plugs.
Create Autoation Manager class
Automations are Live: Schedules & Event Triggers The Rule Engine I mentioned as “next steps” in the last few devlogs is now fully working. The Edge-AI Home Monitoring System can now react on its own, without me touching the dashboard. What’s New New AutomationManager class that manages rules independently of the Flask request lifecycle, running on its own background thread Schedule triggers : fire any device action at a specific time of day (cron-based under the hood, e.g. “turn off all lights at 23:30”) Event triggers : fire actions the moment something happens in the system — currently wired up to the YOLO security pipeline, so a rule can say “when a person is detected, turn on the living room lights” Automations are managed straight from the dashboard: add a rule (pick a device, a command, and either a time or an event), see the active list, delete on demand — no need to touch the config files by hand Rules persist to disk, so they survive a server restart Challenges The trickiest part wasn’t the scheduling logic itself — it was making sure automation actions don’t accidentally go through the same path as normal API requests. Since every device endpoint is gated behind session-based login, having the automation thread call itself over HTTP triggered 401s (a background thread has no browser session, obviously). Fixed by having automation actions call the device classes directly instead of looping back through HTTP — cleaner and faster anyway, since it skips a full request round-trip for something that’s technically internal. Next Steps Energy monitoring for the Tapo smart plugs, so automations can eventually be built around actual consumption data too.
Device-Triggered Chaining: Automations Now React to Device State Changes The Rule Engine already supported schedule triggers and one hardcoded event source (the YOLO “person_detected” signal). This update adds a much more general capability: automations can now trigger off of any device state change , not just security events. What’s New Added emit_device_event(room, dev_type, command), a helper that builds an event name in the form {room} {dev_type} {command} (e.g. living_room_lg_tv_on) and forwards it to AutomationManager.trigger_event. Wired this into the /api/tv endpoint: every time a TV command succeeds, the system now emits an event describing exactly what just happened. This means a rule can be created like “when the Living Room TV turns on → turn on the Living Room lights” without any new trigger type — it reuses the same event-rule machinery already built for the security pipeline. Event names are deterministic and human-readable, so building new automations from the dashboard just means picking the right device + command combo as the trigger. Why This Matters Until now, “smart” behavior meant either a fixed schedule or a single special-cased sensor event. This generalizes the pattern: any device action can become a trigger for any other device action, which is the actual foundation of “automation chaining” (TV on → lights on, plug on → AC on, etc.) rather than a one-off integration. Challenges emit_device_event is currently only called from the TV handler. The Tapo, Philips Hue, Yeelight, and Daikin handlers don’t emit events yet, so right now only TV state changes can kick off a chain — everything else is still a dead end as a trigger source. This is the next thing to close. Needed to be careful that emitting the event happens after the command actually succeeds, not just after it’s requested, so a failed TV command doesn’t fire a chain based on a state change that never happened. Next Steps Add emit_device_event calls to the remaining device handlers (Tapo light/LED strip, Hue, Yeelight, Daikin) so any device can act as a trigger, not just TVs. Once persistence for automation actions is fully solid across restarts, move on to energy monitoring for the Tapo smart plugs.
Shelly Support Added The Edge-AI Home Monitoring System now supports Shelly smart relays, using the ShellyPy library to control relay-based devices (plugs, switches, etc.) over the local network. What’s New New Shelly class wrapping ShellyPy.Shelly , with turn_on_relay / turn_off_relay methods and an execute_command dispatcher for on / off commands. New /api/shelly endpoint that reads the device’s IP and relay_number from devices_config.json and forwards the command to the relay. Registered shelly in DEVICE_ENDPOINTS and wired it into create_device_action , so Shelly devices can already be used as automation actions (schedule or event triggered), same as every other device type. Why This Matters Shelly relays are a common, cheap way to add “dumb” appliances into the automation system — a fan, a boiler, anything behind a relay can now be toggled from the dashboard or from a rule, without needing a dedicated smart-device ecosystem. Challenges Noticed /api/shelly is currently missing the @auth.login_required decorator that every other device endpoint has — since authentication was added, this is the one route that slipped through. Needs to be fixed before this ships anywhere network-exposed. Shelly relays are addressed by relay_number rather than an id /model like the other integrations, so the config schema needed a small variation ( relay_number field) instead of reusing the existing device pattern exactly. emit_device_event isn’t wired into the Shelly handler yet, so — like the other non-TV devices — a Shelly state change can’t currently act as a trigger for other automations. Next Steps Add the missing @auth.login_required to /api/shelly . Wire emit_device_event into the Shelly (and remaining) handlers so any device can be both an action and a trigger source. Once event emission is consistent across all device types, move on to energy monitoring for the Tapo smart plugs.
Kasa (TP-Link) Support Added The Edge-AI Home Monitoring System now supports TP-Link Kasa smart plugs/switches, using the python-kasa library’s async Discover API for device communication. What’s New New Kasa class that discovers a device by IP via Discover.discover_single() (with optional username/password for cloud-authenticated devices) and wraps turn_on / turn_off / execute_command behind the same asyncio.run() pattern already used for Daikin and the Tapo devices. New /api/kasa endpoint, gated behind @auth.login_required like the rest of the device APIs. Registered kasa in DEVICE_ENDPOINTS and wired it into create_device_action , so Kasa devices can already be used as automation actions from day one. Added send_kasa and send_daikin helper functions alongside the other device senders, for consistency across the codebase. Why This Matters Kasa is one of the most common smart plug ecosystems out there, so this adds another affordable device family to the system without needing a proprietary hub — anything plugged into a Kasa switch can now be turned on/off from the dashboard or from an automation rule, the same way Tapo and Shelly devices already are. Challenges Ran into a syntax issue in async_connect : await self.device = Discover.discover_single(...) isn’t valid — assignment has to come first, i.e. self.device = await Discover.discover_single(...) . Needs fixing before this can actually run. handle_kasa currently points at a config path ( /config/device_config.json ) that doesn’t match the filename ( devices_config.json ) or the relative-path convention used by every other handler — needs to be corrected to "config/devices_config.json" . Same route also references data["Room"][room][dev_type][number][ip] with ip unquoted (a variable reference instead of the string key "ip" ), which will throw a NameError rather than the intended KeyError . emit_device_event still isn’t wired into the Kasa (or Shelly) handler, so — same as the other non-TV devices — Kasa state changes can’t yet act as automation triggers. Next Steps Fix the await /assignment order bug in Kasa.async_connect , the config path, and the unquoted "ip" key in /api/kasa before testing against a real device. Wire emit_device_event into Kasa, Shelly, and the remaining handlers so any device can act as both an action and a trigger. Once event emission is consistent across all device types, move on to energy monitoring for the Tapo smart plugs.
Broadlink IR Learning App + Voice Guidance in Setup The Edge-AI Home Monitoring System now has its own tool for learning IR signals, as well as voice guidance throughout the setup process. What’s Added Broadlink IR Learning App New desktop application (customtkinter) that connects to a Broadlink device (RM-series) via broadlink.discover() and authenticates automatically. Device type selection (TV / AC / Decoder) with dynamic list of commands depending on the type (on/off, channel up/down, volume, direction, menu, etc.). “Learn & Save” function: Broadlink enters learning mode, waits for the signal from the real remote control and saves the hex packet. The signals are stored in two places: broadlink_codes.json — file-library of all codes per room/device/command. devices_config.json — so that the device is automatically registered as an entry in the system’s main config, with flag is_broadlink_device: true . Voice Guidance in Setup Wizard Added text-to-speech (via pyttsx4 , in a separate thread so as not to block the UI) to each step of the setup wizard: installing dependencies, downloading AI model, creating password, setting Tailscale, Telegram token/chat ID, and registering devices. Each device type during registration (Tapo, Philips Hue, Shelly, Broadlink, etc.) now “explains” vocally which fields need to be filled in, making the process more accessible for someone who is setting up the system for the first time without reading documentation. Also added broadlink as a new device type in the setup wizard dropdown, which opens the Learning App directly when selected. Why It Matters Until now, the system only supported devices with official APIs (Tapo, Hue, Yeelight, LG WebOS, Daikin). Many “dumb” devices at home (old ACs, decoders, TVs without smart features) are controlled only via IR remote — the Broadlink learning app paves the way to integrate virtually any device with an IR remote into the ecosystem, without the need for a special library per brand. Voice guidance also makes setup more accessible — less need to read README step by step, the system tells you what to do live. Challenges async_connect of the Kasa class has incorrect syntax ( await self.device = ... instead of self.device = await ... ) — same problem as previous devlog, still pending. In the Learning App, the device data is temporarily stored in two separate files ( broadlink_codes.json and devices_config.json ) — care must be taken to ensure that they do not become out of sync if a write fails in the middle. The Broadlink device is always identified as devices[0] by broadlink.discover() — if there are multiple Broadlink devices on the network, the app will always connect to the first one found, without selection. TTS requires CoInitialize / CoUninitialize on each thread (Windows-specific), which makes the code less portable to other OSes. Next Steps Full support for sending signals via Broadlink devices (not just learning) — i.e. new /api/broadlink endpoint and Broadlink class in the backend that will read the stored hex codes from broadlink_codes.json and send them via device.send_data() . Integrate Broadlink devices as actions in the Rule Engine, so they can be used in automations like any other device. Wiring emit_device_event to Broadlink sends, so they can also be trigger sources. Fix bug in Kasa.async_connect before any other work on Kasa progresses.
Full Broadlink Universal Remote Support The Edge-AI Home Monitoring System now includes complete support for Broadlink Universal Remotes , allowing the platform not only to learn IR commands but also to transmit them directly to infrared-controlled devices. What’s New Added a dedicated Broadlink backend integration for sending stored IR commands. Implemented a new /api/broadlink endpoint for controlling Broadlink devices from the dashboard and automation engine. Added a Broadlink device class responsible for: Connecting and authenticating with Broadlink RM-series devices. Reading learned IR codes from broadlink_codes.json . Sending IR packets using device.send_data() . Full support for controlling: TVs Air Conditioners TV Decoders / Set-Top Boxes Broadlink devices are now treated like any other supported smart device and can be used throughout the entire system. Why It Matters This is a major milestone because the system is no longer limited to devices with official APIs. Thousands of legacy appliances—including older televisions, air conditioners, and cable/satellite decoders—can now be integrated into the smart home ecosystem using only their existing infrared remote controls. Users can control these devices from: The Web Dashboard Automation Rules Future Voice Assistant integrations Any API client connected to the system This significantly expands compatibility while maintaining the project’s privacy-first, local-control philosophy. Challenges IR packets must be converted back into raw byte format before transmission. Maintaining synchronization between learned codes and registered Broadlink devices remains important as the number of supported devices grows. Multiple Broadlink hubs on the same network still require a device selection mechanism, which will be addressed in a future update. Next Steps Add automatic Broadlink hub discovery and selection. Integrate Broadlink commands into the Rule Engine as event triggers. Add support for macro commands (multiple IR signals with delays). Improve the dashboard with command management and testing tools.
Samsung Smart TV Support Added 📺 The Edge-AI Home Monitoring System now includes full support for Samsung Smart TVs running Tizen OS, expanding the platform’s smart device ecosystem with another major TV manufacturer. This integration uses the Samsung TV WebSocket API, allowing the system to communicate directly with compatible TVs over the local network without requiring additional hardware such as IR blasters. What’s New Added a new Samsung TV backend integration using the samsungtvws Python library. Implemented support for: Power control (ON/OFF) Remote key commands Volume control Device information retrieval Samsung TVs are now registered as a native device type inside the system, following the same architecture used by other integrations such as LG WebOS, Daikin, Tapo, Hue, Yeelight, Shelly, and Broadlink. Why It Matters Until now, TV support was mainly focused on LG Smart TVs and IR-controlled televisions through Broadlink. With Samsung Smart TV support, the system can now directly control another major smart TV ecosystem using its official network interface. This improves: Response time compared to IR control Local-only communication (no cloud dependency) Compatibility with more homes Technical Details The integration communicates with Samsung TVs through: Samsung Tizen WebSocket API Local network TCP communication Device authentication pairing The system keeps the same device abstraction model used by the rest of the project, making Samsung TVs behave like any other controllable smart device. Challenges Some challenges during implementation: Handling Samsung’s first-time pairing approval system Managing WebSocket connections reliably Ensuring compatibility between different Tizen TV models Mapping Samsung remote key codes into the existing device command structure Next Steps Future improvements: Add automatic Samsung TV discovery Add real-time TV status feedback (power state, current app, volume) Add voice assistant commands for Samsung TVs - Add more controls Samsung Smart TVs are now another fully supported platform in the Edge-AI Home Monitoring System, bringing the project closer to becoming a complete privacy-first smart home hub.
UI Modernization & Native Sonos Integration 🎵🎨 A massive structural and visual update has landed! The Edge-AI Home Monitoring System dashboard has been rewritten into a production-grade, single-page interface using the modern Inter typeface family. Alongside this visual overhaul, we are introducing native, local-only support for Sonos Smart Audio Devices . What’s New 1. High-End Minimalist UI & CSS Token Architecture The new interface shifts away from crowded layouts to a highly scannable, component-driven architecture featuring a strict color and spacing utility system built directly into :root . Unified Palette System: Built entirely on minimal token foundations: light-mode canvas backgrounds ( #fafafa ), precise surface modules ( #ffffff ), and structural crisp border outlines ( #e7e7e7 / #d9d9d9 ). Blur-Effects Navigation Header ( .topbar ): A sticky system header utilizing backdrop-filter: blur(8px) that embeds the new brand mark ( A Home ) alongside a live status strip displaying the total device count, registered automations, and an immediate visual green heartbeat indicator ( .live-dot ). Decoupled Grid Control ( .grid ): Devices are rendered dynamically using a responsive auto-fill layout ( minmax(240px, 1fr) ) with explicit styling classes for device actions ( .btn.on for soft green feedback, .btn.off for soft red, and .btn.accent for special triggers). Asynchronous AI Assistant Component ( .ai-panel ): A dedicated section housing the local LLM interaction logic, optimized with a smooth CSS-animated text typing loop ( @keyframes dotfade ) to indicate processing states without blocking UI interactions. 2. Native Sonos Smart Audio Core Integration Audio control joins our local device tree. The system now natively communicates with Sonos devices over the local network via unified backend hooks, matching our privacy-first design patterns. The control grid maps the specific target API endpoints directly to native UI inputs, enabling immediate transmission of core execution parameters: play — Resumes audio streaming ( .btn.on ) pause — Pauses current media layout tracking stop — Breaks audio buffering completely ( .btn.off ) volume_up & volume_down — Alters hardware volume steps Real-Time “Now Playing” UI Subview Sonos control cards now dynamically build and inject an interactive media HUD element ( .now-playing ). Dynamic Media Binding: Communicates with the new /api/music/current endpoint via explicit POST JSON payloads ( { room, type, number, command: 'get', device } ). Visual Playback Flags: Implements dynamic active toggles ( .now-playing.playing ) that shift asset opacity states depending on network audio feedback. Non-Blocking Control Pulls: The inline manual update button ( .np-refresh ) relies on an isolated asynchronous CSS loop wrapper ( @keyframes spin ) allowing updates without triggering full dashboard asset re-renders.
🚀 One of the Biggest Updates: Docker-Based Setup & Minimal Installation The Edge-AI Home Monitoring System has just received its most significant infrastructure overhaul yet! We have completely re-engineered the deployment workflow. Instead of dealing with manual environment configurations, matching Python versions, and tracking down dependency conflicts, the entire ecosystem can now be spun up instantly with a single command. 🐳 What’s New: Containerized Architecture By migrating the platform to a fully containerized backend , we’ve moved away from fragile local setups closer to a production-grade deployment. Key Improvements: Isolated Environment: The Flask backend and all its core libraries run inside an isolated Docker container, completely immune to host-system configuration drifts. Automated Dependency Management: All heavy-lifting dependencies are resolved and cached automatically inside the image. State & Configuration Persistence: Your custom devices_config.json , automation rules, and local database models are securely mapped via Docker volumes, meaning they persist perfectly across container restarts and updates. High Portability: Moving the hub from a development PC to a dedicated home server (like a Fedora Linux box or a Raspberry Pi) is now completely seamless. ⚡ Setup: Before vs. After The difference in onboarding friction is night and day. Look at how the installation footprint has shrunk: Old Manual Setup New Docker Workflow ❌ Install Python manually & match versions 📦 Pre-configured runtime environment ❌ Create virtual environments ( venv ) 📦 Isolated container filesystems ❌ Debug pip dependency conflicts 📦 One-time automated image build ❌ Manually set environment variables 📦 Declarative configuration via Compose ❌ Run background scripts step-by-step 📦 Single-command multi-service launch The New Minimal Installation Path: Now, launching your privacy-first smart home hub requires nothing more than standard container tools: # Clone the repository git clone https://github.com/travletothefurureprogramming/Edge-AI-Home-Monitoring-System # Navigate to the project root cd Edge-AI-Home-Monitoring-System # Spin up the entire system in detached mode docker compose up -d
🐳 Docker Setup: 100% Functional Docker support for the Edge-AI Home Monitoring System is now fully working end-to-end. What’s New First-Run Setup via HTML : Instead of manual configuration steps, the very first launch now opens a lightweight HTML setup page that walks through the initial configuration once (credentials, device registration basics, etc.). After this one-time run, it’s never needed again — the container remembers everything through the persisted config volumes. One Command to Rule Them All : The whole system — Flask backend, Docker container, and now the first-run setup — is launched with a single script: Windows: start.bat Linux: start.sh No more manually running docker compose , checking dependencies, or following multi-step instructions. Just run the script for your OS and the entire stack comes up ready to use. Why It Matters This closes the loop on the Docker migration from a few devlogs ago. Before, Docker removed the Python/venv/dependency headaches but still required knowing the right compose commands. Now the onboarding experience is genuinely “clone → run one script → done,” with the HTML first-run page handling the last bit of manual setup that used to require touching config files by hand.
🧪 Reliability & CI Improvements This update also focuses on improving the project’s reliability and development workflow. What’s New Added 20 Pytest test cases covering the core functionality of the system, helping verify that critical components behave correctly and reducing the risk of regressions. Configured GitHub Actions to automatically execute the entire test suite after every commit and pull request, ensuring new changes don’t break existing functionality. Why It Matters Automated testing and Continuous Integration (CI) make the project more robust, maintainable, and production-ready. Every code change is now automatically validated before it becomes part of the project, providing faster feedback during development and increasing confidence in future updates.
Ships:
I have made an Edge-AI Home Monitoring System. It is a privacy-first, edge-AI home automation hub using Linux, Flask, and real-time control to orchestrate smart devices.
Over the past few weeks, Edge-AI Home Monitoring System has evolved from a basic smart home controller into a much more capable home automation platform. New Features Added YOLO-based security monitoring Integrated Telegram bot for remote alerts and device control Added support for Tapo Smart Bulbs Added support for Tapo Smart Plugs Added support for Philips Hue devices Added support for Yeelight devices Added support for LG Smart TVs Added Remote PC Control & Monitoring Infrastructure Improvements Built a full Flask server backend Added a responsive Web Dashboard Improved setup process with automated setup scripts Reworked documentation and README Reliability Improvements Refactored multiple modules with structured exception handling Added better logging and debugging tools Improved API responses and backend stability Enhanced scalability for future device integrations The project is now much closer to becoming a complete privacy-first edge AI smart home hub capable of controlling multiple device ecosystems from a single interface.
Most smart homes are leased, not owned. Every command you send travels to a cloud you don’t control, owned by a company with interests misaligned to yours. This system proves that meaningful control of your physical space doesn’t require surrendering it to a vendor. Edge-AI Home Monitoring is a locally-governed, vendor-independent home automation platform designed to answer: can a household be sovereign over its own infrastructure?...
|
1793134513.7648993
|
1793220913.7648993
|
|
6856
|
Logical Fallacy Detector by @goober | Stardance
|
goober
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Logical Fallacy Detector by @goober | Stard Title: Logical Fallacy Detector by @goober | Stardance...
|
1792616113.2277162
|
1793220913.2277162
|
|
27737
|
WarioWare Game by @could-be-hannah | Stardance
|
could-be-hannah
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @could-be-hannah | Starda Title: WarioWare Game by @could-be-hannah | Stardance...
|
1792616112.3656025
|
1793220912.3656025
|
|
9024
|
He-Man Keychain for My Dad :D by @Rajasi | Stardan He-Man Keychain for My Dad :D by @Rajasi | Stardance...
|
Rajasi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: He-Man Keychain for My Dad :D by @Rajasi | Title: He-Man Keychain for My Dad :D by @Rajasi | Stardance...
|
1792616111.527977
|
1793220911.527977
|
|
35105
|
near by @subhansh | Stardance
|
|
1
|
13.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-14T19:40:02Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "built a personal site from scratch with html css and js only. dark grunge/y2k/emo aesthetic with a custom cursor, parallax floating images, VHS glitch effects, a particle canvas, draggable elements, a mini piano that plays real notes, a terminal that types itself out, spider webs and goth decorations on every section, tilt effects, magnetic buttons, and a bunch more :0 try it out huhuh :- https://nearmyweb.vercel.app/", "repo": "https://github.com/subhansh-dev/near", "demo": "https://nearmyweb.vercel.app/"}]...
|
[{"post_id": 28487, "ts": "202 [{"post_id": 28487, "ts": "2026-07-14T19:18:45Z", "hours": 13.0617, "text": "personal site devlog built my personal site from scratch, html css js only. dark grunge/y2k/emo vibe kinda theme, no libraries no frameworks just raw code. opens with a piano key loading animation… 7 white bars pressing down in sequence like keys being played, fades out after the page loads. replaced the default cursor with a custom one, a hollow circle that follows your mouse and a trailing dot behind it with a smooth lerp. glows blue on hover over anything clickable. whole page has film grain overlay and vignette so it feels like a worn VHS tape. grain actually shifts position to look like real film. hero section is the densest part. 16 floating images covering the entire viewport including the center, overlapping each other, all with parallax that shifts based on your mouse position. each image has a data-depth value so they move at different speeds. every image is also draggable. behind the name theres a canvas running 60 particles drifting around, connected by faint lines when they get close to each other. “SUBHANSH” has a VHS glitch effect that fires briefly every 8 seconds… not the neon RGB kind, more like a worn tape tracking issue lol. each letter floats independently with staggered delays. the tagline “pianist / flautist / builder” types out character by character with a blinking cursor. hero also has scanlines, a VHS tracking line sweeping down the screen, scratches, crosses, spider webs in all 4 corners and spiders scattered around at low opacity. that old myspace goth vibe fr every section has the same set of goth dressings… crosses, scratches, spider webs in corners, faint stains and tiny dots. all at 2-6% opacity so its background texture not in-your-face graphics. thin gradient dividers with tick marks between each section. about section image has a 3D tilt effect that follows your cursor in perspective. also has an offset border that expands on hover and a scanline overlay. stat counters animate up from 0 when they scroll into view. hobbies section has draggable image windows you can actually grab and move around. project rows shift left on hover with a gradient glow sweep and the tilt effect. gallery items have labels that slide up from the bottom. music section has a 24-bar visualizer that pulses at different speeds and a mini piano that actually plays real notes through the Web Audio API. you can click the keys or use your keyboard (a-k for white keys, wetyu for black ones). triangle wave, accurate frequencies, keys visually depress when pressed. ong this was the funnest part to build contact section has a terminal that types out commands when it scrolls into view, handles html tags properly so the colored prompt text doesnt break. social cards and nav links have a magnetic effect… elements physically follow your cursor before snapping back when you leave. responsive on mobile with hamburger menu, custom cursor and all decorations hidden on small screens. visitor counter in the footer stored in localStorage."}]...
|
Title: near by @subhansh | Stardance
Devlogs:
per Title: near by @subhansh | Stardance
Devlogs:
personal site devlog built my personal site from scratch, html css js only. dark grunge/y2k/emo vibe kinda theme, no libraries no frameworks just raw code. opens with a piano key loading animation… 7 white bars pressing down in sequence like keys being played, fades out after the page loads. replaced the default cursor with a custom one, a hollow circle that follows your mouse and a trailing dot behind it with a smooth lerp. glows blue on hover over anything clickable. whole page has film grain overlay and vignette so it feels like a worn VHS tape. grain actually shifts position to look like real film. hero section is the densest part. 16 floating images covering the entire viewport including the center, overlapping each other, all with parallax that shifts based on your mouse position. each image has a data-depth value so they move at different speeds. every image is also draggable. behind the name theres a canvas running 60 particles drifting around, connected by faint lines when they get close to each other. “SUBHANSH” has a VHS glitch effect that fires briefly every 8 seconds… not the neon RGB kind, more like a worn tape tracking issue lol. each letter floats independently with staggered delays. the tagline “pianist / flautist / builder” types out character by character with a blinking cursor. hero also has scanlines, a VHS tracking line sweeping down the screen, scratches, crosses, spider webs in all 4 corners and spiders scattered around at low opacity. that old myspace goth vibe fr every section has the same set of goth dressings… crosses, scratches, spider webs in corners, faint stains and tiny dots. all at 2-6% opacity so its background texture not in-your-face graphics. thin gradient dividers with tick marks between each section. about section image has a 3D tilt effect that follows your cursor in perspective. also has an offset border that expands on hover and a scanline overlay. stat counters animate up from 0 when they scroll into view. hobbies section has draggable image windows you can actually grab and move around. project rows shift left on hover with a gradient glow sweep and the tilt effect. gallery items have labels that slide up from the bottom. music section has a 24-bar visualizer that pulses at different speeds and a mini piano that actually plays real notes through the Web Audio API. you can click the keys or use your keyboard (a-k for white keys, wetyu for black ones). triangle wave, accurate frequencies, keys visually depress when pressed. ong this was the funnest part to build contact section has a terminal that types out commands when it scrolls into view, handles html tags properly so the colored prompt text doesnt break. social cards and nav links have a magnetic effect… elements physically follow your cursor before snapping back when you leave. responsive on mobile with hamburger menu, custom cursor and all decorations hidden on small screens. visitor counter in the footer stored in localStorage.
Ships:
built a personal site from scratch with html css and js only. dark grunge/y2k/emo aesthetic with a custom cursor, parallax floating images, VHS glitch effects, a particle canvas, draggable elements, a mini piano that plays real notes, a terminal that types itself out, spider webs and goth decorations on every section, tilt effects, magnetic buttons, and a bunch more :0 try it out huhuh :- https://nearmyweb.vercel.app/...
|
1793134511.2721093
|
1793220911.2721093
|
|
27698
|
Untitled by @Aarush-_- | Stardance
|
Aarush-_-
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @Aarush-_- | Stardance
|
1792616110.7093058
|
1793220910.7093058
|
|
15778
|
waving hand by @Wanji | Stardance
|
Wanji
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: waving hand by @Wanji | Stardance
|
1792616109.8766909
|
1793220909.8766909
|
|
19878
|
My very own WebOS by @Simonimangal | Stardance
|
Simonimangal
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Simonimangal | Starda Title: My very own WebOS by @Simonimangal | Stardance...
|
1792616109.030919
|
1793220909.030919
|
|
39285
|
My own site! by @builder | Stardance
|
builder
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @builder | Stardance
|
1792616108.1952968
|
1793220908.1952968
|
|
29797
|
AI Pen by @XavierShayne35 | Stardance
|
XavierShayne35
|
0
|
0.38
|
0
|
[]
|
[{"post_id": 21439, "ts": "202 [{"post_id": 21439, "ts": "2026-07-03T12:11:38Z", "hours": 0.3833, "text": "I’m creating an Ai Pen that can listen your lesson an write a resume"}]...
|
Title: AI Pen by @XavierShayne35 | Stardance
Devl Title: AI Pen by @XavierShayne35 | Stardance
Devlogs:
I’m creating an Ai Pen that can listen your lesson an write a resume...
|
1792616107.3336957
|
1793220907.3336957
|
|
24993
|
My very own WebOS by @zahran | Stardance
|
zahran
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-03T16:59:08Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created my very own WebOS that helps people learn more about me! I’m pretty proud of creating something that lets people learn more about me. However, I faced a couple of obstacles along the way. The most notable one was getting my second and third apps to drag; I spent like an hour on that before realizing my ID names didn’t match between my HTML and Javascript. Anyway, this is the last ship before I start working on a much bigger project. I’ve been shipping a bunch of smaller (‘worse’) projects up until now to get a feel for the devlogging /shipping/rating process. Expect much bigger things in the future! :)", "repo": "https://github.com/HughMann635/Zahran-s-WebOS", "demo": "https://zahranswebos.vercel.app/"}]...
|
[{"post_id": 21580, "ts": "202 [{"post_id": 21580, "ts": "2026-07-03T16:40:35Z", "hours": 2.1428, "text": "It’s been a while since I last posted a devlog, but in that time I’ve managed to complete my WebOS! It now has three draggable windows that can be opened and closed. I don’t believe that there are any bugs that need fixing; however, I’ll check through it one last time and prepare to ship now."}, {"post_id": 16413, "ts": "2026-06-26T18:17:47Z", "hours": 0.8686, "text": "Today I added the code for my first app (Gallery app) and made it draggable and so that you can open/close it. I’ll probably finish up any remaining bugs associated with this app before adding some actual content. Right now there’s a bunch of filler content in both my apps, so I’ll make sure to clean that up and replace it with ‘proper’ content for my apps. After that I’ll work on more apps and get ready to ship!"}, {"post_id": 15910, "ts": "2026-06-25T21:17:52Z", "hours": 1.0119, "text": "Today I did some stuff in Javascript to get the window to open/close and I added some extra features. I had to ask gemini to help me fix a bug that was costing me 30 minutes of my life lol Last time I said I’d start customizing the OS more, but I think I’ll leave that for near the end. I’ll probably focus on adding apps first before I touch up on how the project actually looks."}, {"post_id": 15372, "ts": "2026-06-25T00:08:14Z", "hours": 1.6703, "text": "Today I worked on setting up the main frame and adding some stuff about myself; I also styled the OS and got it to show the date and time. I’ll work on customizing the site now and adding even more features!"}]...
|
Title: My very own WebOS by @zahran | Stardance
D Title: My very own WebOS by @zahran | Stardance
Devlogs:
Today I worked on setting up the main frame and adding some stuff about myself; I also styled the OS and got it to show the date and time. I’ll work on customizing the site now and adding even more features!
Today I did some stuff in Javascript to get the window to open/close and I added some extra features. I had to ask gemini to help me fix a bug that was costing me 30 minutes of my life lol Last time I said I’d start customizing the OS more, but I think I’ll leave that for near the end. I’ll probably focus on adding apps first before I touch up on how the project actually looks.
Today I added the code for my first app (Gallery app) and made it draggable and so that you can open/close it. I’ll probably finish up any remaining bugs associated with this app before adding some actual content. Right now there’s a bunch of filler content in both my apps, so I’ll make sure to clean that up and replace it with ‘proper’ content for my apps. After that I’ll work on more apps and get ready to ship!
It’s been a while since I last posted a devlog, but in that time I’ve managed to complete my WebOS! It now has three draggable windows that can be opened and closed. I don’t believe that there are any bugs that need fixing; however, I’ll check through it one last time and prepare to ship now.
Ships:
I created my very own WebOS that helps people learn more about me! I’m pretty proud of creating something that lets people learn more about me. However, I faced a couple of obstacles along the way. The most notable one was getting my second and third apps to drag; I spent like an hour on that before realizing my ID names didn’t match between my HTML and Javascript. Anyway, this is the last ship before I start working on a much bigger project. I’ve been shipping a bunch of smaller (‘worse’) projects up until now to get a feel for the devlogging /shipping/rating process. Expect much bigger things in the future! :)...
|
1793134506.7621508
|
1793220906.7621508
|
|
1868
|
My awesome macropad! by @valerie | Stardance
|
valerie
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @valerie | Stardanc Title: My awesome macropad! by @valerie | Stardance...
|
1792616106.460801
|
1793220906.460801
|
|
36158
|
Brew Hack by @Egli | Stardance
|
Egli
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Brew Hack by @Egli | Stardance
|
1792616105.6175916
|
1793220905.6175916
|
|
23970
|
CSS//LOADER by @n0o0b090lv | Stardance
|
n0o0b090lv
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-22T22:00:54Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made extension for firefox that loads auto css for those websites which are littered with ads or those who look bleak.. think of firefox ricing ;pp In the screenshot it is using my made preset for yt music", "repo": "https://github.com/officialErnests/cssLoader", "demo": "https://github.com/officialErnests/cssLoader/releases/tag/v1.0"}]...
|
[{"post_id": 13608, "ts": "202 [{"post_id": 13608, "ts": "2026-06-22T09:40:36Z", "hours": 4.8381, "text": "Have made some gui + made base functionality, atm working on slot system + presets ;))"}]...
|
Title: CSS//LOADER by @n0o0b090lv | Stardance
Dev Title: CSS//LOADER by @n0o0b090lv | Stardance
Devlogs:
Have made some gui + made base functionality, atm working on slot system + presets ;))
Ships:
I made extension for firefox that loads auto css for those websites which are littered with ads or those who look bleak.. think of firefox ricing ;pp In the screenshot it is using my made preset for yt music...
|
1793134505.0370576
|
1793220905.0370576
|
|
35664
|
My own site! by @mahisinghal790 | Stardance
|
mahisinghal790
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @mahisinghal790 | Stardance
|
1792616104.7779467
|
1793220904.7779467
|
|
5981
|
My awesome macropad! by @Jon | Stardance
|
Jon
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Jon | Stardance
|
1792616103.9400802
|
1793220903.9400802
|
|
3854
|
My first slack bot! by @donny | Stardance
|
donny
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @donny | Stardance
|
1792616103.0992718
|
1793220903.0992718
|
|
26291
|
Cstrike Web 2000 by @aquafr0stbyte | Stardance
|
aquafr0stbyte
|
1
|
3.0
|
36
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T09:56:46Z", "hours": 3.0, "multiplier": 11.76, "payout": 36, "blessing": "neutral", "text": "Counter-Strike 2000 Website Template >_< I’ve always loved old websites. To me, they shouldn’t just be archived and forgotten—they deserve to stay alive! ^_^ So I spent some time rebuilding and modernizing the original Counter-Strike website from 2000 , recreating it as faithfully as possible and porting it to Flask . This repository contains the template version , so anyone can use it for their own projects. :3 (*^▽^*) Customization I’m not entirely sure if it’s obvious what needs to be changed to get the intended styling. If you already know some HTML, you should be able to figure things out without too much trouble. For complete beginners, though… it might be a little overwhelming at first. >~< (≧◡≦) Goal I tried to make the final result look as close to the original website as possible, and I’m really happy with how authentic it turned out. If you compare it to the original, I think it captures the same feel really well. ^-^ (。•̀ᴗ-)✧ Feedback If you find any bugs, have ideas for improvements, or build something cool with this template, feel free to hit me up! :3 Have fun, and happy coding! <3", "repo": "https://github.com/AquaFrostByte/www.counter-strike.net/", "demo": "https://cstrike2k.lain.onl/"}]...
|
[{"post_id": 17497, "ts": "202 [{"post_id": 17497, "ts": "2026-06-28T09:49:05Z", "hours": 0.8064, "text": "I added a Script that allows an easy deploy via services and Gunicorn. Also made some final Tweaks before shipping!!"}, {"post_id": 16903, "ts": "2026-06-27T13:34:37Z", "hours": 1.4889, "text": "The website is done! Well at least the template… The Full Site is now using Flask instad of raw Html. I remade the default Template.html as well as the Downloads.html. Everything seems to work on my Systems and its looking as close to the original as possible i think at least :P I still have to make my Personal site but for everyone else that want to use it as a base its pretty much done!"}, {"post_id": 16229, "ts": "2026-06-26T11:20:46Z", "hours": 0.4681, "text": "Got done with the Ad banners and clean up the News Feed. Will now work on porting it over to Flask"}, {"post_id": 16208, "ts": "2026-06-26T10:34:01Z", "hours": 0.3308, "text": "Had the basic Structure done already of the Websit including scraping all old imaes and recources i need. Now iam just rebuilding the Adbanners because there services are way dead."}]...
|
Title: Cstrike Web 2000 by @aquafr0stbyte | Starda Title: Cstrike Web 2000 by @aquafr0stbyte | Stardance
Devlogs:
Had the basic Structure done already of the Websit including scraping all old imaes and recources i need. Now iam just rebuilding the Adbanners because there services are way dead.
Got done with the Ad banners and clean up the News Feed. Will now work on porting it over to Flask
The website is done! Well at least the template… The Full Site is now using Flask instad of raw Html. I remade the default Template.html as well as the Downloads.html. Everything seems to work on my Systems and its looking as close to the original as possible i think at least :P I still have to make my Personal site but for everyone else that want to use it as a base its pretty much done!
I added a Script that allows an easy deploy via services and Gunicorn. Also made some final Tweaks before shipping!!
Ships:
Counter-Strike 2000 Website Template >_< I’ve always loved old websites. To me, they shouldn’t just be archived and forgotten—they deserve to stay alive! ^_^ So I spent some time rebuilding and modernizing the original Counter-Strike website from 2000 , recreating it as faithfully as possible and porting it to Flask . This repository contains the template version , so anyone can use it for their own projects. :3 (*^▽^*) Customization I’m not entirely sure if it’s obvious what needs to be changed to get the intended styling. If you already know some HTML, you should be able to figure things out without too much trouble. For complete beginners, though… it might be a little overwhelming at first. >~< (≧◡≦) Goal I tried to make the final result look as close to the original website as possible, and I’m really happy with how authentic it turned out. If you compare it to the original, I think it captures the same feel really well. ^-^ (。•̀ᴗ-)✧ Feedback If you find any bugs, have ideas for improvements, or build something cool with this template, feel free to hit me up! :3 Have fun, and happy coding! <3...
|
1793134502.9606657
|
1793220902.9606657
|
|
32325
|
WarioWare Game by @OggyW0ppy | Stardance
|
OggyW0ppy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @OggyW0ppy | Stardance
|
1792616102.2291307
|
1793220902.2291307
|
|
27601
|
Combo assassin by @Tyo | Stardance
|
Tyo
|
0
|
9.37
|
0
|
[]
|
[{"post_id": 33896, "ts": "202 [{"post_id": 33896, "ts": "2026-07-24T05:33:34Z", "hours": 1.5739, "text": "Hewwo! This time I’ve stopped working on the coding aspect and started on the art and animations. I’m not a good artist at all so this is the best I can do :p. Another thing is the enemy has movement now >:3. There’s definitely a lot more I’m gonna add but until then. Cya!"}, {"post_id": 28223, "ts": "2026-07-14T11:21:33Z", "hours": 2.1064, "text": "Hewwo! I’ve done it! The three hit combo is in action! And with that also includes a pretty nice smash attack and an overhaul to the weapon system with much more customization. I think my next step has to either be finally designing my character or to work on the enemy script. Well until then, C’ya!"}, {"post_id": 23281, "ts": "2026-07-06T04:36:12Z", "hours": 1.8431, "text": "Hewwo! I’m backkk and finally added the combo system, it isn’t exactly the 3 hit combo i wanted but this should make it easier for me to add extra dazzle in every 3rd hit, the grapple feels better now (with a little help from ai shhh) however the line renderer is glitching a lot, I’ll find a way to solve that soon! For now it’s bai bai"}, {"post_id": 22774, "ts": "2026-07-05T11:13:38Z", "hours": 1.9228, "text": "Hewwo! So I sidetracked a bunch and ended up making a really kewl grappling hook which i’m pretty proud of, it’s really clunky so I’ll be repairing it until the next devlog, for now it’s see you! <3 (oh and the map is actually a thing now)"}, {"post_id": 17579, "ts": "2026-06-28T13:01:54Z", "hours": 1.9247, "text": "I want this game to feel punchy so the first thing I implement was a sick ass dash system, I’m planning on adding a 3 hit combo next! (ps this code is really temporary, I’ll prob change it once I implemented the enemies :p )"}]...
|
Title: Combo assassin by @Tyo | Stardance
Devlogs Title: Combo assassin by @Tyo | Stardance
Devlogs:
I want this game to feel punchy so the first thing I implement was a sick ass dash system, I’m planning on adding a 3 hit combo next! (ps this code is really temporary, I’ll prob change it once I implemented the enemies :p )
Hewwo! So I sidetracked a bunch and ended up making a really kewl grappling hook which i’m pretty proud of, it’s really clunky so I’ll be repairing it until the next devlog, for now it’s see you! <3 (oh and the map is actually a thing now)
Hewwo! I’m backkk and finally added the combo system, it isn’t exactly the 3 hit combo i wanted but this should make it easier for me to add extra dazzle in every 3rd hit, the grapple feels better now (with a little help from ai shhh) however the line renderer is glitching a lot, I’ll find a way to solve that soon! For now it’s bai bai
Hewwo! I’ve done it! The three hit combo is in action! And with that also includes a pretty nice smash attack and an overhaul to the weapon system with much more customization. I think my next step has to either be finally designing my character or to work on the enemy script. Well until then, C’ya!
Hewwo! This time I’ve stopped working on the coding aspect and started on the art and animations. I’m not a good artist at all so this is the best I can do :p. Another thing is the enemy has movement now >:3. There’s definitely a lot more I’m gonna add but until then. Cya!...
|
1792616101.337426
|
1793220901.337426
|
|
28613
|
My first slack bot! by @lakshan_jv | Stardance
|
lakshan_jv
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @lakshan_jv | Starda Title: My first slack bot! by @lakshan_jv | Stardance...
|
1792616100.495843
|
1793220900.495843
|
|
4591
|
my website :3 by @mikhailnotfish | Stardance
|
mikhailnotfish
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T22:24:27Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "this is my simple turtle website i made to train myself in html. it is very simple, but i am very proud of it :]", "repo": "https://github.com/mikhailnotfish/turtles", "demo": "https://mikhailnotfish.github.io/turtles/"}]...
|
[{"post_id": 1237, "ts": "2026 [{"post_id": 1237, "ts": "2026-06-03T02:51:37Z", "hours": 0.4567, "text": "this is my website in which there is a turtle"}]...
|
Title: my website :3 by @mikhailnotfish | Stardanc Title: my website :3 by @mikhailnotfish | Stardance
Devlogs:
this is my website in which there is a turtle
Ships:
this is my simple turtle website i made to train myself in html. it is very simple, but i am very proud of it :]...
|
1793134500.3106477
|
1793220900.3106477
|
|
8152
|
My first slack bot! by @nathanshankar | Stardance
|
nathanshankar
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @nathanshankar | Sta Title: My first slack bot! by @nathanshankar | Stardance...
|
1792616099.6562064
|
1793220899.6562064
|
|
14961
|
My first slack bot! by @nicobico | Stardance
|
nicobico
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @nicobico | Stardanc Title: My first slack bot! by @nicobico | Stardance...
|
1792616098.8066497
|
1793220898.8066497
|
|
29186
|
My own site! by @Abdulatif | Stardance
|
Abdulatif
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-01T06:01:21Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built personal site, and you can try it, it does not have much thing(I will add them soon), but instead of long pages you can see one page and know about me.", "repo": "https://github.com/Botirsherov/My-site", "demo": "https://botirsherov.github.io/My-site/"}]...
|
[{"post_id": 19801, "ts": "202 [{"post_id": 19801, "ts": "2026-07-01T05:59:20Z", "hours": 0.4733, "text": "I built my very own site, just with a page, but cool and calm one."}]...
|
Title: My own site! by @Abdulatif | Stardance
Dev Title: My own site! by @Abdulatif | Stardance
Devlogs:
I built my very own site, just with a page, but cool and calm one.
Ships:
I built personal site, and you can try it, it does not have much thing(I will add them soon), but instead of long pages you can see one page and know about me....
|
1793134498.2786665
|
1793220898.2786665
|
|
9544
|
Cip-api by @vaishal_anil | Stardance
|
vaishal_anil
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Cip-api by @vaishal_anil | Stardance
|
1792616097.9500906
|
1793220897.9500906
|
|
46600
|
Power-bot! by @nic | Stardance
|
nic
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-05T20:29:43Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Created my own Slack Bot with four different commands, each with their own starting message! Hosted on Hack Club Nest. Please use the #bot-spam channel in the HC Slack to use the bot! Current commands: /power-bot-ping, /power-bot-grovel, /power-bot-catfact, /power-bot-joke", "repo": "https://github.com/sodahaunted/power-bot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354?skip_today=1"}]...
|
[{"post_id": 62465, "ts": "202 [{"post_id": 62465, "ts": "2026-09-05T20:23:22Z", "hours": 1.1083, "text": "Power-bot Devlog! Created a Slack bot with four different commands, each with its own unique starting message! (/power-bot!) Built with Node.js in VS Code, and hosted on Hack Club Nest. The most difficult thing was setting up the bot and trying to figure out how to host it on Nest separately from my local terminal. The bot itself is very simple and mainly contains preset commands from the mission library, but I’m glad to have finished the project nonetheless."}]...
|
Title: Power-bot! by @nic | Stardance
Devlogs:
Po Title: Power-bot! by @nic | Stardance
Devlogs:
Power-bot Devlog! Created a Slack bot with four different commands, each with its own unique starting message! (/power-bot!) Built with Node.js in VS Code, and hosted on Hack Club Nest. The most difficult thing was setting up the bot and trying to figure out how to host it on Nest separately from my local terminal. The bot itself is very simple and mainly contains preset commands from the mission library, but I’m glad to have finished the project nonetheless.
Ships:
Created my own Slack Bot with four different commands, each with their own starting message! Hosted on Hack Club Nest. Please use the #bot-spam channel in the HC Slack to use the bot! Current commands: /power-bot-ping, /power-bot-grovel, /power-bot-catfact, /power-bot-joke...
|
1793134496.5241792
|
1793220896.5241792
|
|
34713
|
Gambling Bot by @vintage | Stardance
|
vintage
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-16T18:14:43Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hello guys, I have made a GAMBLING bot in Slack. Includes a /cf (coinflip), /bj (blackjack), and a /cash command. For more information, see README.md on my github!!! happy gambling!", "repo": "https://github.com/PieSquared/GambleBot-Slack", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354"}]...
|
[{"post_id": 29254, "ts": "202 [{"post_id": 29254, "ts": "2026-07-16T01:38:44Z", "hours": 0.9111, "text": "Hello guys, welcome to devlog #1. Right now, I have finished all 3 commands for my gambling bot. It has a /cf (coinflip), /bj (blackjack), and a /cash command to see your cash. I am currently applying for a Nest to run it 24/7"}]...
|
Title: Gambling Bot by @vintage | Stardance
Devlo Title: Gambling Bot by @vintage | Stardance
Devlogs:
Hello guys, welcome to devlog #1. Right now, I have finished all 3 commands for my gambling bot. It has a /cf (coinflip), /bj (blackjack), and a /cash command to see your cash. I am currently applying for a Nest to run it 24/7
Ships:
Hello guys, I have made a GAMBLING bot in Slack. Includes a /cf (coinflip), /bj (blackjack), and a /cash command. For more information, see README.md on my github!!! happy gambling!...
|
1793134494.7713935
|
1793220894.7713935
|
|
39278
|
usefull web app by @Abel-Yitbarek | Stardance
|
Abel-Yitbarek
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: usefull web app by @Abel-Yitbarek | Stardan Title: usefull web app by @Abel-Yitbarek | Stardance...
|
1792616093.6718423
|
1793220893.6718423
|