|
23143
|
Frictionless by @NamanDhanuka | Stardance
|
NamanDhanuka
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @NamanDhanuka | Stardance
|
1792774437.0585423
|
1793379237.0585423
|
|
18244
|
My awesome macropad! by @alice | Stardance
|
alice
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @alice | Stardance
|
1792774437.9138775
|
1793379237.9138775
|
|
5737
|
StudentVUE Alternative Frontend by @hyphenzero | S StudentVUE Alternative Frontend by @hyphenzero | Stardance...
|
hyphenzero
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: StudentVUE Alternative Frontend by @hyphenz Title: StudentVUE Alternative Frontend by @hyphenzero | Stardance...
|
1792774438.7770946
|
1793379238.7770946
|
|
26942
|
My first slack bot! by @HAJIME_HINATA | Stardance
|
HAJIME_HINATA
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @HAJIME_HINATA | Sta Title: My first slack bot! by @HAJIME_HINATA | Stardance...
|
1792774439.6227071
|
1793379239.6227071
|
|
9800
|
music box by @matikda | Stardance
|
matikda
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: music box by @matikda | Stardance
|
1792774440.494109
|
1793379240.494109
|
|
23622
|
Aqua Puck by @panda | Stardance
|
panda
|
0
|
6.28
|
0
|
[]
|
[{"post_id": 16501, "ts": "202 [{"post_id": 16501, "ts": "2026-06-26T20:57:57Z", "hours": 1.0006, "text": "Schematic Devlog #3 ! I have added and wired the following : The weight sensing circuit (a SC134 load cell and a HX711 amplifier) : The LSM6DS3 accelerometer & gyroscope : An LED Ring and Buzzer : What’s left/next ? I am currently working on the Charging and Battery circuit, and after that im pretty much done !"}, {"post_id": 15723, "ts": "2026-06-25T16:11:38Z", "hours": 0.85, "text": "Schematic devlog #2 I HATE KiCad. If you didn’t look at my last devlog, PLEASE DO ! In the last one i was rather happy about having to not have to install the HX711’s KiCad symbol and that it was built in. WELL unfortunately KiCad let me down - it uses the damn IC symbol ! Anyway, i had to install the symbol myself, then add it, and this time the pins where finally correct ! i aslo finished wiring : the LSM6DS3 Accelerometer/Gyroscope The WS2812B LED ring (im thinking of using it as a status showing thing) I will be working on after a small break : wiring my Buzzer (to notify user to drink water) with a resistor and transistor SHOUT OUT TO MY PHYSICS TEACHER maybe adding a Motor for nice vibration feedback ? working out the power/charging/flashing"}, {"post_id": 15702, "ts": "2026-06-25T15:12:16Z", "hours": 0.4503, "text": "Started my schematic ! I have now started designing the schematic for the AquaPuck TM ( just kidding lmao ) ! Im using KiCad, and found the footprint for my microcontroller (the ESP32-c3-supermini) online (this time with correct pin names). Then i added my Weight sensor circuit , which uses a SC134 load cell , and a HX711 voltage amplifier/analog to digital converter ( so that the microcontroller can actually measure ). The HX711 footprint/symbol was built in to KiCad, and was easy to find. for the load cell i didn’t need a footprint/symbol, as it wont be soldered on the PCB, but instead will go ON the Puck (in the physics force path)."}, {"post_id": 13876, "ts": "2026-06-22T18:54:07Z", "hours": 1.2669, "text": "#Done with all my research ! So basically i got the idea for a smart water bottle at a Jugend Hackt Hackathon i attended last weekend (June 19. - 21.) in Berlin - it was my project for that hackathon - one that at the end was only a prototype that didn’t work. ##THE v0 PROTOTYPE : The Hackathon prototype (see below) worked like this : we used a barometer to measure the pressure of the water, and through a bit of calibration the weight we added a accelerometer & gyroscope (2 in 1) chip to the side, so we know when it is tilted (use formula for pressure - water height - density, etc. - this part was done by a different group member so idk) everything worked over a ESP32-c5 chip and the measurements were sent over a wifi UDP stream Bottom of bottle replaced with balloon so sensor can get actual pressure ###What did’nt work : We used a wrong type of sensor - a barometer measures air pressure not water pressure it needed to be waterproofed, but still be able to feel the pressure of the water - we didnt have the material to waterproof it properly, so we used a makeshift solution and well , it didnt work - water got on chip - and it got WASTED Our 3D print had wrong measurements and we couldn’t reprint as no time was left. Prototype V2 Planning Instead of adding stuff to a bottle making holes, drilling, deforming the bottle, and having wire salad, we will this time just design a small puck that can be taped to a bottle This time we wont measure pressure, but instead weight (our puck is a mini scale) with a load cell the gyro/accelerometer stays on the bottom this time We can take accurate measurements This time, i actually will think about PHYSICS before electronics , so we have a working prototype careful planning, parts lists, and thinking ahead ( hoe do we attach ? what is the force path ? why not use other sensors ? etc … accept the fact that while tilted, it wont measure, as that would be MUCH too hard to implement and would need at least half an year Why this ? I went through a lot of methods for measuring with ChatGPT and Deepseek We thought about : Ultrasonic : condensation is a problem, water moving would make measurements wrong completely, and again waterproofing tension measurer - something that goes between cap and bottle : way too expensive sensor, complex 3d print, lots of physiscs at play, really hard to design pressure : didnt work in prototype v0, wouldnt work better here ToF : same problem as ultrasonic, and even less accurate So I sacrificed the measuring while tilted, and went with this sensing method."}, {"post_id": 13339, "ts": "2026-06-21T21:06:57Z", "hours": 2.7167, "text": "Done with all my research, brainstorming, and idea finding - was feeling bit lazy cause I came back from a whole 3 day Hackathon and only did research - but it took 3 Damn HOURS"}]...
|
Title: Aqua Puck by @panda | Stardance
Devlogs:
D Title: Aqua Puck by @panda | Stardance
Devlogs:
Done with all my research, brainstorming, and idea finding - was feeling bit lazy cause I came back from a whole 3 day Hackathon and only did research - but it took 3 Damn HOURS
#Done with all my research ! So basically i got the idea for a smart water bottle at a Jugend Hackt Hackathon i attended last weekend (June 19. - 21.) in Berlin - it was my project for that hackathon - one that at the end was only a prototype that didn’t work. ##THE v0 PROTOTYPE : The Hackathon prototype (see below) worked like this : we used a barometer to measure the pressure of the water, and through a bit of calibration the weight we added a accelerometer & gyroscope (2 in 1) chip to the side, so we know when it is tilted (use formula for pressure - water height - density, etc. - this part was done by a different group member so idk) everything worked over a ESP32-c5 chip and the measurements were sent over a wifi UDP stream Bottom of bottle replaced with balloon so sensor can get actual pressure ###What did’nt work : We used a wrong type of sensor - a barometer measures air pressure not water pressure it needed to be waterproofed, but still be able to feel the pressure of the water - we didnt have the material to waterproof it properly, so we used a makeshift solution and well , it didnt work - water got on chip - and it got WASTED Our 3D print had wrong measurements and we couldn’t reprint as no time was left. Prototype V2 Planning Instead of adding stuff to a bottle making holes, drilling, deforming the bottle, and having wire salad, we will this time just design a small puck that can be taped to a bottle This time we wont measure pressure, but instead weight (our puck is a mini scale) with a load cell the gyro/accelerometer stays on the bottom this time We can take accurate measurements This time, i actually will think about PHYSICS before electronics , so we have a working prototype careful planning, parts lists, and thinking ahead ( hoe do we attach ? what is the force path ? why not use other sensors ? etc … accept the fact that while tilted, it wont measure, as that would be MUCH too hard to implement and would need at least half an year Why this ? I went through a lot of methods for measuring with ChatGPT and Deepseek We thought about : Ultrasonic : condensation is a problem, water moving would make measurements wrong completely, and again waterproofing tension measurer - something that goes between cap and bottle : way too expensive sensor, complex 3d print, lots of physiscs at play, really hard to design pressure : didnt work in prototype v0, wouldnt work better here ToF : same problem as ultrasonic, and even less accurate So I sacrificed the measuring while tilted, and went with this sensing method.
Started my schematic ! I have now started designing the schematic for the AquaPuck TM ( just kidding lmao ) ! Im using KiCad, and found the footprint for my microcontroller (the ESP32-c3-supermini) online (this time with correct pin names). Then i added my Weight sensor circuit , which uses a SC134 load cell , and a HX711 voltage amplifier/analog to digital converter ( so that the microcontroller can actually measure ). The HX711 footprint/symbol was built in to KiCad, and was easy to find. for the load cell i didn’t need a footprint/symbol, as it wont be soldered on the PCB, but instead will go ON the Puck (in the physics force path).
Schematic devlog #2 I HATE KiCad. If you didn’t look at my last devlog, PLEASE DO ! In the last one i was rather happy about having to not have to install the HX711’s KiCad symbol and that it was built in. WELL unfortunately KiCad let me down - it uses the damn IC symbol ! Anyway, i had to install the symbol myself, then add it, and this time the pins where finally correct ! i aslo finished wiring : the LSM6DS3 Accelerometer/Gyroscope The WS2812B LED ring (im thinking of using it as a status showing thing) I will be working on after a small break : wiring my Buzzer (to notify user to drink water) with a resistor and transistor SHOUT OUT TO MY PHYSICS TEACHER maybe adding a Motor for nice vibration feedback ? working out the power/charging/flashing
Schematic Devlog #3 ! I have added and wired the following : The weight sensing circuit (a SC134 load cell and a HX711 amplifier) : The LSM6DS3 accelerometer & gyroscope : An LED Ring and Buzzer : What’s left/next ? I am currently working on the Charging and Battery circuit, and after that im pretty much done !...
|
1792774441.3306375
|
1793379241.3306375
|
|
148
|
WarioWare Game by @Willz | Stardance
|
Willz
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @Willz | Stardance
|
1792774442.4294558
|
1793379242.4294558
|
|
7354
|
My first slack bot! by @SaaketB | Stardance
|
SaaketB
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @SaaketB | Stardance
|
1792774443.306252
|
1793379243.306252
|
|
39803
|
My very own WebOS by @Amen | Stardance
|
Amen
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Amen | Stardance
|
1792774444.164874
|
1793379244.164874
|
|
37885
|
My own site! by @BOB_THE_DESTROYER | Stardance
|
BOB_THE_DESTROYER
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @BOB_THE_DESTROYER | Starda Title: My own site! by @BOB_THE_DESTROYER | Stardance...
|
1792774445.0032206
|
1793379245.0032206
|
|
9515
|
A cool photo album by @akriti | Stardance
|
akriti
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: A cool photo album by @akriti | Stardance
|
1792774445.8874903
|
1793379245.8874903
|
|
4832
|
A Custom Website for a Organization by @shivmanas_ A Custom Website for a Organization by @shivmanas_kamarsu | Stardance...
|
shivmanas_kamarsu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: A Custom Website for a Organization by @shi Title: A Custom Website for a Organization by @shivmanas_kamarsu | Stardance...
|
1792774446.764924
|
1793379246.764924
|
|
9839
|
My first slack bot! by @sjsjabahaaj | Stardance
|
sjsjabahaaj
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @sjsjabahaaj | Stard Title: My first slack bot! by @sjsjabahaaj | Stardance...
|
1792774447.5975747
|
1793379247.5975747
|
|
32497
|
PatternProvider by @MEItemStorageCell | Stardance
|
MEItemStorageCell
|
0
|
0.26
|
0
|
[]
|
[{"post_id": 26342, "ts": "202 [{"post_id": 26342, "ts": "2026-07-11T02:21:39Z", "hours": 0.2647, "text": "PatternProvider!! Basically, you make “patterns” (just a message you sent before), which you encode with the bot. You can then recall that image (perfectly) by calling the pattern. If you’ve been in the Star Technology or Star Technology: Beyond discord servers you’d get it. AE2 knowers i see you."}]...
|
Title: PatternProvider by @MEItemStorageCell | Sta Title: PatternProvider by @MEItemStorageCell | Stardance
Devlogs:
PatternProvider!! Basically, you make “patterns” (just a message you sent before), which you encode with the bot. You can then recall that image (perfectly) by calling the pattern. If you’ve been in the Star Technology or Star Technology: Beyond discord servers you’d get it. AE2 knowers i see you....
|
1792774448.4508593
|
1793379248.4508593
|
|
5055
|
My awesome macropad! by @Prince | Stardance
|
Prince
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Prince | Stardance
|
1792774449.3303418
|
1793379249.3303418
|
|
31001
|
Untitled by @reshma | Stardance
|
reshma
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @reshma | Stardance
|
1792774453.4775186
|
1793379253.4775186
|
|
38276
|
My first slack bot! by @anya_20m | Stardance
|
anya_20m
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @anya_20m | Stardanc Title: My first slack bot! by @anya_20m | Stardance...
|
1792774454.345338
|
1793379254.345338
|
|
22666
|
DL-60MSMP by @NullClock | Stardance
|
NullClock
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: DL-60MSMP by @NullClock | Stardance
|
1792774455.222546
|
1793379255.222546
|
|
21705
|
TSAM Flight Computer for TVC Rockets by @studryn | TSAM Flight Computer for TVC Rockets by @studryn | Stardance...
|
studryn
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: TSAM Flight Computer for TVC Rockets by @st Title: TSAM Flight Computer for TVC Rockets by @studryn | Stardance...
|
1792774456.133121
|
1793379256.133121
|
|
9919
|
Untitled project by @PixelEdge13 | Stardance
|
PixelEdge13
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @PixelEdge13 | Stardanc Title: Untitled project by @PixelEdge13 | Stardance...
|
1792774456.9937873
|
1793379256.9937873
|
|
28173
|
Ender by @Deeptansh | Stardance
|
Deeptansh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Ender by @Deeptansh | Stardance
|
1792774458.1242201
|
1793379258.1242201
|
|
31270
|
My first slack bot! by @zakirjanovamadina2012 | St My first slack bot! by @zakirjanovamadina2012 | Stardance...
|
zakirjanovamadina2012
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @zakirjanovamadina20 Title: My first slack bot! by @zakirjanovamadina2012 | Stardance...
|
1792774458.9677055
|
1793379258.9677055
|
|
29344
|
Internet: Virus Encounter by @Thor | Stardance
|
Thor
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Internet: Virus Encounter by @Thor | Starda Title: Internet: Virus Encounter by @Thor | Stardance...
|
1792774459.8328607
|
1793379259.8328607
|
|
7846
|
My awesome macropad! by @Violet_F | Stardance
|
Violet_F
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Violet_F | Stardan Title: My awesome macropad! by @Violet_F | Stardance...
|
1792774460.6702466
|
1793379260.6702466
|
|
8889
|
Untitled project by @shamanth | Stardance
|
shamanth
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @shamanth | Stardance
|
1792774461.5373704
|
1793379261.5373704
|
|
30885
|
Frictionless by @morizbenzonate | Stardance
|
morizbenzonate
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @morizbenzonate | Stardance
|
1792774462.3864589
|
1793379262.3864589
|
|
32936
|
Untitled project by @IP | Stardance
|
IP
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @IP | Stardance
|
1792774463.2351863
|
1793379263.2351863
|
|
40118
|
My own site! by @sanjana_mohanrajk_08 | Stardance
|
sanjana_mohanrajk_08
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @sanjana_mohanrajk_08 | Sta Title: My own site! by @sanjana_mohanrajk_08 | Stardance...
|
1792774464.0571272
|
1793379264.0571272
|
|
832
|
Weather App!! by @Hector | Stardance
|
Hector
|
0
|
1.49
|
0
|
[]
|
[{"post_id": 509, "ts": "2026- [{"post_id": 509, "ts": "2026-06-01T23:59:02Z", "hours": 1.0708, "text": "Created the layout and format of my weather website."}, {"post_id": 218, "ts": "2026-06-01T09:44:21Z", "hours": 0.42, "text": "Added a search container that inputs the city name with a search button and another container which displays the weather message or any errors."}]...
|
Title: Weather App!! by @Hector | Stardance
Devlo Title: Weather App!! by @Hector | Stardance
Devlogs:
Added a search container that inputs the city name with a search button and another container which displays the weather message or any errors.
Created the layout and format of my weather website....
|
1792774464.9171855
|
1793379264.9171855
|
|
22838
|
XenoDeal by @xeno3ra | Stardance
|
xeno3ra
|
0
|
11.12
|
0
|
[]
|
[{"post_id": 14861, "ts": "202 [{"post_id": 14861, "ts": "2026-06-24T04:01:13Z", "hours": 3.6653, "text": "Devlog #3 Today, I have finished Phase 2; and everything is working! On top of finishing Phase 2, I have started the multi-user support which I have decided to add. The Ship Tabacle Before starting work on Phase 3, I ended up finding out from shipping guidelines that the project, quote “Bots (Discord, Slack, etc…): It has to be hosted! … You can’t leave your bot unhosted with only source code.” Also implying that it has to be… “Multi-User” As a result of this, I have decided to add multi-user support, by giving one wwebjs Client to each user, managed by the new client manager: clientPool.js that allow’s everyone to have their own “instance,” group selection, and notifications. The upside to this way of solving the problem is that most of the components, for example: Classifier, Alerts System, DB Schema, all of that can stay the same, only requiring a few changes to make it compatible for the new Multi User System. With all of these changes; the new system to register and use the bot is this: User DMs the bot /start Bot asks for their WhatsApp number They reply with it spawnClient(chatId, phone) is called wwebjs emits qr , we call requestPairingCode(phone) instead of sending a QR image The user receives a code like ABCD-1234 , enters it in WhatsApp → Linked Devices, anddd… Connected ✅ This simlifies the bot to be User Friendly, to host, and use + allows me to still be able to ship Problems Encountered 1. “Houston! We have an IPv6 Problem…” Problem: bot.launch() was timing out during the getMe handshake with Telegram at random. Worked sometimes, failed other times. **Fix:**Added require('dns').setDefaultResultOrder('ipv4first') on index.js , plus a keepAlive HTTPS agent on the Telegraf instance. 2. “Silent Treatment” Problem: Bot received /start , asked for phone number, user replied… and you get ghosted. Fix: One missing String() cast in /start . Took way too long to find. 3. “The Ghost of Chromium Past” Problem: Previous test run left a Chromium process hanging. Next launch: “The browser is already running for auth_data/session-7145622406.” Fix: pkill -f chromium + delete the session folder. 4. “t” Problem: requestPairingCode threw a single-letter minified error: t . No stack trace, no message. Just… t . Fix: Drop the alpha version, and pin the stable 2.3000.1017054665 instead. 5. “The Error in the Error Handler’s House” Problem: After bug 4 threw, the catch block tried to DM the user an error message. That also timed out, with the SAME cold IPv6 issue, firing during Chromium’s initial page load which was already hammering the event loop. Fix: Wrapped the notification send in its own try/catch . A failed notification shouldn’t throw an unhandled rejection on top of the original error. What’s Next Finish commands: /addgroup , /threshold , /categories , /status , /deals restoreAllSessions() : reconnect everyone on process restart messageHandler.js : wire live capture per subscriber sendDealAlert() : fan-out to all matching subscribers Sold detection Dashboard post-ship First public ship"}, {"post_id": 13846, "ts": "2026-06-22T18:04:33Z", "hours": 4.9544, "text": "Devlog 2: XenoDeal | The AI Turns On (And Starts Eating Tokens) June 22 Since the previous devlog (sorry for missing yesterday), I have gotten the AI System Implemented, and Filtering in order. WhatsApp has caused MORE problems, and luckily I fixed them. (But not the Logout Crash) Besides that, the day (and a half) were easy. Classifier And Telegram The Main, MAJOR piece of this devlog and the changes I’ve made since devlog one is src/cron/classifier.js . It’s a background process that does four main things: Grabs Unprocessed Messages from the DB in Batches Runs a separate pre-filter file, that removes Obvious Noise and Junk from the Batch Sends Candidates to AI Provider for full classification Writes the result to the new deals table and marks the message as processed Roughly ~150 Messages are still not processed, from my testing batch, gathered from Phase 1, and it is still expanding. This is not just the most important part of the project, it’s the… orchestrator if you will. The batch size is dynamic, and scales every tick based on backlog and load. This is mainly important during boot after downtime as WWJS just replays missed messages as Live Events, causing a MENTAL wave of messages, and this allows the backlog to finish faster. async function getBatchSize () { const r = await pool . query ( ' SELECT COUNT(*) FROM messages WHERE processed = false ' ); const pending = parseInt ( r . rows [ 0 ]. count ); if ( pending > 100 ) return MAX_BATCH ; // 100 if ( pending > 20 ) return 50 ; return MIN_BATCH ; // 20 } The one architectural decision I have made is to DECOUPLE the poller and message create handlers. They can run without the other, and they work at their own pace, so live messages don’t get blocked from inserting, thus less profit. For Telegram, I just added a threshold for me to get notified about a listing. If it’s score is above 65, it will send me all the details of the listing, the group name, and the original message. An example is attached as an image. Bugs 1.) “Temperature Card” Problem: Same listing was scoring differently Fix: Set Temperature to 0.2 2.) “Sorry, I didn’t understand, please try rephrasing that” Problem: The AI System thought that it was looking for deals for the End Buyer + Hallucinating Good Condition without Evidence Fix: Rewrite Prompt to be more detailed 3.) “Lid, a Big Lid with no Phone # in it” Problem: Whatsapp returns a lid ID instead of a number Fix: Used an approach using client.pupPage and window.require 4.) “Have you seen Chromium anywhere?” Problem: WhatsApp updated and the injection of WWJS made Chromium “Context Crash” Fix: Pin a specific version of WhatsApp What’s Next The Dashboard has been pushed back until after the first ship, and as phase 2 has been complete, now phase three is the following: Train and Implement ML for filtering and deals Add Multi-User Support Add Setup Flow to Telegram Add /cmds to Telegram Polish for First Ship"}, {"post_id": 12896, "ts": "2026-06-21T03:47:39Z", "hours": 2.5011, "text": "Devlog: XenoDeal | The Listener Wakes Up June 20 Today was a bit hard (it’s the first day on this project, and I’m catching strays breh). I started with: Planning out the infra Making the project base The stack for this one is: PostgreSQL, Node.js, Telegraf, and wwebjs. I ended up building out the basis for the Telegram, PostgreSQL, and WhatsApp wrappers. Telegram and Postgres were easy, being a few lines each, for now. WhatsApp, being the main part of the app, wanted to give me problems. Four total. Issue 1: Puppeteer ghosting me. Setting up the project, making sure init and env loading worked across all files, Node kept complaining about “Puppeteer Missing.” I’d just installed it, so I assumed it was fine. Turns out pnpm takes security seriously and silently blocks Puppeteer’s install script by default. To make it worse, I fat-fingered Enter instead of Space on the approve-builds screen, so even the prompt to fix it slipped past me. Couldn’t figure out how to re-trigger the script, so I just pointed it at my system Chromium instead: const client = new Client ({ puppeteer : { executablePath : ' /usr/bin/chromium ' , headless : true , args : [ ' --no-sandbox ' , ' --disable-setuid-sandbox ' ] }, authStrategy : new LocalAuth ({ dataPath : ' auth_data ' }) }); Issue 2: The Logout Crash. I wanted to check that client.on('disconnected') actually fires correctly, so I tested it the easy way: logged out the linked WhatsApp session from my phone. Instead of a clean disconnect, client.on('ready') fired three times , then it crashed: Failed to add page binding with name onQRChangedEvent: window['onQRChangedEvent'] already exists! Best guess: wwebjs trying to inject its page bindings into a page that already had them. Possibly a [email protected] version mismatch against what [email protected] actually expects internally, but I’m not fully sure that’s the real cause yet. Problem for another day. Issue 3: The Silent Hang. Whilst testing the LocalAuth implementation, I Ctrl+C’d the process without realizing Chromium leaves behind a SingletonLock file. Next launch just hung indefinitely; no warning, no error, nothing. Found that out the hard way. I ended up clearing the stale lock and added this so it can’t happen again: process . on ( ' SIGINT ' , async () => { await client . destroy (); process . exit ( 0 ); }); tl;dr: It lets Chromium clean up after itself on every manual stop, instead of leaving a corpse behind for next time. Issue 4: the Date/Time Problem. Setting up message logging, I converted msg.timestamp (Unix seconds) to milliseconds for Postgres with msg.timestamp * 1000 . It wasn’t enough. Every insert failed with: date/time field value out of range: \"1782000093000\" Turns out pg doesn’t know what to do with a raw JS number where it expects a date, and just stringifies it and Postgres rejects the result outright. Had to wrap it in an actual Date object: new Date ( msg . timestamp * 1000 ) (Need to double check: I remember it still not behaving right away even after this fix, possibly just the client needing a moment to fully reconnect after restart rather than the date fix itself being incomplete. Worth confirming next time it comes up.) What’s Next So… reads design docs , according to this, I’ll be establishing Core Intelligence next. Second most exciting part of the whole build. Covers: Claude integration (analyze each listing, provide a ranking) Sold tracking The dashboard (PS: It did end up working)"}]...
|
Title: XenoDeal by @xeno3ra | Stardance
Devlogs:
Title: XenoDeal by @xeno3ra | Stardance
Devlogs:
Devlog: XenoDeal | The Listener Wakes Up June 20 Today was a bit hard (it’s the first day on this project, and I’m catching strays breh). I started with: Planning out the infra Making the project base The stack for this one is: PostgreSQL, Node.js, Telegraf, and wwebjs. I ended up building out the basis for the Telegram, PostgreSQL, and WhatsApp wrappers. Telegram and Postgres were easy, being a few lines each, for now. WhatsApp, being the main part of the app, wanted to give me problems. Four total. Issue 1: Puppeteer ghosting me. Setting up the project, making sure init and env loading worked across all files, Node kept complaining about “Puppeteer Missing.” I’d just installed it, so I assumed it was fine. Turns out pnpm takes security seriously and silently blocks Puppeteer’s install script by default. To make it worse, I fat-fingered Enter instead of Space on the approve-builds screen, so even the prompt to fix it slipped past me. Couldn’t figure out how to re-trigger the script, so I just pointed it at my system Chromium instead: const client = new Client ({ puppeteer : { executablePath : ' /usr/bin/chromium ' , headless : true , args : [ ' --no-sandbox ' , ' --disable-setuid-sandbox ' ] }, authStrategy : new LocalAuth ({ dataPath : ' auth_data ' }) }); Issue 2: The Logout Crash. I wanted to check that client.on('disconnected') actually fires correctly, so I tested it the easy way: logged out the linked WhatsApp session from my phone. Instead of a clean disconnect, client.on('ready') fired three times , then it crashed: Failed to add page binding with name onQRChangedEvent: window['onQRChangedEvent'] already exists! Best guess: wwebjs trying to inject its page bindings into a page that already had them. Possibly a [email protected] version mismatch against what [email protected] actually expects internally, but I’m not fully sure that’s the real cause yet. Problem for another day. Issue 3: The Silent Hang. Whilst testing the LocalAuth implementation, I Ctrl+C’d the process without realizing Chromium leaves behind a SingletonLock file. Next launch just hung indefinitely; no warning, no error, nothing. Found that out the hard way. I ended up clearing the stale lock and added this so it can’t happen again: process . on ( ' SIGINT ' , async () => { await client . destroy (); process . exit ( 0 ); }); tl;dr: It lets Chromium clean up after itself on every manual stop, instead of leaving a corpse behind for next time. Issue 4: the Date/Time Problem. Setting up message logging, I converted msg.timestamp (Unix seconds) to milliseconds for Postgres with msg.timestamp * 1000 . It wasn’t enough. Every insert failed with: date/time field value out of range: "1782000093000" Turns out pg doesn’t know what to do with a raw JS number where it expects a date, and just stringifies it and Postgres rejects the result outright. Had to wrap it in an actual Date object: new Date ( msg . timestamp * 1000 ) (Need to double check: I remember it still not behaving right away even after this fix, possibly just the client needing a moment to fully reconnect after restart rather than the date fix itself being incomplete. Worth confirming next time it comes up.) What’s Next So… reads design docs , according to this, I’ll be establishing Core Intelligence next. Second most exciting part of the whole build. Covers: Claude integration (analyze each listing, provide a ranking) Sold tracking The dashboard (PS: It did end up working)
Devlog 2: XenoDeal | The AI Turns On (And Starts Eating Tokens) June 22 Since the previous devlog (sorry for missing yesterday), I have gotten the AI System Implemented, and Filtering in order. WhatsApp has caused MORE problems, and luckily I fixed them. (But not the Logout Crash) Besides that, the day (and a half) were easy. Classifier And Telegram The Main, MAJOR piece of this devlog and the changes I’ve made since devlog one is src/cron/classifier.js . It’s a background process that does four main things: Grabs Unprocessed Messages from the DB in Batches Runs a separate pre-filter file, that removes Obvious Noise and Junk from the Batch Sends Candidates to AI Provider for full classification Writes the result to the new deals table and marks the message as processed Roughly ~150 Messages are still not processed, from my testing batch, gathered from Phase 1, and it is still expanding. This is not just the most important part of the project, it’s the… orchestrator if you will. The batch size is dynamic, and scales every tick based on backlog and load. This is mainly important during boot after downtime as WWJS just replays missed messages as Live Events, causing a MENTAL wave of messages, and this allows the backlog to finish faster. async function getBatchSize () { const r = await pool . query ( ' SELECT COUNT(*) FROM messages WHERE processed = false ' ); const pending = parseInt ( r . rows [ 0 ]. count ); if ( pending > 100 ) return MAX_BATCH ; // 100 if ( pending > 20 ) return 50 ; return MIN_BATCH ; // 20 } The one architectural decision I have made is to DECOUPLE the poller and message create handlers. They can run without the other, and they work at their own pace, so live messages don’t get blocked from inserting, thus less profit. For Telegram, I just added a threshold for me to get notified about a listing. If it’s score is above 65, it will send me all the details of the listing, the group name, and the original message. An example is attached as an image. Bugs 1.) “Temperature Card” Problem: Same listing was scoring differently Fix: Set Temperature to 0.2 2.) “Sorry, I didn’t understand, please try rephrasing that” Problem: The AI System thought that it was looking for deals for the End Buyer + Hallucinating Good Condition without Evidence Fix: Rewrite Prompt to be more detailed 3.) “Lid, a Big Lid with no Phone # in it” Problem: Whatsapp returns a lid ID instead of a number Fix: Used an approach using client.pupPage and window.require 4.) “Have you seen Chromium anywhere?” Problem: WhatsApp updated and the injection of WWJS made Chromium “Context Crash” Fix: Pin a specific version of WhatsApp What’s Next The Dashboard has been pushed back until after the first ship, and as phase 2 has been complete, now phase three is the following: Train and Implement ML for filtering and deals Add Multi-User Support Add Setup Flow to Telegram Add /cmds to Telegram Polish for First Ship
Devlog #3 Today, I have finished Phase 2; and everything is working! On top of finishing Phase 2, I have started the multi-user support which I have decided to add. The Ship Tabacle Before starting work on Phase 3, I ended up finding out from shipping guidelines that the project, quote “Bots (Discord, Slack, etc…): It has to be hosted! … You can’t leave your bot unhosted with only source code.” Also implying that it has to be… “Multi-User” As a result of this, I have decided to add multi-user support, by giving one wwebjs Client to each user, managed by the new client manager: clientPool.js that allow’s everyone to have their own “instance,” group selection, and notifications. The upside to this way of solving the problem is that most of the components, for example: Classifier, Alerts System, DB Schema, all of that can stay the same, only requiring a few changes to make it compatible for the new Multi User System. With all of these changes; the new system to register and use the bot is this: User DMs the bot /start Bot asks for their WhatsApp number They reply with it spawnClient(chatId, phone) is called wwebjs emits qr , we call requestPairingCode(phone) instead of sending a QR image The user receives a code like ABCD-1234 , enters it in WhatsApp → Linked Devices, anddd… Connected ✅ This simlifies the bot to be User Friendly, to host, and use + allows me to still be able to ship Problems Encountered 1. “Houston! We have an IPv6 Problem…” Problem: bot.launch() was timing out during the getMe handshake with Telegram at random. Worked sometimes, failed other times. **Fix:**Added require('dns').setDefaultResultOrder('ipv4first') on index.js , plus a keepAlive HTTPS agent on the Telegraf instance. 2. “Silent Treatment” Problem: Bot received /start , asked for phone number, user replied… and you get ghosted. Fix: One missing String() cast in /start . Took way too long to find. 3. “The Ghost of Chromium Past” Problem: Previous test run left a Chromium process hanging. Next launch: “The browser is already running for auth_data/session-7145622406.” Fix: pkill -f chromium + delete the session folder. 4. “t” Problem: requestPairingCode threw a single-letter minified error: t . No stack trace, no message. Just… t . Fix: Drop the alpha version, and pin the stable 2.3000.1017054665 instead. 5. “The Error in the Error Handler’s House” Problem: After bug 4 threw, the catch block tried to DM the user an error message. That also timed out, with the SAME cold IPv6 issue, firing during Chromium’s initial page load which was already hammering the event loop. Fix: Wrapped the notification send in its own try/catch . A failed notification shouldn’t throw an unhandled rejection on top of the original error. What’s Next Finish commands: /addgroup , /threshold , /categories , /status , /deals restoreAllSessions() : reconnect everyone on process restart messageHandler.js : wire live capture per subscriber sendDealAlert() : fan-out to all matching subscribers Sold detection Dashboard post-ship First public ship...
|
1792774465.7857127
|
1793379265.7857127
|
|
35636
|
My very own WebOS by @Rupert | Stardance
|
Rupert
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Rupert | Stardance
|
1792774466.876595
|
1793379266.876595
|
|
20465
|
My awesome macropad! by @shashanth | Stardance
|
shashanth
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @shashanth | Starda Title: My awesome macropad! by @shashanth | Stardance...
|
1792774467.7470706
|
1793379267.7470706
|
|
39323
|
My very own WebOS by @Nicholas_ | Stardance
|
Nicholas_
|
0
|
1.54
|
0
|
[]
|
[{"post_id": 34870, "ts": "202 [{"post_id": 34870, "ts": "2026-07-25T22:44:27Z", "hours": 1.0511, "text": "The background and the navigation bar including the display current time feature are setted and the introduction window is optimized to a more specific content."}, {"post_id": 34262, "ts": "2026-07-24T20:19:31Z", "hours": 0.4925, "text": "I have built an introduction page of a WebOS using html"}]...
|
Title: My very own WebOS by @Nicholas_ | Stardance Title: My very own WebOS by @Nicholas_ | Stardance
Devlogs:
I have built an introduction page of a WebOS using html
The background and the navigation bar including the display current time feature are setted and the introduction window is optimized to a more specific content....
|
1792774468.5987105
|
1793379268.5987105
|
|
5798
|
Untitled project by @ajjjster | Stardance
|
ajjjster
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @ajjjster | Stardance
|
1792774469.4731014
|
1793379269.4731014
|
|
18757
|
Frictionless by @uditha | Stardance
|
uditha
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @uditha | Stardance
|
1792774470.3262742
|
1793379270.3262742
|
|
25311
|
My awesome macropad! by @Samhita_Vangara | Stardan My awesome macropad! by @Samhita_Vangara | Stardance...
|
Samhita_Vangara
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Samhita_Vangara | Title: My awesome macropad! by @Samhita_Vangara | Stardance...
|
1792774471.1696284
|
1793379271.1696284
|
|
32728
|
Motivation board by @Ikira | Stardance
|
Ikira
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Motivation board by @Ikira | Stardance
|
1792774472.0243905
|
1793379272.0243905
|
|
29728
|
Untitled by @avia | Stardance
|
avia
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @avia | Stardance
|
1792774472.8767314
|
1793379272.8767314
|
|
19641
|
My awesome macropad! by @arthury | Stardance
|
arthury
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @arthury | Stardanc Title: My awesome macropad! by @arthury | Stardance...
|
1792774473.769403
|
1793379273.769403
|
|
6581
|
My awesome macropad! by @aryan_ayushman_sahoo | St My awesome macropad! by @aryan_ayushman_sahoo | Stardance...
|
aryan_ayushman_sahoo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @aryan_ayushman_sah Title: My awesome macropad! by @aryan_ayushman_sahoo | Stardance...
|
1792774474.6150022
|
1793379274.6150022
|
|
9385
|
My awesome macropad! by @Sheryl | Stardance
|
Sheryl
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Sheryl | Stardance
|
1792774475.4623747
|
1793379275.4623747
|
|
29124
|
Personal Website by @jessicac | Stardance
|
jessicac
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Personal Website by @jessicac | Stardance
|
1792774476.3196776
|
1793379276.3196776
|
|
19415
|
Untitled by @dishaanth_49 | Stardance
|
dishaanth_49
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @dishaanth_49 | Stardance
|
1792774477.155119
|
1793379277.155119
|
|
18326
|
My very own WebOS by @saarthakgyawali | Stardance
|
saarthakgyawali
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @saarthakgyawali | Sta Title: My very own WebOS by @saarthakgyawali | Stardance...
|
1792774477.9931395
|
1793379277.9931395
|
|
34195
|
Tawheed.Tajweed by @nowperhaps | Stardance
|
nowperhaps
|
0
|
0.42
|
0
|
[]
|
[{"post_id": 28496, "ts": "202 [{"post_id": 28496, "ts": "2026-07-14T19:36:26Z", "hours": 0.4181, "text": "Hello everybody! This is Devlog #1 I’m super excited to be working on a project in a community focused around learning and improving. For how this project started, I was looking for an app to listen to the holy Quran on my pc stead of my phone and I couldn’t find a good one that wasn’t super buggy or was just very baren and featureless, so when I was thinking of what project to make for this community I thought, “Why not make an app that I’d want to use and that could benefit others while still giving me a taste of how it feels like to make something and learn a new skill!” I asked an experienced friend of mine on which language I should use and I was told to use java. I haven’t coded since I was very little, and I’ve never used java but -and as a famous saying in Arabic goes- the dawn of the reward erases the pain of being patient :D . IMPORTANT DISCRAMER!!! But first before we get to the yapping I want to preface this by getting the obvious stuff out of the way, I know this is a religious project focused around one of the main pillars of the Islamic religion, I know that not everyone here is Muslim and I know that not everybody will completely get the idea behind the convenience of this project, but even if you don’t understand it very well I just want you to look behind any beliefs that you may have and just focus on the technical stuff. its just that I don’t want to think of another project because this isn’t a primarily Muslim community so I want everyone to get along and to focus on what we came here to do which is to create. Innovate. and improve. God willing Anyways~ back to yapping! So my method going into this was learn just enough to understand what I’m typing and then make a fun idea out of it or just try to implement it in any way shape or form into a project and having ai and any experienced coder help me improve it, to then over time stack up more and more knowledge to build bigger and bigger projects to inshallah get to the real deal. So i learned about some basic things like format specifiers (or format placeholders) today! :0"}]...
|
Title: Tawheed.Tajweed by @nowperhaps | Stardance
Title: Tawheed.Tajweed by @nowperhaps | Stardance
Devlogs:
Hello everybody! This is Devlog #1 I’m super excited to be working on a project in a community focused around learning and improving. For how this project started, I was looking for an app to listen to the holy Quran on my pc stead of my phone and I couldn’t find a good one that wasn’t super buggy or was just very baren and featureless, so when I was thinking of what project to make for this community I thought, “Why not make an app that I’d want to use and that could benefit others while still giving me a taste of how it feels like to make something and learn a new skill!” I asked an experienced friend of mine on which language I should use and I was told to use java. I haven’t coded since I was very little, and I’ve never used java but -and as a famous saying in Arabic goes- the dawn of the reward erases the pain of being patient :D . IMPORTANT DISCRAMER!!! But first before we get to the yapping I want to preface this by getting the obvious stuff out of the way, I know this is a religious project focused around one of the main pillars of the Islamic religion, I know that not everyone here is Muslim and I know that not everybody will completely get the idea behind the convenience of this project, but even if you don’t understand it very well I just want you to look behind any beliefs that you may have and just focus on the technical stuff. its just that I don’t want to think of another project because this isn’t a primarily Muslim community so I want everyone to get along and to focus on what we came here to do which is to create. Innovate. and improve. God willing Anyways~ back to yapping! So my method going into this was learn just enough to understand what I’m typing and then make a fun idea out of it or just try to implement it in any way shape or form into a project and having ai and any experienced coder help me improve it, to then over time stack up more and more knowledge to build bigger and bigger projects to inshallah get to the real deal. So i learned about some basic things like format specifiers (or format placeholders) today! :0...
|
1792774478.8583088
|
1793379278.8583088
|
|
26289
|
0xB6 by @antek042 | Stardance
|
antek042
|
0
|
1.03
|
0
|
[]
|
[{"post_id": 17145, "ts": "202 [{"post_id": 17145, "ts": "2026-06-27T20:42:26Z", "hours": 0.5031, "text": "I’ve done basic version of 0xB6 bootloader, it can boot test kernel. Now I will change mode to protected to get access to all registers and soon I will develop a simple kernel."}, {"post_id": 16207, "ts": "2026-06-26T10:32:28Z", "hours": 0.5267, "text": "I made it actually bootable and print the bootloader name of the top of the screen"}]...
|
Title: 0xB6 by @antek042 | Stardance
Devlogs:
I m Title: 0xB6 by @antek042 | Stardance
Devlogs:
I made it actually bootable and print the bootloader name of the top of the screen
I’ve done basic version of 0xB6 bootloader, it can boot test kernel. Now I will change mode to protected to get access to all registers and soon I will develop a simple kernel....
|
1792774479.6951663
|
1793379279.6951663
|
|
31295
|
My own site! by @iltukovaldiyar | Stardance
|
iltukovaldiyar
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @iltukovaldiyar | Stardance
|
1792774480.5762336
|
1793379280.5762336
|
|
28306
|
My awesome macropad! by @mkksh | Stardance
|
mkksh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @mkksh | Stardance
|
1792774481.4120626
|
1793379281.4120626
|
|
33425
|
Untitled by @bhargavTheDev | Stardance
|
bhargavTheDev
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @bhargavTheDev | Stardance
|
1792774482.2766979
|
1793379282.2766979
|
|
31157
|
Untitled by @checkers | Stardance
|
checkers
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @checkers | Stardance
|
1792774483.0984385
|
1793379283.0984385
|