|
15301
|
AuriaOS by @AidenHammy | Stardance
|
AidenHammy
|
3
|
33.0
|
123
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-02T09:26:41Z", "hours": 8.0, "multiplier": 12.28, "payout": 94, "blessing": "neutral", "text": "This ship finishes off every placeholder app and adds two real interface upgrades. Calculator does immediate-execution arithmetic with full keyboard support. Mood Lamp applies a real ambient color wash across the whole desktop and not just its own window (fortunately). Fortune Cookie cracks open into an actual paper slip with a fortune and six lucky numbers. The Browser now has a working address bar with back/forward/reload and typed URLs load inline. Searches open in a new tab since search engines block being framed no matter what you do. Right-click also does something everywhere now including titlebars, taskbar and desktop and also including a new “Always on Top” pin. And the taskbar clock isn’t static anymore! Click it for a small calendar with today marked and leap years are handled correctly without any special-case code. Current apps → Fully functional: Settings, Notepad, Terminal, Calculator, Mood Lamp, Browser, Fortune Cookie Placeholder apps → None remaining!", "repo": "https://github.com/AidenHammy/auria-os", "demo": "https://aidenhammy.github.io/auria-os/"}, {"ship_num": 2, "ts": "2026-07-04T04:21:36Z", "hours": 3.0, "multiplier": 9.22, "payout": 29, "blessing": "neutral", "text": "AuriaOS is a browser-based desktop environment built entirely with vanilla HTML, CSS and JavaScript. It features a complete window manager with dragging, resizing, edge snapping, maximizing and minimizing alongside a Start Menu with live search, pinning, recent apps and full keyboard navigation. It also includes a functional Terminal where commands like theme, pin, darkmode and shutdown interact with the operating system itself. Settings, notes, pinned apps and recent activity are all persisted using localStorage. The biggest challenge wasn’t adding features. It was making them work together reliably. I spent a lot of time debugging Javascript, tracing unexpected behaviour and reworking functions until interactions felt consistent across the entire desktop. I also kept the scope manageable by building the OS incrementally. I treated each subsystem as its own milestone instead of trying to create everything at once. One of the parts I’m happiest with is that AuriaOS behaves like a single, connected system rather than a collection of isolated apps. The Start Menu, Settings and Terminal all share the same state so changes made in one place are reflected everywhere else. The terminal is fully functional too! It isn’t just a visual prop. Current apps -> Fully functional (Mentioned below) Window Manager, Start Menu, Settings, Notepad, Terminal Placeholder apps Browser, Calculator, Mood Lamp, Fortune Cookie", "repo": "https://github.com/AidenHammy/auria-os", "demo": "https://aidenhammy.github.io/auria-os/"}, {"ship_num": 3, "ts": "2026-06-28T18:44:15Z", "hours": 22.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "AuriaOS is a browser-based web OS built entirely with vanilla HTML, CSS and JavaScript. It includes a full window manager (drag, resize, edge snapping, maximize), a Start Menu with live search, pinning, recent apps and keyboard navigation, plus a Terminal where commands like theme, pin, darkmode and shutdown actually control the OS. Settings, notes, pinned apps and recent activity all persist through localStorage. The hardest part wasn’t writing new features. It was debugging them. The JavaScript logic itself was just as challenging. I spent a lot of time debugging, reworking functions and figuring out why seemingly correct code behaved unexpectedly. I got stuck plenty of times but I decided to stick with it until everything finally clicked. Keeping the project’s scope under control was another challenge so I broke large features into smaller phases instead of trying to build an entire desktop at once. I’m proud that AuriaOS feels like one coherent system instead of separate features glued together. The Start Menu, Settings and Terminal all share the same underlying state so changing something in one place updates the rest of the desktop automatically. I’m also proud that the Terminal is genuinely functional rather than decorative. The window manager, Start Menu, Settings, Notepad and Terminal are fully functional. Browser, Calculator, Mood Lamp and Fortune Cookie are still placeholder apps. Things worth trying: Drag a window to a screen edge to snap it Open the Start Menu and use “/” to search or navigate entirely with the keyboard Right-click an app to pin or unpin it Open Terminal and run help then try pin calculator or theme #4ecdc4 Refresh the page to verify that settings, notes and pinned apps persist", "repo": "https://github.com/AidenHammy/auria-os", "demo": "https://aidenhammy.github.io/auria-os/"}]...
|
[{"post_id": 76071, "ts": "202 [{"post_id": 76071, "ts": "2026-10-02T07:43:42Z", "hours": 1.5942, "text": "Devlog: building the browser interface Every other app in AuriaOS gave me something real and had bugs that behaved normally. The browser gave me two completely different problems, each one hiding behind the last. Problem one: search engines don’t want to be embedded With the real browser wired up, the address bar, back/forward/reload/home and an actual iframe, it looked done. Typing a URL worked but typing a search term did not. Every search just sat there, blank. I got to know why that was very soon from the console: textFraming 'https://html.duckduckgo.com/' violates the following ContentSecurity Policy directive: \"frame-ancestors 'self'\". The request hasbeen blocked. DuckDuckGo sends a header that basically says “don’t let anyone put me inside another page” but that’s not just a DuckDuckGo thing though, it’s standard for basically every search engine because a framed search results page is a classic clickjacking setup. No amount of JavaScript on my end changes an HTTP header the other server is sending. Well, this can’t be considered a bug, it was like a wall and every search engine has the same one. So the fix wasn’t really a fix, it was about rethinking the whole situation. I had to stop trying to show search results inside the embedded view and just open them in a real new tab instead where framing rules don’t apply. Direct URLs still load inside the app like before since plenty of ordinary sites don’t block framing, it’s the search engines specifically. Problem two: it worked but it didn’t feel like it worked Search now actually functioned since New tab pops open with real results every time. And the very next thing I thought of was “it acts like a separate window opener instead of being part of the browser app” and it was a fair thought. What I really wanted was to show search results inside the iframe which loops straight back to problem one. I didn’t have much choice. I pushed back on that hard. Everything else in AuriaOS does what it claims to do. The terminal runs real commands, the calculator does real math and I didn’t want the browser to be the one app quietly faking it. But I eventually decided to keep the new tab. Added a small toast inside the browser window itself. “Opened search in a new tab” that fades in for about two seconds and back out. Doesn’t change where the search happens it just closes the feedback gap. Something visibly happens inside the app the moment you hit Go instead of the window just sitting there while a tab opens somewhere else on screen"}, {"post_id": 69933, "ts": "2026-09-18T02:56:22Z", "hours": 3.8267, "text": "Devlog: Right-clicks, calendars and… a fortune cookie?! Fresh update to AuriaOS. Two new interface features, one new app and a bug that crashed the entire desktop before it got fixed. Right-clicking finally does something! Before this, right-clicking almost anything in AuriaOS just opened the browser’s own menu (“Reload / Inspect”) which ruined the illusion of a real little operating system. Now right-clicking gives you a proper menu where it should: A window’s title bar -> Minimize, Maximize/Restore, Always on Top, Close An app in the taskbar -> Restore/Minimize, Close Empty taskbar space -> Show Desktop, Close All Windows, Settings Empty desktop space -> Personalize, Open a Terminal, Refresh A desktop icon -> Open The genuinely new trick is “Always on Top”. Pin a window and it stays above every other window, no matter what else you click instead of getting buried like normal windows. The clock finally does something! The taskbar clock used to just show the time. Now you can click it and get a small calendar for the current month just like on a real computer. The calendar handles the fiddly stuff automatically. It knows how many days are in each month, accounts for February 29 in leap years and always lines up with Sunday as the start of the week. The faded days at the beginning and end fill out the grid so it doesn’t have awkward gaps. And if you leave the calendar open when midnight hits, it updates itself and moves the highlight to the new day without needing to be closed and reopened. Actually building the Fortune Cookie App It’s basically what it sounds like. A fortune cookie that you click to crack open. It shrinks and fades as if it’s actually being cracked,then a little paper slip slides into view with a fortune and six “lucky numbers” underneath just like a real fortune cookie. The bug that broke everything This was the messy part. It wasn’t really one bug but two bugs back to back both caused by the same basic mistake. Bug one: the crash. To make the calendar auto-update, the clock code runs every second and checks whether the calendar popup is open. The problem was an ordering mistake. That check ran before the calendar popup had actually been set up. Because the error happened near the top of the file, everything after it never got initialized including the taskbar and Start Menu click handlers. From the outside, the whole desktop looked dead. Frozen clock, dead Start Menu and an unresponsive taskbar. Bug two: After fixing the crash, the calendar still wouldn’t open. Turns out I’d written all the code for the popup but forgotten to actually add the popup to the page. Most of the code quietly ignored the missing element but one part wasn’t so forgiving and could throw an error on every click anywhere in the app. Adding the missing element fixed it and I added safety checks around similar code so missing elements can’t cause the same mess again"}, {"post_id": 64213, "ts": "2026-09-08T13:28:36Z", "hours": 2.2125, "text": "Devlog: giving AuriaOS two real apps (and finding out neither of them worked) Calculator and Mood Lamp had been placeholders since day one. A folder icon and a div that said “🧮 Calculator app” and nothing else. A window opened, technically. Nothing else did. For the second submission I finally built them for real. Building them Calculator got a real display and button grid, doing immediate-execution math on purpose: 6 + 3 × 2 = gives 18 not 12 because that’s how an actual physical calculator behaves and a proper order-of-operations parser felt like solving a problem nobody asked for. Divide by zero gives Error like it should. Keyboard input works too but only while the calculator window is actually focused so it can’t hijack typing elsewhere. Mood Lamp got more ambition! Instead of a “click a button, see a color” toy, it’s a global ambient tint over the whole desktop not just its own window. Four presets pulled from the existing accent palette, plus a real color picker and intensity slider for anyone who wants to go off-menu. Wrote the CSS, wrote the JS, wired both in, called it done. It was not done. The buttons that did nothing. Time for the First bug! Mood Lamp’s buttons didn’t work. No errors, no visual change, just silence..which is a specific kind of bug since broken JS usually throws. Silence like that means the code never actually ran. That’s exactly what happened. wireCalculator() and wireMoodLamp() were both fully written and correct and never called from anywhere. openWindow() still had the old dispatch list from before either app existed so every button in both apps existed in the DOM with zero listeners attached. Not a typo, just two lines I never wrote. The command that lied about itself From the previous reviews, I got to know that typing lightmode on in the terminal printed darkmode turned on . The Dark Mode → Light Mode rename happened everywhere except one spot. The shared toggleBooleanSetting() helper used the internal state key (darkmode, which still has to exist since the actual effect is a literal CSS invert) for the confirmation message too. I split those apart so the message reflects what you actually typed not the plumbing underneath it. The mood lamp that had no mood Once the wiring was fixed, buttons visibly responded but the desktop itself looked exactly the same. Sampling the actual rendered pixel before/after at max intensity confirmed it. The shift was small enough to round to nothing. The overlay used mix-blend-mode: soft-light which was picked for subtlety. Except soft-light scales toward zero as the base color approaches black and AuriaOS’s desktop is about as close to black as a color gets (almost). The mode I chose for subtlety was almost mathematically guaranteed to do nothing on this exact theme. I switched it to screen, which always adds light regardless of how dark the base is. Same 30% intensity setting, suddenly an actual visible wash instead of a rounding error. The actual lesson? None of these three were exotic bugs. A missing function call, a copy mismatch, a blend mode never checked against the theme it’d run on. All three shipped unnoticed because each one failed quietly instead of throwing. Worth remembering “it’s not doing anything” isn’t a shrug, it’s a symptom!"}, {"post_id": 21937, "ts": "2026-07-04T04:10:49Z", "hours": 3.1672, "text": "Devlog: Reworking AuriaOS’s Visual Identity I thought AuriaOS was ready to ship. The window manager was working, apps launched, windows could be dragged, resized, minimized and restored. And the logic was solid. Then the project got flagged as AI-generated, well I wouldn’t say AI-generated but maybe traits similar to that of one. It wasn’t because of the code but because of the UI. Looking back, I understood why. The dark navy background, teal accents, frosted glass, soft glows and identical rounded corners looked a lot like the visual style that’s become common in AI-generated interface concepts. Those chosen elements together, they unintentionally resembled that aesthetic. So I decided to redesign the visual system without touching the underlying functionality! Redesigning the UI The HTML and Javascript mostly stayed the same but most of the CSS was reworked. Replaced the glassy navy and teal theme with a warmer ink and brass palette Split the single border radius into multiple sizes so controls, windows and tiles each have their own geometry Removed glow-heavy styling in favor of flat panels, subtle borders and offset shadows Simplified typography by using JetBrains Mono for the interface with Fraunces reserved for the Start menu greeting Replaced decorative gradients with a subtle SVG grain texture Added small details like a window seal, custom text selection and distinct hover treatments across different UI regions Swapped macOS-style traffic-light controls for simpler outlined window buttons My goal was simple, it wasn’t to make the UI less polished, it was to give it a clearer identity. Bugs I Found Along the Way Rewriting and going through every CSS rule also uncovered a few real bugs Broken resize handles Some resize handle selectors accidentally used descendant selectors instead of grouped selectors so several resize directions silently stopped working Invisible desktop Adding overflow: hidden exposed another issue: #desktop never had an explicit height. Because every child was absolutely positioned, the container collapsed to zero height and clipped everything inside it. Restoring width: 100% and height: 100% fixed it immediately A backwards theme toggle The old “Dark Mode” toggle now made the already-dark interface lighter so i renamed the user-facing option to Light Mode while keeping the internal setting unchanged Looking Back Getting the project flagged was frustrating but it pushed me to reconsider the design instead of just accepting my first version. The redesign gave AuriaOS a stronger visual identity and the careful review of the stylesheet ended up revealing several bugs that had gone unnoticed during the rewrite. In the end, the project became better both visually and technically"}, {"post_id": 17634, "ts": "2026-06-28T14:49:11Z", "hours": 2.1547, "text": "Devlog 5 Picked up right where Devlog 4 left off. It was finally time to touch something nobody had looked at since day one, the Terminal. Before any of that though, I had a genuinely interesting detour into why I can’t just load real websites in an iframe . It turns out most sites send headers specifically designed to stop other pages from embedding them. That’s also the real secret behind those slick “browser inside a browser” demos we sometimes see online. They’re either fully staged or quietly running an actual browser on a server somewhere and just streaming a picture of it back to you, good to know. Also good to know I’m not building a server anytime soon. Future Aiden can deal with that one… if he ever does. The Terminal ended up being the most satisfying thing I’ve built so far. Real command parsing, arrow keys cycling through history and commands that genuinely do things instead of just printing text back at you. The command pin calculator actually pins an app. theme #ff6b6b actually repaints the whole OS live. It’s one of those features that finally makes the desktop feel interactive rather than just clickable And then, almost immediately, the most expected yet unexpected bug. I’d spent all that time getting the commands working, the history system behaving and everything feeling right.. only to forget the single line that actually connects the Terminal to its window when it opens. Fully built but completely silent because of one missing function call I closed it out by fixing a bug that’s been sitting in plain sight since the very first day of this project. Maximizing a window always left a thin strip of empty space hovering just above the taskbar because the math was quietly subtracting the taskbar’s height twice instead of once Hopefully my last devlog before shipping… ..for now sigh…"}, {"post_id": 17074, "ts": "2026-06-27T18:37:22Z", "hours": 8.1842, "text": "Devlog 4 - The Start Menu Ate My Week I js wanted to give the start menu some real attention instead of leaving it as a sad little list forever. I did NOT expect that to become the biggest sprint of the whole project but here we are… Built a proper pin/unpin system. My first version was a bit problematic so I sat with it for a while then rebuilt it the right way with an actual right-click context menu and everything. It felt genuinely satisfying once it finally clicked. Then I somehow convinced myself to add six more features to give the start menu a new life: greeting header, search bar, pinned grid, recent activity, system widgets and a whole user profile footer. Small moments of panic…? Definitely.. then I broke it into phases so I didn’t drown trying to build an entire desktop in one sitting. What nobody tells you about “just redesign the start menu” is how many times you’ll open the same file and stare at the same fifteen lines wondering why they look right and behave wrong. Trial and error ate most of my time which is fair enough. I also gave every icon its own little color badge, wired up a real “/” keyboard shortcut to match the hint I’d put in the search bar then made the whole thing Tab-and-Enter navigable since none of it was there before. Every “small fix” somehow turned into reopening three different files and rechecking things I was already convinced were correct which… more often than not, they weren’t. But that part actually felt rewarding. Little by little, the menu finally started feeling alive. And then, the bugs… I found out my own Start button was secretly broken, well… not heartbroken like me, at least. Clicking it did nothing at all because an old line of code was quietly fighting a newer one inside the same click handler. THAT took way TOO long to spot. The sneakiest ones weren’t even logic bugs.. a single missing dash in a CSS variable. A class name one word off from the real HTML. Completely invisible unless you go hunting line by line, just quietly doing nothing the whole time. The JavaScript is by far the most nerve-wracking, head-splitting experience ever. Absolute horror. I don’t wanna touch that file ever again. My eyes are bloodshot. The amount of time I spent just staring at the code, hunting down errors one by one is honestly concerning.. The menu actually works now, start to finish. Search, pinning, keyboard navigation and all. It cost way more blood than a start menu has any right to. Genuinely proud of this one precisely because of how much it fought back. Terminal’s turn next. And it should be VERY afraid. Note: Snuck localStorage into the project too! Turns out users generally prefer their settings, notes and pinned apps to exist for longer than five seconds. Weird bunch."}, {"post_id": 14623, "ts": "2026-06-23T20:05:40Z", "hours": 2.3447, "text": "Devlog 3 - Window Manager Upgrade Came back to the window manager because it was bugging me. Windows could be dragged anywhere including straight off the edge of the screen with no way to get them back short of refreshing. No resizing at all. No snapping. All the stuff that makes an OS feel like an OS instead of a box you can shove around. So this was the sprint where I tried to fix that and it took way longer than I thought, mostly because of bugs I caused myself. First up was resize handles, eight invisible strips around each window’s edges and corners so you can grab any side and resize from there. First try did nothing. Not an error, just nothing. Turned out my windows have overflow: hidden for the rounded corners and I’d put the handles slightly outside the window’s box so the browser was just clipping them out of existence along with their mouse events. Moved them inside the edge instead and they worked. Then, while retyping some of it by hand, I wrote .querySelectorAll(\".resize-handle\".forEach(...)) instead of .querySelectorAll(\".resize-handle\").forEach(...) . One parenthesis in the wrong spot and I was calling .forEach on a plain string instead of on the actual list of elements. Broke resizing AND window-opening at the same time since the error happened before the window even got added to the page. Bounds clamping was a smaller fix but it’s the one I’m most relieved about. Windows can hang halfway off an edge now but they physically can’t disappear off-screen anymore, there’s always a grabbable strip of titlebar left no matter how far you drag. And then snapping, the one I was most excited for. Drag a window to the left or right edge and a ghost preview shows up where it’ll land, let go and it snaps into half the screen. Drag to the top and it maximizes. I almost skipped the detail where dragging a snapped window away from the edge pops it back to its old size first instead of just dragging the half-screen shape around looking weird but glad I didn’t, that’s the part that actually sells it. Then dragging itself went completely haywire right after snapping started working, windows flying way faster than my mouse was moving, snapping in the wrong spots, clamping not holding. Assumed snapping broke it. It hadn’t. Found a line where I was adding the drag delta twice, once to calculate the clamped position and then again by accident when actually setting it. Double-clicking a titlebar now maximizes/restores too, it felt wrong not having that once snapping existed. Window manager finally feels solid instead of held together with tape. Small wins matter! even the ones that take an embarrassingly long time to find."}, {"post_id": 13865, "ts": "2026-06-22T18:39:18Z", "hours": 3.0808, "text": "Devlog 2 — Things Finally Started Moving Picked this back up today and this was basically the point where I started adding JavaScript and making things actually work. Up until now everything was just static UI. At first, I was building app content directly inside JavaScript strings… which worked but got messy really fast. The big breakthrough was moving all of that into proper HTML <template> tags instead. Sounds small but it made the code way easier to manage. Don’t have to squint at quotation marks trying to understand layout and styles. Got the window manager fully working! open, close, minimize, maximize, drag around. Each window now gets a taskbar button that reflects its state. Clicking a minimized window restores it, clicking an active one minimizes it. The Start menu can launch apps now and desktop icons work too. You can double-click an icon to open an app which is a small thing but makes it feel a lot more real. Also wired up the Settings panel. Toggles switch between ON/OFF, accent colors update the theme live and dark mode works (kind of a hack using CSS filters but it works). The Apps folder opens in its own window and can launch other apps from inside it. It’s all small features but they’re finally connected. Spent way too long debugging why desktop icons weren’t responding. Turned out to be a typo in a template ID (“windows-template” vs “window-template”) combined with the script running before the DOM loaded. Very classic… huh? Wrapped everything in DOMContentLoaded and double-checked all IDs after that. Most of the apps (Browser, Terminal, Calculator, Mood Lamp, Fortune Cookie) are still just placeholders with static content. But the system around them feels solid now. Next step is making at least one of them actually do something interesting.. probably either a fake-command Terminal or a Mood Lamp with real color interaction. Also: the Start button didn’t even have an icon before. Just an empty button sitting there. Fixed that. Small wins matter!"}, {"post_id": 12694, "ts": "2026-06-20T18:48:08Z", "hours": 5.7383, "text": "Devlog 1 — Starting Somewhere Started working on AuriaOS today. Honestly, it’s pretty rough right now. I didn’t really try to build anything complex yet. Mostly just figuring out how to structure everything. Got a basic desktop layout in place with some icons (browser, terminal, notes, etc.), a taskbar and a start menu. None of it actually does much yet. Spent a lot more time than expected just on CSS. Things like spacing, colors, trying to make it not look completely off. I set up a dark theme with variables so I don’t have to keep rewriting stuff later, which feels like it’ll help. Also added a window template system so I can reuse it when I actually start making apps. Right now it’s just sitting there but I think it’ll make things easier later. There’s a settings page UI and an apps folder too but they’re basically just placeholders. Buttons don’t really do anything yet. Overall, it doesn’t look like much for a full day but I guess this is just the setup phase. Still trying to understand how everything should fit together."}]...
|
Title: AuriaOS by @AidenHammy | Stardance
Devlogs Title: AuriaOS by @AidenHammy | Stardance
Devlogs:
Devlog 1 — Starting Somewhere Started working on AuriaOS today. Honestly, it’s pretty rough right now. I didn’t really try to build anything complex yet. Mostly just figuring out how to structure everything. Got a basic desktop layout in place with some icons (browser, terminal, notes, etc.), a taskbar and a start menu. None of it actually does much yet. Spent a lot more time than expected just on CSS. Things like spacing, colors, trying to make it not look completely off. I set up a dark theme with variables so I don’t have to keep rewriting stuff later, which feels like it’ll help. Also added a window template system so I can reuse it when I actually start making apps. Right now it’s just sitting there but I think it’ll make things easier later. There’s a settings page UI and an apps folder too but they’re basically just placeholders. Buttons don’t really do anything yet. Overall, it doesn’t look like much for a full day but I guess this is just the setup phase. Still trying to understand how everything should fit together.
Devlog 2 — Things Finally Started Moving Picked this back up today and this was basically the point where I started adding JavaScript and making things actually work. Up until now everything was just static UI. At first, I was building app content directly inside JavaScript strings… which worked but got messy really fast. The big breakthrough was moving all of that into proper HTML <template> tags instead. Sounds small but it made the code way easier to manage. Don’t have to squint at quotation marks trying to understand layout and styles. Got the window manager fully working! open, close, minimize, maximize, drag around. Each window now gets a taskbar button that reflects its state. Clicking a minimized window restores it, clicking an active one minimizes it. The Start menu can launch apps now and desktop icons work too. You can double-click an icon to open an app which is a small thing but makes it feel a lot more real. Also wired up the Settings panel. Toggles switch between ON/OFF, accent colors update the theme live and dark mode works (kind of a hack using CSS filters but it works). The Apps folder opens in its own window and can launch other apps from inside it. It’s all small features but they’re finally connected. Spent way too long debugging why desktop icons weren’t responding. Turned out to be a typo in a template ID (“windows-template” vs “window-template”) combined with the script running before the DOM loaded. Very classic… huh? Wrapped everything in DOMContentLoaded and double-checked all IDs after that. Most of the apps (Browser, Terminal, Calculator, Mood Lamp, Fortune Cookie) are still just placeholders with static content. But the system around them feels solid now. Next step is making at least one of them actually do something interesting.. probably either a fake-command Terminal or a Mood Lamp with real color interaction. Also: the Start button didn’t even have an icon before. Just an empty button sitting there. Fixed that. Small wins matter!
Devlog 3 - Window Manager Upgrade Came back to the window manager because it was bugging me. Windows could be dragged anywhere including straight off the edge of the screen with no way to get them back short of refreshing. No resizing at all. No snapping. All the stuff that makes an OS feel like an OS instead of a box you can shove around. So this was the sprint where I tried to fix that and it took way longer than I thought, mostly because of bugs I caused myself. First up was resize handles, eight invisible strips around each window’s edges and corners so you can grab any side and resize from there. First try did nothing. Not an error, just nothing. Turned out my windows have overflow: hidden for the rounded corners and I’d put the handles slightly outside the window’s box so the browser was just clipping them out of existence along with their mouse events. Moved them inside the edge instead and they worked. Then, while retyping some of it by hand, I wrote .querySelectorAll(".resize-handle".forEach(...)) instead of .querySelectorAll(".resize-handle").forEach(...) . One parenthesis in the wrong spot and I was calling .forEach on a plain string instead of on the actual list of elements. Broke resizing AND window-opening at the same time since the error happened before the window even got added to the page. Bounds clamping was a smaller fix but it’s the one I’m most relieved about. Windows can hang halfway off an edge now but they physically can’t disappear off-screen anymore, there’s always a grabbable strip of titlebar left no matter how far you drag. And then snapping, the one I was most excited for. Drag a window to the left or right edge and a ghost preview shows up where it’ll land, let go and it snaps into half the screen. Drag to the top and it maximizes. I almost skipped the detail where dragging a snapped window away from the edge pops it back to its old size first instead of just dragging the half-screen shape around looking weird but glad I didn’t, that’s the part that actually sells it. Then dragging itself went completely haywire right after snapping started working, windows flying way faster than my mouse was moving, snapping in the wrong spots, clamping not holding. Assumed snapping broke it. It hadn’t. Found a line where I was adding the drag delta twice, once to calculate the clamped position and then again by accident when actually setting it. Double-clicking a titlebar now maximizes/restores too, it felt wrong not having that once snapping existed. Window manager finally feels solid instead of held together with tape. Small wins matter! even the ones that take an embarrassingly long time to find.
Devlog 4 - The Start Menu Ate My Week I js wanted to give the start menu some real attention instead of leaving it as a sad little list forever. I did NOT expect that to become the biggest sprint of the whole project but here we are… Built a proper pin/unpin system. My first version was a bit problematic so I sat with it for a while then rebuilt it the right way with an actual right-click context menu and everything. It felt genuinely satisfying once it finally clicked. Then I somehow convinced myself to add six more features to give the start menu a new life: greeting header, search bar, pinned grid, recent activity, system widgets and a whole user profile footer. Small moments of panic…? Definitely.. then I broke it into phases so I didn’t drown trying to build an entire desktop in one sitting. What nobody tells you about “just redesign the start menu” is how many times you’ll open the same file and stare at the same fifteen lines wondering why they look right and behave wrong. Trial and error ate most of my time which is fair enough. I also gave every icon its own little color badge, wired up a real “/” keyboard shortcut to match the hint I’d put in the search bar then made the whole thing Tab-and-Enter navigable since none of it was there before. Every “small fix” somehow turned into reopening three different files and rechecking things I was already convinced were correct which… more often than not, they weren’t. But that part actually felt rewarding. Little by little, the menu finally started feeling alive. And then, the bugs… I found out my own Start button was secretly broken, well… not heartbroken like me, at least. Clicking it did nothing at all because an old line of code was quietly fighting a newer one inside the same click handler. THAT took way TOO long to spot. The sneakiest ones weren’t even logic bugs.. a single missing dash in a CSS variable. A class name one word off from the real HTML. Completely invisible unless you go hunting line by line, just quietly doing nothing the whole time. The JavaScript is by far the most nerve-wracking, head-splitting experience ever. Absolute horror. I don’t wanna touch that file ever again. My eyes are bloodshot. The amount of time I spent just staring at the code, hunting down errors one by one is honestly concerning.. The menu actually works now, start to finish. Search, pinning, keyboard navigation and all. It cost way more blood than a start menu has any right to. Genuinely proud of this one precisely because of how much it fought back. Terminal’s turn next. And it should be VERY afraid. Note: Snuck localStorage into the project too! Turns out users generally prefer their settings, notes and pinned apps to exist for longer than five seconds. Weird bunch.
Devlog 5 Picked up right where Devlog 4 left off. It was finally time to touch something nobody had looked at since day one, the Terminal. Before any of that though, I had a genuinely interesting detour into why I can’t just load real websites in an iframe . It turns out most sites send headers specifically designed to stop other pages from embedding them. That’s also the real secret behind those slick “browser inside a browser” demos we sometimes see online. They’re either fully staged or quietly running an actual browser on a server somewhere and just streaming a picture of it back to you, good to know. Also good to know I’m not building a server anytime soon. Future Aiden can deal with that one… if he ever does. The Terminal ended up being the most satisfying thing I’ve built so far. Real command parsing, arrow keys cycling through history and commands that genuinely do things instead of just printing text back at you. The command pin calculator actually pins an app. theme #ff6b6b actually repaints the whole OS live. It’s one of those features that finally makes the desktop feel interactive rather than just clickable And then, almost immediately, the most expected yet unexpected bug. I’d spent all that time getting the commands working, the history system behaving and everything feeling right.. only to forget the single line that actually connects the Terminal to its window when it opens. Fully built but completely silent because of one missing function call I closed it out by fixing a bug that’s been sitting in plain sight since the very first day of this project. Maximizing a window always left a thin strip of empty space hovering just above the taskbar because the math was quietly subtracting the taskbar’s height twice instead of once Hopefully my last devlog before shipping… ..for now sigh…
Devlog: Reworking AuriaOS’s Visual Identity I thought AuriaOS was ready to ship. The window manager was working, apps launched, windows could be dragged, resized, minimized and restored. And the logic was solid. Then the project got flagged as AI-generated, well I wouldn’t say AI-generated but maybe traits similar to that of one. It wasn’t because of the code but because of the UI. Looking back, I understood why. The dark navy background, teal accents, frosted glass, soft glows and identical rounded corners looked a lot like the visual style that’s become common in AI-generated interface concepts. Those chosen elements together, they unintentionally resembled that aesthetic. So I decided to redesign the visual system without touching the underlying functionality! Redesigning the UI The HTML and Javascript mostly stayed the same but most of the CSS was reworked. Replaced the glassy navy and teal theme with a warmer ink and brass palette Split the single border radius into multiple sizes so controls, windows and tiles each have their own geometry Removed glow-heavy styling in favor of flat panels, subtle borders and offset shadows Simplified typography by using JetBrains Mono for the interface with Fraunces reserved for the Start menu greeting Replaced decorative gradients with a subtle SVG grain texture Added small details like a window seal, custom text selection and distinct hover treatments across different UI regions Swapped macOS-style traffic-light controls for simpler outlined window buttons My goal was simple, it wasn’t to make the UI less polished, it was to give it a clearer identity. Bugs I Found Along the Way Rewriting and going through every CSS rule also uncovered a few real bugs Broken resize handles Some resize handle selectors accidentally used descendant selectors instead of grouped selectors so several resize directions silently stopped working Invisible desktop Adding overflow: hidden exposed another issue: #desktop never had an explicit height. Because every child was absolutely positioned, the container collapsed to zero height and clipped everything inside it. Restoring width: 100% and height: 100% fixed it immediately A backwards theme toggle The old “Dark Mode” toggle now made the already-dark interface lighter so i renamed the user-facing option to Light Mode while keeping the internal setting unchanged Looking Back Getting the project flagged was frustrating but it pushed me to reconsider the design instead of just accepting my first version. The redesign gave AuriaOS a stronger visual identity and the careful review of the stylesheet ended up revealing several bugs that had gone unnoticed during the rewrite. In the end, the project became better both visually and technically
Devlog: giving AuriaOS two real apps (and finding out neither of them worked) Calculator and Mood Lamp had been placeholders since day one. A folder icon and a div that said “🧮 Calculator app” and nothing else. A window opened, technically. Nothing else did. For the second submission I finally built them for real. Building them Calculator got a real display and button grid, doing immediate-execution math on purpose: 6 + 3 × 2 = gives 18 not 12 because that’s how an actual physical calculator behaves and a proper order-of-operations parser felt like solving a problem nobody asked for. Divide by zero gives Error like it should. Keyboard input works too but only while the calculator window is actually focused so it can’t hijack typing elsewhere. Mood Lamp got more ambition! Instead of a “click a button, see a color” toy, it’s a global ambient tint over the whole desktop not just its own window. Four presets pulled from the existing accent palette, plus a real color picker and intensity slider for anyone who wants to go off-menu. Wrote the CSS, wrote the JS, wired both in, called it done. It was not done. The buttons that did nothing. Time for the First bug! Mood Lamp’s buttons didn’t work. No errors, no visual change, just silence..which is a specific kind of bug since broken JS usually throws. Silence like that means the code never actually ran. That’s exactly what happened. wireCalculator() and wireMoodLamp() were both fully written and correct and never called from anywhere. openWindow() still had the old dispatch list from before either app existed so every button in both apps existed in the DOM with zero listeners attached. Not a typo, just two lines I never wrote. The command that lied about itself From the previous reviews, I got to know that typing lightmode on in the terminal printed darkmode turned on . The Dark Mode → Light Mode rename happened everywhere except one spot. The shared toggleBooleanSetting() helper used the internal state key (darkmode, which still has to exist since the actual effect is a literal CSS invert) for the confirmation message too. I split those apart so the message reflects what you actually typed not the plumbing underneath it. The mood lamp that had no mood Once the wiring was fixed, buttons visibly responded but the desktop itself looked exactly the same. Sampling the actual rendered pixel before/after at max intensity confirmed it. The shift was small enough to round to nothing. The overlay used mix-blend-mode: soft-light which was picked for subtlety. Except soft-light scales toward zero as the base color approaches black and AuriaOS’s desktop is about as close to black as a color gets (almost). The mode I chose for subtlety was almost mathematically guaranteed to do nothing on this exact theme. I switched it to screen, which always adds light regardless of how dark the base is. Same 30% intensity setting, suddenly an actual visible wash instead of a rounding error. The actual lesson? None of these three were exotic bugs. A missing function call, a copy mismatch, a blend mode never checked against the theme it’d run on. All three shipped unnoticed because each one failed quietly instead of throwing. Worth remembering “it’s not doing anything” isn’t a shrug, it’s a symptom!
Devlog: Right-clicks, calendars and… a fortune cookie?! Fresh update to AuriaOS. Two new interface features, one new app and a bug that crashed the entire desktop before it got fixed. Right-clicking finally does something! Before this, right-clicking almost anything in AuriaOS just opened the browser’s own menu (“Reload / Inspect”) which ruined the illusion of a real little operating system. Now right-clicking gives you a proper menu where it should: A window’s title bar -> Minimize, Maximize/Restore, Always on Top, Close An app in the taskbar -> Restore/Minimize, Close Empty taskbar space -> Show Desktop, Close All Windows, Settings Empty desktop space -> Personalize, Open a Terminal, Refresh A desktop icon -> Open The genuinely new trick is “Always on Top”. Pin a window and it stays above every other window, no matter what else you click instead of getting buried like normal windows. The clock finally does something! The taskbar clock used to just show the time. Now you can click it and get a small calendar for the current month just like on a real computer. The calendar handles the fiddly stuff automatically. It knows how many days are in each month, accounts for February 29 in leap years and always lines up with Sunday as the start of the week. The faded days at the beginning and end fill out the grid so it doesn’t have awkward gaps. And if you leave the calendar open when midnight hits, it updates itself and moves the highlight to the new day without needing to be closed and reopened. Actually building the Fortune Cookie App It’s basically what it sounds like. A fortune cookie that you click to crack open. It shrinks and fades as if it’s actually being cracked,then a little paper slip slides into view with a fortune and six “lucky numbers” underneath just like a real fortune cookie. The bug that broke everything This was the messy part. It wasn’t really one bug but two bugs back to back both caused by the same basic mistake. Bug one: the crash. To make the calendar auto-update, the clock code runs every second and checks whether the calendar popup is open. The problem was an ordering mistake. That check ran before the calendar popup had actually been set up. Because the error happened near the top of the file, everything after it never got initialized including the taskbar and Start Menu click handlers. From the outside, the whole desktop looked dead. Frozen clock, dead Start Menu and an unresponsive taskbar. Bug two: After fixing the crash, the calendar still wouldn’t open. Turns out I’d written all the code for the popup but forgotten to actually add the popup to the page. Most of the code quietly ignored the missing element but one part wasn’t so forgiving and could throw an error on every click anywhere in the app. Adding the missing element fixed it and I added safety checks around similar code so missing elements can’t cause the same mess again
Devlog: building the browser interface Every other app in AuriaOS gave me something real and had bugs that behaved normally. The browser gave me two completely different problems, each one hiding behind the last. Problem one: search engines don’t want to be embedded With the real browser wired up, the address bar, back/forward/reload/home and an actual iframe, it looked done. Typing a URL worked but typing a search term did not. Every search just sat there, blank. I got to know why that was very soon from the console: textFraming 'https://html.duckduckgo.com/' violates the following ContentSecurity Policy directive: "frame-ancestors 'self'". The request hasbeen blocked. DuckDuckGo sends a header that basically says “don’t let anyone put me inside another page” but that’s not just a DuckDuckGo thing though, it’s standard for basically every search engine because a framed search results page is a classic clickjacking setup. No amount of JavaScript on my end changes an HTTP header the other server is sending. Well, this can’t be considered a bug, it was like a wall and every search engine has the same one. So the fix wasn’t really a fix, it was about rethinking the whole situation. I had to stop trying to show search results inside the embedded view and just open them in a real new tab instead where framing rules don’t apply. Direct URLs still load inside the app like before since plenty of ordinary sites don’t block framing, it’s the search engines specifically. Problem two: it worked but it didn’t feel like it worked Search now actually functioned since New tab pops open with real results every time. And the very next thing I thought of was “it acts like a separate window opener instead of being part of the browser app” and it was a fair thought. What I really wanted was to show search results inside the iframe which loops straight back to problem one. I didn’t have much choice. I pushed back on that hard. Everything else in AuriaOS does what it claims to do. The terminal runs real commands, the calculator does real math and I didn’t want the browser to be the one app quietly faking it. But I eventually decided to keep the new tab. Added a small toast inside the browser window itself. “Opened search in a new tab” that fades in for about two seconds and back out. Doesn’t change where the search happens it just closes the feedback gap. Something visibly happens inside the app the moment you hit Go instead of the window just sitting there while a tab opens somewhere else on screen
Ships:
AuriaOS is a browser-based web OS built entirely with vanilla HTML, CSS and JavaScript. It includes a full window manager (drag, resize, edge snapping, maximize), a Start Menu with live search, pinning, recent apps and keyboard navigation, plus a Terminal where commands like theme, pin, darkmode and shutdown actually control the OS. Settings, notes, pinned apps and recent activity all persist through localStorage. The hardest part wasn’t writing new features. It was debugging them. The JavaScript logic itself was just as challenging. I spent a lot of time debugging, reworking functions and figuring out why seemingly correct code behaved unexpectedly. I got stuck plenty of times but I decided to stick with it until everything finally clicked. Keeping the project’s scope under control was another challenge so I broke large features into smaller phases instead of trying to build an entire desktop at once. I’m proud that AuriaOS feels like one coherent system instead of separate features glued together. The Start Menu, Settings and Terminal all share the same underlying state so changing something in one place updates the rest of the desktop automatically. I’m also proud that the Terminal is genuinely functional rather than decorative. The window manager, Start Menu, Settings, Notepad and Terminal are fully functional. Browser, Calculator, Mood Lamp and Fortune Cookie are still placeholder apps. Things worth trying: Drag a window to a screen edge to snap it Open the Start Menu and use “/” to search or navigate entirely with the keyboard Right-click an app to pin or unpin it Open Terminal and run help then try pin calculator or theme #4ecdc4 Refresh the page to verify that settings, notes and pinned apps persist
AuriaOS is a browser-based desktop environment built entirely with vanilla HTML, CSS and JavaScript. It features a complete window manager with dragging, resizing, edge snapping, maximizing and minimizing alongside a Start Menu with live search, pinning, recent apps and full keyboard navigation. It also includes a functional Terminal where commands like theme, pin, darkmode and shutdown interact with the operating system itself. Settings, notes, pinned apps and recent activity are all persisted using localStorage. The biggest challenge wasn’t adding features. It was making them work together reliably. I spent a lot of time debugging Javascript, tracing unexpected behaviour and reworking functions until interactions felt consistent across the entire desktop. I also kept the scope manageable by building the OS incrementally. I treated each subsystem as its own milestone instead of trying to create everything at once. One of the parts I’m happiest with is that AuriaOS behaves like a single, connected system rather than a collection of isolated apps. The Start Menu, Settings and Terminal all share the same state so changes made in one place are reflected everywhere else. The terminal is fully functional too! It isn’t just a visual prop. Current apps -> Fully functional (Mentioned below) Window Manager, Start Menu, Settings, Notepad, Terminal Placeholder apps Browser, Calculator, Mood Lamp, Fortune Cookie
This ship finishes off every placeholder app and adds two real interface upgrades. Calculator does immediate-execution arithmetic with full keyboard support. Mood Lamp applies a real ambient color wash across the whole desktop and not just its own window (fortunately). Fortune Cookie cracks open into an actual paper slip with a fortune and six lucky numbers. The Browser now has a working address bar with back/forward/reload and typed URLs load inline. Searches open in a new tab since search engines block being framed no matter what you do. Right-click also does something everywhere now including titlebars, taskbar and desktop and also including a new “Always on Top” pin. And the taskbar clock isn’t static anymore! Click it for a small calendar with today marked and leap years are handled correctly without any special-case code. Current apps → Fully functional: Settings, Notepad, Terminal, Calculator, Mood Lamp, Browser, Fortune Cookie Placeholder apps → None remaining!...
|
1793688980.7178361
|
1793775380.7178361
|
|
15302
|
The VectoGraph by @gavinlucasdostie | Stardance
|
gavinlucasdostie
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-22T16:12:03Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a basic Hack pad with 6 keys, 1 rotary encoder, 10 LEDs, and 1 OLED display. I would use it as an audio controller using the rotary encoder to control the audio output and the line of ten LEDs to show the audio output. And the key would be used to pause/play, fast-forward, rewind, mute, and more. The OLED display would show what’s playing (via Spotify). I think this is a well-built hackpad, and I am very proud of it.", "repo": "https://github.com/GaVind-code/Vectograph", "demo": ""}]...
|
[{"post_id": 12109, "ts": "202 [{"post_id": 12109, "ts": "2026-06-19T19:37:11Z", "hours": 0.6053, "text": "the vectograph"}]...
|
Title: The VectoGraph by @gavinlucasdostie | Stard Title: The VectoGraph by @gavinlucasdostie | Stardance
Devlogs:
the vectograph
Ships:
I made a basic Hack pad with 6 keys, 1 rotary encoder, 10 LEDs, and 1 OLED display. I would use it as an audio controller using the rotary encoder to control the audio output and the line of ten LEDs to show the audio output. And the key would be used to pause/play, fast-forward, rewind, mute, and more. The OLED display would show what’s playing (via Spotify). I think this is a well-built hackpad, and I am very proud of it....
|
1793714320.5435765
|
1793800720.5435765
|
|
15303
|
My first slack bot! by @froz3npot4to | Stardance
|
froz3npot4to
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @froz3npot4to | Star Title: My first slack bot! by @froz3npot4to | Stardance...
|
1793346968.3420405
|
1793951768.3420405
|
|
15304
|
My first slack bot! by @kingsley | Stardance
|
kingsley
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @kingsley | Stardanc Title: My first slack bot! by @kingsley | Stardance...
|
1793422363.514174
|
1794027163.514174
|
|
15305
|
My very own WebOS by @Zest1918 | Stardance
|
Zest1918
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Zest1918 | Stardance
|
1793238916.446309
|
1793843716.446309
|
|
15306
|
My awesome macropad! by @estella | Stardance
|
estella
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @estella | Stardanc Title: My awesome macropad! by @estella | Stardance...
|
1793516006.4658372
|
1794120806.4658372
|
|
15307
|
My awesome macropad! by @bala | Stardance
|
bala
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @bala | Stardance
|
1793354037.064855
|
1793958837.064855
|
|
15308
|
My awesome macropad! by @methnidumanuth | Stardanc My awesome macropad! by @methnidumanuth | Stardance...
|
methnidumanuth
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @methnidumanuth | S Title: My awesome macropad! by @methnidumanuth | Stardance...
|
1793166584.787112
|
1793771384.787112
|
|
15309
|
flower by @estella | Stardance
|
estella
|
0
|
0.79
|
0
|
[]
|
[{"post_id": 31545, "ts": "202 [{"post_id": 31545, "ts": "2026-07-20T01:17:29Z", "hours": 0.7906, "text": "My first dev log! I have ever so graciously attached a very rough sketch of my idea for your indulgence. So far, I have made a simple prototype circuit to test my code. At first I had issues with the LED starting on and switching off when the hall sensor activates, and the servo would not turn on at all (boooo!). I found that the digital output starts on high, while I, naïvely, thought it started on low. Once I fixed the LEDs, I moved on to the motor; at first I checked the wiring, but nothing seemed to be amiss there…. So I moved onto the code, but still lo and behold, I couldn’t figure out what was wrong!!! It was time to consult with Claude. I forgot to increment in the function that controls how the wings flap. Oops! I did base the movement off of a sine wave for a smoother motion; however, I am still not all that pleased with the movement. I did play with the delay between steps and the value I am incrementing by on the sine curve. In terms of 3d modelling, I just used a free wing model and attached it to a servo arm, nothing special, My sincerest apologies for the disappointment. I plan on designing wings myself down the line, but I want to get the software down first (my least favorite part, sigh). Finally, my bum 3d printer has decided to act out of line; it seems to hold very little respect for me. At the moment, my print will not stick to the bed, and according to my trusty source: Reddit, it is overextruding too. No more updates for awhile, as I am off to soccer camp, and I cant lug my pc with me!"}]...
|
Title: flower by @estella | Stardance
Devlogs:
My Title: flower by @estella | Stardance
Devlogs:
My first dev log! I have ever so graciously attached a very rough sketch of my idea for your indulgence. So far, I have made a simple prototype circuit to test my code. At first I had issues with the LED starting on and switching off when the hall sensor activates, and the servo would not turn on at all (boooo!). I found that the digital output starts on high, while I, naïvely, thought it started on low. Once I fixed the LEDs, I moved on to the motor; at first I checked the wiring, but nothing seemed to be amiss there…. So I moved onto the code, but still lo and behold, I couldn’t figure out what was wrong!!! It was time to consult with Claude. I forgot to increment in the function that controls how the wings flap. Oops! I did base the movement off of a sine wave for a smoother motion; however, I am still not all that pleased with the movement. I did play with the delay between steps and the value I am incrementing by on the sine curve. In terms of 3d modelling, I just used a free wing model and attached it to a servo arm, nothing special, My sincerest apologies for the disappointment. I plan on designing wings myself down the line, but I want to get the software down first (my least favorite part, sigh). Finally, my bum 3d printer has decided to act out of line; it seems to hold very little respect for me. At the moment, my print will not stick to the bed, and according to my trusty source: Reddit, it is overextruding too. No more updates for awhile, as I am off to soccer camp, and I cant lug my pc with me!...
|
1793173848.58527
|
1793778648.58527
|
|
15310
|
Project Aetheris by @Ghostx | Stardance
|
Ghostx
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Project Aetheris by @Ghostx | Stardance
|
1793411655.4623187
|
1794016455.4623187
|
|
15311
|
Miku website thingy by @Prem_The_Avaitor | Stardan Miku website thingy by @Prem_The_Avaitor | Stardance...
|
Prem_The_Avaitor
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Miku website thingy by @Prem_The_Avaitor | Title: Miku website thingy by @Prem_The_Avaitor | Stardance...
|
1793278137.465744
|
1793882937.465744
|
|
15312
|
My very own WebOS by @Tactical | Stardance
|
Tactical
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Tactical | Stardance
|
1793235216.7605946
|
1793840016.7605946
|
|
15313
|
My first slack bot! by @Gary-xiao | Stardance
|
Gary-xiao
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Gary-xiao | Stardan Title: My first slack bot! by @Gary-xiao | Stardance...
|
1793375374.1451495
|
1793980174.1451495
|
|
15314
|
My very own WebOS by @bmurray | Stardance
|
bmurray
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @bmurray | Stardance
|
1793504890.2986736
|
1794109690.2986736
|
|
15315
|
Rain goggles by @andres28 | Stardance
|
andres28
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Rain goggles by @andres28 | Stardance
|
1793415350.546317
|
1794020150.546317
|
|
15316
|
Physical Desktop Agent by @sivily | Stardance
|
sivily
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Physical Desktop Agent by @sivily | Stardan Title: Physical Desktop Agent by @sivily | Stardance...
|
1793569944.5740829
|
1794174744.5740829
|
|
15317
|
My very own WebOS by @aniketdixit125 | Stardance
|
aniketdixit125
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @aniketdixit125 | Star Title: My very own WebOS by @aniketdixit125 | Stardance...
|
1793447599.3136394
|
1794052399.3136394
|
|
15318
|
Meet Desa my Everyday Helper by @Jamiee | Stardanc Meet Desa my Everyday Helper by @Jamiee | Stardance...
|
Jamiee
|
1
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-31T15:01:43Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I tried to build a desk assistant, as you can read in my devlogs but I overestimated my knowledge and abilities. That does not mean that i give up, I’m just giving myself a bit more time and will finish it without pressure in my free time. The speaking assistant is finished and is uploaded on my GitHub and ready to be used, as is the main movement and the camera. Only the physical robot will still take a while.", "repo": "https://github.com/7h88ngyrtw-source/Jarvis", "demo": ""}]...
|
[{"post_id": 85573, "ts": "202 [{"post_id": 85573, "ts": "2026-10-31T14:48:38Z", "hours": 0.3489, "text": "That’s what the robot is currently looking like 🤖🫠"}, {"post_id": 75527, "ts": "2026-09-30T11:33:56Z", "hours": 3.7072, "text": "I can’t finish my project in time, at least not my big project. I have finished my talking assistant and that is my accomplishment for this challenge. I set goals far too big for my knowledge but I’m proud of what I’ve finished."}, {"post_id": 73198, "ts": "2026-09-24T16:14:43Z", "hours": 1.0558, "text": "I linked the projects together so that it works at the same time. Took me forever 😭"}, {"post_id": 46856, "ts": "2026-08-14T12:01:53Z", "hours": 5.1925, "text": "GUYS I’M SO EXITED to share this with you!!!!! I finally managed to execute both programs (camera and jarvis) at the same time. I had to but the codes in different files and then create a third one and use subprocess and it finallyyy works. I’m so happy. And I’m sorry that my devlog is for 5 hours but I really only worked on Jarvis, adjusted it to my wishes ( listens all the time but only reacts when i say his name) and tried to let the two processes go at the same time."}, {"post_id": 43256, "ts": "2026-08-08T12:36:29Z", "hours": 2.1403, "text": "I’m still trying to connect yolov8n with gemma3, so gemma knows whats on the camera."}, {"post_id": 38705, "ts": "2026-08-01T07:38:05Z", "hours": 2.7769, "text": "I am still working on object detection and I’m planning on doing object tracking next and linking the recorded video to Gemma 3, so that it can talk about the objects. It may be that I end up doing it without the Ai (gemma) if i know how to do it without and if i have the time for it. I’m also going to build the robot with cardboard first so that i have a prototype to see how it looks."}, {"post_id": 35721, "ts": "2026-07-27T10:30:26Z", "hours": 1.5025, "text": "I am currently working on the camera vision with OpenCV– I’m using YOlOv8 Nano for Object Detection. Side Note: My total coding time is actually now almost 13 h, idk why it is less here :("}, {"post_id": 31190, "ts": "2026-07-19T12:11:03Z", "hours": 4.1828, "text": "I haven’t updated much about my progress, only because I got stuck at one particular thing. Here’s what i have done: I downloaded Ollama for Gamma3 and also installed pyttsx3, pyaudio and speech recognition because I want Desa (still trying to find another name) to recognize my voice when i say its name. So far I have achieved that when I ask, for example: “Hey Desa, where is the biggest mountain in Europe?” that Desa answers me but I still have a far way to go. I still need that it recognizes Objects and knows attributes so he can detect items easier later on. So in order to do so I have to install OpenCV and many other things for Vision and stuff, and because I’m still working on the software, I haven’t yet bought the hardware, so I can’t really upload anything, to show you:( But I plan to begin with the hardware-part in August!! I added a picture of the biggest part of my code. It still needs much improvement and so far I’m proud of it. The code only contains calling Desa and answers from it"}, {"post_id": 23695, "ts": "2026-07-06T20:06:23Z", "hours": 2.1444, "text": "I finished the command lines, and now I can ask DESA for anything and it will respond with what it’s giving me. Also I added a tts module (pyttsx3) and now I’m about to work with that, so that Desa can speak and react to my question and commands. (If you have any name ideas, please text me, because I’m not entirely happy with the name Desa) I’m adding a screenshot of my code, let me know, what you think (it’s not much so far)"}, {"post_id": 18613, "ts": "2026-06-29T20:14:47Z", "hours": 2.0722, "text": "Desa will be my personal desk assistant, in form of mechanical ROBOT ARM"}]...
|
Title: Meet Desa my Everyday Helper by @Jamiee | S Title: Meet Desa my Everyday Helper by @Jamiee | Stardance
Devlogs:
Desa will be my personal desk assistant, in form of mechanical ROBOT ARM
I finished the command lines, and now I can ask DESA for anything and it will respond with what it’s giving me. Also I added a tts module (pyttsx3) and now I’m about to work with that, so that Desa can speak and react to my question and commands. (If you have any name ideas, please text me, because I’m not entirely happy with the name Desa) I’m adding a screenshot of my code, let me know, what you think (it’s not much so far)
I haven’t updated much about my progress, only because I got stuck at one particular thing. Here’s what i have done: I downloaded Ollama for Gamma3 and also installed pyttsx3, pyaudio and speech recognition because I want Desa (still trying to find another name) to recognize my voice when i say its name. So far I have achieved that when I ask, for example: “Hey Desa, where is the biggest mountain in Europe?” that Desa answers me but I still have a far way to go. I still need that it recognizes Objects and knows attributes so he can detect items easier later on. So in order to do so I have to install OpenCV and many other things for Vision and stuff, and because I’m still working on the software, I haven’t yet bought the hardware, so I can’t really upload anything, to show you:( But I plan to begin with the hardware-part in August!! I added a picture of the biggest part of my code. It still needs much improvement and so far I’m proud of it. The code only contains calling Desa and answers from it
I am currently working on the camera vision with OpenCV– I’m using YOlOv8 Nano for Object Detection. Side Note: My total coding time is actually now almost 13 h, idk why it is less here :(
I am still working on object detection and I’m planning on doing object tracking next and linking the recorded video to Gemma 3, so that it can talk about the objects. It may be that I end up doing it without the Ai (gemma) if i know how to do it without and if i have the time for it. I’m also going to build the robot with cardboard first so that i have a prototype to see how it looks.
I’m still trying to connect yolov8n with gemma3, so gemma knows whats on the camera.
GUYS I’M SO EXITED to share this with you!!!!! I finally managed to execute both programs (camera and jarvis) at the same time. I had to but the codes in different files and then create a third one and use subprocess and it finallyyy works. I’m so happy. And I’m sorry that my devlog is for 5 hours but I really only worked on Jarvis, adjusted it to my wishes ( listens all the time but only reacts when i say his name) and tried to let the two processes go at the same time.
I linked the projects together so that it works at the same time. Took me forever 😭
I can’t finish my project in time, at least not my big project. I have finished my talking assistant and that is my accomplishment for this challenge. I set goals far too big for my knowledge but I’m proud of what I’ve finished.
That’s what the robot is currently looking like 🤖🫠
Ships:
I tried to build a desk assistant, as you can read in my devlogs but I overestimated my knowledge and abilities. That does not mean that i give up, I’m just giving myself a bit more time and will finish it without pressure in my free time. The speaking assistant is finished and is uploaded on my GitHub and ready to be used, as is the main movement and the camera. Only the physical robot will still take a while....
|
1793720854.4919817
|
1793807254.4919817
|
|
15319
|
My awesome macropad! by @Das_F1sHy312 | Stardance
|
Das_F1sHy312
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Das_F1sHy312 | Sta Title: My awesome macropad! by @Das_F1sHy312 | Stardance...
|
1793440263.9552543
|
1794045063.9552543
|
|
15320
|
DW Fangame by @seji | Stardance
|
seji
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: DW Fangame by @seji | Stardance
|
1793483647.4974666
|
1794088447.4974666
|
|
15321
|
My very own WebOS by @adc | Stardance
|
adc
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @adc | Stardance
|
1793523416.355653
|
1794128216.355653
|
|
15322
|
Voice Bot by @maximus | Stardance
|
maximus
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Voice Bot by @maximus | Stardance
|
1793228067.097486
|
1793832867.097486
|
|
15323
|
My very own WebOS by @notatall | Stardance
|
notatall
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @notatall | Stardance
|
1793310834.918237
|
1793915634.918237
|
|
15324
|
My awesome macropad! by @ruthvik_mugu | Stardance
|
ruthvik_mugu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @ruthvik_mugu | Sta Title: My awesome macropad! by @ruthvik_mugu | Stardance...
|
1793263936.50661
|
1793868736.50661
|
|
15325
|
My awesome macropad! by @Luke_Hatten | Stardance
|
Luke_Hatten
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Luke_Hatten | Star Title: My awesome macropad! by @Luke_Hatten | Stardance...
|
1793465642.3508883
|
1794070442.3508883
|
|
15326
|
Linux based operating system by @COSMICNTROM | Sta Linux based operating system by @COSMICNTROM | Stardance...
|
COSMICNTROM
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Linux based operating system by @COSMICNTRO Title: Linux based operating system by @COSMICNTROM | Stardance...
|
1793541026.6440804
|
1794145826.6440804
|
|
15327
|
Ebike by @robelafeworki3 | Stardance
|
robelafeworki3
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Ebike by @robelafeworki3 | Stardance
|
1793253405.4036522
|
1793858205.4036522
|
|
15328
|
My very own WebOS by @Anokhii | Stardance
|
Anokhii
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Anokhii | Stardance
|
1793443972.3817945
|
1794048772.3817945
|
|
15329
|
My very own WebOS by @ben_meredith1 | Stardance
|
ben_meredith1
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @ben_meredith1 | Stard Title: My very own WebOS by @ben_meredith1 | Stardance...
|
1793526913.4542692
|
1794131713.4542692
|
|
15330
|
Code by @andrew_volovich | Stardance
|
andrew_volovich
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Code by @andrew_volovich | Stardance
|
1793296507.9556327
|
1793901307.9556327
|
|
15331
|
My very own WebOS by @ishaakondi | Stardance
|
ishaakondi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @ishaakondi | Stardanc Title: My very own WebOS by @ishaakondi | Stardance...
|
1793289307.4473057
|
1793894107.4473057
|
|
15332
|
Mission Control: Meow by @ThatChillCat | Stardance
|
ThatChillCat
|
0
|
2.63
|
0
|
[]
|
[{"post_id": 34120, "ts": "202 [{"post_id": 34120, "ts": "2026-07-24T16:44:59Z", "hours": 0.7825, "text": "I have enhanced the whole webpage by adding a starry background generated by JS."}, {"post_id": 33052, "ts": "2026-07-22T17:01:13Z", "hours": 1.0717, "text": "Building the Home Page. built the home (hero) section added projects title and tagline wrote a short into for (all most) all sections improved overall layout of the webpage. Implemented the first version of The Meow Button™. It is a button. when you click on it, it plays a random meow sound effect from 8 meow files Things I learned Learned abt how to use javascript How to use addEventListener() arrays math functions"}, {"post_id": 31670, "ts": "2026-07-20T08:38:56Z", "hours": 0.7764, "text": "I have started working on the Mission Control: Meow Website! I created the initial landing page, added a navigation bar, and added the structure for the rest of the features."}]...
|
Title: Mission Control: Meow by @ThatChillCat | St Title: Mission Control: Meow by @ThatChillCat | Stardance
Devlogs:
I have started working on the Mission Control: Meow Website! I created the initial landing page, added a navigation bar, and added the structure for the rest of the features.
Building the Home Page. built the home (hero) section added projects title and tagline wrote a short into for (all most) all sections improved overall layout of the webpage. Implemented the first version of The Meow Button™. It is a button. when you click on it, it plays a random meow sound effect from 8 meow files Things I learned Learned abt how to use javascript How to use addEventListener() arrays math functions
I have enhanced the whole webpage by adding a starry background generated by JS....
|
1793346612.5763302
|
1793951412.5763302
|
|
15333
|
My very own WebOS by @yoshida | Stardance
|
yoshida
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @yoshida | Stardance
|
1793396916.2744846
|
1794001716.2744846
|
|
15334
|
Planets sticks by @Nurymm | Stardance
|
Nurymm
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Planets sticks by @Nurymm | Stardance
|
1793389679.3297822
|
1793994479.3297822
|
|
15335
|
Untitled by @Das_F1sHy312 | Stardance
|
Das_F1sHy312
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @Das_F1sHy312 | Stardance
|
1793354033.8014734
|
1793958833.8014734
|
|
15336
|
My awesome macropad! by @kris_jaiswal | Stardance
|
kris_jaiswal
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @kris_jaiswal | Sta Title: My awesome macropad! by @kris_jaiswal | Stardance...
|
1793188416.640845
|
1793793216.640845
|
|
15337
|
Quakeweb by @ismailtpl | Stardance
|
ismailtpl
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Quakeweb by @ismailtpl | Stardance
|
1793418462.0724266
|
1794023262.0724266
|
|
15338
|
My very own WebOS by @oozgurbuyukcan26 | Stardance
|
oozgurbuyukcan26
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @oozgurbuyukcan26 | St Title: My very own WebOS by @oozgurbuyukcan26 | Stardance...
|
1793224264.5248349
|
1793829064.5248349
|
|
15339
|
My first slack bot! by @Nourcin_2012 | Stardance
|
Nourcin_2012
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Nourcin_2012 | Star Title: My first slack bot! by @Nourcin_2012 | Stardance...
|
1793270857.947451
|
1793875657.947451
|
|
15340
|
A Website by @Temuulen | Stardance
|
Temuulen
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: A Website by @Temuulen | Stardance
|
1793231795.9142833
|
1793836595.9142833
|
|
15341
|
My awesome macropad! by @GlitchJK | Stardance
|
GlitchJK
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @GlitchJK | Stardan Title: My awesome macropad! by @GlitchJK | Stardance...
|
1793317934.4945247
|
1793922734.4945247
|
|
15342
|
My very own WebOS by @Kaulquappenjaeger | Stardanc My very own WebOS by @Kaulquappenjaeger | Stardance...
|
Kaulquappenjaeger
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Kaulquappenjaeger | S Title: My very own WebOS by @Kaulquappenjaeger | Stardance...
|
1793400993.5347276
|
1794005793.5347276
|
|
15343
|
Untitled by @yakra | Stardance
|
yakra
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @yakra | Stardance
|
1792932813.7793512
|
1793796813.7793512
|
|
15344
|
third person game by @moayed_jouini | Stardance
|
moayed_jouini
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: third person game by @moayed_jouini | Stard Title: third person game by @moayed_jouini | Stardance...
|
1793354162.2194252
|
1793958962.2194252
|
|
15345
|
My very own WebOS by @elibrake | Stardance
|
elibrake
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @elibrake | Stardance
|
1793361313.1336038
|
1793966113.1336038
|
|
15346
|
Arcanum by @etheria | Stardance
|
etheria
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Arcanum by @etheria | Stardance
|
1793418722.564864
|
1794023522.564864
|
|
15347
|
Untitled project by @Mishari | Stardance
|
Mishari
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @Mishari | Stardance
|
1793418712.1692016
|
1794023512.1692016
|
|
15348
|
Strategize by @Osmosis | Stardance
|
Osmosis
|
0
|
1.01
|
0
|
[]
|
[{"post_id": 6346, "ts": "2026 [{"post_id": 6346, "ts": "2026-06-10T18:03:52Z", "hours": 1.0086, "text": "Devlog 1 Built a strategy engine from scratch this stretch. The interesting part wasn’t the code, it was figuring out what the game actually rewards, because once I read the manual carefully the “obvious” strategy turned out to be wrong. The 2026 game has two goals (suppression and extinguisher), both worth 1 point per ball. Looks symmetric. It isn’t. Only the suppression goal gets multiplied by your end-game climb, and the climb multiplier is shared across all three robots on your alliance (three robots at the top zone multiply your combined suppression total by 1.9). The extinguisher, meanwhile, is a shared global pot that all six robots including your opponents feed and all six receive. So feeding the extinguisher barely helps you win. The whole tool is built around surfacing that asymmetry, because it’s the thing that’s easy to get wrong by just reading the point values. How it’s built: there’s a pure scoring engine (no UI, no network, no AI, just math) that I can actually test, sitting behind a React frontend that just renders its results. That separation meant I could later do a full visual redesign without touching a single line of the math. The engine composes a cycle (travel, intake, travel, deposit), reserves time for the climb, floors the number of full cycles that fit in 150 seconds, applies accuracy and reliability, and then runs the real scoring formula with the climb multiplier. Everything’s shown as arithmetic, not just a final number, so nobody has to take it on faith. The trust gate is the part I’m most deliberate about. Before any result is shown as real, you pass a “verify and lock” screen that lists every scoring number in plain language next to what it means. Editing any value automatically un-verifies the config, and unverified results get stamped “do not trust” everywhere. This is because the entire engine is only as correct as the numbers I typed in from the manual, so one transcription error has to be catchable, not silent. Two features I’m happy with. There’s an alliance screen where you change each robot’s climb zone and watch the shared multiplier move live, it makes the “coordinate your climbs” insight visible instead of theoretical (in my worked example, sharing the multiplier across the alliance instead of each robot climbing for only itself is worth about 94 points). And there’s an archetype comparison built specifically to settle a debate on my team: some people thought a storage bot feeding human players was a good plan. So I modeled three strategies through the same engine with a live slider for human-player speed. You can crank the human feed rate past anything physically plausible and the feeder strategy still loses, because its points are unmultiplied and shared. That’s a much better way to win an argument than just asserting it. It’s a free static site on Cloudflare, 58 tests, no backend. Honest limitation I’m keeping visible: it models a robot in a vacuum, no defense, no congestion, no ball scarcity, so it’s for relative comparison and the two big decisions (climb or not, what to improve), not absolute predictions. Feed it measured cycle times from practice and it gets sharper, so thats what I’ll try to implement in the coming devlogs."}]...
|
Title: Strategize by @Osmosis | Stardance
Devlogs Title: Strategize by @Osmosis | Stardance
Devlogs:
Devlog 1 Built a strategy engine from scratch this stretch. The interesting part wasn’t the code, it was figuring out what the game actually rewards, because once I read the manual carefully the “obvious” strategy turned out to be wrong. The 2026 game has two goals (suppression and extinguisher), both worth 1 point per ball. Looks symmetric. It isn’t. Only the suppression goal gets multiplied by your end-game climb, and the climb multiplier is shared across all three robots on your alliance (three robots at the top zone multiply your combined suppression total by 1.9). The extinguisher, meanwhile, is a shared global pot that all six robots including your opponents feed and all six receive. So feeding the extinguisher barely helps you win. The whole tool is built around surfacing that asymmetry, because it’s the thing that’s easy to get wrong by just reading the point values. How it’s built: there’s a pure scoring engine (no UI, no network, no AI, just math) that I can actually test, sitting behind a React frontend that just renders its results. That separation meant I could later do a full visual redesign without touching a single line of the math. The engine composes a cycle (travel, intake, travel, deposit), reserves time for the climb, floors the number of full cycles that fit in 150 seconds, applies accuracy and reliability, and then runs the real scoring formula with the climb multiplier. Everything’s shown as arithmetic, not just a final number, so nobody has to take it on faith. The trust gate is the part I’m most deliberate about. Before any result is shown as real, you pass a “verify and lock” screen that lists every scoring number in plain language next to what it means. Editing any value automatically un-verifies the config, and unverified results get stamped “do not trust” everywhere. This is because the entire engine is only as correct as the numbers I typed in from the manual, so one transcription error has to be catchable, not silent. Two features I’m happy with. There’s an alliance screen where you change each robot’s climb zone and watch the shared multiplier move live, it makes the “coordinate your climbs” insight visible instead of theoretical (in my worked example, sharing the multiplier across the alliance instead of each robot climbing for only itself is worth about 94 points). And there’s an archetype comparison built specifically to settle a debate on my team: some people thought a storage bot feeding human players was a good plan. So I modeled three strategies through the same engine with a live slider for human-player speed. You can crank the human feed rate past anything physically plausible and the feeder strategy still loses, because its points are unmultiplied and shared. That’s a much better way to win an argument than just asserting it. It’s a free static site on Cloudflare, 58 tests, no backend. Honest limitation I’m keeping visible: it models a robot in a vacuum, no defense, no congestion, no ball scarcity, so it’s for relative comparison and the two big decisions (climb or not, what to improve), not absolute predictions. Feed it measured cycle times from practice and it gets sharper, so thats what I’ll try to implement in the coming devlogs....
|
1793537745.521502
|
1794142545.521502
|
|
15349
|
My first slack bot! by @Start_codon | Stardance
|
Start_codon
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Start_codon | Stard Title: My first slack bot! by @Start_codon | Stardance...
|
1793573288.7106538
|
1794178088.7106538
|
|
15350
|
My first slack bot! by @nandan_vaddi | Stardance
|
nandan_vaddi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @nandan_vaddi | Star Title: My first slack bot! by @nandan_vaddi | Stardance...
|
1793342942.0016408
|
1793947742.0016408
|