|
24153
|
My awesome macropad! by @Noid_DEV | Stardance
|
Noid_DEV
|
0
|
0.47
|
0
|
[]
|
[{"post_id": 13909, "ts": "202 [{"post_id": 13909, "ts": "2026-06-22T20:12:25Z", "hours": 0.4728, "text": "Made the pad!"}]...
|
Title: My awesome macropad! by @Noid_DEV | Stardan Title: My awesome macropad! by @Noid_DEV | Stardance
Devlogs:
Made the pad!...
|
1793361002.023904
|
1793965802.023904
|
|
13650
|
My very own WebOS by @BoltyPlays | Stardance
|
BoltyPlays
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @BoltyPlays | Stardanc Title: My very own WebOS by @BoltyPlays | Stardance...
|
1793361001.0320637
|
1793965801.0320637
|
|
11164
|
My first slack bot! by @sire | Stardance
|
sire
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @sire | Stardance
|
1793361000.0774605
|
1793965800.0774605
|
|
22939
|
My very own WebOS by @kirtiksh10 | Stardance
|
kirtiksh10
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @kirtiksh10 | Stardanc Title: My very own WebOS by @kirtiksh10 | Stardance...
|
1793360999.136614
|
1793965799.136614
|
|
37861
|
My first slack bot! by @Jsn | Stardance
|
Jsn
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Jsn | Stardance
|
1793360998.1371696
|
1793965798.1371696
|
|
38696
|
My own site! by @alithegoat | Stardance
|
alithegoat
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @alithegoat | Stardance
|
1793360997.1386623
|
1793965797.1386623
|
|
32249
|
My awesome macropad! by @duruu | Stardance
|
duruu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @duruu | Stardance
|
1793360996.187416
|
1793965796.187416
|
|
195
|
Chrono Capsule by @Gopinath | Stardance
|
Gopinath
|
0
|
4.98
|
0
|
[]
|
[{"post_id": 19052, "ts": "202 [{"post_id": 19052, "ts": "2026-06-30T07:15:29Z", "hours": 2.3478, "text": "Devlog 2 Currently, I am working only on refactoring the code (may also include changes to terms used) and upgrading the dependencies. Configuring eslint with the right rules took a lot of time than required (I faced lot of errors such as TypeError: Plugin \"\" not found. , A configuration object specifies rule \"@eslint-react/naming-convention/component-name\", but could not find plugin \"@eslint-react/naming-convention\". and so on…) Refactors rename login page to sign in page and update all text instance of login to sign in rename register page to sign up and update all text instance of register to sign up move home.css and index.css into a new styles folder Chores bump shell-quote from 1.8.3 to 1.8.4 ( #75 ) bump vite from 7.3.5 to 8.0.16 ( #79 ) bump node-cron from 4.1.1 to 4.4.1 ( #20 ) bump eslint from 9.33.0 to 10.5.0 ( #59 ) bump @vitejs/plugin-react from 4.6.0 to 6.0.3 as plugin-react did not support vite v8 (that was currently installed) add globals , eslint-plugin-react-hooks , @eslint-react/eslint-plugin , @eslint/js to dev dependencies for eslint configuration add eslint.config.js to configure eslint with appropriate plugins and rules [this step took about 40mins as I took time to figure out the exact configuration fiels and the required rules]"}, {"post_id": 2747, "ts": "2026-06-05T14:49:39Z", "hours": 2.3122, "text": "Devlog 1 Implement Google OAuth successfully (I had stopped working with this at the end of SoM, and now nearly completed it) Before SoM ended, I had already had a buggy but sometimes working google oauth Initially I used react-helmet and the load event listener to load and use google identity services, but later I found it doesn’t work with react-router navigation and only works if I reload the page So I removed react-helmet and used Promise to load the google identity services script by creating a script tag using javascript The confirmation email got sent even if they loggedin using google, although I had set verified true in the database, fixed that although vite loaded the environment variables, it didn’t set them in import.meta.env, took time to set it fix csp settings in backend helmet to allow iframes and some bug fixes…"}, {"post_id": 305, "ts": "2026-06-01T15:51:55Z", "hours": 0.3206, "text": "Chrono Capsule Hey guys! I’ll be restarting to work on my project Chrono Capsule , a web app I started to work on during Summer of Making The project is about creating encrypted time capsules and setting an unlock date on which the receiver receives the capsule at the email. I’ll be improving the UI, adding an option to view capsule on the web instead of only pasting the content in the email (makes sure that it is sent from the right person as anyone can imitate the style of my email and send such an mail), upload media in the right sense, improve authentication methods and much more… I haven’t yet started working, just updating the dependencies and fixing the vulnerabilities as it’s been almost a year."}]...
|
Title: Chrono Capsule by @Gopinath | Stardance
De Title: Chrono Capsule by @Gopinath | Stardance
Devlogs:
Chrono Capsule Hey guys! I’ll be restarting to work on my project Chrono Capsule , a web app I started to work on during Summer of Making The project is about creating encrypted time capsules and setting an unlock date on which the receiver receives the capsule at the email. I’ll be improving the UI, adding an option to view capsule on the web instead of only pasting the content in the email (makes sure that it is sent from the right person as anyone can imitate the style of my email and send such an mail), upload media in the right sense, improve authentication methods and much more… I haven’t yet started working, just updating the dependencies and fixing the vulnerabilities as it’s been almost a year.
Devlog 1 Implement Google OAuth successfully (I had stopped working with this at the end of SoM, and now nearly completed it) Before SoM ended, I had already had a buggy but sometimes working google oauth Initially I used react-helmet and the load event listener to load and use google identity services, but later I found it doesn’t work with react-router navigation and only works if I reload the page So I removed react-helmet and used Promise to load the google identity services script by creating a script tag using javascript The confirmation email got sent even if they loggedin using google, although I had set verified true in the database, fixed that although vite loaded the environment variables, it didn’t set them in import.meta.env, took time to set it fix csp settings in backend helmet to allow iframes and some bug fixes…
Devlog 2 Currently, I am working only on refactoring the code (may also include changes to terms used) and upgrading the dependencies. Configuring eslint with the right rules took a lot of time than required (I faced lot of errors such as TypeError: Plugin "" not found. , A configuration object specifies rule "@eslint-react/naming-convention/component-name", but could not find plugin "@eslint-react/naming-convention". and so on…) Refactors rename login page to sign in page and update all text instance of login to sign in rename register page to sign up and update all text instance of register to sign up move home.css and index.css into a new styles folder Chores bump shell-quote from 1.8.3 to 1.8.4 ( #75 ) bump vite from 7.3.5 to 8.0.16 ( #79 ) bump node-cron from 4.1.1 to 4.4.1 ( #20 ) bump eslint from 9.33.0 to 10.5.0 ( #59 ) bump @vitejs/plugin-react from 4.6.0 to 6.0.3 as plugin-react did not support vite v8 (that was currently installed) add globals , eslint-plugin-react-hooks , @eslint-react/eslint-plugin , @eslint/js to dev dependencies for eslint configuration add eslint.config.js to configure eslint with appropriate plugins and rules [this step took about 40mins as I took time to figure out the exact configuration fiels and the required rules]...
|
1793360994.9856732
|
1793965794.9856732
|
|
2042
|
My awesome macropad! by @valenciabeetle | Stardanc My awesome macropad! by @valenciabeetle | Stardance...
|
valenciabeetle
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @valenciabeetle | S Title: My awesome macropad! by @valenciabeetle | Stardance...
|
1793360993.9925935
|
1793965793.9925935
|
|
38929
|
CalfGuard by @Huypham | Stardance
|
Huypham
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: CalfGuard by @Huypham | Stardance
|
1793360993.0689752
|
1793965793.0689752
|
|
34844
|
My own site! by @mallikdel | Stardance
|
mallikdel
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @mallikdel | Stardance
|
1793360992.1530142
|
1793965792.1530142
|
|
25854
|
My awesome hackpad! by @ranengizaw | Stardance
|
ranengizaw
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome hackpad! by @ranengizaw | Starda Title: My awesome hackpad! by @ranengizaw | Stardance...
|
1793360991.216954
|
1793965791.216954
|
|
26958
|
Kvisser by @Santtu09 | Stardance
|
Santtu09
|
0
|
29.56
|
0
|
[]
|
[{"post_id": 78858, "ts": "202 [{"post_id": 78858, "ts": "2026-10-11T19:49:53Z", "hours": 6.5619, "text": "Devlog 5: Quiz pages! First changes to the waiting screen: Filter sockets for inactive ones and thus show correct player count Remove double player count socket emit Corrected wording for if there’s only 1 player present Then the new stuff: Added the quiz page Made the top nav bar logo redirect to home because it was annoying for it to not Made the front page carousel’s slide’s images redirect to the page of their quiz Fixed the home button not redirecting to home when route was more than one slash deep I spent a ridiculous amount of time trying to get the spacing to take scroll bar into account but still couldn’t figure it out… But in good news: I learned how to use media queries! Idk why I put this off and did janky js style switching for so long… Next up: Auth! I think it’s gonna hurt even more if I try to do it retroactively so I’m just doing it now. Let’s hope I don’t introduce 12 security holes I’m unaware of /hj"}, {"post_id": 76705, "ts": "2026-10-04T11:44:00Z", "hours": 5.7906, "text": "Devlog 4: Player waiting page Added afformentioned player waiting page Desided to still use websockets which apparently are an absolute pain with React. I’ll try to get a prototype shipped in 2-3 weeks if I can but this is such a large project I may not finish it in time. I wont be pulling updated backend code to nest server frequently so functionality may be broken for newer features. Next up: Making the quiz specific pages."}, {"post_id": 43847, "ts": "2026-08-09T08:40:50Z", "hours": 7.8969, "text": "Devlog 3: Join page and some backend stuff Added join page Implemented basic game room exists check Starting to implement SQLite db structure Bug fixes I spent way too long trying to figure out why my req.body.x is undefined only to figure out that body parser is not bundled with express by default… I also did some brain storming and figured out a better way to eventually implement game logic that doesn’t require web sockets."}, {"post_id": 41309, "ts": "2026-08-05T13:36:54Z", "hours": 2.535, "text": "Devlog 2: Bottom bar and some small changes Made a bottom nav bar Added carousel titles and a variable api route as props Made carousel transition time slightly vary based on item width to give wider items some more heft Added a small wiggle when at the end of carousel to make it more intuitive Setup cloudflare pages (Tho it wont do much as I don’t yet have API up) A couple bug fixes"}, {"post_id": 39356, "ts": "2026-08-02T08:48:20Z", "hours": 6.7797, "text": "Devlog 1: The carousel of pain Implemented a (janky) carousel component Why is react this way? The good news is I managed to make a carousel but the bad news is it took me 8-9 hours in total. I would not recommend this task to react newbies like myself but It was still a valuable learning experience. Now to actually making some real pages and getting some real work done… hopefully… p.s. If someone knows a good or least jank way to make a carousel touch screen draggable please do tell me!"}]...
|
Title: Kvisser by @Santtu09 | Stardance
Devlogs:
Title: Kvisser by @Santtu09 | Stardance
Devlogs:
Devlog 1: The carousel of pain Implemented a (janky) carousel component Why is react this way? The good news is I managed to make a carousel but the bad news is it took me 8-9 hours in total. I would not recommend this task to react newbies like myself but It was still a valuable learning experience. Now to actually making some real pages and getting some real work done… hopefully… p.s. If someone knows a good or least jank way to make a carousel touch screen draggable please do tell me!
Devlog 2: Bottom bar and some small changes Made a bottom nav bar Added carousel titles and a variable api route as props Made carousel transition time slightly vary based on item width to give wider items some more heft Added a small wiggle when at the end of carousel to make it more intuitive Setup cloudflare pages (Tho it wont do much as I don’t yet have API up) A couple bug fixes
Devlog 3: Join page and some backend stuff Added join page Implemented basic game room exists check Starting to implement SQLite db structure Bug fixes I spent way too long trying to figure out why my req.body.x is undefined only to figure out that body parser is not bundled with express by default… I also did some brain storming and figured out a better way to eventually implement game logic that doesn’t require web sockets.
Devlog 4: Player waiting page Added afformentioned player waiting page Desided to still use websockets which apparently are an absolute pain with React. I’ll try to get a prototype shipped in 2-3 weeks if I can but this is such a large project I may not finish it in time. I wont be pulling updated backend code to nest server frequently so functionality may be broken for newer features. Next up: Making the quiz specific pages.
Devlog 5: Quiz pages! First changes to the waiting screen: Filter sockets for inactive ones and thus show correct player count Remove double player count socket emit Corrected wording for if there’s only 1 player present Then the new stuff: Added the quiz page Made the top nav bar logo redirect to home because it was annoying for it to not Made the front page carousel’s slide’s images redirect to the page of their quiz Fixed the home button not redirecting to home when route was more than one slash deep I spent a ridiculous amount of time trying to get the spacing to take scroll bar into account but still couldn’t figure it out… But in good news: I learned how to use media queries! Idk why I put this off and did janky js style switching for so long… Next up: Auth! I think it’s gonna hurt even more if I try to do it retroactively so I’m just doing it now. Let’s hope I don’t introduce 12 security holes I’m unaware of /hj...
|
1793360988.5115564
|
1793965788.5115564
|
|
55998
|
PerfectDay by @Sushmita | Stardance
|
Sushmita
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: PerfectDay by @Sushmita | Stardance
|
1793360987.5396233
|
1793965787.5396233
|
|
36681
|
Starbert's Hotel by @malcyp1 | Stardance
|
malcyp1
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Starbert's Hotel by @malcyp1 | Stardanc Title: Starbert's Hotel by @malcyp1 | Stardance...
|
1793360986.6239486
|
1793965786.6239486
|
|
55997
|
Yuni by @bxbs0721 | Stardance
|
bxbs0721
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Yuni by @bxbs0721 | Stardance
|
1793360985.7085342
|
1793965785.7085342
|
|
55996
|
Teclado by @bxbs0721 | Stardance
|
bxbs0721
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Teclado by @bxbs0721 | Stardance
|
1793360984.7863903
|
1793965784.7863903
|
|
22139
|
My awesome macropad! by @Boone | Stardance
|
Boone
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Boone | Stardance
|
1793360983.8067029
|
1793965783.8067029
|
|
21061
|
Vi gauntlets by @Salmaowda | Stardance
|
Salmaowda
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Vi gauntlets by @Salmaowda | Stardance
|
1793360982.850278
|
1793965782.850278
|
|
55994
|
Sunbeam Street by @mayacodes | Stardance
|
mayacodes
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Sunbeam Street by @mayacodes | Stardance
|
1793360981.8684251
|
1793965781.8684251
|
|
34258
|
WarioWare Game by @shreyaaa | Stardance
|
shreyaaa
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @shreyaaa | Stardance
|
1793360980.9158227
|
1793965780.9158227
|
|
55993
|
LunarProof by @KERN | Stardance
|
KERN
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: LunarProof by @KERN | Stardance
|
1793360979.941572
|
1793965779.941572
|
|
27097
|
Untitled by @ayshine | Stardance
|
ayshine
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @ayshine | Stardance
|
1793360979.017523
|
1793965779.017523
|
|
37988
|
Untitled project by @raghav_gkavi | Stardance
|
raghav_gkavi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @raghav_gkavi | Stardan Title: Untitled project by @raghav_gkavi | Stardance...
|
1793360978.085373
|
1793965778.085373
|
|
55990
|
WarioWare Game by @Semish | Stardance
|
Semish
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @Semish | Stardance
|
1793360977.1810603
|
1793965777.1810603
|
|
16171
|
My awesome macropad! by @ahmadsafi332011 | Stardan My awesome macropad! by @ahmadsafi332011 | Stardance...
|
ahmadsafi332011
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @ahmadsafi332011 | Title: My awesome macropad! by @ahmadsafi332011 | Stardance...
|
1793360974.6431417
|
1793965774.6431417
|
|
55988
|
My own site! by @Enyer | Stardance
|
Enyer
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @Enyer | Stardance
|
1793360971.6827133
|
1793965771.6827133
|
|
55987
|
ESP32 Car by @shreyD | Stardance
|
shreyD
|
0
|
0.67
|
0
|
[]
|
[{"post_id": 57715, "ts": "202 [{"post_id": 57715, "ts": "2026-08-29T23:32:02Z", "hours": 0.6672, "text": "Working on a circuit with 2 motor drivers and an esp32 for my rc car"}]...
|
Title: ESP32 Car by @shreyD | Stardance
Devlogs:
Title: ESP32 Car by @shreyD | Stardance
Devlogs:
Working on a circuit with 2 motor drivers and an esp32 for my rc car...
|
1793360970.6947522
|
1793965770.6947522
|
|
10071
|
Untitled project by @keventhen4 | Stardance
|
keventhen4
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @keventhen4 | Stardance
|
1793360969.8107786
|
1793965769.8107786
|
|
1369
|
My awesome macropad! by @rabia_mustafa | Stardance
|
rabia_mustafa
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @rabia_mustafa | St Title: My awesome macropad! by @rabia_mustafa | Stardance...
|
1793360968.878416
|
1793965768.878416
|
|
39466
|
WarioWare Game by @abaymamo | Stardance
|
abaymamo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @abaymamo | Stardance
|
1793360967.9316475
|
1793965767.9316475
|
|
32442
|
WarioWare Game by @devikab | Stardance
|
devikab
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @devikab | Stardance
|
1793360967.025127
|
1793965767.025127
|
|
39407
|
My own site! by @Joanna | Stardance
|
Joanna
|
0
|
0.73
|
0
|
[]
|
[{"post_id": 34779, "ts": "202 [{"post_id": 34779, "ts": "2026-07-25T19:27:49Z", "hours": 0.7322, "text": "The background designed from canva and planning on setting music and buttons for the three images."}]...
|
Title: My own site! by @Joanna | Stardance
Devlog Title: My own site! by @Joanna | Stardance
Devlogs:
The background designed from canva and planning on setting music and buttons for the three images....
|
1793360966.062744
|
1793965766.062744
|
|
34137
|
GMTK game jam 2026 by @ducki | Stardance
|
ducki
|
0
|
65.85
|
0
|
[]
|
[{"post_id": 82467, "ts": "202 [{"post_id": 82467, "ts": "2026-10-24T22:01:09Z", "hours": 7.7214, "text": "I added 50+ upgrades to the game A deck contains 52 cards. I wanted each upgrade to be a card, but I could not decide which of the cards to use, so I decided to make them all be used. Here my way of making upgrades came in extremely handy, As it makes it easier to make a lot of them. Still it takes a while, but then playing it myself, it is worth it just to end up with multiple upgrade paths to go to. Either buff small cards or buff high cards. It is the players choice. Should also add diversity to the strategies that can be used to get onto the leaderboard. SFX and music Managed to add SFX and music to the game, it truly livens the game up a lot. It is impressive how much just music and SFX can make. Other small changes story mode ending screen small touch ups. game balancing, scaling formulas. a bunch of small color changes, small variable tweaks (Warning laggy video with 0 audio )"}, {"post_id": 81827, "ts": "2026-10-22T17:33:02Z", "hours": 4.1794, "text": "I gave Bob a gun Now obviously Bob is not happy if you loose a round. So you might be able to guess what happens. Added a loose animation new additions Made Bob speak in more areas, as well as random speech at random times Screenshake (The game feels way better just from this one feature) Made a transition controller Finished the story ending scene"}, {"post_id": 81743, "ts": "2026-10-22T10:04:16Z", "hours": 6.3389, "text": "Devlog X Action bar redesign Gave the buttons some color, as well as gave more of the labels stretching and scaling Transportation modes Having only a car as a mode of transport is a bit boring. So I added a boat section and a train. Is it very extra, yes. For the story mode, made the story starting scenes visual designs. simplified some of the code. New perlin noise shader The last perlin noise shader I made was very laggy, so I made a new one for the water, and that fixed all the lag issues"}, {"post_id": 81474, "ts": "2026-10-21T12:25:57Z", "hours": 4.335, "text": "A public leaderboard I have not ever tried to add a public leaderboard to a game , but it was more pleasant than I expected. I took some of my old code to quickly make a js node application, using sequelize to handle the backend. Then set up everything to a Render web service and postgress database. Then connected godot to the web service and it works! When loosing in the endless mode you will be prompted if you wish to submit your score to the database, and if you are top 10, you will show up on the main menu. A small intro. The jam version had a very long intro, I remade it to have a way shorter one, so when trying the game over and over, it is not a hastle to wait through the tutorial."}, {"post_id": 81411, "ts": "2026-10-21T05:33:54Z", "hours": 4.0214, "text": "Bobs shop is officially open Buy upgrade cards after rounds to be able to beat even harder rounds. The goal is going to be to make it to the furthest level possible. And then flex on others with a level leaderboard. Main features I managed to make A very nice upgrade card system, which lets me make new cards insanely easily. (I love dictionaries) I can make each upgrade store its own function, then make custom new functions at will. Card buying and then displaying on 2D. As well as popping up when their special function is met Reroll buttons The game is starting to come togheter . Today I have woken up sick. because of it I probably won’t be able to finish in my own set time limit, but that is normal in game development, to plan less time than it would actually take. Video is a bit laggy"}, {"post_id": 81224, "ts": "2026-10-20T11:06:26Z", "hours": 2.4678, "text": "Welcome to Bobs shop I have made the shop cards, only have the buying left to add and make a bunch of custom card functions. Obviously made the cards stretch and pop around. gameplay loop The gameplay loop is almost done already. I added the button to start next round, which now means the player can go on forever, as long as they get enough score each round There is a fun “feature” of text and cards becoming huge, that I will showcase in the next devlog"}, {"post_id": 81195, "ts": "2026-10-20T07:58:02Z", "hours": 3.5281, "text": "Enviornment changes I realised the previous deep fog was a bit too much. So I gave bob a new skybox, so he does not have to live in darkness. Also a bunch more visual improvements. More buttons squatch and stretch. Optimized some code, where for some reason I was running the same code in 3 different spots, combined all that into just 1 function. Next I will start working on the shop, originally started a 2d shop, but realised I want to keep the 3d cards, so instead I am a 3d shop."}, {"post_id": 81020, "ts": "2026-10-19T16:24:43Z", "hours": 4.1611, "text": "I love polish The most important part of an incremental game is polish. So in the video, you can a load of the basics. Particles, Rotation, scaling. Numbers. I will have to improve this system further, but currently I already like how it feels. Cash calculating Currently I only have amount and multiplier. It is a bit inspired by balatro, I want to differenetiate a bit by trying to make it be more the players choice of possible combos. Instead of having some multiplier based on poker hands, each card shall do something. and each upgrade, either buffs a specific card, or lets the player themselves make combinations, for example, if your card sum is 10, get 3x the cash. more additions Added card selecting/unselecting added hand playing"}, {"post_id": 80928, "ts": "2026-10-19T08:28:55Z", "hours": 3.8089, "text": "Got a load of feedback about the game Bob is back! After getting a lot of feedback, I have realised what could be improved in the game, so I have decided to improve the game a bit, and try implement some stuff that I did not get to in the short GMTK game jam time frame but what is the fun if there is no challenge? So I have decided to attempt to finish all the game improvements in 50 hours of real world time (2 days) Current changes From the feedback, the 3d world buttons sometimes were hard to spot, so I moved them to be 2d. Also I have started to clean up some of the spaghetti code that was made when speedrunning this game in such a short time frame Made the cards order themselves based on values Idea that I want to implement I want to make the game be more like and incremental, and have a lot of customization. The idea is every card does something else, and between levels you get to buy upgrades, that change what each specific card does."}, {"post_id": 35656, "ts": "2026-07-27T07:28:11Z", "hours": 7.2297, "text": "Bob is succesfully a part of the gmtk game jam After having to rush the game, too big files and multiple game breaking bugs we managed to fix everything in time! The problems: Couple hours before submission I wanted to add a arrow to guide the player that they do not get lost. Now I tried for an entire hour to do some complex vector math, after giving up my teammate just found that there is the godot look_at() function o_o. Fun waste of an important hour. Game breaking bugs -> Scenes crashing, money doesnt reset when you restart the game (You would be stuck at 0 all the time), items dont get used up Now luckly they were all quite easy to fix, but then also, since this was a game jam we decided to use some premade assets. We ended up having a lot that we did not use in the directory, and then we found out itch allows only 200mb files for web games , we were almost double that. Well swing swing half the files deleted The game contents A small story scene in the beginning and end of game Playing cards against Bob ( Do anything you must to win) mainmenu, settings, ending screen tutorial, which hopefully explains the gameplay good enough overall We have stuff to work on, spaghetti code is something that can always improve, our modeling skills. Try not to rush everything in the end, but I am proud of our progress in this game jam, even more with the fact this was our first 3d game jam. I think this game needs a little bit more polish before being worthy of a stardance ship, so its gameplay shall be perfected after the suggestions from the jam voters. try out the jam version at https://duc-k.itch.io/cashless-drive If you also made a gmtk game jam game, drop a link to it in the comments for me to try out"}, {"post_id": 34911, "ts": "2026-07-26T00:33:33Z", "hours": 8.5508, "text": "Bob now plays cards with you on a moving car! In the past few hours in my gmtk game jam game I have succesfully polished the main blackjack game. meanwhile my teammate has been working on shops, between scenes. This doesnt mean there was no struggle I have banged my head a couple of times on my desk trying to figure out how to order every signal and event in the correct order. Bob was being a bit quiet So i let him be able to talk, well kind of ragebait the player This dialogue system is definetly one of the more favorite ones I have made, mainly because of how fast I was able to make it. Instead of making the next text function replace the entire current text that is displayed, I instead use a string Array to keep all the requested dialogues, where if there are no dialogues when adding to the array, I create a while loop untill I run out of dialogue strings, letting me handle multiple messags from different components all at the same time without even a chance of anything going wrong. I had given the game to a friend to playtest Understood that it is very hard to know what you are supposed to do (they got stuck not knowing what to do), that is why my main priority is going to be a polished tutorial, so people do not get stuck in the first 3 minutes. There are only around 22 hours left in the jam Will it be possible for this games team of 2 to finish in time, yes, but very rough, so this game will have to be polished a bit after submission to the jam. Comment your gmtk game jam games so I can check them out"}, {"post_id": 34343, "ts": "2026-07-24T23:15:08Z", "hours": 9.5028, "text": "Say hi to BOB This year I am participating in a gamejam in the GMTK game jam. Now the theme is kind of not my favorite (trauma from making timed games) You might be asking who is Bob, well he is the green alien in the picture, idk I think it makes sense. Game idea: So this year to keep it simple, taking inspiration from balatro and gamble with your friends, you get stuck in the desert and you are missing 5$ for a bus ticket but Bob here decides here is going to give you a lift, but you must pay him for every km you drive, you dont have money but you can get it by playing blackjack against him. Who said it was gonna be fair? Appart from the regular blackjack implementation, I have added cheating and items both to increase your chances of surviving. (Yes surviving, dont run out of cash) Sometimes Bob gets a bit distracted, during those moments you have the chance to cheat…. Or if you are fancy, use your items to do a load of powerful effects. Progress Progress is a bit slow, since gmtk game jam ends in like 2 days, but I think this is possible, godot signals have become my best friend to keep everything ordered correctly in all the scripts. This is definetly my best code for a game jam yet. If any of you is working on the GMTK game jam, comment your projects!"}]...
|
Title: GMTK game jam 2026 by @ducki | Stardance
D Title: GMTK game jam 2026 by @ducki | Stardance
Devlogs:
Say hi to BOB This year I am participating in a gamejam in the GMTK game jam. Now the theme is kind of not my favorite (trauma from making timed games) You might be asking who is Bob, well he is the green alien in the picture, idk I think it makes sense. Game idea: So this year to keep it simple, taking inspiration from balatro and gamble with your friends, you get stuck in the desert and you are missing 5$ for a bus ticket but Bob here decides here is going to give you a lift, but you must pay him for every km you drive, you dont have money but you can get it by playing blackjack against him. Who said it was gonna be fair? Appart from the regular blackjack implementation, I have added cheating and items both to increase your chances of surviving. (Yes surviving, dont run out of cash) Sometimes Bob gets a bit distracted, during those moments you have the chance to cheat…. Or if you are fancy, use your items to do a load of powerful effects. Progress Progress is a bit slow, since gmtk game jam ends in like 2 days, but I think this is possible, godot signals have become my best friend to keep everything ordered correctly in all the scripts. This is definetly my best code for a game jam yet. If any of you is working on the GMTK game jam, comment your projects!
Bob now plays cards with you on a moving car! In the past few hours in my gmtk game jam game I have succesfully polished the main blackjack game. meanwhile my teammate has been working on shops, between scenes. This doesnt mean there was no struggle I have banged my head a couple of times on my desk trying to figure out how to order every signal and event in the correct order. Bob was being a bit quiet So i let him be able to talk, well kind of ragebait the player This dialogue system is definetly one of the more favorite ones I have made, mainly because of how fast I was able to make it. Instead of making the next text function replace the entire current text that is displayed, I instead use a string Array to keep all the requested dialogues, where if there are no dialogues when adding to the array, I create a while loop untill I run out of dialogue strings, letting me handle multiple messags from different components all at the same time without even a chance of anything going wrong. I had given the game to a friend to playtest Understood that it is very hard to know what you are supposed to do (they got stuck not knowing what to do), that is why my main priority is going to be a polished tutorial, so people do not get stuck in the first 3 minutes. There are only around 22 hours left in the jam Will it be possible for this games team of 2 to finish in time, yes, but very rough, so this game will have to be polished a bit after submission to the jam. Comment your gmtk game jam games so I can check them out
Bob is succesfully a part of the gmtk game jam After having to rush the game, too big files and multiple game breaking bugs we managed to fix everything in time! The problems: Couple hours before submission I wanted to add a arrow to guide the player that they do not get lost. Now I tried for an entire hour to do some complex vector math, after giving up my teammate just found that there is the godot look_at() function o_o. Fun waste of an important hour. Game breaking bugs -> Scenes crashing, money doesnt reset when you restart the game (You would be stuck at 0 all the time), items dont get used up Now luckly they were all quite easy to fix, but then also, since this was a game jam we decided to use some premade assets. We ended up having a lot that we did not use in the directory, and then we found out itch allows only 200mb files for web games , we were almost double that. Well swing swing half the files deleted The game contents A small story scene in the beginning and end of game Playing cards against Bob ( Do anything you must to win) mainmenu, settings, ending screen tutorial, which hopefully explains the gameplay good enough overall We have stuff to work on, spaghetti code is something that can always improve, our modeling skills. Try not to rush everything in the end, but I am proud of our progress in this game jam, even more with the fact this was our first 3d game jam. I think this game needs a little bit more polish before being worthy of a stardance ship, so its gameplay shall be perfected after the suggestions from the jam voters. try out the jam version at https://duc-k.itch.io/cashless-drive If you also made a gmtk game jam game, drop a link to it in the comments for me to try out
Got a load of feedback about the game Bob is back! After getting a lot of feedback, I have realised what could be improved in the game, so I have decided to improve the game a bit, and try implement some stuff that I did not get to in the short GMTK game jam time frame but what is the fun if there is no challenge? So I have decided to attempt to finish all the game improvements in 50 hours of real world time (2 days) Current changes From the feedback, the 3d world buttons sometimes were hard to spot, so I moved them to be 2d. Also I have started to clean up some of the spaghetti code that was made when speedrunning this game in such a short time frame Made the cards order themselves based on values Idea that I want to implement I want to make the game be more like and incremental, and have a lot of customization. The idea is every card does something else, and between levels you get to buy upgrades, that change what each specific card does.
I love polish The most important part of an incremental game is polish. So in the video, you can a load of the basics. Particles, Rotation, scaling. Numbers. I will have to improve this system further, but currently I already like how it feels. Cash calculating Currently I only have amount and multiplier. It is a bit inspired by balatro, I want to differenetiate a bit by trying to make it be more the players choice of possible combos. Instead of having some multiplier based on poker hands, each card shall do something. and each upgrade, either buffs a specific card, or lets the player themselves make combinations, for example, if your card sum is 10, get 3x the cash. more additions Added card selecting/unselecting added hand playing
Enviornment changes I realised the previous deep fog was a bit too much. So I gave bob a new skybox, so he does not have to live in darkness. Also a bunch more visual improvements. More buttons squatch and stretch. Optimized some code, where for some reason I was running the same code in 3 different spots, combined all that into just 1 function. Next I will start working on the shop, originally started a 2d shop, but realised I want to keep the 3d cards, so instead I am a 3d shop.
Welcome to Bobs shop I have made the shop cards, only have the buying left to add and make a bunch of custom card functions. Obviously made the cards stretch and pop around. gameplay loop The gameplay loop is almost done already. I added the button to start next round, which now means the player can go on forever, as long as they get enough score each round There is a fun “feature” of text and cards becoming huge, that I will showcase in the next devlog
Bobs shop is officially open Buy upgrade cards after rounds to be able to beat even harder rounds. The goal is going to be to make it to the furthest level possible. And then flex on others with a level leaderboard. Main features I managed to make A very nice upgrade card system, which lets me make new cards insanely easily. (I love dictionaries) I can make each upgrade store its own function, then make custom new functions at will. Card buying and then displaying on 2D. As well as popping up when their special function is met Reroll buttons The game is starting to come togheter . Today I have woken up sick. because of it I probably won’t be able to finish in my own set time limit, but that is normal in game development, to plan less time than it would actually take. Video is a bit laggy
A public leaderboard I have not ever tried to add a public leaderboard to a game , but it was more pleasant than I expected. I took some of my old code to quickly make a js node application, using sequelize to handle the backend. Then set up everything to a Render web service and postgress database. Then connected godot to the web service and it works! When loosing in the endless mode you will be prompted if you wish to submit your score to the database, and if you are top 10, you will show up on the main menu. A small intro. The jam version had a very long intro, I remade it to have a way shorter one, so when trying the game over and over, it is not a hastle to wait through the tutorial.
Devlog X Action bar redesign Gave the buttons some color, as well as gave more of the labels stretching and scaling Transportation modes Having only a car as a mode of transport is a bit boring. So I added a boat section and a train. Is it very extra, yes. For the story mode, made the story starting scenes visual designs. simplified some of the code. New perlin noise shader The last perlin noise shader I made was very laggy, so I made a new one for the water, and that fixed all the lag issues
I gave Bob a gun Now obviously Bob is not happy if you loose a round. So you might be able to guess what happens. Added a loose animation new additions Made Bob speak in more areas, as well as random speech at random times Screenshake (The game feels way better just from this one feature) Made a transition controller Finished the story ending scene
I added 50+ upgrades to the game A deck contains 52 cards. I wanted each upgrade to be a card, but I could not decide which of the cards to use, so I decided to make them all be used. Here my way of making upgrades came in extremely handy, As it makes it easier to make a lot of them. Still it takes a while, but then playing it myself, it is worth it just to end up with multiple upgrade paths to go to. Either buff small cards or buff high cards. It is the players choice. Should also add diversity to the strategies that can be used to get onto the leaderboard. SFX and music Managed to add SFX and music to the game, it truly livens the game up a lot. It is impressive how much just music and SFX can make. Other small changes story mode ending screen small touch ups. game balancing, scaling formulas. a bunch of small color changes, small variable tweaks (Warning laggy video with 0 audio )...
|
1793360964.7419465
|
1793965764.7419465
|
|
55983
|
Unit0S by @ray | Stardance
|
ray
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Unit0S by @ray | Stardance
|
1793360963.78381
|
1793965763.78381
|
|
6582
|
My awesome macropad! by @Zsombi25 | Stardance
|
Zsombi25
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Zsombi25 | Stardan Title: My awesome macropad! by @Zsombi25 | Stardance...
|
1793360962.791278
|
1793965762.791278
|
|
55982
|
My awesome macropad! by @lilyvmontero | Stardance
|
lilyvmontero
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @lilyvmontero | Sta Title: My awesome macropad! by @lilyvmontero | Stardance...
|
1793360961.839595
|
1793965761.839595
|
|
20632
|
My awesome macropad! by @Saida | Stardance
|
Saida
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Saida | Stardance
|
1793360960.8840873
|
1793965760.8840873
|
|
55981
|
My first slack bot! by @slawti | Stardance
|
slawti
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @slawti | Stardance
|
1793360959.9588096
|
1793965759.9588096
|
|
55980
|
AVAPblare by @aadistech1 | Stardance
|
aadistech1
|
0
|
1.0
|
0
|
[]
|
[{"post_id": 63467, "ts": "202 [{"post_id": 63467, "ts": "2026-09-07T10:32:45Z", "hours": 1.0003, "text": "I was working on the pcb, it looks a little ugly but i guess it gets the job done."}]...
|
Title: AVAPblare by @aadistech1 | Stardance
Devlo Title: AVAPblare by @aadistech1 | Stardance
Devlogs:
I was working on the pcb, it looks a little ugly but i guess it gets the job done....
|
1793360958.9504464
|
1793965758.9504464
|
|
3636
|
My awesome macropad! by @Theone_ | Stardance
|
Theone_
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Theone_ | Stardanc Title: My awesome macropad! by @Theone_ | Stardance...
|
1793360958.0431285
|
1793965758.0431285
|
|
25676
|
TVC gimbal design by @Zev | Stardance
|
Zev
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: TVC gimbal design by @Zev | Stardance
|
1793360955.3551517
|
1793965755.3551517
|
|
55979
|
My own site! by @LuminousBug | Stardance
|
LuminousBug
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @LuminousBug | Stardance
|
1793360954.4302845
|
1793965754.4302845
|
|
35356
|
My very own WebOS by @aarushg1 | Stardance
|
aarushg1
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @aarushg1 | Stardance
|
1793360953.4968798
|
1793965753.4968798
|
|
55978
|
Black Jack by @florian_lindauer09 | Stardance
|
florian_lindauer09
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Black Jack by @florian_lindauer09 | Stardan Title: Black Jack by @florian_lindauer09 | Stardance...
|
1793360952.6247141
|
1793965752.6247141
|
|
55977
|
WarioWare Game by @D3f4u1t09 | Stardance
|
D3f4u1t09
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @D3f4u1t09 | Stardance
|
1793360951.650943
|
1793965751.650943
|
|
29469
|
My own site! by @ishlokdwivedi1 | Stardance
|
ishlokdwivedi1
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @ishlokdwivedi1 | Stardance
|
1793360950.7340972
|
1793965750.7340972
|
|
55976
|
squiggle by @Skiddysquito | Stardance
|
Skiddysquito
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: squiggle by @Skiddysquito | Stardance
|
1793360949.8249185
|
1793965749.8249185
|
|
143
|
Big Brother by @kingvon | Stardance
|
kingvon
|
1
|
45.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-29T15:02:43Z", "hours": 45.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Big Brother, a tiny self-hosted SOC for linux this is a very lightweight SIEM/SOC for linux with agents that are only 6mb in size , if you compare that to more common systems like Wazuh which has agents big as hell upto 2GB per system!!!! this is an MVP (v0.1.0) that is only made for experimental and learning purposes right now, it can work on production environment but it is not recommended to use it, cuz it has no auth and some other factors (read “security” in readme) it can detect process events and auth (ssh) events right now, with built in rule and detection engine where you create rules right there in dashboard instead of YAML stuff very easy to setup, one docker compose on dashboard system and one line script for agent hosts, with a demo python script that can fake some detections too. watch the youtube video demo and have fun! ik its a bit fast sorry lmao realised it too late that i went too deep into “no one gonna watch a long ahhh video for voting” 😭", "repo": "https://github.com/pratiksingh94/bigbrother", "demo": "https://youtu.be/VU0XfocwoQ8?si=YNWndJSA-9nlSu8H"}]...
|
[{"post_id": 83907, "ts": "202 [{"post_id": 83907, "ts": "2026-10-28T21:10:39Z", "hours": 1.1203, "text": "Better process filter, Bug fixes, Demo video so lot of things in this actually Better filter now it filters more garbage random telemetry bs Config file priority forgot to check system-level config when running lilbro directly, fixed that, now checks system level config then per-user config demo video none of you gonna run this entire thing to test ik thats why made an entire yt video some bug fixes in heartbeat reqeust sending possibly ready to ship"}, {"post_id": 83633, "ts": "2026-10-28T09:09:13Z", "hours": 1.0961, "text": "README update big ahh readme PLEAS PLEASE dont reject my ship cuz of “AI genreated readme” bruh i wrote this shit 😭 except an ASCII diagram which i commented out cuz i am afraid that will just get it rejected, not gonna take a risk so it has screenshots and all, and soon a youtube video demo too"}, {"post_id": 83364, "ts": "2026-10-27T20:27:54Z", "hours": 1.2408, "text": "scripting and releases stuff install.sh and demo script ofc, also the github workflows, so it has a couple workflows to build and publish the backend and dashboard docker image, and one more workflow to build lilbro binary, which the installer script will install, very simple gonna make the readme and stuff now ig"}, {"post_id": 83277, "ts": "2026-10-27T16:26:04Z", "hours": 0.8411, "text": "Changed how lilbro binary works so uhh to make the installer script properly automate stuff and also the demo script that i am planning, i have to make the binary “script-able” so it will now have flags like -server and -id very simple stuff"}, {"post_id": 83086, "ts": "2026-10-26T20:52:06Z", "hours": 1.5308, "text": "Webhooks lemme hook yo ahhh so i implemented webhooks, 3 types: generic - your site discord slack app now it can send webhooks upon detection it also masks the webhook URI on Ui, its also gonna show a list of paste webhook fires uhh so one problem is that on slack detection id like #1 makes it a channel reference, idk how to fix that, i DONT want to have space like “# 1”, i tried \\ but it didnt work on slack, so its a todo for now"}, {"post_id": 82701, "ts": "2026-10-25T17:04:22Z", "hours": 0.565, "text": "Smol rule page /rules/id shows you the rules details (with a human like summary too) and you can edit the rulle from there yeah thats it in this"}, {"post_id": 82681, "ts": "2026-10-25T16:08:58Z", "hours": 0.8678, "text": "Real stats for agent monitoring page replaced the mock bs with actual stats, things it will show: events (24h) detections (24h) processes (24h) <— thinking of removing ts tbh, but i kinda want some kind of process info on stats, lets see total events last seen Seeding db with default rules yeah last attempt had bugs so did it properly this time, and made some fields case-insensetive cuz i was getting stuck and it was annoying"}, {"post_id": 82653, "ts": "2026-10-25T15:02:51Z", "hours": 1.375, "text": "hello, i am back on this damn its been 4 months, cant leave 37 hours of efforts lol gotta ship it before stardance ends Bug fixes and some hardening so i left a file mid-work months ago cuz of burnout, so it was hard to figure out what i was doing there were some things that was crashing the rule engine, so worked on that and now a single bad rule cant stop others and every rules fires idendently on same event, before this a rule could fire on an event and no other rule will try even if its matching _ and moved event filtering to server side, i was doing this 4 months ago but quit last time oh and yes i am using AI a bit to help me make it shippable, but i am going to respect the 30% rules, right now its much much much less than that (<1 hour)"}, {"post_id": 13765, "ts": "2026-06-22T15:49:11Z", "hours": 1.0486, "text": "Status Update in Detection so i have added other statuses in detections, which are: resolved , investigating , fase positive and i made a dropdown button component to update the status, making it was lowk creative lmao i didnt think i would be pull that off"}, {"post_id": 13717, "ts": "2026-06-22T14:14:06Z", "hours": 1.2025, "text": "Noise Filtering in Process Collector so i already had this but it was a bit stupid so i improved it, its still stupid but less stupid lol __ so right now it has bigger and more lists of stuff to ignore and it also checks for parent-child relation like kitty -> zsh and other terminals opening a shell cuz thats common, and it also ignores the processes fired by kernel for small things, and many other stuff, you check a list of stuff it ignores in lilbro/internal/collectors/processes/filter.go __ umm i dont have anyting to show as its a filtering a function i implement and wtf i am supposed to show, so have a look at this snapperd process lol"}, {"post_id": 13180, "ts": "2026-06-21T15:57:20Z", "hours": 1.1108, "text": "Containerization buzz word lmao basically i updated the docker compose files and made everything easily spin up with docker compose and that was like 20m of work, the rest was a fight between me vs pnpm security features and pyscopg2 building lmao"}, {"post_id": 13138, "ts": "2026-06-21T14:18:43Z", "hours": 0.7856, "text": "Standardized Context Fields and Timestamps so the way these two things were really messy lol in process info i had the go struct PascalCase context fields and in auth info i had snake_case context fields so i made snake_case the standard way __ and all the timestamps were timezone-naive which was really bad and there were conflicts in places, so i made all the columns timezone aware and migrated the existing tables to timestampz columns and now in frontend i am converting it to local timezone in the screenshot you can see two timestamp, one is UTC and the other is IST because i am converting it to local timezone on frontend instead of handling that stuff on backend, cuz well the agents could be hosted on any system across the globe note: the second timestamp is old, dont assume its same time just different timezones"}, {"post_id": 13052, "ts": "2026-06-21T10:42:27Z", "hours": 4.8544, "text": "Entire Rule Engine and Detection Pipeline lol big update, lemme go in chronological order what i did Bug fixes so i fixed a bug in SSH Pipeline where it was trying to send an event for EVERY journal ingestion which is not what i want because not every sshd journal log is important, so i added a check where if the log isnt about password failed or accepted then it wont ignore it. __ i also added Rule Name column in detection table which i forgot to add. Rule Engine setup so in this “setup” i made the database table and seeded it with 2 rules manually so i can make the detection functions first. ofc the two rules were the Sus Process match type rule and SSH Bruteforce threshold type rule. __ the detection engine is just the previous hardcoded one but now works with database variables, it still has the same the group by checking for threshold based rules, and for match rules i made the input be command seperated for example the values to be matched with can be nc, netcat, ncat, nmap Rule CRUD Endpoints created 5 endpoints on backend GET /rules/ - lists all rules POST /rules/ - creates rule PATCH - /rules/id - update a rule DELETE - /rules/id - delete a rule PATCH - /rules/id/toggle - toggle on a rule, small thing so made a seperate endpoint Dashboard created pages: /rules - shows rules table /rules/new - creates new rules Pending things: /rules/id page on dashboard, will do that later with rule updating feature Next: probably more types of events or config improvement, not decided."}, {"post_id": 11414, "ts": "2026-06-18T17:54:58Z", "hours": 1.8, "text": "SSH Auth Log Pipeline damn it was easier than i thought so i made the complete SSH authentication failure and success events pipeline __ what happens is the lil bro (agent) reads the systemd journal logs (yes it only supports this for now T__T) by executing the command journalctl -f -u sshd -o json --since now which basically makes it run the journalctl like tail command so it streams out the logs only when they are ingested. __ the logs are in JSON format which then gets is handled by Auth Collector in agent, which has parser functions for password failure and success then its just the normal event pipeline (create event -> send to queue -> worker sends the event to backend) after that it is displayed on dashboard next threshold based rules (first hardcoded, then proper rule table and stuff)"}, {"post_id": 10753, "ts": "2026-06-17T17:24:07Z", "hours": 3.4436, "text": "Detections lol this was fun too the entire detection pipeline so basically i started Detections work to complete the SOC pipeline (agent -> events -> detections) and since i have no rule engine setup yet so i hardcoded a Sus Process rule in detection function it bascially checks events within a time window of 30 seconds and checks their name for sus process names (which is just an array for now) and the detection function runs on a Background Scheduler every 30 seconds in backend (not agent, i dont want) and after that it stores the detection in the Detections table which stores things like: Rule Name, Triggered Events, Context, Status, etc and the end it is displayed beautifully (i love this so much T___T) on the dashboard thingys made Backend: Detection model, schemas, etc /detections/ - gives list of all detections /detections/{id} - gives the specific detection Dashboard: /detections - shows the all the detections in a table, needs more stuff like filter /detections/[id] - shows detection detail (looks REALLY good) Next see the obvious next step is a rule system to store detection rules but i wont do that, see i am planning to add 2 types of rules just like all the SOC, they are: directing matching rules and threshold based rules and i will build both at once but there is nothing yet which can be used with threshold based rules, and i dont want to edit the rule system again and again so i am planning to make authentication based events first and then work on rules, then process events can be tested with direct matching rules and authentication events can be tested with threshold based rules like SSH Brute force attack"}, {"post_id": 9987, "ts": "2026-06-16T14:57:39Z", "hours": 1.0742, "text": "Per-event info so i added a Sheet component from shadcn, which shows all the info of event like context and all the stuff not much just this, and uhhh it was a pain yeah every frontend thing is a pain."}, {"post_id": 8890, "ts": "2026-06-14T20:06:31Z", "hours": 0.8458, "text": "More Details in Process Event yeah just the title, not much tonight as i have to study so before this it was just PID and Name of process, which is useless, so i made it store this instead: type ProcessInfo struct { PID int PPID int Name string CmdLine string User string Cwd string CreateTime string } and i made the event table in dashboard show only first 2 fields in context and just say “+x more” at the end. next will be a sheet component to show the events in detail"}, {"post_id": 8343, "ts": "2026-06-13T21:25:40Z", "hours": 2.2133, "text": "Process Collector and Event Feed I’ve been waiting for this lol this is was so fun cuz i was locked the hell in okay so hear me out so in agent i made a very basic process collector which has 2 maps and every 10 seconds it updates the currProcesses map and compares it with prevProcesses the resulting differences are the process created/terminated. basic stuff. and then after that it creates an event struct and uses the event.Emit() function which just adds the event to a queue (go channel), and another function RunEventWorker() just has a loop which runs till events queue have events in them, and calls the api.SendEvent() function with the event, and that api function is very dynamic cuz the structure of event payload itself is very dynamic so all types of events can be sent from that small function and the coolest part about this whole pipeline is that it follows best practice of code, each function does only one thing, the collector just collects and emits the event, the event function only adds event to queue, then event worker runs api function with those events, everything is so organised!!! and the feed is semi-live, it just polls every 10 seconds. i REALLY had fun coding this lmao i love go :3 next: probably more processes related events or logs"}, {"post_id": 7373, "ts": "2026-06-12T09:10:49Z", "hours": 5.0419, "text": "Events endpoints and display problem i faced wow this was a pain T___T so basically when i started working on the backend to receive events from lilbro i planned something like this lil bro -> gets logs -> normalizes and understands it -> sends to backend -> dashboard displays it and i created the neccessary endpoints and database tables schemas what not bruh and halfway through i realized: “damn what about logs??” and it snapped. i realized i wasted like 2 hours on this cuz this system was absolutely trash and not afforadable on resources wise cuz we cant shove a whole detection engine in agent, and we gotta think about it from analyst side too cuz they gonna see logs for investigations and cant just depends on pre-build event types better system so then i decided to go with this kinda system: agent will see logs -> normalizes them -> sends to backend with logs and events in this kinda structure: { \"id\" : 1 , \"host\" : { \"id\" : \"\" , \"hostname\" : \"\" }, \"log\" : { \"source\" : \"\" , \"raw\" : \"\" , \"ingested_at\" : \"\" }, \"event_type\" : \"\" , \"context\" :{}, \"created_at\" : \"\" } , this would allow the backend to store the events and also the logs related, it also allows saving events with logs cuz not every event is made from a log and i think this is a nice system, cuz now we can show logs, events, and have a detection engine in backend to create alerts based on rules so to build this i created: Logs table, stores logs Events table, stores events with log ids /events/ - global event feed POST /agents/id/event - endpoint for agents to send events and on the dashboard side i have made /events which displays all events from all hosts in a table, it also has a filter for selecting hosts and/or event types, and also a limit. next next i will be working on sending events from lil bro"}, {"post_id": 5085, "ts": "2026-06-08T19:29:37Z", "hours": 1.5992, "text": "Agents details page so added /agents/[id] in dashboard, which required the same in backend too so i created the /{id} route in backend annd did the SQL magic to get the data, and also moved the schemas into their own folder cuz it was looking hella messy. i am using basic cards in displaying agents data, the top cards are mock data for now but soon i will addd real data in them, currently it looks like this."}, {"post_id": 4846, "ts": "2026-06-08T11:39:46Z", "hours": 1.3797, "text": "Agents Table so i made /agents and it displays the online agents in a nice table! i used the shadcn table component to make that, it fetches /agents/ on backend every 10 seconds and gets the data ofc handling with the goat tanstack query. one stupid thing i encountered was the fact that i was not handling the agent status in backend properly, once it turned online it forever stays online so i went to work on that first and found out that its lowk not a good idea to update and store the online/offline status on database, better way would be to just use last_seen and check if the agent’s last heartbeat was more than 2 minutes ago, if thats true just make the json data display “offline” in /agents endpoint, ez. i will ofc add more status types so i will handle it in a better way, but thats in future. and one more stupid thing i came across, and boy call me an idiot cuz i was PULLING my hair trying to figure out why the table wont update even after the backend endpoint is giving correct status, i thought so many things like cache and shit 😭️ and after like 20 minutes i saw that instead of refetch_interval: 10000 which is 10 seconds, i accidently made a typo and set it to 100000 which is 100 seconds 😭️ well it works now, and works good. next: event storage setup probably?"}, {"post_id": 4395, "ts": "2026-06-07T18:31:31Z", "hours": 1.0978, "text": "Counting Agents so time to show real data on dashboard first i installed tanstack cuz i am not going to fetch everywhere the same data, tanstack query will fetch, cache, store, refetch and handle all that, its a server state management lib. so using tanstack i created the neccessary functions for it to query the server and created the dashboard card component which will display the number of agent. i am also using shadcn skeleton to show the loading part. here’s how the cards look next: agent table"}, {"post_id": 4217, "ts": "2026-06-07T13:31:38Z", "hours": 3.1961, "text": "Woah hella changes Dashboard shell: first version so i made this as first version, took a lot of time cuz i am super trash in frontend, like SUPER trash and i didnt wanted to use AI on it. so after more than a whole hour i completed the first version. it was so hard to make the collapsing thingy work because the style will always mess up and wont go properly inside when clicked on collapsed button. after a shit ton of effort it looked okay and was done. the first image is how the first version looked Dashboard shell: final version after showing my friend and he gave it 2/10, and it trigged my seeking perfection self 💔️ and friend suggested tweakcn for shadcn colors and told me to use sidebar 8 of shadcn sidebar (i didnt even know sidebars existed in shadcn lmao) so i used that and hella time on that too cuz it was still complicated a bit, shadcn gave so many files i was lowk confused which type of nav to use for what things, but at the end it worked and looks beautiful and better! second image is the current one! Other minor changes added cors and stuff in backend so it allows request from dashboard, its just localhost for now but will have to find a permanent solution to that next thing i will do is display the lil bros info"}, {"post_id": 1391, "ts": "2026-06-03T12:16:57Z", "hours": 1.1761, "text": "heartbeats 💓 now the lil bro (agent) can send heartbeats! wow so i am new to go and just discovering the beautiful package based folder structure, makes a lot of sense! so i made a function to send api request to, a function to construct heartbeat by getting system info and UUID is passed from GetConfig() function, and a function to get sys info which includes hostname, os name, and kernel version at first i thought of adding os version instead but getting os version was kinda a pain so i just switched it to kernel version, might add os version later image 1: heartbeats being sent image 2: data from postgres, you can see the registered_at vs last_seen (which gets updated from heartbeats)"}, {"post_id": 952, "ts": "2026-06-02T18:35:42Z", "hours": 1.0694, "text": "GO GO LIL BRO making the lil bro (agent) with go! so i setup the go environment, i am actually a beginner in go lol i am using this project as an excuse to learn go :3 so i wrote some basic code in main.go to get started, and made internals/config.go which has 3 functions EnsureConfig() , CreateConfig() , and GetConfig() , when the code runs it checks with ensure function and creates new config if not found in ~/.config/lilbro/config.json . and Get config is just get config lol, using simple json marshalling with go the screenshot shows the config file that got saved"}, {"post_id": 771, "ts": "2026-06-02T13:09:57Z", "hours": 1.1258, "text": "Heartbeats on backend! so the lilbros (agents) will send heartbeats every few minutes and to handle that i first made a /register endpoint where the agents will first register and then start sending hearbeats but then thought that agents will also restart and i will have to treat their registration attempt as heartbeat, so there a thin line between /register and /heartbeat so i just merged them into /heartbeat lol so now agent generates a UUID locally and sends it along side other metadata about the system to backend, and backend checks if the agent exists then it just updates the last_seen in database and other metadata and if it doesnt then it creates a new agent, simple as hell again, dont have much to show right now as no UI lol"}, {"post_id": 438, "ts": "2026-06-01T20:54:14Z", "hours": 0.7908, "text": "Switched to SQLAlchemy from psycopg hi i am back did it because i started working on /agents/registration endpoint but the psycopg.connect(…) bla bla looked hella weird everywhere so i just ragequit and installed SQLAlchemy, then made the models (only agent table for now) and setup a simple function get_db() to get a quick db session, fixed my problem ezzz not using alembic rn tho, will do in future i dont have anything to show so i will just show this ig?"}, {"post_id": 398, "ts": "2026-06-01T19:41:40Z", "hours": 1.6497, "text": "HIIIIII, first dev log! so i started working on the docker setup first so i can spin up a postgres container, so i wrote a docker compose file, also had some problems cuz postgres-18 wouldnt take the /var/lib/bla/bla path, that was a small issue tho fixed that quick. then i started working on the connection part so i used psycopg on python backend to connect to my pgsql container after that i had to make tables, which took the most time lmao cuz it was hard to decide how should i do it, first i thought i should use SQLAlchemy and the whole database migration setup but that felt too much for now, so i went the usual way using psycopg and decided to create tables using CREATE TABLE IF NOT EXISTS , even with that my dumb ahh spent time making sure if i wrote the init_db() function the best way lmao, but at the end it worked nice and created the table after that i just setup fastapi and created / endpoint which just returns “hello fellas :3”"}]...
|
Title: Big Brother by @kingvon | Stardance
Devlog Title: Big Brother by @kingvon | Stardance
Devlogs:
HIIIIII, first dev log! so i started working on the docker setup first so i can spin up a postgres container, so i wrote a docker compose file, also had some problems cuz postgres-18 wouldnt take the /var/lib/bla/bla path, that was a small issue tho fixed that quick. then i started working on the connection part so i used psycopg on python backend to connect to my pgsql container after that i had to make tables, which took the most time lmao cuz it was hard to decide how should i do it, first i thought i should use SQLAlchemy and the whole database migration setup but that felt too much for now, so i went the usual way using psycopg and decided to create tables using CREATE TABLE IF NOT EXISTS , even with that my dumb ahh spent time making sure if i wrote the init_db() function the best way lmao, but at the end it worked nice and created the table after that i just setup fastapi and created / endpoint which just returns “hello fellas :3”
Switched to SQLAlchemy from psycopg hi i am back did it because i started working on /agents/registration endpoint but the psycopg.connect(…) bla bla looked hella weird everywhere so i just ragequit and installed SQLAlchemy, then made the models (only agent table for now) and setup a simple function get_db() to get a quick db session, fixed my problem ezzz not using alembic rn tho, will do in future i dont have anything to show so i will just show this ig?
Heartbeats on backend! so the lilbros (agents) will send heartbeats every few minutes and to handle that i first made a /register endpoint where the agents will first register and then start sending hearbeats but then thought that agents will also restart and i will have to treat their registration attempt as heartbeat, so there a thin line between /register and /heartbeat so i just merged them into /heartbeat lol so now agent generates a UUID locally and sends it along side other metadata about the system to backend, and backend checks if the agent exists then it just updates the last_seen in database and other metadata and if it doesnt then it creates a new agent, simple as hell again, dont have much to show right now as no UI lol
GO GO LIL BRO making the lil bro (agent) with go! so i setup the go environment, i am actually a beginner in go lol i am using this project as an excuse to learn go :3 so i wrote some basic code in main.go to get started, and made internals/config.go which has 3 functions EnsureConfig() , CreateConfig() , and GetConfig() , when the code runs it checks with ensure function and creates new config if not found in ~/.config/lilbro/config.json . and Get config is just get config lol, using simple json marshalling with go the screenshot shows the config file that got saved
heartbeats 💓 now the lil bro (agent) can send heartbeats! wow so i am new to go and just discovering the beautiful package based folder structure, makes a lot of sense! so i made a function to send api request to, a function to construct heartbeat by getting system info and UUID is passed from GetConfig() function, and a function to get sys info which includes hostname, os name, and kernel version at first i thought of adding os version instead but getting os version was kinda a pain so i just switched it to kernel version, might add os version later image 1: heartbeats being sent image 2: data from postgres, you can see the registered_at vs last_seen (which gets updated from heartbeats)
Woah hella changes Dashboard shell: first version so i made this as first version, took a lot of time cuz i am super trash in frontend, like SUPER trash and i didnt wanted to use AI on it. so after more than a whole hour i completed the first version. it was so hard to make the collapsing thingy work because the style will always mess up and wont go properly inside when clicked on collapsed button. after a shit ton of effort it looked okay and was done. the first image is how the first version looked Dashboard shell: final version after showing my friend and he gave it 2/10, and it trigged my seeking perfection self 💔️ and friend suggested tweakcn for shadcn colors and told me to use sidebar 8 of shadcn sidebar (i didnt even know sidebars existed in shadcn lmao) so i used that and hella time on that too cuz it was still complicated a bit, shadcn gave so many files i was lowk confused which type of nav to use for what things, but at the end it worked and looks beautiful and better! second image is the current one! Other minor changes added cors and stuff in backend so it allows request from dashboard, its just localhost for now but will have to find a permanent solution to that next thing i will do is display the lil bros info
Counting Agents so time to show real data on dashboard first i installed tanstack cuz i am not going to fetch everywhere the same data, tanstack query will fetch, cache, store, refetch and handle all that, its a server state management lib. so using tanstack i created the neccessary functions for it to query the server and created the dashboard card component which will display the number of agent. i am also using shadcn skeleton to show the loading part. here’s how the cards look next: agent table
Agents Table so i made /agents and it displays the online agents in a nice table! i used the shadcn table component to make that, it fetches /agents/ on backend every 10 seconds and gets the data ofc handling with the goat tanstack query. one stupid thing i encountered was the fact that i was not handling the agent status in backend properly, once it turned online it forever stays online so i went to work on that first and found out that its lowk not a good idea to update and store the online/offline status on database, better way would be to just use last_seen and check if the agent’s last heartbeat was more than 2 minutes ago, if thats true just make the json data display “offline” in /agents endpoint, ez. i will ofc add more status types so i will handle it in a better way, but thats in future. and one more stupid thing i came across, and boy call me an idiot cuz i was PULLING my hair trying to figure out why the table wont update even after the backend endpoint is giving correct status, i thought so many things like cache and shit 😭️ and after like 20 minutes i saw that instead of refetch_interval: 10000 which is 10 seconds, i accidently made a typo and set it to 100000 which is 100 seconds 😭️ well it works now, and works good. next: event storage setup probably?
Agents details page so added /agents/[id] in dashboard, which required the same in backend too so i created the /{id} route in backend annd did the SQL magic to get the data, and also moved the schemas into their own folder cuz it was looking hella messy. i am using basic cards in displaying agents data, the top cards are mock data for now but soon i will addd real data in them, currently it looks like this.
Events endpoints and display problem i faced wow this was a pain T___T so basically when i started working on the backend to receive events from lilbro i planned something like this lil bro -> gets logs -> normalizes and understands it -> sends to backend -> dashboard displays it and i created the neccessary endpoints and database tables schemas what not bruh and halfway through i realized: “damn what about logs??” and it snapped. i realized i wasted like 2 hours on this cuz this system was absolutely trash and not afforadable on resources wise cuz we cant shove a whole detection engine in agent, and we gotta think about it from analyst side too cuz they gonna see logs for investigations and cant just depends on pre-build event types better system so then i decided to go with this kinda system: agent will see logs -> normalizes them -> sends to backend with logs and events in this kinda structure: { "id" : 1 , "host" : { "id" : "" , "hostname" : "" }, "log" : { "source" : "" , "raw" : "" , "ingested_at" : "" }, "event_type" : "" , "context" :{}, "created_at" : "" } , this would allow the backend to store the events and also the logs related, it also allows saving events with logs cuz not every event is made from a log and i think this is a nice system, cuz now we can show logs, events, and have a detection engine in backend to create alerts based on rules so to build this i created: Logs table, stores logs Events table, stores events with log ids /events/ - global event feed POST /agents/id/event - endpoint for agents to send events and on the dashboard side i have made /events which displays all events from all hosts in a table, it also has a filter for selecting hosts and/or event types, and also a limit. next next i will be working on sending events from lil bro
Process Collector and Event Feed I’ve been waiting for this lol this is was so fun cuz i was locked the hell in okay so hear me out so in agent i made a very basic process collector which has 2 maps and every 10 seconds it updates the currProcesses map and compares it with prevProcesses the resulting differences are the process created/terminated. basic stuff. and then after that it creates an event struct and uses the event.Emit() function which just adds the event to a queue (go channel), and another function RunEventWorker() just has a loop which runs till events queue have events in them, and calls the api.SendEvent() function with the event, and that api function is very dynamic cuz the structure of event payload itself is very dynamic so all types of events can be sent from that small function and the coolest part about this whole pipeline is that it follows best practice of code, each function does only one thing, the collector just collects and emits the event, the event function only adds event to queue, then event worker runs api function with those events, everything is so organised!!! and the feed is semi-live, it just polls every 10 seconds. i REALLY had fun coding this lmao i love go :3 next: probably more processes related events or logs
More Details in Process Event yeah just the title, not much tonight as i have to study so before this it was just PID and Name of process, which is useless, so i made it store this instead: type ProcessInfo struct { PID int PPID int Name string CmdLine string User string Cwd string CreateTime string } and i made the event table in dashboard show only first 2 fields in context and just say “+x more” at the end. next will be a sheet component to show the events in detail
Per-event info so i added a Sheet component from shadcn, which shows all the info of event like context and all the stuff not much just this, and uhhh it was a pain yeah every frontend thing is a pain.
Detections lol this was fun too the entire detection pipeline so basically i started Detections work to complete the SOC pipeline (agent -> events -> detections) and since i have no rule engine setup yet so i hardcoded a Sus Process rule in detection function it bascially checks events within a time window of 30 seconds and checks their name for sus process names (which is just an array for now) and the detection function runs on a Background Scheduler every 30 seconds in backend (not agent, i dont want) and after that it stores the detection in the Detections table which stores things like: Rule Name, Triggered Events, Context, Status, etc and the end it is displayed beautifully (i love this so much T___T) on the dashboard thingys made Backend: Detection model, schemas, etc /detections/ - gives list of all detections /detections/{id} - gives the specific detection Dashboard: /detections - shows the all the detections in a table, needs more stuff like filter /detections/[id] - shows detection detail (looks REALLY good) Next see the obvious next step is a rule system to store detection rules but i wont do that, see i am planning to add 2 types of rules just like all the SOC, they are: directing matching rules and threshold based rules and i will build both at once but there is nothing yet which can be used with threshold based rules, and i dont want to edit the rule system again and again so i am planning to make authentication based events first and then work on rules, then process events can be tested with direct matching rules and authentication events can be tested with threshold based rules like SSH Brute force attack
SSH Auth Log Pipeline damn it was easier than i thought so i made the complete SSH authentication failure and success events pipeline __ what happens is the lil bro (agent) reads the systemd journal logs (yes it only supports this for now T__T) by executing the command journalctl -f -u sshd -o json --since now which basically makes it run the journalctl like tail command so it streams out the logs only when they are ingested. __ the logs are in JSON format which then gets is handled by Auth Collector in agent, which has parser functions for password failure and success then its just the normal event pipeline (create event -> send to queue -> worker sends the event to backend) after that it is displayed on dashboard next threshold based rules (first hardcoded, then proper rule table and stuff)
Entire Rule Engine and Detection Pipeline lol big update, lemme go in chronological order what i did Bug fixes so i fixed a bug in SSH Pipeline where it was trying to send an event for EVERY journal ingestion which is not what i want because not every sshd journal log is important, so i added a check where if the log isnt about password failed or accepted then it wont ignore it. __ i also added Rule Name column in detection table which i forgot to add. Rule Engine setup so in this “setup” i made the database table and seeded it with 2 rules manually so i can make the detection functions first. ofc the two rules were the Sus Process match type rule and SSH Bruteforce threshold type rule. __ the detection engine is just the previous hardcoded one but now works with database variables, it still has the same the group by checking for threshold based rules, and for match rules i made the input be command seperated for example the values to be matched with can be nc, netcat, ncat, nmap Rule CRUD Endpoints created 5 endpoints on backend GET /rules/ - lists all rules POST /rules/ - creates rule PATCH - /rules/id - update a rule DELETE - /rules/id - delete a rule PATCH - /rules/id/toggle - toggle on a rule, small thing so made a seperate endpoint Dashboard created pages: /rules - shows rules table /rules/new - creates new rules Pending things: /rules/id page on dashboard, will do that later with rule updating feature Next: probably more types of events or config improvement, not decided.
Standardized Context Fields and Timestamps so the way these two things were really messy lol in process info i had the go struct PascalCase context fields and in auth info i had snake_case context fields so i made snake_case the standard way __ and all the timestamps were timezone-naive which was really bad and there were conflicts in places, so i made all the columns timezone aware and migrated the existing tables to timestampz columns and now in frontend i am converting it to local timezone in the screenshot you can see two timestamp, one is UTC and the other is IST because i am converting it to local timezone on frontend instead of handling that stuff on backend, cuz well the agents could be hosted on any system across the globe note: the second timestamp is old, dont assume its same time just different timezones
Containerization buzz word lmao basically i updated the docker compose files and made everything easily spin up with docker compose and that was like 20m of work, the rest was a fight between me vs pnpm security features and pyscopg2 building lmao
Noise Filtering in Process Collector so i already had this but it was a bit stupid so i improved it, its still stupid but less stupid lol __ so right now it has bigger and more lists of stuff to ignore and it also checks for parent-child relation like kitty -> zsh and other terminals opening a shell cuz thats common, and it also ignores the processes fired by kernel for small things, and many other stuff, you check a list of stuff it ignores in lilbro/internal/collectors/processes/filter.go __ umm i dont have anyting to show as its a filtering a function i implement and wtf i am supposed to show, so have a look at this snapperd process lol
Status Update in Detection so i have added other statuses in detections, which are: resolved , investigating , fase positive and i made a dropdown button component to update the status, making it was lowk creative lmao i didnt think i would be pull that off
hello, i am back on this damn its been 4 months, cant leave 37 hours of efforts lol gotta ship it before stardance ends Bug fixes and some hardening so i left a file mid-work months ago cuz of burnout, so it was hard to figure out what i was doing there were some things that was crashing the rule engine, so worked on that and now a single bad rule cant stop others and every rules fires idendently on same event, before this a rule could fire on an event and no other rule will try even if its matching _ and moved event filtering to server side, i was doing this 4 months ago but quit last time oh and yes i am using AI a bit to help me make it shippable, but i am going to respect the 30% rules, right now its much much much less than that (<1 hour)
Real stats for agent monitoring page replaced the mock bs with actual stats, things it will show: events (24h) detections (24h) processes (24h) <— thinking of removing ts tbh, but i kinda want some kind of process info on stats, lets see total events last seen Seeding db with default rules yeah last attempt had bugs so did it properly this time, and made some fields case-insensetive cuz i was getting stuck and it was annoying
Smol rule page /rules/id shows you the rules details (with a human like summary too) and you can edit the rulle from there yeah thats it in this
Webhooks lemme hook yo ahhh so i implemented webhooks, 3 types: generic - your site discord slack app now it can send webhooks upon detection it also masks the webhook URI on Ui, its also gonna show a list of paste webhook fires uhh so one problem is that on slack detection id like #1 makes it a channel reference, idk how to fix that, i DONT want to have space like “# 1”, i tried \ but it didnt work on slack, so its a todo for now
Changed how lilbro binary works so uhh to make the installer script properly automate stuff and also the demo script that i am planning, i have to make the binary “script-able” so it will now have flags like -server and -id very simple stuff
scripting and releases stuff install.sh and demo script ofc, also the github workflows, so it has a couple workflows to build and publish the backend and dashboard docker image, and one more workflow to build lilbro binary, which the installer script will install, very simple gonna make the readme and stuff now ig
README update big ahh readme PLEAS PLEASE dont reject my ship cuz of “AI genreated readme” bruh i wrote this shit 😭 except an ASCII diagram which i commented out cuz i am afraid that will just get it rejected, not gonna take a risk so it has screenshots and all, and soon a youtube video demo too
Better process filter, Bug fixes, Demo video so lot of things in this actually Better filter now it filters more garbage random telemetry bs Config file priority forgot to check system-level config when running lilbro directly, fixed that, now checks system level config then per-user config demo video none of you gonna run this entire thing to test ik thats why made an entire yt video some bug fixes in heartbeat reqeust sending possibly ready to ship
Ships:
Big Brother, a tiny self-hosted SOC for linux this is a very lightweight SIEM/SOC for linux with agents that are only 6mb in size , if you compare that to more common systems like Wazuh which has agents big as hell upto 2GB per system!!!! this is an MVP (v0.1.0) that is only made for experimental and learning purposes right now, it can work on production environment but it is not recommended to use it, cuz it has no auth and some other factors (read “security” in readme) it can detect process events and auth (ssh) events right now, with built in rule and detection engine where you create rules right there in dashboard instead of YAML stuff very easy to setup, one docker compose on dashboard system and one line script for agent hosts, with a demo python script that can fake some detections too. watch the youtube video demo and have fun! ik its a bit fast sorry lmao realised it too late that i went too deep into “no one gonna watch a long ahhh video for voting” 😭...
|
1793360948.4319792
|
1793447348.4319792
|
|
38808
|
XiaoMei by @humanturtleduck | Stardance
|
humanturtleduck
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: XiaoMei by @humanturtleduck | Stardance
|
1793360947.4834342
|
1793965747.4834342
|