|
58802
|
Harmless virus by @Jackson2009 | Stardance
|
Jackson2009
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Harmless virus by @Jackson2009 | Stardance
|
1793515694.2276332
|
1794120494.2276332
|
|
58803
|
EonPulse by @nithish1201 | Stardance
|
nithish1201
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-06T13:04:34Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "EonPulse is basically a new tab page that I made because the normal browser new tab pages are kinda boring. it has the normal stuff like the clock, search and shortcuts but i wanted to add some more interesting things to it too, so it has stuff like the age of the universe, Mars time, solar activity and NASA’s Astronomy Picture of the Day. the main idea was to make something that looks simple but has a lot of little things going on in the background.", "repo": "https://github.com/Nithish1201-code/EonPulse", "demo": "https://github.com/Nithish1201-code/EonPulse/releases/tag/v1"}]...
|
[{"post_id": 62839, "ts": "202 [{"post_id": 62839, "ts": "2026-09-06T11:28:23Z", "hours": 0.7125, "text": "DEVLOG 4: i think im gonna ship it after this! I think it turned out really nice. I made the background oled black, increased the brightness of the lines, made it unscrollable so its like an actual new tab, and made sure everything works."}, {"post_id": 62798, "ts": "2026-09-06T09:54:44Z", "hours": 1.1594, "text": "DEVLOG 3: things were pretty easy going as i just copied the design and js for the background from my personal portfolio project (which has been shipped on here btw) so mostly I only had to hook up APOD, refine the math of the mars sol calculation, and making some minor refinements here and there, next devlog will be me completeing widgets and refinement"}, {"post_id": 62713, "ts": "2026-09-06T06:18:31Z", "hours": 0.6786, "text": "Devlog #2 Yoooooo i got the actual fetch and formatting of the date up and running."}, {"post_id": 62647, "ts": "2026-09-06T03:30:44Z", "hours": 0.495, "text": "First devlog!! I got the basic structure up and deployed with github actions. Very basic rn but im working on it"}]...
|
Title: EonPulse by @nithish1201 | Stardance
Devlo Title: EonPulse by @nithish1201 | Stardance
Devlogs:
First devlog!! I got the basic structure up and deployed with github actions. Very basic rn but im working on it
Devlog #2 Yoooooo i got the actual fetch and formatting of the date up and running.
DEVLOG 3: things were pretty easy going as i just copied the design and js for the background from my personal portfolio project (which has been shipped on here btw) so mostly I only had to hook up APOD, refine the math of the mars sol calculation, and making some minor refinements here and there, next devlog will be me completeing widgets and refinement
DEVLOG 4: i think im gonna ship it after this! I think it turned out really nice. I made the background oled black, increased the brightness of the lines, made it unscrollable so its like an actual new tab, and made sure everything works.
Ships:
EonPulse is basically a new tab page that I made because the normal browser new tab pages are kinda boring. it has the normal stuff like the clock, search and shortcuts but i wanted to add some more interesting things to it too, so it has stuff like the age of the universe, Mars time, solar activity and NASA’s Astronomy Picture of the Day. the main idea was to make something that looks simple but has a lot of little things going on in the background....
|
1793703367.9682531
|
1794567367.9682531
|
|
58804
|
hack pad by @slayer-EX | Stardance
|
slayer-EX
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: hack pad by @slayer-EX | Stardance
|
1793515695.3379688
|
1794120495.3379688
|
|
58805
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1793767923.026435
|
1794631923.026435
|
|
58806
|
My awesome macropad! by @ahmedashfaqfarooqui | Sta My awesome macropad! by @ahmedashfaqfarooqui | Stardance...
|
ahmedashfaqfarooqui
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @ahmedashfaqfarooqu Title: My awesome macropad! by @ahmedashfaqfarooqui | Stardance...
|
1793515699.2189481
|
1794120499.2189481
|
|
58807
|
My awesome macropad! by @8989ssh | Stardance
|
8989ssh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @8989ssh | Stardanc Title: My awesome macropad! by @8989ssh | Stardance...
|
1793638309.06269
|
1794502309.06269
|
|
58808
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1793767926.3962908
|
1794631926.3962908
|
|
58809
|
Delulu is Solulu by @amhisanglikarboltoy_01 | Star Delulu is Solulu by @amhisanglikarboltoy_01 | Stardance...
|
amhisanglikarboltoy_01
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Delulu is Solulu by @amhisanglikarboltoy_01 Title: Delulu is Solulu by @amhisanglikarboltoy_01 | Stardance...
|
1793515700.098559
|
1794120500.098559
|
|
58810
|
Delulu is Solulu by @amhisanglikarboltoy_01 | Star Delulu is Solulu by @amhisanglikarboltoy_01 | Stardance...
|
amhisanglikarboltoy_01
|
0
|
4.94
|
0
|
[]
|
[{"post_id": 63521, "ts": "202 [{"post_id": 63521, "ts": "2026-09-07T12:53:21Z", "hours": 4.94, "text": "An app for the curios minds"}]...
|
Title: Delulu is Solulu by @amhisanglikarboltoy_01 Title: Delulu is Solulu by @amhisanglikarboltoy_01 | Stardance
Devlogs:
An app for the curios minds...
|
1793515700.9929116
|
1794120500.9929116
|
|
58811
|
STARLOG by @Dipson | Stardance
|
Dipson
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: STARLOG by @Dipson | Stardance
|
1793515703.0481946
|
1794120503.0481946
|
|
58812
|
Cyber Rider by @srauniyar311 | Stardance
|
srauniyar311
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T12:01:33Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have made physics based website explaning the concept of Electron in a interactive and beautiful way. Most of the the explaination is done in readme of how this website was build and what were its flaws and how it was fixed", "repo": "https://github.com/srauniyar-bit/Electron", "demo": "https://electron-gold.vercel.app/"}]...
|
[{"post_id": 71724, "ts": "202 [{"post_id": 71724, "ts": "2026-09-21T11:53:49Z", "hours": 3.7561, "text": "Its normal jump game , a first website game making it as simple and understanding the mechanics of the website game"}]...
|
Title: Cyber Rider by @srauniyar311 | Stardance
D Title: Cyber Rider by @srauniyar311 | Stardance
Devlogs:
Its normal jump game , a first website game making it as simple and understanding the mechanics of the website game
Ships:
I have made physics based website explaning the concept of Electron in a interactive and beautiful way. Most of the the explaination is done in readme of how this website was build and what were its flaws and how it was fixed...
|
1793807339.4363344
|
1793893739.4363344
|
|
58813
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1793767927.3397684
|
1794631927.3397684
|
|
58814
|
My own site! by @minhanh_erina | Stardance
|
minhanh_erina
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @minhanh_erina | Stardance
|
1793515703.944427
|
1794120503.944427
|
|
58815
|
My awesome macropad! by @mercccc | Stardance
|
mercccc
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @mercccc | Stardanc Title: My awesome macropad! by @mercccc | Stardance...
|
1793515707.008875
|
1794120507.008875
|
|
58816
|
RIFT OS by @ramitbuilds | Stardance
|
ramitbuilds
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: RIFT OS by @ramitbuilds | Stardance
|
1793515711.5154707
|
1794120511.5154707
|
|
58817
|
tars by @larrylgnd33 | Stardance
|
larrylgnd33
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: tars by @larrylgnd33 | Stardance
|
1793515712.4390147
|
1794120512.4390147
|
|
58818
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1793767931.5408142
|
1794631931.5408142
|
|
58819
|
Tab Rot VS Code by @madushankarajapaksha999 | Star Tab Rot VS Code by @madushankarajapaksha999 | Stardance...
|
madushankarajapaksha999
|
1
|
15.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-27T05:23:53Z", "hours": 15.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built Tab Rot, a VS Code extension that makes your files visually decay if you ignore them. The most annoying part was mocking the VS Code API to write unit tests, plus fixing a random Node js crash when I tried to publish. Im super proud of the actual visual rot effect and that the state save even if you restart VS Code. If you wanna test it, just drop the decay timer in the setting to like 1 minute, otherwise you’ll be waiting an hour to see it work.", "repo": "https://github.com/MadushankaRajapaksha/Tab-Rot-VS-Code", "demo": "https://github.com/MadushankaRajapaksha/Tab-Rot-VS-Code/releases/tag/v1.0.1"}]...
|
[{"post_id": 74312, "ts": "202 [{"post_id": 74312, "ts": "2026-09-27T05:12:52Z", "hours": 1.1833, "text": "deployed manually with vsce publish instead. Wrote a full README with install guide, all settings, presets, and troubleshooting. Extension is live on the Repo Releases.."}, {"post_id": 73902, "ts": "2026-09-26T09:16:51Z", "hours": 0.7158, "text": "Fixedd command registration, compilation paths, settings panel display, and database state persistence acrosssrc/extension.ts`, src/settingsPanel.ts, and src/tabTracker.ts"}, {"post_id": 73863, "ts": "2026-09-26T06:49:16Z", "hours": 2.0989, "text": "I built a proper settings webview panel for Tab Rot because asking users to edit raw JSON for threhold values felt hostile. Made a settingsPanel.ts that opens a dedicated webview tab with a clean form — three number inputs for the decay thresholds (stage 1, 2, 3 in minute), three toggle switches for decorations, status bar, and notifications. The whole thing uses VS Code’s CSS variables so it automatically matches the user’s theme — dark mode, light mode, high contrast, whatever. It looks native.The panel is a singleton — if you already have it open, running the command again just focuses the existing panel instead of spawning duplicates. The HTML is inline because it’s small enough that a separate file feels like overkill, but it’s structured with proper labels, hints explaining what each value means, and a little visual preview of the three decay stages as colored badges. The toggles are custom CSS switches that feels nicer than raw checkboxes."}, {"post_id": 73539, "ts": "2026-09-25T10:57:58Z", "hours": 1.6992, "text": "Testing today I finally sat down to write unit tests for tabTracker.ts. I’ve been putting this off becaus, honestly, testing feels like homework when you just want to see the thing work. But I knew if I didn’t write tests now, Id never catch the bug s hiding in the decay logic."}, {"post_id": 72968, "ts": "2026-09-24T04:05:08Z", "hours": 2.2619, "text": "built the sidebar tree view for Tab Rot. Made a decayView.ts with a DecayTreeProvider that implements VS Code s TreeDataProvider interface. It pulls all decayed tabs from the tracker, sorts them by stage with the worst rot first, and renders each one as a DecayItem with the filename as the label, a stage emoji + name as the description (like “🍂 Faded” or “💀 Cracked”), and a tooltip showing how long it’s been since the file was last visited. Each item gets a stage-specific SVG icon and clicking it’s opens the file in the editor.I also created four littl SVG leaf icons in resources/icons/ — a green one for fresh tabs, orange-yellow for faded, brown with dots for grainy, and a dark cracked one for stage 3. They’re just simple leaf shapes but the color coding makes the sidebar immediately scannable.Wired the tree provider into extension.ts and registered it under the view ID tabRot.decayedTabs in package.json. The view lives in the Explorer sidebar and only shows up when there are actually decayed tabs, thanks to a context key tabRot.hasDecayedTabs that I set on every refresh. So if all your tabs are fresh, the sidebar section disappears completely instead of sitting there empty and sad.Added a tabRot.openDecayedTab command that the tree items use to open files when clicked. Since opening the file triggers onDidChangeActiveTextEditor, the tab gets touched and restored automatically, complete with the green flash animation from Phase 5. So the flow is: see rotting tab in sidebar → click it → file opens → green flash → tab is fresh again. Very satisfying.I also updated all the refresh calls so the sidebar stays in sync — it refreshes after every tab touch, close, restore command, and interval tick. And the showDecayedTabs command from Phase 4 now actually works because the view is registered, so that unhandled rejection error is gone."}, {"post_id": 69019, "ts": "2026-09-16T07:07:50Z", "hours": 0.6325, "text": "I builts the restoration flash animation today because instantly snapping from cracked stage-3 to pristine stage-0 felt robotic. I wanted a little “healing” moment — like the file is literally coming back to life. Added a flashRestore() method to tabDecorator.ts that chains two temporary decoration flashes: a bright green pulse at 0ms, a softer second pulse at 300ms, then clear at 600ms. The tab breathes green for a second and then settles into its clean state. I also added a “✨ Tab restored!” info message because I’m a sucker for positive feedback.I wired the flash into two places: when you actively switch to a decayed tab (it detects the old stage was > 0, touches it, then flashes), and when you run the restoreTab comand manually. So whether you click into a rotting file or hit the command palette, you get the dopamine hit.I also added an optional decay notification system. Every 60 seconds during the interval tick, it checks if any tab crossed into a higher decay stage. If tabRot.showNotifications is enabled, it pops a toast like “📉 utils.ts reached stage 2 (unvisited for 1440 minutes)”. I defaulted it to false because getting spammed every minute that your tabs are dying would make people uninstall immediatey. But for accountability masochists, its there."}, {"post_id": 68591, "ts": "2026-09-15T11:16:32Z", "hours": 1.4983, "text": "I built the status bar and command layer for Tab Rot. Made a statusBar.ts that creates a StatusBarItem shoved over to the right side of the bar at priority 100. It shows a little 🍂 leaf emoji followed by how many tabs are rotting — like “🍂 3 rotting” — but only when there’s actually something decaying. When the count hits zero it hides itself completely so it’s not sitting there being useless and cluttering the bar. Clicking it is supposed to focus the sidebar view later, but since I haven’t built the sidebar yet, it’s basically a button that promises something it can’t deliver. I also gated it behind the tabRot.enableStatusBar config so people can kill it if they want.Registered three commands in package.json — tabRot.restoreTab to freshen up whatever file I’m currently staring at, tabRot.restoreAllTabs to reset every tracked tab back to stage 0, and tabRot.showDecayedTabs which is supposed to focus the sidebar. I wired all the handlers in extension.ts. restoreTab grabs the active editor URI, calls tracker.restoreTab(), then immediately refreshes the decorations and status bar so the rot vanishes right away. restoreAllTabs does the same thing but for everything and pops up a little info message saying “✨ All tabs restored!” because I wanted it to feel satisfying. showDecayedTabs tries to execute tabRot.decayedTabs.focus which is a VS Code auto-generated command for tree views.I also added a context menu to contributes.menus.editor/title/context so when you right-click in the editor area you get “Restore Tab” and “Restore All Tabs” right there without having to open the Command Palette. I grouped them under 9_tabRot so they sit in their own little section instead of getting drowned in the giant VS Code right-click menu."}, {"post_id": 65256, "ts": "2026-09-10T08:09:52Z", "hours": 1.3453, "text": "Implimented Visual Decay Decorations I built the entire visual decay layer for Tab Rot over the past two days. Created tabDecorator.ts with three TextEditorDecorationTyp instances one for each decay stage. Stage 1 is a slight washout with opacity: 0.75 and a warm background tint. Stage 2 gets heavier with opacity: 0.55, a dashed brown border, and a darker background. Stage 3 is the nasty one — opacity: 0.4, solid border, wavy strikethrough, and a dark background that makes the code genuinely look abandoned. The updateDecorations() method loops through all visibleTextEditors, grabs the decay stage from the tracker, clears any previous decorations (super important so they dont stack), and applies a full-document Range if the stage is above zero. I register all decoration types in context.subscriptions so VS Code cleans them up on deactivate. I also registered custom theme colors in package.json under contributes.colors — background tints and overview ruler colors for all three stages, with separate defaults for dark, light, and high-contrast themes. Then I swapped out all the hardcoded rgba() values in the decorator for new vscode.ThemeColor(…) so user can customize the palette in their settings.json if they want. Wired everything into extension.ts — updateDecorations() gets called after activation, after every onDidChangeActiveTextEditor (so visiting a tab instantly removes the rot), after onDidCloseTextDocument (cleanup), inside the 60-second interval (so decay progresses live), and on onDidChangeVisibleTextEditors (for split views)."}, {"post_id": 64655, "ts": "2026-09-09T07:04:21Z", "hours": 0.8492, "text": "Wiring the Engine + Config Schema I wired up the TabTracker into the actual extension entry point today. Made an extension.ts that instantiates the trackr when VS Code activates the extension, then immediately scans all already-open text documents and registers them with touchTab() so nothing gets lost if the user already has files open. I hooked into onDidChangeActiveTextEditr to call touchTab() every time the user switches tabs, and onDidCloseTextDocument to remove tabs when files close. I also set up a setInterval that fires every 60 second to call updateAllStages() so the decay actually progresses in real time without waiting for someone to interact.I also completely redid the configuration schem in package.json. Instead of the array-based thresholds I had before, I switched to individual keys : tabRot.stage1Threshold, stage2Threshold, and stage3Threshold with defaults of 60, 1440, and 10080 minutes respectively. That maps to 1 hour, 1 day, and 1 week which feels way more intuitive than the old array. I also added two boolean flags — enableDecorations and enableStatusBar — so users can toggle the UI features later without digging through code.I updated tabTracker.ts to read from the individual config key instead of the array, and kept the hot-reload listener so if someone edits their settings the thresholds update live. I peppered console.log everywhere for debugging — activation messages, tab touch events, removals, and a periodic log of how many decayed tabs exist."}, {"post_id": 63613, "ts": "2026-09-07T15:18:58Z", "hours": 1.4383, "text": "Core State Engine — tabTracker.ts I finally started the actual VS Code extension part of Tab Rot after planning everything out. Today’s goal was just the core state engine — basically tracking when each file was last visited and making sure it survives if you close and reopen VS Code. I made a tabTracker.ts file that has a TabState interface and a TabTracker class. The interface is super strict with the decay stages locked to 0 | 1 | 2 | 3 which felt like good TypeScript practice but also kind of a pain later.The tracker uses a Map to hold everything in memory, but it loads from and saves to context.workspaceState so the data persists across restarts. I added all the main methods — touchTab() to mark something as visited right now, removeTab() when a file closes, getDecayStage() to figure out how rotten a tab is based on the time thresholds, and getDecayedTabs() to spit out everything that’s stage 1 or higher sorted by how dead it is. I also threw in restoreTab() and restoreAllTabs() for when you want to pretend you never abandoned that file.I set it up to read the decay thresholds from VS Code settings (tabRot.decayThresholds) and even made it hot-reload when you change the config without restarting the whole editor. Oh and I added a debounced save because I realized it would be stupid to write to disk every single time you switch tab"}, {"post_id": 63394, "ts": "2026-09-07T06:24:47Z", "hours": 0.5092, "text": "Planned the Tab Root Project Today, I planned the development roadmap for my Tab Root VS Code extension. After finishing the initial project setup, I broke the project into smaller tasks and subtasks so I can develop the extenssion step by step.I created a task list covering the main parts of the project, including tab tracking, the decay system, tab activity detection, visual tab changes, restore functionality, user configuration, testing, documentation, and the final release.Breaking the project into small tasks should make it easier to track my progress and understand what I need to work on next. I also organized the tasks into diffarent phase so I can focus on building the core functionality before moving on to the UI and release."}, {"post_id": 62927, "ts": "2026-09-06T13:53:50Z", "hours": 0.7317, "text": "Implemented Project Structure What I worked on:Today, I started working on my first VS Code extension, called Tab Root. I initialized the project and set up Git for version control. I also created the basic file and folder structure for the extension and configured the project to use TypeScript.After setting everything up, I created my first working VS Code extension. I added a basic VS Code command and tested it successfully inside VS Code. This was my first time creating and running an extension, so getting the basic setup working was an important first step for the project."}]...
|
Title: Tab Rot VS Code by @madushankarajapaksha999 Title: Tab Rot VS Code by @madushankarajapaksha999 | Stardance
Devlogs:
Implemented Project Structure What I worked on:Today, I started working on my first VS Code extension, called Tab Root. I initialized the project and set up Git for version control. I also created the basic file and folder structure for the extension and configured the project to use TypeScript.After setting everything up, I created my first working VS Code extension. I added a basic VS Code command and tested it successfully inside VS Code. This was my first time creating and running an extension, so getting the basic setup working was an important first step for the project.
Planned the Tab Root Project Today, I planned the development roadmap for my Tab Root VS Code extension. After finishing the initial project setup, I broke the project into smaller tasks and subtasks so I can develop the extenssion step by step.I created a task list covering the main parts of the project, including tab tracking, the decay system, tab activity detection, visual tab changes, restore functionality, user configuration, testing, documentation, and the final release.Breaking the project into small tasks should make it easier to track my progress and understand what I need to work on next. I also organized the tasks into diffarent phase so I can focus on building the core functionality before moving on to the UI and release.
Core State Engine — tabTracker.ts I finally started the actual VS Code extension part of Tab Rot after planning everything out. Today’s goal was just the core state engine — basically tracking when each file was last visited and making sure it survives if you close and reopen VS Code. I made a tabTracker.ts file that has a TabState interface and a TabTracker class. The interface is super strict with the decay stages locked to 0 | 1 | 2 | 3 which felt like good TypeScript practice but also kind of a pain later.The tracker uses a Map to hold everything in memory, but it loads from and saves to context.workspaceState so the data persists across restarts. I added all the main methods — touchTab() to mark something as visited right now, removeTab() when a file closes, getDecayStage() to figure out how rotten a tab is based on the time thresholds, and getDecayedTabs() to spit out everything that’s stage 1 or higher sorted by how dead it is. I also threw in restoreTab() and restoreAllTabs() for when you want to pretend you never abandoned that file.I set it up to read the decay thresholds from VS Code settings (tabRot.decayThresholds) and even made it hot-reload when you change the config without restarting the whole editor. Oh and I added a debounced save because I realized it would be stupid to write to disk every single time you switch tab
Wiring the Engine + Config Schema I wired up the TabTracker into the actual extension entry point today. Made an extension.ts that instantiates the trackr when VS Code activates the extension, then immediately scans all already-open text documents and registers them with touchTab() so nothing gets lost if the user already has files open. I hooked into onDidChangeActiveTextEditr to call touchTab() every time the user switches tabs, and onDidCloseTextDocument to remove tabs when files close. I also set up a setInterval that fires every 60 second to call updateAllStages() so the decay actually progresses in real time without waiting for someone to interact.I also completely redid the configuration schem in package.json. Instead of the array-based thresholds I had before, I switched to individual keys : tabRot.stage1Threshold, stage2Threshold, and stage3Threshold with defaults of 60, 1440, and 10080 minutes respectively. That maps to 1 hour, 1 day, and 1 week which feels way more intuitive than the old array. I also added two boolean flags — enableDecorations and enableStatusBar — so users can toggle the UI features later without digging through code.I updated tabTracker.ts to read from the individual config key instead of the array, and kept the hot-reload listener so if someone edits their settings the thresholds update live. I peppered console.log everywhere for debugging — activation messages, tab touch events, removals, and a periodic log of how many decayed tabs exist.
Implimented Visual Decay Decorations I built the entire visual decay layer for Tab Rot over the past two days. Created tabDecorator.ts with three TextEditorDecorationTyp instances one for each decay stage. Stage 1 is a slight washout with opacity: 0.75 and a warm background tint. Stage 2 gets heavier with opacity: 0.55, a dashed brown border, and a darker background. Stage 3 is the nasty one — opacity: 0.4, solid border, wavy strikethrough, and a dark background that makes the code genuinely look abandoned. The updateDecorations() method loops through all visibleTextEditors, grabs the decay stage from the tracker, clears any previous decorations (super important so they dont stack), and applies a full-document Range if the stage is above zero. I register all decoration types in context.subscriptions so VS Code cleans them up on deactivate. I also registered custom theme colors in package.json under contributes.colors — background tints and overview ruler colors for all three stages, with separate defaults for dark, light, and high-contrast themes. Then I swapped out all the hardcoded rgba() values in the decorator for new vscode.ThemeColor(…) so user can customize the palette in their settings.json if they want. Wired everything into extension.ts — updateDecorations() gets called after activation, after every onDidChangeActiveTextEditor (so visiting a tab instantly removes the rot), after onDidCloseTextDocument (cleanup), inside the 60-second interval (so decay progresses live), and on onDidChangeVisibleTextEditors (for split views).
I built the status bar and command layer for Tab Rot. Made a statusBar.ts that creates a StatusBarItem shoved over to the right side of the bar at priority 100. It shows a little 🍂 leaf emoji followed by how many tabs are rotting — like “🍂 3 rotting” — but only when there’s actually something decaying. When the count hits zero it hides itself completely so it’s not sitting there being useless and cluttering the bar. Clicking it is supposed to focus the sidebar view later, but since I haven’t built the sidebar yet, it’s basically a button that promises something it can’t deliver. I also gated it behind the tabRot.enableStatusBar config so people can kill it if they want.Registered three commands in package.json — tabRot.restoreTab to freshen up whatever file I’m currently staring at, tabRot.restoreAllTabs to reset every tracked tab back to stage 0, and tabRot.showDecayedTabs which is supposed to focus the sidebar. I wired all the handlers in extension.ts. restoreTab grabs the active editor URI, calls tracker.restoreTab(), then immediately refreshes the decorations and status bar so the rot vanishes right away. restoreAllTabs does the same thing but for everything and pops up a little info message saying “✨ All tabs restored!” because I wanted it to feel satisfying. showDecayedTabs tries to execute tabRot.decayedTabs.focus which is a VS Code auto-generated command for tree views.I also added a context menu to contributes.menus.editor/title/context so when you right-click in the editor area you get “Restore Tab” and “Restore All Tabs” right there without having to open the Command Palette. I grouped them under 9_tabRot so they sit in their own little section instead of getting drowned in the giant VS Code right-click menu.
I builts the restoration flash animation today because instantly snapping from cracked stage-3 to pristine stage-0 felt robotic. I wanted a little “healing” moment — like the file is literally coming back to life. Added a flashRestore() method to tabDecorator.ts that chains two temporary decoration flashes: a bright green pulse at 0ms, a softer second pulse at 300ms, then clear at 600ms. The tab breathes green for a second and then settles into its clean state. I also added a “✨ Tab restored!” info message because I’m a sucker for positive feedback.I wired the flash into two places: when you actively switch to a decayed tab (it detects the old stage was > 0, touches it, then flashes), and when you run the restoreTab comand manually. So whether you click into a rotting file or hit the command palette, you get the dopamine hit.I also added an optional decay notification system. Every 60 seconds during the interval tick, it checks if any tab crossed into a higher decay stage. If tabRot.showNotifications is enabled, it pops a toast like “📉 utils.ts reached stage 2 (unvisited for 1440 minutes)”. I defaulted it to false because getting spammed every minute that your tabs are dying would make people uninstall immediatey. But for accountability masochists, its there.
built the sidebar tree view for Tab Rot. Made a decayView.ts with a DecayTreeProvider that implements VS Code s TreeDataProvider interface. It pulls all decayed tabs from the tracker, sorts them by stage with the worst rot first, and renders each one as a DecayItem with the filename as the label, a stage emoji + name as the description (like “🍂 Faded” or “💀 Cracked”), and a tooltip showing how long it’s been since the file was last visited. Each item gets a stage-specific SVG icon and clicking it’s opens the file in the editor.I also created four littl SVG leaf icons in resources/icons/ — a green one for fresh tabs, orange-yellow for faded, brown with dots for grainy, and a dark cracked one for stage 3. They’re just simple leaf shapes but the color coding makes the sidebar immediately scannable.Wired the tree provider into extension.ts and registered it under the view ID tabRot.decayedTabs in package.json. The view lives in the Explorer sidebar and only shows up when there are actually decayed tabs, thanks to a context key tabRot.hasDecayedTabs that I set on every refresh. So if all your tabs are fresh, the sidebar section disappears completely instead of sitting there empty and sad.Added a tabRot.openDecayedTab command that the tree items use to open files when clicked. Since opening the file triggers onDidChangeActiveTextEditor, the tab gets touched and restored automatically, complete with the green flash animation from Phase 5. So the flow is: see rotting tab in sidebar → click it → file opens → green flash → tab is fresh again. Very satisfying.I also updated all the refresh calls so the sidebar stays in sync — it refreshes after every tab touch, close, restore command, and interval tick. And the showDecayedTabs command from Phase 4 now actually works because the view is registered, so that unhandled rejection error is gone.
Testing today I finally sat down to write unit tests for tabTracker.ts. I’ve been putting this off becaus, honestly, testing feels like homework when you just want to see the thing work. But I knew if I didn’t write tests now, Id never catch the bug s hiding in the decay logic.
I built a proper settings webview panel for Tab Rot because asking users to edit raw JSON for threhold values felt hostile. Made a settingsPanel.ts that opens a dedicated webview tab with a clean form — three number inputs for the decay thresholds (stage 1, 2, 3 in minute), three toggle switches for decorations, status bar, and notifications. The whole thing uses VS Code’s CSS variables so it automatically matches the user’s theme — dark mode, light mode, high contrast, whatever. It looks native.The panel is a singleton — if you already have it open, running the command again just focuses the existing panel instead of spawning duplicates. The HTML is inline because it’s small enough that a separate file feels like overkill, but it’s structured with proper labels, hints explaining what each value means, and a little visual preview of the three decay stages as colored badges. The toggles are custom CSS switches that feels nicer than raw checkboxes.
Fixedd command registration, compilation paths, settings panel display, and database state persistence acrosssrc/extension.ts`, src/settingsPanel.ts, and src/tabTracker.ts
deployed manually with vsce publish instead. Wrote a full README with install guide, all settings, presets, and troubleshooting. Extension is live on the Repo Releases..
Ships:
I built Tab Rot, a VS Code extension that makes your files visually decay if you ignore them. The most annoying part was mocking the VS Code API to write unit tests, plus fixing a random Node js crash when I tried to publish. Im super proud of the actual visual rot effect and that the state save even if you restart VS Code. If you wanna test it, just drop the decay timer in the setting to like 1 minute, otherwise you’ll be waiting an hour to see it work....
|
1793807341.4326208
|
1793893741.4326208
|
|
58820
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1793767933.578118
|
1794631933.578118
|
|
58821
|
My first slack bot! by @niyogdai | Stardance
|
niyogdai
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @niyogdai | Stardanc Title: My first slack bot! by @niyogdai | Stardance...
|
1793515713.3160992
|
1794120513.3160992
|
|
58822
|
My awesome macropad! by @angelc | Stardance
|
angelc
|
0
|
6.74
|
0
|
[]
|
[{"post_id": 63406, "ts": "202 [{"post_id": 63406, "ts": "2026-09-07T07:06:14Z", "hours": 6.7431, "text": "Entire Macropad Went through the process of getting the idea of what I wanted to make, to looking at documentation on how the tutorial made it, to asking ai for some help (2nd attempt at a macropad bec the first didnt work which was my fault) learned a lot and how to route better then before, learned to look and find 3d models for various parts and enhanced my skills in Fusion 360, find all about it here"}]...
|
Title: My awesome macropad! by @angelc | Stardance Title: My awesome macropad! by @angelc | Stardance
Devlogs:
Entire Macropad Went through the process of getting the idea of what I wanted to make, to looking at documentation on how the tutorial made it, to asking ai for some help (2nd attempt at a macropad bec the first didnt work which was my fault) learned a lot and how to route better then before, learned to look and find 3d models for various parts and enhanced my skills in Fusion 360, find all about it here...
|
1793515714.2690606
|
1794120514.2690606
|
|
58823
|
Alram by @gumslingbudi | Stardance
|
gumslingbudi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Alram by @gumslingbudi | Stardance
|
1793515715.5521643
|
1794120515.5521643
|
|
58824
|
puzzlepad by @nzx37 | Stardance
|
nzx37
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: puzzlepad by @nzx37 | Stardance
|
1793515718.314954
|
1794120518.314954
|
|
58825
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1793767935.4977262
|
1794631935.4977262
|
|
58826
|
auraPad by @MrOstrichStudios | Stardance
|
MrOstrichStudios
|
0
|
18.75
|
0
|
[]
|
[{"post_id": 84931, "ts": "202 [{"post_id": 84931, "ts": "2026-10-30T15:53:12Z", "hours": 0.7561, "text": "final devlog stardance is ending and my parts have shipped to Ireland instead of India (rookie mistake) so i was not able to build it sadly. but production is ready! so umm i guess no certificate for me thou i tried :( bye people."}, {"post_id": 65904, "ts": "2026-09-11T11:00:46Z", "hours": 1.0481, "text": "devlog 7 ive made the firmware for my auraPad!!!"}, {"post_id": 65547, "ts": "2026-09-10T19:11:51Z", "hours": 5.7989, "text": "devlog 6 I’VE FINALLY MADE THE CAD SHELL!!! it didnt really felt like time was actually passing i was so locked in. but now at this point this looks so beautiful and filled with AURA!!! (phew im so tired; school in 6 hrs its midnight bye gn)"}, {"post_id": 65236, "ts": "2026-09-10T07:11:28Z", "hours": 2.5797, "text": "devlog 5 ive added 3d models to the board now!!!!! plus i was also trying to design the new case but got stuck so ill now check out some tutorials online! see-ya!"}, {"post_id": 64510, "ts": "2026-09-08T23:37:09Z", "hours": 2.7617, "text": "devlog 4 ->did upgrades to the pcb’s design (graphic) -> did a drc check (took me so long to understand and fix thank you google)"}, {"post_id": 63745, "ts": "2026-09-07T18:21:18Z", "hours": 2.3569, "text": "devlog 3 ive made a new schematic and new pcb ! everythings looks good. tmrw ill do cad part!"}, {"post_id": 63448, "ts": "2026-09-07T09:33:24Z", "hours": 1.1181, "text": "devlog #2 finally made the shell for the hackpad (still in tutorial) now i will be redesigning the pcb with 4 keys, rotary encoder and no screen (chads dont need screen) but leds and also a grayscale “CHAD” design!!!!! fire progress thou its taking too long ngl"}, {"post_id": 62847, "ts": "2026-09-06T11:35:52Z", "hours": 2.3278, "text": "devlog #1 ive made the schematic and pcb for the hackpad (3 keys is enough and i get to learn KiCad The cad part ate my head as Fusion was not installing so i tried to make it in OneShape and Blender but failed very badly. I got CloudFlare WARP now to install Fusion360 so wish me luck!"}]...
|
Title: auraPad by @MrOstrichStudios | Stardance
D Title: auraPad by @MrOstrichStudios | Stardance
Devlogs:
devlog #1 ive made the schematic and pcb for the hackpad (3 keys is enough and i get to learn KiCad The cad part ate my head as Fusion was not installing so i tried to make it in OneShape and Blender but failed very badly. I got CloudFlare WARP now to install Fusion360 so wish me luck!
devlog #2 finally made the shell for the hackpad (still in tutorial) now i will be redesigning the pcb with 4 keys, rotary encoder and no screen (chads dont need screen) but leds and also a grayscale “CHAD” design!!!!! fire progress thou its taking too long ngl
devlog 3 ive made a new schematic and new pcb ! everythings looks good. tmrw ill do cad part!
devlog 4 ->did upgrades to the pcb’s design (graphic) -> did a drc check (took me so long to understand and fix thank you google)
devlog 5 ive added 3d models to the board now!!!!! plus i was also trying to design the new case but got stuck so ill now check out some tutorials online! see-ya!
devlog 6 I’VE FINALLY MADE THE CAD SHELL!!! it didnt really felt like time was actually passing i was so locked in. but now at this point this looks so beautiful and filled with AURA!!! (phew im so tired; school in 6 hrs its midnight bye gn)
devlog 7 ive made the firmware for my auraPad!!!
final devlog stardance is ending and my parts have shipped to Ireland instead of India (rookie mistake) so i was not able to build it sadly. but production is ready! so umm i guess no certificate for me thou i tried :( bye people....
|
1793515720.1959782
|
1794120520.1959782
|
|
58827
|
My awesome macropad! by @vruthvi20 | Stardance
|
vruthvi20
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @vruthvi20 | Starda Title: My awesome macropad! by @vruthvi20 | Stardance...
|
1793515721.4139209
|
1794120521.4139209
|
|
58828
|
My awesome macropad! by @mach_speed | Stardance
|
mach_speed
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @mach_speed | Stard Title: My awesome macropad! by @mach_speed | Stardance...
|
1793515724.1027253
|
1794120524.1027253
|
|
58829
|
GPO Fishing Macro by @gabriel_ferreira | Stardance
|
gabriel_ferreira
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: GPO Fishing Macro by @gabriel_ferreira | St Title: GPO Fishing Macro by @gabriel_ferreira | Stardance...
|
1792936267.309366
|
1793800267.309366
|
|
58830
|
Pit Viper- Bot Destroyer by @Cooper_daGoat | Stard Pit Viper- Bot Destroyer by @Cooper_daGoat | Stardance...
|
Cooper_daGoat
|
0
|
0.3
|
0
|
[]
|
[{"post_id": 62703, "ts": "202 [{"post_id": 62703, "ts": "2026-09-06T06:03:10Z", "hours": 0.3, "text": "I built a speed increasing gearbox to give viper some tourqe!"}]...
|
Title: Pit Viper- Bot Destroyer by @Cooper_daGoat Title: Pit Viper- Bot Destroyer by @Cooper_daGoat | Stardance
Devlogs:
I built a speed increasing gearbox to give viper some tourqe!...
|
1793515725.0202868
|
1794120525.0202868
|
|
58831
|
My awesome macropad! by @rajputaryaman642 | Starda My awesome macropad! by @rajputaryaman642 | Stardance...
|
rajputaryaman642
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @rajputaryaman642 | Title: My awesome macropad! by @rajputaryaman642 | Stardance...
|
1793515729.3825123
|
1794120529.3825123
|
|
58832
|
Hustlenix Music by @Lalith | Stardance
|
Lalith
|
1
|
116.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-22T11:44:50Z", "hours": 116.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hustlenix Music v0.1 is ready to ship 🎧 10 months, a lot of code, and one questionable response to a music teacher later… This started because my school music teacher kept scolding me about my coarse singing voice. Most people would probably practice singing. I decided I was going to write music through code instead. My ego and my coding abilities apparently had other plans. 😭 That’s how I got into Strudel, a live-coding environment for making music. But somewhere along the way, I got a bigger idea. Instead of just writing compositions, why not build an entire music player around them? Something with a library, search, playback controls, and an editor, all wrapped in an interface that feels like an actual music app. That idea became Hustlenix Music . From a music experiment to an actual app The concept sounded simple enough: Strudel for the music, HTML, CSS, and JavaScript for the app. The implementation was another story. I wasn’t just trying to make a page that played audio. I wanted the experience around the music to feel complete, while keeping the ability to experiment with the compositions themselves. I also wanted the interface to feel familiar without making a straight copy of Spotify. I’ve been working on this for around 10 months. Not all that work made it into the devlogs, either. Some development time simply wasn’t recorded, so the logged hours aren’t a complete account of the project’s history. I also used Codex for a substantial part of the implementation, as disclosed in the project’s AI declaration. The goal was to build and finish the product, not pretend every line came directly from my keyboard. What’s in v0.1? The first beta includes: Six original instrumentals that users can listen to. Playback controls for play, pause, resume, and stop. Search to find music. A local library for the available tracks. A composition editor where changes can be previewed live. I’ve kept this release focused on original instrumentals. My experiments studying famous songs aren’t included in the beta. There’s plenty more I could add, but I don’t want the project stuck in development forever because I keep finding one more thing to tweak. Why ship it now? At some point, another feature isn’t as valuable as getting the current version in front of people. This beta is my first proper attempt at bringing the whole idea together: music made with Strudel, a music-player interface, and tools to experiment with compositions in one place. It’s not the final version of what I imagine Hustlenix Music could become. It’s the first version that brings the core idea into a usable product. And honestly, that’s a milestone worth reaching. What’s next? For now, I want to get this version out there, see how the experience holds up, and work out what genuinely needs improving. There will probably be bugs, rough edges, and ideas I’ll want to revisit. That’s part of shipping something instead of leaving it as an unfinished project. What began as a slightly ridiculous reaction to being criticised for my singing has turned into a project I’ve spent months building. I still can’t promise my singing has improved. But at least I built a music player. 💀 Hustlenix Music v0.1: let’s ship it. 🎵 Live demo: [https://hustlenix.github.io/strudelify/] 💻 Source code: [https://github.com/Hustlenix/strudelify]", "repo": "https://github.com/Hustlenix/strudelify", "demo": "https://hustlenix.github.io/strudelify/"}]...
|
[{"post_id": 81756, "ts": "202 [{"post_id": 81756, "ts": "2026-10-22T11:42:04Z", "hours": 0.685, "text": "Hustlenix Music v0.1: Ready to Ship 🎧 I think Hustlenix Music is finally ready for its first release! This project has been in the works for around 10 months, and it’s taken a lot longer than I originally expected. Not all the development time made it into the devlogs, but I’m happy with where it’s ended up. The v0.1 beta includes: 6 original instrumental compositions Play, pause, resume, and stop controls Music search A local library An editor where you can make changes to compositions and preview them live The main idea was to combine Strudel’s live-coded music with the experience of using a proper music player. I wanted something familiar to use, but with the ability to experiment with the music itself. For this beta, I’ve kept the focus on original instrumentals. My famous-song experiments aren’t included. A lot of the implementation was done with Codex, as explained in the project’s AI declaration. I’m shipping this version because I’d rather get the core experience out there than keep endlessly tweaking it without real feedback. This is v0.1, so there’s definitely more to improve. But for now, Hustlenix Music is ready to meet its first listeners."}, {"post_id": 81229, "ts": "2026-10-20T11:34:47Z", "hours": 4.8008, "text": "Devlog 3: Getting Ready to Ship v0.1 I think Hustlenix Music is finally ready to ship! 🎧 The v0.1 beta currently includes: Six original instrumental compositions Play, pause, resume, and stop controls Search for finding music A local music library An editor for previewing changes to compositions The goal for this first release is to get the core experience into people’s hands rather than keep adding features forever. One important detail: the beta focuses on original instrumentals. My studies of famous songs aren’t included in this release. There’s still room to improve the interface and the overall experience, but this feels like a good point to release the first version and see how it holds up outside development. Hustlenix Music started as an attempt to make music through code. Now it’s becoming a music player built around that idea."}, {"post_id": 80203, "ts": "2026-10-16T18:26:36Z", "hours": 0.8875, "text": "Devlog 2: Ten Months in the Making I’ve been working on Hustlenix Music for around 10 months, but not all of that work made it into the devlogs. Some of the time simply wasn’t recorded, so the logged hours don’t represent the entire development journey. I’m now getting close to shipping the first beta, and I’ve been working on the visual design. I want the interface to feel familiar to anyone who’s used a modern music streaming app, without directly copying Spotify’s design. The main challenge is balancing that familiar experience with what makes Hustlenix Music different: its Strudel-based compositions and built-in editor. I’m trying to make it feel like a music player first, rather than a coding tool with a music-player interface attached."}, {"post_id": 80195, "ts": "2026-10-16T17:30:46Z", "hours": 109.6989, "text": "Devlog 1: How It Started This project started because my school music teacher kept scolding me about my coarse singing voice. Naturally, my response was to try writing music through code. Because apparently, that was the reasonable option. 😭 I started experimenting with Strudel, a live-coding environment for making music. But then I had another idea: what if I built an entire music player around it using HTML, CSS, and JavaScript? That became Hustlenix Music. The interesting part isn’t just generating music with code. It’s building the experience around it: a library, search, playback controls, and an editor that lets you experiment with compositions. The goal is to make something that feels like a proper music app while keeping the music itself editable through Strudel. This is a much bigger project than I initially expected, but that’s how it started."}]...
|
Title: Hustlenix Music by @Lalith | Stardance
Dev Title: Hustlenix Music by @Lalith | Stardance
Devlogs:
Devlog 1: How It Started This project started because my school music teacher kept scolding me about my coarse singing voice. Naturally, my response was to try writing music through code. Because apparently, that was the reasonable option. 😭 I started experimenting with Strudel, a live-coding environment for making music. But then I had another idea: what if I built an entire music player around it using HTML, CSS, and JavaScript? That became Hustlenix Music. The interesting part isn’t just generating music with code. It’s building the experience around it: a library, search, playback controls, and an editor that lets you experiment with compositions. The goal is to make something that feels like a proper music app while keeping the music itself editable through Strudel. This is a much bigger project than I initially expected, but that’s how it started.
Devlog 2: Ten Months in the Making I’ve been working on Hustlenix Music for around 10 months, but not all of that work made it into the devlogs. Some of the time simply wasn’t recorded, so the logged hours don’t represent the entire development journey. I’m now getting close to shipping the first beta, and I’ve been working on the visual design. I want the interface to feel familiar to anyone who’s used a modern music streaming app, without directly copying Spotify’s design. The main challenge is balancing that familiar experience with what makes Hustlenix Music different: its Strudel-based compositions and built-in editor. I’m trying to make it feel like a music player first, rather than a coding tool with a music-player interface attached.
Devlog 3: Getting Ready to Ship v0.1 I think Hustlenix Music is finally ready to ship! 🎧 The v0.1 beta currently includes: Six original instrumental compositions Play, pause, resume, and stop controls Search for finding music A local music library An editor for previewing changes to compositions The goal for this first release is to get the core experience into people’s hands rather than keep adding features forever. One important detail: the beta focuses on original instrumentals. My studies of famous songs aren’t included in this release. There’s still room to improve the interface and the overall experience, but this feels like a good point to release the first version and see how it holds up outside development. Hustlenix Music started as an attempt to make music through code. Now it’s becoming a music player built around that idea.
Hustlenix Music v0.1: Ready to Ship 🎧 I think Hustlenix Music is finally ready for its first release! This project has been in the works for around 10 months, and it’s taken a lot longer than I originally expected. Not all the development time made it into the devlogs, but I’m happy with where it’s ended up. The v0.1 beta includes: 6 original instrumental compositions Play, pause, resume, and stop controls Music search A local library An editor where you can make changes to compositions and preview them live The main idea was to combine Strudel’s live-coded music with the experience of using a proper music player. I wanted something familiar to use, but with the ability to experiment with the music itself. For this beta, I’ve kept the focus on original instrumentals. My famous-song experiments aren’t included. A lot of the implementation was done with Codex, as explained in the project’s AI declaration. I’m shipping this version because I’d rather get the core experience out there than keep endlessly tweaking it without real feedback. This is v0.1, so there’s definitely more to improve. But for now, Hustlenix Music is ready to meet its first listeners.
Ships:
Hustlenix Music v0.1 is ready to ship 🎧 10 months, a lot of code, and one questionable response to a music teacher later… This started because my school music teacher kept scolding me about my coarse singing voice. Most people would probably practice singing. I decided I was going to write music through code instead. My ego and my coding abilities apparently had other plans. 😭 That’s how I got into Strudel, a live-coding environment for making music. But somewhere along the way, I got a bigger idea. Instead of just writing compositions, why not build an entire music player around them? Something with a library, search, playback controls, and an editor, all wrapped in an interface that feels like an actual music app. That idea became Hustlenix Music . From a music experiment to an actual app The concept sounded simple enough: Strudel for the music, HTML, CSS, and JavaScript for the app. The implementation was another story. I wasn’t just trying to make a page that played audio. I wanted the experience around the music to feel complete, while keeping the ability to experiment with the compositions themselves. I also wanted the interface to feel familiar without making a straight copy of Spotify. I’ve been working on this for around 10 months. Not all that work made it into the devlogs, either. Some development time simply wasn’t recorded, so the logged hours aren’t a complete account of the project’s history. I also used Codex for a substantial part of the implementation, as disclosed in the project’s AI declaration. The goal was to build and finish the product, not pretend every line came directly from my keyboard. What’s in v0.1? The first beta includes: Six original instrumentals that users can listen to. Playback controls for play, pause, resume, and stop. Search to find music. A local library for the available tracks. A composition editor where changes can be previewed live. I’ve kept this release focused on original instrumentals. My experiments studying famous songs aren’t included in the beta. There’s plenty more I could add, but I don’t want the project stuck in development forever because I keep finding one more thing to tweak. Why ship it now? At some point, another feature isn’t as valuable as getting the current version in front of people. This beta is my first proper attempt at bringing the whole idea together: music made with Strudel, a music-player interface, and tools to experiment with compositions in one place. It’s not the final version of what I imagine Hustlenix Music could become. It’s the first version that brings the core idea into a usable product. And honestly, that’s a milestone worth reaching. What’s next? For now, I want to get this version out there, see how the experience holds up, and work out what genuinely needs improving. There will probably be bugs, rough edges, and ideas I’ll want to revisit. That’s part of shipping something instead of leaving it as an unfinished project. What began as a slightly ridiculous reaction to being criticised for my singing has turned into a project I’ve spent months building. I still can’t promise my singing has improved. But at least I built a music player. 💀 Hustlenix Music v0.1: let’s ship it. 🎵 Live demo: [https://hustlenix.github.io/strudelify/] 💻 Source code: [https://github.com/Hustlenix/strudelify]...
|
1793818458.2959092
|
1793904858.2959092
|
|
58833
|
Pixel RPG Personal Site! by @fardhan | Stardance
|
fardhan
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-06T08:54:44Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A personal site built as a small RPG game. Instead of scrolling a cv, you walk a character around a map where each room is a chapter of the cv", "repo": "https://github.com/dhansecond/personal-site-stardance/", "demo": "https://dhansecond.github.io/personal-site-stardance/"}]...
|
[{"post_id": 62727, "ts": "202 [{"post_id": 62727, "ts": "2026-09-06T07:04:55Z", "hours": 0.7567, "text": "built a web based game to explore my cv"}]...
|
Title: Pixel RPG Personal Site! by @fardhan | Star Title: Pixel RPG Personal Site! by @fardhan | Stardance
Devlogs:
built a web based game to explore my cv
Ships:
A personal site built as a small RPG game. Instead of scrolling a cv, you walk a character around a map where each room is a chapter of the cv...
|
1793900939.7631085
|
1793987339.7631085
|
|
58834
|
VLC Based Indoor Navigation System for The Visuall VLC Based Indoor Navigation System for The Visually Impaired by @Sloke | Stardance...
|
Sloke
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: VLC Based Indoor Navigation System for The Title: VLC Based Indoor Navigation System for The Visually Impaired by @Sloke | Stardance...
|
1793515733.3271077
|
1794120533.3271077
|
|
58835
|
My awesome macropad! by @o_shao | Stardance
|
o_shao
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @o_shao | Stardance
|
1793515735.390108
|
1794120535.390108
|
|
58836
|
Atomosium by @seasworth | Stardance
|
seasworth
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Atomosium by @seasworth | Stardance
|
1793515736.2742016
|
1794120536.2742016
|
|
58837
|
Deskoo by @itsnotxelite | Stardance
|
itsnotxelite
|
0
|
8.55
|
0
|
[]
|
[{"post_id": 64950, "ts": "202 [{"post_id": 64950, "ts": "2026-09-09T18:01:25Z", "hours": 2.3264, "text": "I am working in the hardware still."}, {"post_id": 64359, "ts": "2026-09-08T17:43:23Z", "hours": 2.4861, "text": "I worked in the Hardware"}, {"post_id": 63729, "ts": "2026-09-07T17:45:39Z", "hours": 2.7206, "text": "i have worked on the Code and The Hardware"}, {"post_id": 63057, "ts": "2026-09-06T17:15:45Z", "hours": 1.0172, "text": "I DECIDED TO PRINT THIS FOR MY DESKOO PROJECT."}]...
|
Title: Deskoo by @itsnotxelite | Stardance
Devlog Title: Deskoo by @itsnotxelite | Stardance
Devlogs:
I DECIDED TO PRINT THIS FOR MY DESKOO PROJECT.
i have worked on the Code and The Hardware
I worked in the Hardware
I am working in the hardware still....
|
1792936268.9352887
|
1793800268.9352887
|
|
58838
|
My awesome macropad! by @hunny | Stardance
|
hunny
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @hunny | Stardance
|
1793515738.0788991
|
1794120538.0788991
|
|
58839
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1793767936.350258
|
1794631936.350258
|
|
58840
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1793767938.3676083
|
1794631938.3676083
|
|
58841
|
Frictionless by @sorenstevie09 | Stardance
|
sorenstevie09
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @sorenstevie09 | Stardance
|
1793515746.3388057
|
1794120546.3388057
|
|
58842
|
Personal website by @Mrkalidas | Stardance
|
Mrkalidas
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-09T15:35:29Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created my own personal website and i really love it. It have html and css no JavaScript but actually nice looking🥹. I am proud of having a personal website that i can share to anyone with a link.", "repo": "https://github.com/kalidas-blip/PERSONAL-WEBISTE", "demo": "https://kalidas-blip.github.io/PERSONAL-WEBISTE/"}]...
|
[{"post_id": 62980, "ts": "202 [{"post_id": 62980, "ts": "2026-09-06T15:30:12Z", "hours": 1.1589, "text": "This my personal website.The first ever project that i built about myself. This project has 2 files like mentioned in guide a html and a css. I made this look like variety design. I also deployed it by github pages."}]...
|
Title: Personal website by @Mrkalidas | Stardance
Title: Personal website by @Mrkalidas | Stardance
Devlogs:
This my personal website.The first ever project that i built about myself. This project has 2 files like mentioned in guide a html and a css. I made this look like variety design. I also deployed it by github pages.
Ships:
I created my own personal website and i really love it. It have html and css no JavaScript but actually nice looking🥹. I am proud of having a personal website that i can share to anyone with a link....
|
1793771489.0729465
|
1794635489.0729465
|
|
58843
|
spinning thing by @luau | Stardance
|
luau
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: spinning thing by @luau | Stardance
|
1793515748.5467324
|
1794120548.5467324
|
|
58844
|
My awesome macropad! by @Ultrex | Stardance
|
Ultrex
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Ultrex | Stardance
|
1793515749.4395893
|
1794120549.4395893
|
|
58845
|
obstacle by @hunny | Stardance
|
hunny
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: obstacle by @hunny | Stardance
|
1793515751.6549916
|
1794120551.6549916
|
|
58846
|
OmegaOS by @Ultrex | Stardance
|
Ultrex
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: OmegaOS by @Ultrex | Stardance
|
1793515753.4403694
|
1794120553.4403694
|
|
58847
|
My awesome macropad! by @Aaryan_raj | Stardance
|
Aaryan_raj
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Aaryan_raj | Stard Title: My awesome macropad! by @Aaryan_raj | Stardance...
|
1793515754.3734336
|
1794120554.3734336
|
|
58848
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1793767939.2379532
|
1794631939.2379532
|
|
58849
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1793767941.023964
|
1794631941.023964
|
|
58850
|
MOVE2POWER by @Kruthiv | Stardance
|
Kruthiv
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: MOVE2POWER by @Kruthiv | Stardance
|
1793516051.5632167
|
1794120851.5632167
|
|
58851
|
BLARE by @DrFelix | Stardance
|
DrFelix
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: BLARE by @DrFelix | Stardance
|
1793516053.2772322
|
1794120853.2772322
|